Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Контроллер памяти DDR II SRAM virtex 6
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
bognev
Мне нужно организовать работу c памятью DDR II SRAM на плис virtex 6, но в MIG'е для virtex 6 присутствуют только корки для работы с DDR2SDRAM, DDR3SDRAM, QDRII+ SRAM и RLDRAMII.

Есть несколько вариантов решения моего вопроса.
1) http://forums.xilinx.com/t5/MIG-Memory-Int...x-6/td-p/118278
По ссылке предлагают переделать QDRII+ SRAM интерефейс в интерфейс для работы с DDR II SRAM.
2) Сгенерировать интерефейс MIG'ом для virtex 5 и использовать его в virtex 6, серьезно ли придется править при этом исходники и будет ли вообще работать?
3) написать свой контроллер
4) найти готовый, но пока мне не удалось

Вопрос в том, как лучше поступить? Что можете посоветовать?

Было бы не плохо, если бы кто нибудь поделился ссылками на подробную документацию на QDRII+ SRAM и DDR II SRAM?

Заранее благодарю за помощь!
SFx
мы бы поделились, но, вы не указали какой конкретно Partnum\Manufacturer вам нужен (телепаты как всегда в отпуске или на съемках экстрасенсов). :-)

А вообще смотрите на сайте производителей вашего чипа памяти. сам недавно скачивал QDRII Verilog модель с "кипариса" (но пока руки не дошли прикрутить ее к MIG)

Что касается готового контроллера - он есть в составе Xilinx ISE\Vivado - бесплатный, настраиваемый, симулируемый, рабочий (в железе - 5 лет назад по крайней мере был) и для Virtex5\6\7 подходит.
bognev
Память у меня вот такая GSITechnology GS8662R36GE. 72Mb SigmaDDR-II Burst of 4 SRAM.
На сайте производителя http://www.gsitechnology.com я смог найти только модель своей памяти на VHDL(уже не плохо).
То что контроллер есть в составе Xilinx ISE мне известно, вопрос как раз в том, что для 6 го vitrexa присутствуют только корки для работы с DDR2SDRAM, DDR3SDRAM, QDRII+ SRAM и RLDRAMII, а с DDR II SRAM нет. И мне не понятно будет ли корку сгенерированная для 5го virtex работать с 6 ым?

Был бы очень благодарен если бы вы поделились со мной, если есть что то готовое)
SFx
Цитата(bognev @ Apr 1 2013, 08:37) *
И мне не понятно будет ли корку сгенерированная для 5го virtex работать с 6 ым?


маловероятно. на 90% нет.
что мешает взять и отсинтезировать для v5?

скорее всего используется target based macro примитивы, их конечно можно попытаться на что то поменять, но это ооочень большая проблема.


и verilog модель есть кстати.

вам только один путь, пробовать все соединить и если оно заработает то вам повезло... хотя я бы наверное бы сразу, раз есть модель, контроллер свой начал бы писать. я работал лишь с DDR SDRAM. и DDR3 SDRAM. про работу c SRAM не могу сказать ничего. нужно составлять тестбенч, глядеть что на входе что на выходе, модель подцеплять. временные диаграммы изучать...
но на вскидку мне кажется что раз это SRAM - то там должно быть относительно просто.
bognev
Цитата(SFx @ Apr 2 2013, 06:23) *
что мешает взять и отсинтезировать для v5?

Я не совсем понимаю, что значит эта фраза? Отсинтезировать для v5 и потом размещать в v6?

Спасибо за пояснения, пришел к выводу, что действительно проще свой написать)
demon_rt
Цитата(bognev @ Apr 2 2013, 08:15) *
Я не совсем понимаю, что значит эта фраза? Отсинтезировать для v5 и потом размещать в v6?

Спасибо за пояснения, пришел к выводу, что действительно проще свой написать)


