|
Контроллер памяти DDR II SRAM virtex 6 |
|
|
|
Mar 29 2013, 05:44
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Мне нужно организовать работу 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? Заранее благодарю за помощь!
Сообщение отредактировал bognev - Mar 29 2013, 05:45
|
|
|
|
|
Apr 1 2013, 04:37
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Память у меня вот такая 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 ым? Был бы очень благодарен если бы вы поделились со мной, если есть что то готовое)
|
|
|
|
|
Apr 2 2013, 02:23
|
Знающий
   
Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688

|
Цитата(bognev @ Apr 1 2013, 08:37)  И мне не понятно будет ли корку сгенерированная для 5го virtex работать с 6 ым? маловероятно. на 90% нет. что мешает взять и отсинтезировать для v5? скорее всего используется target based macro примитивы, их конечно можно попытаться на что то поменять, но это ооочень большая проблема. и verilog модель есть кстати. вам только один путь, пробовать все соединить и если оно заработает то вам повезло... хотя я бы наверное бы сразу, раз есть модель, контроллер свой начал бы писать. я работал лишь с DDR SDRAM. и DDR3 SDRAM. про работу c SRAM не могу сказать ничего. нужно составлять тестбенч, глядеть что на входе что на выходе, модель подцеплять. временные диаграммы изучать... но на вскидку мне кажется что раз это SRAM - то там должно быть относительно просто.
|
|
|
|
|
Apr 2 2013, 04:15
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Цитата(SFx @ Apr 2 2013, 06:23)  что мешает взять и отсинтезировать для v5? Я не совсем понимаю, что значит эта фраза? Отсинтезировать для v5 и потом размещать в v6? Спасибо за пояснения, пришел к выводу, что действительно проще свой написать)
|
|
|
|
|
Apr 4 2013, 10:32
|
Группа: Участник
Сообщений: 13
Регистрация: 20-01-09
Пользователь №: 43 665

|
Цитата(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 глобальными тактами с использованием автоподстройки фазы.
|
|
|
|
|
Apr 5 2013, 06:36
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Цитата(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 глобальными тактами с использованием автоподстройки фазы. Спасибо! буду пробовать, посмотрим что получится)
|
|
|
|
|
Apr 10 2013, 07:15
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Цитата(Sergey_Bekrenyov @ Apr 8 2013, 18:40)  Эти корки для памяти SigmaQuad-IIIe SRAMs и SigmaDDR-IIIe SRAMs и использовать для моего Sigma ddr-II не получится. Или я ошибаюсь?
|
|
|
|
|
Apr 10 2013, 09:33
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Цитата(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. А вы не могли бы объяснить? Просто я не понимаю, что вы хотите этим сказать?
|
|
|
|
|
Apr 10 2013, 11:55
|
Группа: Участник
Сообщений: 13
Регистрация: 20-01-09
Пользователь №: 43 665

|
Цитата(bognev @ Apr 10 2013, 11:15)  Эти корки для памяти SigmaQuad-IIIe SRAMs и SigmaDDR-IIIe SRAMs и использовать для моего Sigma ddr-II не получится. Или я ошибаюсь? Зачем вам эти корки.. Генерируетe в virtex 5 MIG контроллер SRAM под вашу микросхему памяти. Берем vhd файлы из папки implement design и пишем свое управление контроллером согластно дата шит!
Сообщение отредактировал demon_rt - Apr 10 2013, 20:12
|
|
|
|
|
Apr 23 2013, 18:46
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

|
Цитата(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 и та же память, калибровка проходит, выводы все разведены корректно, но при этом возникает ошибка сравнения записываемых и считываемых данных. На что стоит в этом случае обратить внимание? Собственно хотелось бы сначала разобраться с верхним вопросом. Заранее благодарю за помощь!
|
|
|
|
|
Apr 24 2013, 19:42
|
Группа: Участник
Сообщений: 13
Регистрация: 20-01-09
Пользователь №: 43 665

|
Цитата(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 глобальными тактами, то следует учитывать фазовую задержку сигнала.
|
|
|
|
|
Apr 25 2013, 10:27
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 4-06-11
Пользователь №: 65 475

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