|
Контроллер SDRAM, Вопросы и детали синтеза |
|
|
|
Jan 16 2009, 10:57
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Всем привет! Намерен синтезировать собственный контроллер SDRAM на FPGA Stratix II 2S60, в данном случае в Quartus 7.2, но вне SOPC, и без NiosII. Есть вопросы, может кто-то знает ответ.
1. В описании на SDRAM (у меня это MT46V16M16P-6T) для выполнения команд WRITE, необходимо выдержать время tDH, необходимое для предварительной установки данных на шине DQ перед фронтом/спадом сигнала стробирования DQS этих данных. Для MT46V16M16P-6T оно должно быть более 0.4ns (очень малое, но есть). Если строить FSM контроллера, например, с тактовой частотой 100МГц, то не ясно как выдержать tDH и избежать гонок, то есть сигнал DQS нужно гарантированно задержать. Кто и как решил эту задачу?
|
|
|
|
|
 |
Ответов
|
Jan 16 2009, 11:04
|
Местный
  
Группа: Участник
Сообщений: 242
Регистрация: 10-06-08
Из: Хочу в пампасы...
Пользователь №: 38 192

|
Цитата(Волощенко @ Jan 16 2009, 13:57)  Всем привет! Намерен синтезировать собственный контроллер SDRAM на FPGA Stratix II 2S60, в данном случае в Quartus 7.2, но вне SOPC, и без NiosII. Есть вопросы, может кто-то знает ответ.
1. В описании на SDRAM (у меня это MT46V16M16P-6T) для выполнения команд WRITE, необходимо выдержать время tDH, необходимое для предварительной установки данных на шине DQ перед фронтом/спадом сигнала стробирования DQS этих данных. Для MT46V16M16P-6T оно должно быть более 0.4ns (очень малое, но есть). Если строить FSM контроллера, например, с тактовой частотой 100МГц, то не ясно как выдержать tDH и избежать гонок, то есть сигнал DQS нужно гарантированно задержать. Кто и как решил эту задачу? Сигнал DQS формируется в другом клоковом домене, сдвинутом по фазе относительно основного на 90 - 180 -270 градусов. Причем сдвиг этот можно осуществлять на самой последней стадии - в триггере в IO буфера, питая его сдвинутым клоком. Запись - не самое страшное. Что Вы будете делать с чтением?
|
|
|
|
|
Jan 16 2009, 11:37
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Цитата(Kompot @ Jan 16 2009, 15:04)  Сигнал DQS формируется в другом клоковом домене, сдвинутом по фазе относительно основного на 90 - 180 -270 градусов. Причем сдвиг этот можно осуществлять на самой последней стадии - в триггере в IO буфера, питая его сдвинутым клоком. Спасибо, похоже что только так. Но просматривая SOPC для проекта от Альтеры full_featured (в нем как раз используется DDR SDRAM Controller MegaCore), я заметил, что согласно SOPC, эта корка синхронизируется только одним синхроимпульсом pll_c0. Хотя модуль PLL формирует еще один сигнал pll_c1, задержанный на 3380 ps. и, получается, что он также должен входить в корку SDRAM. Почему-то в SOPC эта связь не показывается. Выходит, что мне нужно вынуть из NiosII сигнал pll_c1 и передать его вместе с pll_c0 в мои схемы. Цитата(Kompot @ Jan 16 2009, 15:04)  Запись - не самое страшное. Что Вы будете делать с чтением? Я пока с чтением не заметил больших подвохов. Может плохо искал? Уточните... Меня больше смущает инициализация, похоже, что для ее начала нужен внешний толчок, например от NiosII. Так?
|
|
|
|
|
Jan 17 2009, 08:08
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Волощенко @ Jan 16 2009, 20:37)  Спасибо, похоже что только так. Но просматривая SOPC для проекта от Альтеры full_featured (в нем как раз используется DDR SDRAM Controller MegaCore), я заметил, что согласно SOPC, эта корка синхронизируется только одним синхроимпульсом pll_c0. Хотя модуль PLL формирует еще один сигнал pll_c1, задержанный на 3380 ps. и, получается, что он также должен входить в корку SDRAM. Почему-то в SOPC эта связь не показывается. Выходит, что мне нужно вынуть из NiosII сигнал pll_c1 и передать его вместе с pll_c0 в мои схемы.
Я пока с чтением не заметил больших подвохов. Может плохо искал? Уточните... Меня больше смущает инициализация, похоже, что для ее начала нужен внешний толчок, например от NiosII. Так? на корку подаетё pll_c0, а на мелкосхему памяти pll_c1 чем и гарантируется выдержка всех времён (Tdh, Tsu) для начальной инициализации пишется автомат, который после ресета и делает ту самую инициализацию. а почему нельзя взять готовый и его использовать?
--------------------
Cogito ergo sum
|
|
|
|
Сообщений в этой теме
Волощенко Контроллер SDRAM Jan 16 2009, 10:57  Kompot Цитата(Волощенко @ Jan 16 2009, 14:37) Я ... Jan 16 2009, 13:40    dvladim Цитата(Волощенко @ Jan 17 2009, 21:28) А ... Jan 17 2009, 19:25    Kompot Цитата(Волощенко @ Jan 17 2009, 22:28) к ... Jan 19 2009, 12:38     Волощенко к dvladim
Спасибо. Скачал проект, изучаю.
Цитата... Jan 19 2009, 14:10      WingLion Кстати, вопрос такой возник. Сколько занимает конт... Jan 22 2009, 19:24       Волощенко к WingLion
Спасибо за ссылки и коды.
Хотел бы уто... Jan 23 2009, 06:47        WingLion Цитата(Волощенко @ Jan 23 2009, 09:47) к ... Jan 23 2009, 11:54        Kompot Цитата(Волощенко @ Jan 23 2009, 10:47) к ... Jan 23 2009, 14:33         WingLion Цитата(Kompot @ Jan 23 2009, 17:33) Ну чт... Jan 23 2009, 16:47 Farsch Уважаемый WingLion! как я понимаю, ваш SDRAM к... Nov 10 2010, 12:46 torik ЦитатаКогда-то сделал себе ядро для SD-RAM, которо... Nov 11 2010, 05:52 Kuzmi4 Касательно Цитатаальтеровского SDRAM контроллер 16... Jul 31 2011, 17:28 des00 Цитата(Kuzmi4 @ Jul 31 2011, 12:28) В ине... Aug 1 2011, 03:31 Kuzmi4 2 des00
не подскажите как понимать самый последний... Aug 1 2011, 11:41 des00 Цитата(Kuzmi4 @ Aug 1 2011, 06:41) не под... Aug 1 2011, 11:54 Kuzmi4 Получается тогда что учёт minimum trace delay for ... Aug 1 2011, 12:03 des00 Цитата(Kuzmi4 @ Aug 1 2011, 06:03) Получа... Aug 1 2011, 12:25 Kuzmi4 2 des00
по моему проще было учитывать сразу всё, п... Aug 1 2011, 12:31 des00 Цитата(Kuzmi4 @ Aug 1 2011, 06:31) по мое... Aug 1 2011, 12:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|