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

 
 
 
Reply to this topicStart new topic
> Xilinx MIG и dual-rank DDR2 SODIMM, Как их подружить?
kst
сообщение May 13 2009, 10:51
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Пытаюсь оживить на ПЛИС контроллер памяти DDR2, сгенеренный в Xilinx Memory Interface Generator v2.2 для модуля SODIMM DDR2.
Но пока не получается. В связи с чем много думаю и мало ем.

В тонкостях вопроса пока разбираюсь не очень, но вот одна проблема лежит на поверхности.

Используется планка памяти Samsung M470T6554EZ3-CE6 на 512 МБ. Эта планка двухранковая. А Memory Interface Generator может генерировать интерфейс только для одноранковых модулей. Соответственно при использовании MIG один ранк планки используется по-честному, а второй вообще никак не используется (не инициализируется). Однако эти два ранка разделяют одну и ту же шину данных.

Вопрос:
Можно ли использовать лишь один ранк двухранковой планки памяти DDR2, а на второй вообще забить? Или же хотя бы инициализация второго ранка обязательна?
Go to the top of the page
 
+Quote Post
Gothard
сообщение May 13 2009, 13:41
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Цитата(kst @ May 13 2009, 14:51) *
Можно ли использовать лишь один ранк двухранковой планки памяти DDR2, а на второй вообще забить? Или же хотя бы инициализация второго ранка обязательна?

Можно, только CS на этот ранк подайте '1' цей, а CKE и ODT 0-ми

На какой частоте работаете? В MIGу двухранковую кажется можно было до 150 МГц (возможно, что зависит от версии MIGа и семейства плисины). Если выше - то уже запасов калибровки задержки в IOB может не хватить для уверенного приема из двухранковой (калибровка происходит только по одному ранку). Хотя сами прохлопали это поначалу и пришлось на 166 запускать (был нужен индустриальный гиговый SODIMM, а среди таких не по-выбираешь), но как-то мне до сих пор "стремно" smile.gif. Настоятельно советую - меняйте DIMM на одноранковый!!!

Я пользовался версией MIGa 2.1 (уже есть по-новее) и плис был Virtex-4. Генерил MIG под 150 МГц и под 166, затем путем сравнения и патчей "заставил" MIG под 166 МГц работать на два ранка (или на оборот). Если есть еще вопросы - в личку, пока времени нету отвечать... Кстати я еще "патчил" тот MIG под 2Т тайминги....

Сообщение отредактировал Gothard - May 13 2009, 13:43
Go to the top of the page
 
+Quote Post
kst
сообщение May 13 2009, 15:21
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(Gothard @ May 13 2009, 17:41) *
Можно, только CS на этот ранк подайте '1' цей, а CKE и ODT 0-ми
Так и сделано.
Цитата
На какой частоте работаете?
Пытаюсь на 200 МГц, хотя планка с индексом 667. Не знаю вот, можно ли такую планку на частоте, скажем, 150 МГц завести...

Цитата
Настоятельно советую - меняйте DIMM на одноранковый!!!
Вот тут пожалуй проблема. Вообще в мечтах планка на 4 ГБ. А такие я только двухранковые видел. А вообще для меня до сих пор загадка, где можно взять одноранковые планки SODIMM емкостью более 256 МБ. У Micron есть, но дорого и как достать вообще не понятно. Начал разминаться с Samsung, но у них практически все планки двухранковые (по крайней мере одноранковые в наличии и под заказ не нашел).
Go to the top of the page
 
+Quote Post
gosha
сообщение May 13 2009, 16:31
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 15-06-04
Из: Менделеево
Пользователь №: 30



Почему бы не взять altera vhd ip_core для DDR2?
Go to the top of the page
 
+Quote Post
Gothard
сообщение May 14 2009, 04:31
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Цитата(kst @ May 13 2009, 19:21) *
Не знаю вот, можно ли такую планку на частоте, скажем, 150 МГц завести...

