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

Контроллер SDRAM K4S64163H-UC(L)75

Привет всем !!! :)))

Возникла у меня необходимость реализовать контроллер SDRAM на основе EPM570.

Так как я только начал осваивать этот тип памяти, то хотелось-бы услышать советы от людей, которые уже работали с SDRAM.

Вопросы у меня вот какие:

- Как правильно произвести инициализацию микросхемы (в каких состояниях должны быть управляющие выводы, что необходимо в неё засылать, какие задержки необходимо выдержать)

- В чём особенности записи/чтения данных для этого типа памяти. Нужно-ли при переключении микросхемы из режима чтения в режим записи и наоборот что-то менять в управляющих регистрах.

- Как и когда проводится регенерация данных, сколько она требует времени.

- Какой из режимов работы наиболее подходящий для непрерывной записи в неё одного кадра изображения (тв, чересстрочная, 50Гц, период дискретизации 62,5 нс или частота 16МГц).

 

Я подумал, что для непрерывной записи/считывания может подойти режим чтения полной строки с переключением банков (full page & interleaving).

 

Буду благодарен всем откликнувшимся.

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


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

Пункты 1-3 Вам врядли кто-либо разъяснит толковей чем документация к микросхеме памяти. Качайте и читайте.

 

При переключении чтении на запись (или наоборот) изменяется только код образующийся на линиях RAS, CAS, WE (команда микросхеме памяти от контроллера). Никаких дополнительных действий с управляющим регистром ИС памяти производить не надо.

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


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

1. Доки на микросхемы.

2. www.opencores.org - там был контроллер на верилоге, изучайте.

3. у альтеры есть мегакорка, установите ее и изучайте. Декрипторы исходников есть.

Сомневаюсь, что стандартный контроллер можно будет положить в макс2:

1. мал объем

2. там наверняка используется блок внутренней памяти в качестве промежуточного буфера

Так что Вам придется сильно извращаться.

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


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

Сомневаюсь, что стандартный контроллер можно будет положить в макс2:

1. мал объем

2. там наверняка используется блок внутренней памяти в качестве промежуточного буфера

Так что Вам придется сильно извращаться.

Да, Макс2 не очень подходит для этой задачи. У него нет памяти, а буферизация, как правило, всегда нужна на быстрых потоках данных. Второй большой минус - у него нет регистров в IO элементах. Т.е. тут и с времянками будет туговато. Лучше взять нормальную FPGA.

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


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

Да, Макс2 не очень подходит для этой задачи. У него нет памяти, а буферизация, как правило, всегда нужна на быстрых потоках данных. Второй большой минус - у него нет регистров в IO элементах. Т.е. тут и с времянками будет туговато. Лучше взять нормальную FPGA.

А они и не особо нужны, там по таймингам и так все достаточно хорошо, особенно если регистр стоит в LAB, прилегающем к IO элементу, так что это не особо большой минус. А вот отсутствие RAM действительно удручает, может положение изменится с выходом MAX III :)

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


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

Да, Макс2 не очень подходит для этой задачи. У него нет памяти, а буферизация, как правило, всегда нужна на быстрых потоках данных. Второй большой минус - у него нет регистров в IO элементах. Т.е. тут и с времянками будет туговато. Лучше взять нормальную FPGA.

А они и не особо нужны, там по таймингам и так все достаточно хорошо, особенно если регистр стоит в LAB, прилегающем к IO элементу, так что это не особо большой минус.

...если... А если не стоит? Руками ставить? Гемор, имхо, все это. Во-вторых, смотря какая скорость нужна.

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


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

...если... А если не стоит? Руками ставить? Гемор, имхо, все это. Во-вторых, смотря какая скорость нужна.

В Quartus в Assignment Editor есть опция Fast Output Register, так что руками ставить не придется. Quartus сам поставит туда, куда надо.

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


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

...если... А если не стоит? Руками ставить? Гемор, имхо, все это. Во-вторых, смотря какая скорость нужна.

В Quartus в Assignment Editor есть опция Fast Output Register, так что руками ставить не придется. Quartus сам поставит туда, куда надо.

Это Вы точно знаете (оно документировано) или догадка?

 

Fast IO, насколько помню, - это как раз указание разместить регистр в IO элементе.

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


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

Это Вы точно знаете (оно документировано) или догадка?

 

Fast IO, насколько помню, - это как раз указание разместить регистр в IO элементе.

