Перейти к содержанию
    

Работа с SRAM памятью

Доброго времени суток!!!

 

Пожалуйста, помогите в архиве Mem_test.zip проект для Xilinx ISE 8.02.03 в котором есть два модуля:

1) модуль для работы с SRAM памятью cy7c1061av33 (файл mem.vhd) Циклограмма работы в приложенном даташите страницы

5 -> (Read Cycle No. 2 (OE Controlled))

6 -> (Write Cycle No. 1 (CE1 or CE2 Controlled))

2) попытка сделать модуль для проверки работы с памятью ( файл count_pwm.vhd), но из-за того что не могу точно определить задержку данных в тактах - то цифровой компаратор еще не вставлял.

 

Идея заключается в следующем, записать определенное количество данных(у меня реализовано циклическая запись и считывания 1023 значения инкрементируемого счетчика), а потом при считывании проверять компаратором значения записанных и прочитанных данных.

 

Собственно в чем вопрос проверить правильность модуля работы с SRAM памятью т.к. на плате практически все дорожки идут под микросхемой SRAM и есть большая вероятность, что могут быть зацепки между проводниками. Оборудование у меня имеющиеся мне кажется не позволит достоверно сказать о правильности работы с SRAM (в наличии только 4-х канальный осцилограф) - мое мнение.

 

Хотелось бы быть полностью уверенным хотя бы в логическом уровне. С моей стороны к mem.vhd по результатам моделирования вопросов нет, если у Вы скажите что все хорошо в логическом уровне, тогда буду пытаться в железе писать и читать и искать ошибки в плате.

 

Чуть не забыл упомянуть :) , что работа с SRAM будет происходить не более, чем на 32 МГц.

 

P. S. Понимаю, что Вы не учителя в школе и проверять не обязаны, но я просто не знаю к кому обратиться за помощью. :help:

 

С уважением Maverick!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток!!!

я так понимаю, контроллер для этой памяти вы ещё не написали(?). я бы посоветовал озаботиться данной проблемой сначала. корректность работы контроллера будет проверить достаточно легко, а сам котроллер пригодится для проекта в дальнейшем. а уж потом к этому контроллеру со внятным интерфейсов прикручивать тесты. модульность должна быть. а то вы вот этот простенький "железный" тестик написали, потом его можно будет выкинуть. потерянного времени на такие точечные удары не жалко?

ЗЫ: память, как я понимаю, ассинхронная?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ИМХО маетесь дурью.

 

1. Где то вы брали модель памяти. Сомневаюсь что кипарисы не вложили к этой памяти простой тестик для понимания транзакций к памяти (у микрона например всегда такие тесты идут).

 

2. SRAM настолько простая память что сделать для нее простейший контроллер дело не более часа, двух. И смысл тестировать есть уже контроллер, а не память.

 

3. В сети много реализаций контроллеров, возьмите готовый и модифицируйте тестбенч для него.

 

Удачи !!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К сожалению, и к моему стыду я не пишу программы для микроконтроллеров, и такого человека нет рядом, конечно если бы был, то совсем другое дело - не стал бы выдумывать модуль для проверок на ПЛИС.

а причём здесь программы для микроконторллеров? у вас вообще какая задача стоит? только проверка дорожек на плате?

 

Извини, но в первом топике я пишу:

с этим утверждением не поспорить. то что вы это писали в первом посте бесспорно и что?

я читать умею, если вам кажется, что я чего-то не улавливаю в вашем посте, по поясните, а не цитируйте себя самого

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может быть я не корректно поставил вопрос, но я просто прошу проверить мою программу (на VHDL) для ПЛИС. ИЗВИНИТЕ, что ввел ВАС в заблуждение!!!

Основное это научиться работать с SRAM. И вот тут я прошу помощи, чтобы знающие люди ответили про корректность создания контролера для работы с SRAM в ПЛИС (даташит на память и код программы я выложил). Микроконтроллер (или компьютер) нужен я так подозреваю для полной проверки работы с памятью на плате, который управляя котроллером работы с SRAM в ПЛИС будет подавать заранее известные данные и принимать данные и сравнивать их между собой, сообщая результат сравнения. Модуль который это делает в ПЛИС я выложил (смотри вложения выше), но не могу разобраться с задержками. Если кто-то знает другие пути проверок работы, пожалуйста, расскажите.

 

Там у Вас черт ногу сломит. Организовать цикл чтения данных из памяти, записи данных в память по конкретному адресу.

Да при этом двунаправленной шиной управлять. Это же пара строчек текста. А автомат создали.

И фиг разберешься при этом.