Любой DDR2 можно начиная со 125 МГц. А клок на память откуда подаете? (я понимаю, что с плиса, но какой путь от входа глобального синхросигнала до выхода клока из плиса?) Я к тому - что вообще по спецификации на DDR2 ограничение на джиттер клока - 75пс. Ксайлинкс в MIGах упорно выдает его с выхода DCM, а там джиттер по-больше будет.
P.S. Я сам как раз в ближайшем времени буду подключать 1Гб DDR2 SODIMM к 5-му Virtrex-у на 200 МГц - собираюсь "пропатчить" MIG, чтобы клок выдавался на память без DCM.
P.P.S. К тому-же я проводил расчет таймингов - и заметил, что на такой частоте не плохо бы DQ/DQS слегка сдвинуть относительно клока, да и управление тоже. Хотя может быть я перезакладываюсь... но имхо Xilinx в своих расчетах некоторыми вещами пренебрегают и получают слишком оптимистичные цифры - то ли из-за маркетинга, то ли я слишком параною.
...То ли они (ксайлинкс) "выезжают" на запасах микрух - помню мне в проекте с DDR DIMMом нужно было сдвинуть CS, что бы по таймингам пройти. Я на время наладки на модели упростил кой-чего а потом забыл вернуть и оказалось, что CS был значительно сдвинут (не помню сколько, но чуть ли не на четверть фазы, при частот 100 МГц). Около 20 первых образцов работало как часы. Дефект проявился только позже на новом образце. Вероятно дефект не замечали потому, что не "прогоняли" по всему температурному рабочему диапазону, да и это тоже не показатель - есть еще рабочий диапазон напряжения, да и кристалл кристаллу рознь...

Цитата(kst @ May 13 2009, 19:21) *
Вообще в мечтах планка на 4 ГБ. А такие я только двухранковые видел. А вообще для меня до сих пор загадка, где можно взять одноранковые планки SODIMM емкостью более 256 МБ.

Да вроде как 1Гб одноранковый в магазах давно есть. Micron тот-же, Hynix.... да и другие тоже попадались - ищите smile.gif, не такая уж редкость. А с бОльшими объемами - пока (а может и вообще) только 2-х ранки видел - но с ними на низкой частоте не должно быть проблем.


Цитата(gosha @ May 13 2009, 20:31) *
Почему бы не взять altera vhd ip_core для DDR2?

Возможно потому, что Xilinx? В таких вещах сильная "привязка" к возможностям железа.

Сообщение отредактировал Gothard - May 14 2009, 04:36
Go to the top of the page
 
+Quote Post
kst
сообщение May 14 2009, 11:11
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Gothard, сапсибо. Много ценной информации. Надо обмозговать.
Цитата
А клок на память откуда подаете? (я понимаю, что с плиса, но какой путь от входа глобального синхросигнала до выхода клока из плиса?)
Клок формирую через DCM. Правда и входная частота 200 МГц (причем джиттер порядка 1 пс). Не знаю уж, что там на выходе.
Цитата
Я сам как раз в ближайшем времени буду подключать 1Гб DDR2 SODIMM к 5-му Virtrex-у на 200 МГц - собираюсь "пропатчить" MIG, чтобы клок выдавался на память без DCM.
Вот это уже Шаманство с большой буквы. А как получить клоки, сдвинутые по фазе на 90 градусов, а также клок с частотой в два раза ниже??? Или вы собираетесь радикально пропатчить весь контроллер???
Цитата(Gothard @ May 14 2009, 08:31) *
Да вроде как 1Гб одноранковый в магазах давно есть. Micron тот-же, Hynix...
Ну не знаю как в других городах, а в НН Micron в магазах и на радиорынке я не встречал. Зато встречал круглые от удивления глаза продавцов, при упоминании этой фирмы. А вот насчет Hynix согласен, только вот где доки на их планки взять?
Go to the top of the page
 
+Quote Post
SM
сообщение May 14 2009, 11:25
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(kst @ May 14 2009, 15:11) *
А вот насчет Hynix согласен, только вот где доки на их планки взять?