Implements an output register in a cell that has a fast, direct connection to an I/O pin. If such a fast, direct connection to the I/O pin is not available in the I/O cell hardware, this option instructs the Fitter to lock the output register in the LAB adjacent to the I/O cell it is feeding.Turning on the Fast Output Register option can help maximize I/O timing performance, for example, by permitting fast clock-to-output times. Turning this option off for a particular signal prevents the Fitter from implementing the signal automatically in an I/O cell or locking down the output register in the LAB adjacent to the I/O cell. This option is ignored if it is applied to anything other than a register or an output or bidirectional pin fed by a register.

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


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

Implements an output register in a cell that has a fast, direct connection to an I/O pin. If such a fast, direct connection to the I/O pin is not available in the I/O cell hardware, this option instructs the Fitter to lock the output register in the LAB adjacent to the I/O cell it is feeding.Turning on the Fast Output Register option can help maximize I/O timing performance, for example, by permitting fast clock-to-output times. Turning this option off for a particular signal prevents the Fitter from implementing the signal automatically in an I/O cell or locking down the output register in the LAB adjacent to the I/O cell. This option is ignored if it is applied to anything other than a register or an output or bidirectional pin fed by a register.

А времянку конкретную не смотрели? Сколько от регистра до пина сигнал идет. Например, я специально смотрел этот момент у Cyclone EP1C6T144I7, там получается так: от фронта клока до появления сигнала на пине 2.270-2.285 нс (в зависимости от банка). Сюда входит tCO и задержка на разводке от триггера до пина. А как будет в случае Макс2 с его Fast IO?

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


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

Я нашел у себя в помойке на винчестере какие-то исходники контроллера. Не помню, чьи они, откуда они у меня, работали ли они. Короче, ничего не помню. Но они могут быть неплохим стартом для этой задачи, поскольку (цитата):

// The interface to the host (i.e. microprocessor, DSP, etc) is synchronous

// and supports ony one transfer at a time. That is, burst-mode transfers

// are not yet supported. In may ways, the interface to this core is much

// like that of a typical SRAM.

и блоков память там не используется, так что может влезть и в макс2.

sdram_controller.rar

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


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

а зачем ему на 16МГц большое внутренне буферирование, если память заставить молотить на 100МГц, получим 6,25 такта на 1 запись, на 100мгц,

средняя запись это act (2) + cas(1) + write (1) + precharge(2) = 6 тактов.

правда с регенерацией проблемы будут. фифо на 4 слова не помешает.

 

а лучше выдрать 15нс статики, если капчурить 2 кадра D1 1.5 мегабайта за глаза.

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


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

а зачем ему на 16МГц большое внутренне буферирование, если память заставить молотить на 100МГц, получим 6,25 такта на 1 запись, на 100мгц,

средняя запись это act (2) + cas(1) + write (1) + precharge(2) = 6 тактов.

правда с регенерацией проблемы будут. фифо на 4 слова не помешает.

 

а лучше выдрать 15нс статики, если капчурить 2 кадра D1 1.5 мегабайта за глаза.

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


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

Привет всем !!! :)))

Возникла у меня необходимость реализовать контроллер SDRAM на основе EPM570.

Так как я только начал осваивать этот тип памяти, то хотелось-бы услышать советы от людей, которые уже работали с SDRAM.

Вопросы у меня вот какие:

- Как правильно произвести инициализацию микросхемы (в каких состояниях должны быть управляющие выводы, что необходимо в неё засылать, какие задержки необходимо выдержать)

- В чём особенности записи/чтения данных для этого типа памяти. Нужно-ли при переключении микросхемы из режима чтения в режим записи и наоборот что-то менять в управляющих регистрах.

- Как и когда проводится регенерация данных, сколько она требует времени.

- Какой из режимов работы наиболее подходящий для непрерывной записи в неё одного кадра изображения (тв, чересстрочная, 50Гц, период дискретизации 62,5 нс или частота 16МГц).

 

Я подумал, что для непрерывной записи/считывания может подойти режим чтения полной строки с переключением банков (full page & interleaving).

 

Буду благодарен всем откликнувшимся.

могу порекомендовать неплохую статью

рррр://www.dsioffe.narod.ru/mysdram/MyMicronSDRAM.htm

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


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

а лучше выдрать 15нс статики, если капчурить 2 кадра D1 1.5 мегабайта за глаза.

 

Занимаюсь примерно тем же самым. Применил именно SRAM 15нс. Частота работы с памятью 20 МГц. Первый кадр выдаю, второй заливаю. В fifo необходимости нет.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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