Свой написать не проще, особенно модуль инициализации и калибровки!
И писать еге не надо, ничего нового в Vrtex 6 относительно Virtex 5 и контроллера SRAM нет, просто xilinx отказался от данного контроллера в 6 серии. Берем VHD файлы с MIG Virtex 5 и используем в 6. Весь контроллер написан на логике (в отличии от PCIE) и следовательно подойдет - проверено! Единственное замечание - выводы dq и cq должны быть корректно разведены в железе (в одном банке) для использования BUFIO для cq, если же нет то придется мудрить с BUFR или вообще тактировать ISERDES глобальными тактами с использованием автоподстройки фазы.
bognev
Цитата(demon_rt @ Apr 4 2013, 14:32) *
Свой написать не проще, особенно модуль инициализации и калибровки!
И писать еге не надо, ничего нового в Vrtex 6 относительно Virtex 5 и контроллера SRAM нет, просто xilinx отказался от данного контроллера в 6 серии. Берем VHD файлы с MIG Virtex 5 и используем в 6. Весь контроллер написан на логике (в отличии от PCIE) и следовательно подойдет - проверено! Единственное замечание - выводы dq и cq должны быть корректно разведены в железе (в одном банке) для использования BUFIO для cq, если же нет то придется мудрить с BUFR или вообще тактировать ISERDES глобальными тактами с использованием автоподстройки фазы.

Спасибо! буду пробовать, посмотрим что получится)
bognev
Цитата(Sergey_Bekrenyov @ Apr 8 2013, 18:40) *


Эти корки для памяти SigmaQuad-IIIe SRAMs и SigmaDDR-IIIe SRAMs и использовать для моего Sigma ddr-II не получится. Или я ошибаюсь?
Sergey_Bekrenyov
But perhaps even more importantly, GSI’s SRAM Port IP now gives FPGA users access to ALL the modes of operation including those that, up to now, have only been available to ASIC users of Quad and DDR SRAMs.
bognev
Цитата(Sergey_Bekrenyov @ Apr 10 2013, 12:57) *
But perhaps even more importantly, GSI’s SRAM Port IP now gives FPGA users access to ALL the modes of operation including those that, up to now, have only been available to ASIC users of Quad and DDR SRAMs.


А вы не могли бы объяснить? Просто я не понимаю, что вы хотите этим сказать?
demon_rt
Цитата(bognev @ Apr 10 2013, 11:15) *
Эти корки для памяти SigmaQuad-IIIe SRAMs и SigmaDDR-IIIe SRAMs и использовать для моего Sigma ddr-II не получится. Или я ошибаюсь?


Зачем вам эти корки.. Генерируетe в virtex 5 MIG контроллер SRAM под вашу микросхему памяти. Берем vhd файлы из папки implement design и пишем свое управление контроллером согластно дата шит!
bognev
Цитата(demon_rt @ Apr 4 2013, 14:32) *
Свой написать не проще, особенно модуль инициализации и калибровки!
И писать еге не надо, ничего нового в Vrtex 6 относительно Virtex 5 и контроллера SRAM нет, просто xilinx отказался от данного контроллера в 6 серии. Берем VHD файлы с MIG Virtex 5 и используем в 6. Весь контроллер написан на логике (в отличии от PCIE) и следовательно подойдет - проверено! Единственное замечание - выводы dq и cq должны быть корректно разведены в железе (в одном банке) для использования BUFIO для cq, если же нет то придется мудрить с BUFR или вообще тактировать ISERDES глобальными тактами с использованием автоподстройки фазы.