На их сайте, вестимо.
Go to the top of the page
 
+Quote Post
Gothard
сообщение May 14 2009, 12:16
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 16-02-07
Из: Долгопрудный
Пользователь №: 25 406



Цитата(kst @ May 14 2009, 15:11) *
Вот это уже Шаманство с большой буквы. А как получить клоки, сдвинутые по фазе на 90 градусов, а также клок с частотой в два раза ниже??? Или вы собираетесь радикально пропатчить весь контроллер???

А радикального патча нет - в основном все изменения качаются только периферийных триггеров (подключения к клоков к триггерам CK, DQ, DQS) + дополнительная DCM для сдвига DQ и DQS + возможно указание сдвига на основной DCM (для улучшения запасов на таймингах сигналов управления) + немного триггеров для грамотной пересинхронизации управления периферийными триггерами DQ/DQS
P.S. изначально генерил MIG без встроенной DCM
Но возможно, что это и правда перебор и ?перфикционизм? - тогда обойдусь еще проще - задействую выходную задержку в IOB для DQ/DQS (правда добавится еще небольшой разброс... но это проще осуществить smile.gif ), а по управлению у меня худший запас выходит 400пс - можно и не трогать....

P.S.: Да... мой город - по дефолту smile.gif, извиняюсь - не учел....
Go to the top of the page
 
+Quote Post
kst
сообщение May 14 2009, 17:22
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(Gothard @ May 14 2009, 16:16) *
А радикального патча нет - в основном все изменения качаются только периферийных триггеров (подключения к клоков к триггерам CK, DQ, DQS)
А, речь о clk0. Да, его запросто можно в обход DCM, а clkdiv0 и clk90 будут все равно иметь детерминированную задержку относительно фронтов исходного клока.
Я тоже, кстати, изначально сгенерил контроллер без DCM (сам потом встраивал).

Цитата(SM @ May 14 2009, 15:25) *
На их сайте, вестимо.
Опа... и вправду есть... как же я так их раньше не нашел...
Но одноранковых SODIMM объемом более 512 МБ и у Hynix тоже нет.
Go to the top of the page
 
+Quote Post
cerg19
сообщение Oct 27 2010, 11:14
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 12-05-09
Из: Нижний Новгород
Пользователь №: 48 978



Здравствуйте. Н данный момент проектирую интерфейс в Core Generator для памяти DDR2 SDRAM SODIMM MT16HTF25664HZ – 2GB на virtex 5. Core Generator ограничивает частоту работы с памятью в 150 МГц, а мне необходимо 200 МГц. Я изменил исходники vhdl файлов сгенерированных Core Generator, а именно изменил настройки PLL, встраеваемой в ядро. В итоге частота работы с памятью стала 200 МГц. Всё компилируестя и тест в modelsim проходит. Но есть некоторая боязнь за то, как это будет работать в железе, которого пока нет. Скажите пожалуйста, может это уже кто нибудь применял и тестировал в железе, есть ли какие нибудь подводные камни? Заранее спасибо за ответ.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Oct 27 2010, 23:22
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Файлы MiG-а можно править сколько угодно - они не железные. Риск заключается в том, что графиеский интерфейс MiG содержит некоторую информацию, которая не попадает ни в сгенеренные тексты VHDL/verilog, ни в констренты. Например, при генерации DDR для spartan3 отсутствуют констрены распространения локального клока, который получается при адаптивной задержке DQS. Только при счастливом стечении обстоятельств оно удачно разводится. Надежда на "авось" в полный рост может испортить жизнь, и американо-индийское происхождение тут ни при чем.

Если менюшки говорят, что работать на такой частоте не будет, то точно не будет. А если обещают, что заработает, то заработает, но придется попотеть, а если хоть что-то будет отличаться от того неведомого сферического коня в вакууме, что был на столе у авторов, то пинцет.

Боюсь, что STA не заметит подвоха, если вы разведете модифицированный проект на 200MHz. А работать не будет.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:41
Рейтинг@Mail.ru


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