Посомтрите на блок диаграмму памяти. Нет там триггеров по управлению двунаправленной шиной данных. Вот так и у себя сделайте. в соответствии только лишь сигналов управления этой памяти.А регистры могут быть только на данных. И все сразу проще станет. (Отдельно вне процесса по клоку описывается управление буферами по третьему состоянию).

И осциллограф Вам не нужен. Обрывы и короткое на плате просто определяется.

Записывается линейный код в память, считывается линейный код из памяти. По ренакции определяется исправность шины адреса.

А шина данных - по бегущему нулю или единицы.

Какой там нафиг тестбенчь для статической памяти. Будьте проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может быть я не корректно поставил вопрос, но я просто прошу проверить мою программу (на VHDL) для ПЛИС. ИЗВИНИТЕ, что ввожу ВАС в заблуждение!!!

ничего страшного в этом нет, просто если вы хотите получить быструю и качественную помощь вам нужно стараться максимально точно формулировать вашу проблему. (терминологию тоже хорошо использовать правильную, если не уверены как что-то называется, описывайте простыми словами, иначе можете запутать собеседника: то что вы пишите на VHDL обычно не называют программой, это либо "описание", либо "модуль", "устройство", "модель", "дизайн")

Основное это научиться работать с SRAM. И вот тут я прошу помощи, чтобы знающие люди ответили про корректность создания контролера для работы с SRAM в ПЛИС (даташит на память и код программы я выложил).

Микроконтроллер (или компьютер) нужен я так подозреваю для полной проверки работы с памятью на плате, который управляя котроллером работы с SRAM в ПЛИС будет подавать заранее известные данные и принимать данные и сравнивать их между собой, сообщая результат сравнения.

думаю создание проекта для проверки корректности работы памяти не есть сама цель проекта.

хорошо бы представлять что вы делаете и для чего делаете, хорошо бы также представлять архитектуру системы в которойц работаете.

из уже сказанного вами можно понять, что у вас есть ПЛИС и память соединённые друг с другом. из этого ясно что управление памятью будет осуществлятся контроллером расположенным внупри ПЛИС. естественно, что контроллер памяти не есть "вещь в себе", и какой-то вычислитель будет обращатся к нему с запросами обращения к памяти. отсюда следует, что конторллер должен обладать как минимум 2-мя интерфейсами: интерфейс к микросхеме памяти (он у вас определён документацией на память); интерфейс к вычислителю (пока неизвестен). так вот я вам советую (как я понимаю и уважаемый des00 тоже), вместо того чтобы писать модуль исключительно для теста дорожек на плате, написать сразу контроллер памяти, а к нему уже прикручивать тест модуль (контроллер позволит вам перейти на более высокий уровень абстракции, то есть иpбавит вас от необходимости учитывать физические задержки SRAM). для этого вам нужно проконсультироваться с координатором проекта и выработать требования к интерфейсу к контроллеру со стороны вычислителя (отсюда уже пойдет вся остальная работа, потому как контроллер- это всего лишь мост между 2мя типами интерфейсов)

Модуль который это делает в ПЛИС я выложил (смотри вложения выше), но не могу разобраться с задержками. Если кто-то знает другие пути проверок работы, пожалуйста, расскажите.

теперь по сути работы с асинхронными интерфейсами (независимо будете ли вы следовать совету создавать полноценный контроллер или нет).

мы уже достаточно давно(с расспространения шины PCI) живём в эпоху синхронных интерфейсов. современные архитектуры и методики пректирования на ПЛИС предполагают практически исключительное проектирование синхронных схем. как быть с асинхронными интерфейсами?

у вас в ВХДЛ есть возможность задания параметров дизайна (generic). эти параметры используются на этапе компиляции проекта. если вы зададате абсолютные физические (временные) величины интерфейса и период тактового сигнала конторллера у вас появится возможность автоматической конфигурации контроллера на этапе компиляции для различных временных параметров. так например в асинхронных интерфейсах у нас определяющую роль играют времена предустановки и удержания сигнала. естественно в синхронных дизайнах нет возможности задания точной физической величины задержки сигнала, но зато можно создать машину состояний, которая будет иммитировать подобные временные состояния. так например нам известно что сигнал А должен быть выставлен за время Т до выставления сигнала Б. нам также известен период тактового сигнала П. величины Т и П мы задаём как параметры проекта и получаем что если поделить truncate(Т/П)+1, отбросить дробную часть и прибавить единицу, то мы получим число тактов которое должно пройти после выставления сигнала А до выставления сигнала Б. т.е. наша машина состояний будет содержать уже 3 состояния : set_A, wait_T, set_B, где в состояние wait_T(idle wait) автомат будет находится до команды со счётчика подсчитывающего такты задержки. (всё понятно?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...