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

 
 
> Контроллер SDRAM, Вопросы и детали синтеза
Волощенко
сообщение Jan 16 2009, 10:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 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 нужно гарантированно задержать. Кто и как решил эту задачу?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kompot
сообщение Jan 16 2009, 11:04
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 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 буфера, питая его сдвинутым клоком.

Запись - не самое страшное. Что Вы будете делать с чтением?
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Jan 16 2009, 11:37
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 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. Так?
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Jan 17 2009, 08:08
Сообщение #4


МедвеД Инженер 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
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Jan 17 2009, 18:28
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



к Kompot и Postoroniy_V
Спасибо за советы!
Я сейчас в поиске открытой корки под verilog, чтобы переделать ее под свои задачи (где нужно много памяти и вычислений).
Склоняюсь в сторону ХАРР200, похоже, здесь уже многие ее успешно применяли. Хотелось бы услышать краткие мнения и оценки, или замечания.
А может есть другие корки, более надежные, понятные и лучше описанные?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Волощенко   Контроллер 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


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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 14:19
Рейтинг@Mail.ru


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