mempfis_ 0 21 сентября, 2006 Опубликовано 21 сентября, 2006 · Жалоба Привет всем !!! :))) Возникла у меня необходимость реализовать контроллер SDRAM на основе EPM570. Так как я только начал осваивать этот тип памяти, то хотелось-бы услышать советы от людей, которые уже работали с SDRAM. Вопросы у меня вот какие: - Как правильно произвести инициализацию микросхемы (в каких состояниях должны быть управляющие выводы, что необходимо в неё засылать, какие задержки необходимо выдержать) - В чём особенности записи/чтения данных для этого типа памяти. Нужно-ли при переключении микросхемы из режима чтения в режим записи и наоборот что-то менять в управляющих регистрах. - Как и когда проводится регенерация данных, сколько она требует времени. - Какой из режимов работы наиболее подходящий для непрерывной записи в неё одного кадра изображения (тв, чересстрочная, 50Гц, период дискретизации 62,5 нс или частота 16МГц). Я подумал, что для непрерывной записи/считывания может подойти режим чтения полной строки с переключением банков (full page & interleaving). Буду благодарен всем откликнувшимся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maksya 0 21 сентября, 2006 Опубликовано 21 сентября, 2006 · Жалоба Пункты 1-3 Вам врядли кто-либо разъяснит толковей чем документация к микросхеме памяти. Качайте и читайте. При переключении чтении на запись (или наоборот) изменяется только код образующийся на линиях RAS, CAS, WE (команда микросхеме памяти от контроллера). Никаких дополнительных действий с управляющим регистром ИС памяти производить не надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gate 0 21 сентября, 2006 Опубликовано 21 сентября, 2006 · Жалоба 1. Доки на микросхемы. 2. www.opencores.org - там был контроллер на верилоге, изучайте. 3. у альтеры есть мегакорка, установите ее и изучайте. Декрипторы исходников есть. Сомневаюсь, что стандартный контроллер можно будет положить в макс2: 1. мал объем 2. там наверняка используется блок внутренней памяти в качестве промежуточного буфера Так что Вам придется сильно извращаться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 22 сентября, 2006 Опубликовано 22 сентября, 2006 · Жалоба Сомневаюсь, что стандартный контроллер можно будет положить в макс2: 1. мал объем 2. там наверняка используется блок внутренней памяти в качестве промежуточного буфера Так что Вам придется сильно извращаться. Да, Макс2 не очень подходит для этой задачи. У него нет памяти, а буферизация, как правило, всегда нужна на быстрых потоках данных. Второй большой минус - у него нет регистров в IO элементах. Т.е. тут и с времянками будет туговато. Лучше взять нормальную FPGA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-Al- 0 22 сентября, 2006 Опубликовано 22 сентября, 2006 · Жалоба Да, Макс2 не очень подходит для этой задачи. У него нет памяти, а буферизация, как правило, всегда нужна на быстрых потоках данных. Второй большой минус - у него нет регистров в IO элементах. Т.е. тут и с времянками будет туговато. Лучше взять нормальную FPGA. А они и не особо нужны, там по таймингам и так все достаточно хорошо, особенно если регистр стоит в LAB, прилегающем к IO элементу, так что это не особо большой минус. А вот отсутствие RAM действительно удручает, может положение изменится с выходом MAX III :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 22 сентября, 2006 Опубликовано 22 сентября, 2006 · Жалоба Да, Макс2 не очень подходит для этой задачи. У него нет памяти, а буферизация, как правило, всегда нужна на быстрых потоках данных. Второй большой минус - у него нет регистров в IO элементах. Т.е. тут и с времянками будет туговато. Лучше взять нормальную FPGA. А они и не особо нужны, там по таймингам и так все достаточно хорошо, особенно если регистр стоит в LAB, прилегающем к IO элементу, так что это не особо большой минус. ...если... А если не стоит? Руками ставить? Гемор, имхо, все это. Во-вторых, смотря какая скорость нужна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-Al- 0 22 сентября, 2006 Опубликовано 22 сентября, 2006 · Жалоба ...если... А если не стоит? Руками ставить? Гемор, имхо, все это. Во-вторых, смотря какая скорость нужна. В Quartus в Assignment Editor есть опция Fast Output Register, так что руками ставить не придется. Quartus сам поставит туда, куда надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 22 сентября, 2006 Опубликовано 22 сентября, 2006 · Жалоба ...если... А если не стоит? Руками ставить? Гемор, имхо, все это. Во-вторых, смотря какая скорость нужна. В Quartus в Assignment Editor есть опция Fast Output Register, так что руками ставить не придется. Quartus сам поставит туда, куда надо. Это Вы точно знаете (оно документировано) или догадка? Fast IO, насколько помню, - это как раз указание разместить регистр в IO элементе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-Al- 0 22 сентября, 2006 Опубликовано 22 сентября, 2006 · Жалоба Это Вы точно знаете (оно документировано) или догадка? 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 34 22 сентября, 2006 Опубликовано 22 сентября, 2006 · Жалоба 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? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gate 0 24 сентября, 2006 Опубликовано 24 сентября, 2006 · Жалоба Я нашел у себя в помойке на винчестере какие-то исходники контроллера. Не помню, чьи они, откуда они у меня, работали ли они. Короче, ничего не помню. Но они могут быть неплохим стартом для этой задачи, поскольку (цитата): // 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба а зачем ему на 16МГц большое внутренне буферирование, если память заставить молотить на 100МГц, получим 6,25 такта на 1 запись, на 100мгц, средняя запись это act (2) + cas(1) + write (1) + precharge(2) = 6 тактов. правда с регенерацией проблемы будут. фифо на 4 слова не помешает. а лучше выдрать 15нс статики, если капчурить 2 кадра D1 1.5 мегабайта за глаза. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 сентября, 2006 Опубликовано 26 сентября, 2006 · Жалоба а зачем ему на 16МГц большое внутренне буферирование, если память заставить молотить на 100МГц, получим 6,25 такта на 1 запись, на 100мгц, средняя запись это act (2) + cas(1) + write (1) + precharge(2) = 6 тактов. правда с регенерацией проблемы будут. фифо на 4 слова не помешает. а лучше выдрать 15нс статики, если капчурить 2 кадра D1 1.5 мегабайта за глаза. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
backa 1 27 октября, 2006 Опубликовано 27 октября, 2006 · Жалоба Привет всем !!! :))) Возникла у меня необходимость реализовать контроллер SDRAM на основе EPM570. Так как я только начал осваивать этот тип памяти, то хотелось-бы услышать советы от людей, которые уже работали с SDRAM. Вопросы у меня вот какие: - Как правильно произвести инициализацию микросхемы (в каких состояниях должны быть управляющие выводы, что необходимо в неё засылать, какие задержки необходимо выдержать) - В чём особенности записи/чтения данных для этого типа памяти. Нужно-ли при переключении микросхемы из режима чтения в режим записи и наоборот что-то менять в управляющих регистрах. - Как и когда проводится регенерация данных, сколько она требует времени. - Какой из режимов работы наиболее подходящий для непрерывной записи в неё одного кадра изображения (тв, чересстрочная, 50Гц, период дискретизации 62,5 нс или частота 16МГц). Я подумал, что для непрерывной записи/считывания может подойти режим чтения полной строки с переключением банков (full page & interleaving). Буду благодарен всем откликнувшимся. могу порекомендовать неплохую статью рррр://www.dsioffe.narod.ru/mysdram/MyMicronSDRAM.htm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flanker 0 28 октября, 2006 Опубликовано 28 октября, 2006 · Жалоба а лучше выдрать 15нс статики, если капчурить 2 кадра D1 1.5 мегабайта за глаза. Занимаюсь примерно тем же самым. Применил именно SRAM 15нс. Частота работы с памятью 20 МГц. Первый кадр выдаю, второй заливаю. В fifo необходимости нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться