[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
В общем, все написанное верно. Но есть детали.
>Переключаем банк памяти.
Всего 2 банка? Один для записи, другой для чтения? Они переключаются (меняются местами) каждый кадр, или каждый полукадр? Здесь я имею в виду 2 независимых банка, со своими адресами и данными, так как есть вариант организации банков с общей адресной шиной (он сложнее). Просто непонятна ваша фраза “Как не допустить одновременного доступа в память записывающей и считывающей стороны?” Что есть записывающая и что – считывающая сторона? В общих чертах, что (технически) происходит?
Следующий момент – темп записи и темп чтения, от этого будет зависеть режим работы SDRAM. Нужно выбрать длину burst-а: 1, 2, 4, 8, 256 (вся строка) ячеек. От этого будет зависеть и частота ‘стробирования' адресов (как вы написали). Допустим, частота пикселов – 14.75MHz, частота CLK для SDRAM – 29.5MHz. Тогда можно собирать в ПЛИС по 4 пиксела и записывать их в SDRAM с запрограммированной длиной burst = 4.
И не забудьте про инициализацию SDRAM, состоящую из 4 шагов: NOP, Precharge, Auto-Refresh, Load Mode Register. Для удобства для них можно отвести равные интервалы.
P.S. За время одного кадра память не осыпается, т.к. к ней происходят обращения. Соотв. это не ответ на вопрос “нужна ли регенерация?”.
P.P.S.Самый хороший datasheet, на мой взгляд, у Micron.
E-mail: info@telesys.ru