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

 
 
 
Reply to this topicStart new topic
> Xilinx MIG 3.1 и dual-rank DDR2 SODIMM, работает на 200 МГц!?
zomg
сообщение May 12 2010, 14:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 12-05-10
Пользователь №: 57 219



Сгенерил MIG 3.1 DDR2 SDRAM контроллер для Virtex 5 (xc5vsx50t-ff1136 Speed Grade -2). Планка памяти двухранковая Samsung M470T6554EZ3-CE6 на 512 МБ. MIG позволяет генерить контроллер на двухранковую планку с максимальной частотой 150 МГц. Попробовал вручную в исходниках поставить частоту 200 МГц, калибровка прошла успешно, а тест записи/чтения не показывает ошибки.
Большую частоту пока не пробовал. Все подозрительно правильно работает, есть ли тут подводные камни?
Go to the top of the page
 
+Quote Post
zomg
сообщение Jul 14 2010, 00:11
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 12-05-10
Пользователь №: 57 219



Еще один вопрос.
Оказалось контроллер MIG 3.1 DDR2 SDRAM сильно греет ПЛИС, возможно из-за Digitally Controlled Impedance (DCI). Кто с этим сталкивался, подскажите пожалуйста почему контроллер сильно греет ПЛИС и как от этого избавиться.
Go to the top of the page
 
+Quote Post
SFx
сообщение Jul 14 2010, 02:28
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688




Попробуйте посмотреть какие параметры ног установлены, возможно стоить уменьшить ток ножек.
Частоту в ручную ставить нельзя, нужно перегенировать коре, вроде. по крайней мере я так делал и работало. кроме того есть некоторые особенности размещения DQ\DQS выводов в IOB'ах.
Go to the top of the page
 
+Quote Post
zomg
сообщение Jul 14 2010, 13:54
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 12-05-10
Пользователь №: 57 219



SFx:
Посмотрел в констрейнтах как уменьшить ток ножек. К сожалению DRIVE для стандарта SSTL не применяется.

Генерировать заново коре не нужно, т.к. я уже исходники правил. Нужно только временные ограничения переписать.
Непонятно почему одноранковая планка памяти может работать на 200 МГц, а двухранковая не может - максимум 150 МГц.

Сообщение отредактировал zomg - Jul 14 2010, 13:55
Go to the top of the page
 
+Quote Post
cerg19
сообщение Oct 27 2010, 10:44
Сообщение #5


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

Группа: Свой
Сообщений: 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
zomg
сообщение Oct 28 2010, 16:41
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 12-05-10
Пользователь №: 57 219



Тест памяти на железе проводили следующими способами:
1. Записывается одна очередь данных (длиной BURST_LENGTH), затем она же считывается из памяти и проверяется. В качестве тестовых данных используется очередь: 0х00 - FxFF - 5x55 - AxAA. Эта процедура длится бесконечно, но адрес инкрементируется. Этот тест гоняли весь день.
2. Весь массив памяти записывается, затем проверяется. В качестве тестовых данных используется 64-разрядный счетчик (в зависимости от размера шины данных).

Если произойдет хоть одна ошибка, то выставится error, который у нас был выведен на светодиод. Проверяли две двухранковые планки 512 МБ и 2 ГБ фирмы Самсунг, частота 200 МГц, светодиод не загорелся.

Плохо то, что это лабораторные испытания, но еще не известно как все будет на деле. Еще выяснилось, что DCI, используемый для согласования ножек стандарта SSTL, сильно греет ПЛИС. Бороться с нагреванием можно только большим кулером или радиатором.

Контроллер MIG DDR2 SDRAM работает следующим образом: сначала происходит инициализация микросхем памяти по очереди для обоих ранков планки. После инициализации происходит процесс калибровки, выравнивающий (как я понял) временные задержки между микросхемами памяти. Причем калибровка идет по одному (второму) ранку, точно также как для одноранковой планки.

Чтобы работать с ранком, нужно только выставить соответствующий chip select. Другой ранк планки не учавствует в калибровке, поэтому гарантии на правильность его работы нет. Может поэтому в MIG ограничили максимальную частоту 150 МГц. Но память рассчитана на работу 200 МГц! Почему бы не попробовать? rolleyes.gif

Сообщение отредактировал zomg - Oct 28 2010, 16:13
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Oct 28 2010, 16:55
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Кстати, немного не в тему но всё же учитывая
Цитата
...Бороться с нагреванием можно только большим кулером или радиатором...

Никто не знает какие радиаторы и системы крепежа можно реально достать для плис ?? И где ??
Go to the top of the page
 
+Quote Post
cerg19
сообщение Oct 28 2010, 17:35
Сообщение #8


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

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



Цитата
Но память рассчитана на работу 200 МГц! Почему бы не попробовать?

Очень руки чешутся попробовать, но боязно. если будут сбои, придётся на 150 МГЦ переходить, а это для меня не приемлимо.