Имеется 2 платы, на одной virtex 5 и выводы dq разведены в разных банках, я заменил BUFIO на BUFR, калибровка все равно не проходит, на что можно еще обратить внимание? По какой причине может не работать? Планка памяти там такая же. Не могли бы вы пояснить про тактирование ISERDES глобальными тактами? Я так понимаю, что нужно использовать глобальные клоки? Как это влияет? Или пример скинуть, чтобы посмотреть)
На второй плате virtex 6 и та же память, калибровка проходит, выводы все разведены корректно, но при этом возникает ошибка сравнения записываемых и считываемых данных. На что стоит в этом случае обратить внимание? Собственно хотелось бы сначала разобраться с верхним вопросом.
Заранее благодарю за помощь!
demon_rt
Цитата(bognev @ Apr 23 2013, 22:46) *
Имеется 2 платы, на одной virtex 5 и выводы dq разведены в разных банках, я заменил BUFIO на BUFR, калибровка все равно не проходит, на что можно еще обратить внимание? По какой причине может не работать? Планка памяти там такая же. Не могли бы вы пояснить про тактирование ISERDES глобальными тактами? Я так понимаю, что нужно использовать глобальные клоки? Как это влияет? Или пример скинуть, чтобы посмотреть)
На второй плате virtex 6 и та же память, калибровка проходит, выводы все разведены корректно, но при этом возникает ошибка сравнения записываемых и считываемых данных. На что стоит в этом случае обратить внимание? Собственно хотелось бы сначала разобраться с верхним вопросом.
Заранее благодарю за помощь!


Причин неработоспособности памяти может быть масса: физическая неисправность чипов памяти, некорректное питание, обрыв сигнальных линий, не выравненные линии данных на плате при конструировании...и т.д. Если используете контроллер xilinx с шиной данных в двух банках, то тактовые сигналы cq и cq_n должны быть разведены по одному в каждый банк для использования bufio. В Virtex 5 BUFIO можно тактировать только в пределах одного клокрегиона, в Virtex6 же BUFIO задействует соседние клокрегионы. По поводу IDELAY - автокалибровка памяти сделана так, что задержки устанавливаются сразу на всю шину данных (с расчетом, что линии данных на плате равны и задержки на всей шине одинаковы) если же разводка не корректна, следует модернизировать модуль калибровки, выставляя задержку на каждый бит данных, что значительно усложняет контроллер. При отладке советую использовать меньшую частоту 150- 200 МГц. Если тактировать ISERDES глобальными тактами, то следует учитывать фазовую задержку сигнала.
bognev
Цитата(demon_rt @ Apr 24 2013, 23:42) *
Причин неработоспособности памяти может быть масса: физическая неисправность чипов памяти, некорректное питание, обрыв сигнальных линий, не выравненные линии данных на плате при конструировании...и т.д. Если используете контроллер xilinx с шиной данных в двух банках, то тактовые сигналы cq и cq_n должны быть разведены по одному в каждый банк для использования bufio. В Virtex 5 BUFIO можно тактировать только в пределах одного клокрегиона, в Virtex6 же BUFIO задействует соседние клокрегионы. По поводу IDELAY - автокалибровка памяти сделана так, что задержки устанавливаются сразу на всю шину данных (с расчетом, что линии данных на плате равны и задержки на всей шине одинаковы) если же разводка не корректна, следует модернизировать модуль калибровки, выставляя задержку на каждый бит данных, что значительно усложняет контроллер. При отладке советую использовать меньшую частоту 150- 200 МГц. Если тактировать ISERDES глобальными тактами, то следует учитывать фазовую задержку сигнала.

CODE

DDRII_CQ_BUFIO_INST : BUFR--BUFIO
generic map (
BUFR_DIVIDE => "BYPASS",
SIM_DEVICE => "VIRTEX5"
)
port map (
CE => '1',
CLR => '1',
I => cq_delay(cq_i),
O => cq_bufio_w(cq_i)
);

DDRII_CQ_N_BUFIO_INST : BUFR--BUFIO
generic map (
BUFR_DIVIDE => "BYPASS",
SIM_DEVICE => "VIRTEX5"
)
port map (
CE => '1',
CLR => '1',
I => cq_n_delay(cq_n_i),
O => cq_n_bufio_w(cq_n_i)
);

Скажите пожалуйста, а правильно ли я заменил BUFIO на BUFR? Интересуют порты CE и CLR
bognev
В общем со всем разобрался, всем спасибо!

Корка DDRIISRAM работает как на 5, так и на 6 виртексе.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.