|
ПЛИС + SRAM, посоветуйте |
|
|
|
Nov 27 2009, 00:49
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331

|
есть порт для ввода данных из хост-процессора в ПЛИС (запись в ПЛИС) к ПЛИС подключена SRAM нужно организовать запись в SRAM через ПЛИС. при этом адрес на память выставляет сама ПЛИС. сделано вот так: Код SRAM_D<=Port_D; --линии данных порта ПЛИС соединяем с линиями данных SRAM SRAM_A<=Address; --линии адреса SRAM соединены со счётчиком ПЛИС SRAM_CS<=Port_CS; --линия выбора SRAM соединена с линией порта ПЛИС SRAM_OE<='1'; --чтение не используется SRAM0_WE<=Port_WE; --линия разрешения записи SRAM соединена с линией порта ПЛИС
process(Port_WE) --увеличение адреса на 1 begin if falling_edge(Port_WE) then if Port_CS='0' then if Address=1000 then Address<=(others => '0'); else Address<=Address+1; end if; end if; end if; end process; По времянкам. Tsetup=20нс Thold=20нс Twrite=20нс Тем не менее, в силу каких-то обстоятельств(возможно когда на линии данных 0xFFFF) ИНОГДА происходит пропуск увеличения адреса - он как бы тот же. Прошу покритиковать и обсудить код. А также причины, вызвавшие сей эффект
Сообщение отредактировал %-) - Nov 27 2009, 01:24
|
|
|
|
|
 |
Ответов
|
Nov 27 2009, 02:22
|
iBuilder©
   
Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322

|
Цитата(%-) @ Nov 27 2009, 04:49)  По времянкам. Времянка укладывается в рекомендации на хост процессор и SRAM? Сами по себе 20 нан ничего не гарантируют. Цитата(%-) @ Nov 27 2009, 04:49)  Тем не менее, в силу каких-то обстоятельств(возможно когда на линии данных 0xFFFF) ИНОГДА происходит пропуск увеличения адреса - он как бы тот же. Может земля между устройствами плохая? Попробуйте её улучшить, напаяв доп шину.
|
|
|
|
|
Nov 27 2009, 03:25
|
Частый гость
 
Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331

|
Цитата(Builder @ Nov 27 2009, 05:22)  Времянка укладывается в рекомендации на хост процессор и SRAM? Сами по себе 20 нан ничего не гарантируют. с лихвой! ещё как. запас в 2 раза (понизил скорость обмена) память 10нс, времянка для процессора вполне "низкочастотная" выскажу свою мысль. дело в том, что может такой подход (как я описал выше) не совсем корректен, так как адрес на SRAM выставляется фактически в момент опускания строба записи, а должен был выставлен намного раньше! в итоге имеют место "данные, записанные не в тот адрес" ИМХО нужно по опусканию CS подсчитывать адрес, но тут может возникнуть проблема с дешифрацией адресного бита типа "регистр/память", так как неизвестно будет ли установлен этот адресный бит "регистр-память" РАНЬШЕ чем произойдёт опускание CS. в общем гемор ещё тот
|
|
|
|
|
Nov 27 2009, 08:15
|
iBuilder©
   
Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322

|
Цитата(%-) @ Nov 27 2009, 06:25)  дело в том, что может такой подход (как я описал выше) не совсем корректен, так как адрес на SRAM выставляется фактически в момент опускания строба записи, а должен был выставлен намного раньше! в итоге имеют место "данные, записанные не в тот адрес" Вообще, когда я спрашивал про времянку, я имел ввиду не просто, 10 нан память, 20 нан ограничения - всё пучком. Вигушки, нужно учесть все сетапы и холды памяти. Т.е. если у Вас идёт строб, то нужно посмотреть сколько времени сигнал идёт от этого строба обратно на адресса памяти. Хватает ли того времени что остаётся для нормальной работы памяти. И что-то мне одсказывает что не всё там у Вас стыкуется. Перепроверьте ещё раз. Ну больше запаса будет, если действительно инкрементпировать после записи, а не перед.
|
|
|
|
Сообщений в этой теме
%-) ПЛИС + SRAM Nov 27 2009, 00:49 BSV Нужно в каждом цикле обращения выполнять операции ... Nov 27 2009, 05:08 %-) Цитата(BSV @ Nov 27 2009, 08:08) Нужно в ... Nov 27 2009, 06:14 sazh Цитата(%-) @ Nov 27 2009, 03:49)... Nov 27 2009, 06:56 %-) проблема почти выявлена.
инкремент адреса иногда ... Nov 27 2009, 09:02 des00 Цитата(%-) @ Nov 27 2009, 03:02)... Nov 28 2009, 10:01 alevnew Цитата(%-) @ Nov 27 2009, 15:02)... Dec 1 2009, 07:06  %-) Цитата(alevnew @ Dec 1 2009, 11:06) По мо... Dec 1 2009, 07:11   sazh Цитата(%-) @ Dec 1 2009, 10:11) ... Dec 1 2009, 12:02 %-) значит так.
1) буфер чисто на данные ставить нель... Nov 29 2009, 04:25 sazh Цитата(%-) @ Nov 29 2009, 07:25)... Nov 29 2009, 09:28 %-) Решил вникнуть в синхронный дизайн и сделать обраб... Dec 1 2009, 02:28 %-) я в стадии крайнего офонарения!!!
про... Dec 1 2009, 13:47 %-) сделал синхронную нарезку от внешнего кварцевого г... Dec 7 2009, 02:06 des00 Цитата(%-) @ Dec 6 2009, 20:06) ... Dec 7 2009, 04:23  %-) Цитата(des00 @ Dec 7 2009, 08:23) для шин... Dec 7 2009, 05:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|