|
|
  |
Xilinx MIG 3.1 и dual-rank DDR2 SODIMM, работает на 200 МГц!? |
|
|
|
May 12 2010, 14:13
|
Участник

Группа: Участник
Сообщений: 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 МГц, калибровка прошла успешно, а тест записи/чтения не показывает ошибки. Большую частоту пока не пробовал. Все подозрительно правильно работает, есть ли тут подводные камни?
|
|
|
|
|
Jul 14 2010, 00:11
|
Участник

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

|
Еще один вопрос. Оказалось контроллер MIG 3.1 DDR2 SDRAM сильно греет ПЛИС, возможно из-за Digitally Controlled Impedance (DCI). Кто с этим сталкивался, подскажите пожалуйста почему контроллер сильно греет ПЛИС и как от этого избавиться.
|
|
|
|
|
Jul 14 2010, 13:54
|
Участник

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

|
SFx: Посмотрел в констрейнтах как уменьшить ток ножек. К сожалению DRIVE для стандарта SSTL не применяется.
Генерировать заново коре не нужно, т.к. я уже исходники правил. Нужно только временные ограничения переписать. Непонятно почему одноранковая планка памяти может работать на 200 МГц, а двухранковая не может - максимум 150 МГц.
Сообщение отредактировал zomg - Jul 14 2010, 13:55
|
|
|
|
|
Oct 28 2010, 16:41
|
Участник

Группа: Участник
Сообщений: 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 МГц! Почему бы не попробовать?
Сообщение отредактировал zomg - Oct 28 2010, 16:13
|
|
|
|
|
Oct 28 2010, 17:35
|

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

|
Цитата Но память рассчитана на работу 200 МГц! Почему бы не попробовать? Очень руки чешутся попробовать, но боязно. если будут сбои, придётся на 150 МГЦ переходить, а это для меня не приемлимо. Цитата Попробовал вручную в исходниках поставить частоту 200 МГц Я в своём проекте правил только vhdl файл, описывающий PLL. Может быть вы ещё что нибудь правили? ucf файл например?
|
|
|
|
|
Oct 28 2010, 19:36
|

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
|
|
|
|
|
Oct 30 2010, 13:51
|
Участник

Группа: Участник
Сообщений: 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.
|
|
|
|
|
Nov 1 2010, 04:47
|

Частый гость
 
Группа: Свой
Сообщений: 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, так?
|
|
|
|
|
Nov 1 2010, 09:14
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|