Цитата
Попробовал вручную в исходниках поставить частоту 200 МГц

Я в своём проекте правил только vhdl файл, описывающий PLL. Может быть вы ещё что нибудь правили? ucf файл например?
Go to the top of the page
 
+Quote Post
Victor®
сообщение Oct 28 2010, 19:36
Сообщение #9


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(Kuzmi4 @ Oct 28 2010, 19:55) *
Кстати, немного не в тему но всё же учитывая

Никто не знает какие радиаторы и системы крепежа можно реально достать для плис ?? И где ??


на Digi-Key удобный параметрический поиск.
задайте heatsink и многое найдете.
Купить с Digi-Key можно через посредников.
По стоимости - умножайте цену на 1.6 - будет стоимость с растаможкой,
НДС и доставкой (по крайней мере мы так покупаем). Работаем с "Эвоком".
Проблем пока не было.


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
zomg
сообщение Oct 30 2010, 13:51
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 12-05-10
Пользователь №: 57 219



Цитата
Я в своём проекте правил только vhdl файл, описывающий PLL

Я использовал отдельный PLL, так удобней.

Цитата
Может быть вы ещё что нибудь правили? ucf файл например?

ucf правил, цифры берутся из отдельно созданного проекта на 200 МГц.
Начиная с MIG 3.1 констрейнты для Virtex-5 упростили: расположение fabric flip-flops в read capture path основано на атрибутах XIL_PAR_SKEW и XIL_PAR_DELAY, встроенных в vhdl-код. Я их нашел в ddr2_phy_dq_iob.vhd и сравнил с теми же у проекта на 200 МГц, они совпадали.
Еще не забудьте поставить соответствующее значение параметра CLK_PERIOD.
Go to the top of the page
 
+Quote Post
cerg19
сообщение Nov 1 2010, 04:47
Сообщение #11


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

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



Цитата
Я использовал отдельный PLL, так удобней

А обязательную частоту в 200 МГц для IODELAY вы тоже генерировали PLL, или лучше внешний клок для этих целей брать?

Цитата
ucf правил, цифры берутся из отдельно созданного проекта на 200 МГц.
Начиная с MIG 3.1 констрейнты для Virtex-5 упростили: расположение fabric flip-flops в read capture path основано на атрибутах XIL_PAR_SKEW и XIL_PAR_DELAY, встроенных в vhdl-код. Я их нашел в ddr2_phy_dq_iob.vhd и сравнил с теми же у проекта на 200 МГц, они совпадали.
Еще не забудьте поставить соответствующее значение параметра CLK_PERIOD.

Как я понял, исправлять в ucf файле нужно только CLK_PERIOD, так?
Go to the top of the page
 
+Quote Post
zomg
сообщение Nov 1 2010, 09:14
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 12-05-10
Пользователь №: 57 219



Цитата
А обязательную частоту в 200 МГц для IODELAY вы тоже генерировали PLL, или лучше внешний клок для этих целей брать?

Построено так: для IDELAY_CTRL внешний клок 200 МГц. Остальное с выхода PLL или DCM, которые естественно должны работать от того же самого внешнего клока. Фронты должны быть выровнены!

Цитата
Как я понял, исправлять в ucf файле нужно только CLK_PERIOD, так?

В ucf и в топе исходников поправить параметры generic.

Сообщение отредактировал zomg - Nov 1 2010, 09:17
Go to the top of the page
 
+Quote Post
cerg19
сообщение Nov 1 2010, 10:20
Сообщение #13


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

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



zomg, спасибо большое за ответы. Есть мысля на virtex 6 перейти, он с памятью DDR3 MT8JSF25664HZ – 2GB работает на частоте начиная с 333 МГц. Конечно получается как из базуки по воробьям, избыточно очень, но зато 100% уверенность).
Ещё раз спасибо что откликнулся, будем думать.

Сообщение отредактировал cerg19 - Nov 1 2010, 10:23
Go to the top of the page
 
+Quote Post
cerg19
сообщение Nov 1 2010, 15:48
Сообщение #14


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

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



Может быть и не в тему, но раз уж речь завели о ядре DDR2 хотелось бы вот ещё что уточнить.
1. В настройках ядра есть такой параметр Data Width. Для шины данных мамяти равной 64 бит, этот параметр может принимать значение 64 или 128. Правильно ли я понимаю, что выбрав значение 128 я могу подключить к плис две планки памяти используя одну общую шину адреса, но разные шины данных?
2. Также прошу посоветовать за что отвечает параметр Memory Depth
3. Хотелось бы ещё узнать что такое Data Mask. Данный параметр можно включить или отключить для моего типа памяти. За что он отвечает? и можно ли обойтись без него, сэкономив тем самым ножки плис, если планка памяти данный режим поддерживает
Заранее спасибо за ответы.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:32
Рейтинг@Mail.ru


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