реклама на сайте
подробности

 
 
> ПЛИС + SRAM, посоветуйте
%-)
сообщение Nov 27 2009, 00:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Builder
сообщение Nov 27 2009, 02:22
Сообщение #2


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



Цитата(%-) @ Nov 27 2009, 04:49) *
По времянкам.

Времянка укладывается в рекомендации на хост процессор и SRAM? Сами по себе 20 нан ничего не гарантируют.
Цитата(%-) @ Nov 27 2009, 04:49) *
Тем не менее, в силу каких-то обстоятельств(возможно когда на линии данных 0xFFFF) ИНОГДА происходит пропуск увеличения адреса - он как бы тот же.

Может земля между устройствами плохая? Попробуйте её улучшить, напаяв доп шину.
Go to the top of the page
 
+Quote Post
%-)
сообщение Nov 27 2009, 03:25
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 118
Регистрация: 13-09-09
Пользователь №: 52 331



Цитата(Builder @ Nov 27 2009, 05:22) *
Времянка укладывается в рекомендации на хост процессор и SRAM? Сами по себе 20 нан ничего не гарантируют.


с лихвой! ещё как. запас в 2 раза (понизил скорость обмена)

память 10нс, времянка для процессора вполне "низкочастотная"

выскажу свою мысль.

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

ИМХО нужно по опусканию CS подсчитывать адрес, но тут может возникнуть проблема с дешифрацией адресного бита типа "регистр/память", так как неизвестно будет ли установлен этот адресный бит "регистр-память" РАНЬШЕ чем произойдёт опускание CS.

в общем гемор ещё тот
Go to the top of the page
 
+Quote Post
Builder
сообщение Nov 27 2009, 08:15
Сообщение #4


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



Цитата(%-) @ Nov 27 2009, 06:25) *
дело в том, что может такой подход (как я описал выше) не совсем корректен, так как адрес на SRAM выставляется фактически в момент опускания строба записи,
а должен был выставлен намного раньше!
в итоге имеют место "данные, записанные не в тот адрес"

Вообще, когда я спрашивал про времянку, я имел ввиду не просто, 10 нан память, 20 нан ограничения - всё пучком.
Вигушки, нужно учесть все сетапы и холды памяти. Т.е. если у Вас идёт строб, то нужно посмотреть сколько времени сигнал идёт от этого строба обратно на адресса памяти. Хватает ли того времени что остаётся для нормальной работы памяти. И что-то мне одсказывает что не всё там у Вас стыкуется.
Перепроверьте ещё раз. Ну больше запаса будет, если действительно инкрементпировать после записи, а не перед.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- %-)   ПЛИС + 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 05:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016