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

 
 
> Помогите запустить MCB, Spartan6 + ddr3
Nosss
сообщение Mar 2 2011, 08:47
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Здравствуйте! Есть ПЛИС Spartan-6 xc6slx150-3fgg484 и внешняя память DDR3 MT41J64M16LA-187E. Память подключена к третьему банку ПЛИС. Частота работы с памятью 300 МГц.

В ISE12.4 сделал проект контроллера памяти с помощью MIG. В проекте оставил один двунаправленный порт х32. Взял example_design. Отмоделировал - все в порядке. А вот при тестировании в железе начались проблемы, которые никак не удается победить. Проблемы двух типов:

1) При чтении пачки данных одно из данных застревает на выходе FIFO на несколько тактов. При этом часть данных теряется. Эта ситуация показана на картинке error1. Ошибка повторяется время от времени в процессе тестирования. Данная ошибка, как выяснилось, зависит от частоты работы. На 250 МГц ее вероятность намного меньше, а на 200 МГц она вообще пропадает. Также ситуация стала лучше после того, как поменял настройку Unused IOB Pins = Float на Pull Down в свойствах генерации программного файла.

2) Начиная с какого-то момента, контроллер просто перестает выполнять новые запросы. В результате переполняется командное FIFO и тест останавливается. Вероятность этой ошибки зависит от диапазона тестируемых адресов. Если значение параметра C3_HW_TESTING = "FALSE", то встречается она очень редко. Если же поставить "TRUE" - ошибка происходит тут же при начале тестирования. Такая ситуация повторяется на любой частоте от 200 до 300 МГц.

В чем тут может быть дело?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 24)
Shtirlits
сообщение Mar 2 2011, 09:27
Сообщение #2


Знающий
****

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



Что за плата?
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 2 2011, 10:34
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Плата dini-group DNBFC_S12_PCIe. Можно здесь посмотреть на этого зверя http://www.dinigroup.com/new/DNBFC_S12_PCIe.html
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Mar 2 2011, 11:06
Сообщение #4


Знающий
****

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



С такими платами обычно поставляется reference design и тест.
Вообще-то, они пишут про 400 MHz.
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 2 2011, 11:31
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Цитата(Shtirlits @ Mar 2 2011, 14:06) *
С такими платами обычно поставляется reference design и тест.

Да, действительно, есть и reference design и тест. Их тест тоже выдает ошибку, но понять что она значит довольно трудно. Документация у них, мягко говоря, очень скудная. А удовольствие ковыряться в чужом коде я оставил себе напоследок, решив, что проще будет самому сделать. Ведь на первый взгляд ничего сложного... rolleyes.gif
Цитата(Shtirlits @ Mar 2 2011, 14:06) *
Вообще-то, они пишут про 400 MHz.

Если можно работать с памятью на 400, то и на 300 можно. Ограничений здесь ни со стороны памяти, ни со стороны ПЛИС я не вижу. Кстати, reference design у них как раз на 300 работает.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Mar 2 2011, 11:36
Сообщение #6


Знающий
****

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



Так он работает или выдает ошибку?
Запросто может быть что-то физически негодным и плату надо менять.
Она у вас одна? Другой экземпляр не пробовали?
Я не уверен, что контроллер в спартане поддерживает 400MHz - надо взглянуть в документацию.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Mar 2 2011, 11:44
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(Nosss @ Mar 2 2011, 14:47) *
Здравствуйте! Есть ПЛИС Spartan-6 xc6slx150-3fgg484 и внешняя память DDR3 MT41J64M16LA-187E. Память подключена к третьему банку ПЛИС. Частота работы с памятью 300 МГц.

В ISE12.4 сделал проект контроллера памяти с помощью MIG. В проекте оставил один двунаправленный порт х32. Взял example_design. Отмоделировал - все в порядке. А вот при тестировании в железе начались проблемы, которые никак не удается победить. Проблемы двух типов:

1) При чтении пачки данных одно из данных застревает на выходе FIFO на несколько тактов. При этом часть данных теряется. Эта ситуация показана на картинке error1. Ошибка повторяется время от времени в процессе тестирования. Данная ошибка, как выяснилось, зависит от частоты работы. На 250 МГц ее вероятность намного меньше, а на 200 МГц она вообще пропадает. Также ситуация стала лучше после того, как поменял настройку Unused IOB Pins = Float на Pull Down в свойствах генерации программного файла.

2) Начиная с какого-то момента, контроллер просто перестает выполнять новые запросы. В результате переполняется командное FIFO и тест останавливается. Вероятность этой ошибки зависит от диапазона тестируемых адресов. Если значение параметра C3_HW_TESTING = "FALSE", то встречается она очень редко. Если же поставить "TRUE" - ошибка происходит тут же при начале тестирования. Такая ситуация повторяется на любой частоте от 200 до 300 МГц.

В чем тут может быть дело?

Судя по картинкам - диаграммы вроде правильные у вас. Сигнал контроллера init_done вскакивает в 1 после сброса? А то может ваш контроллер калибровку пройти не смог, а вы его командами записи - чтения насилуете?

P.S. Оффтопик : когда я смотрю на подобные "лыжи" ( так называют платы монстроидальных размеров) - мне становится страшно... Неужели существуют задачи, которые можно решить только с помощью таких монстров? И при этом нагрузить все 12 спартанов с их памятью? Что-то я сомневаюсь...
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 2 2011, 11:50
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Тест, который поставляется вместе с платой выдает ошибку, которую мы понять не можем, так как нет нормального описания к этому тесту. Плата у нас одна, к сожалению. Но там 12 ПЛИС и все ведут себя примерно одинаково. Хотя можно среди них выделить те, которые работают чуть лучше остальных. Контроллер в спартане 400 поддерживает при выполнении определенных условий (MIG об этом говорит).

Просто я думал, может у кого было что-нибудь подобное...

Цитата(Bad0512 @ Mar 2 2011, 14:44) *
Судя по картинкам - диаграммы вроде правильные у вас. Сигнал контроллера init_done вскакивает в 1 после сброса? А то может ваш контроллер калибровку пройти не смог, а вы его командами записи - чтения насилуете?


Что за сигнал init_done? Там есть сигнал calib_done. Он в 1, таким образом, я понимаю, что калибровка завершилась удачно.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Mar 2 2011, 11:59
Сообщение #9


Знающий
****

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



Покажите, если не лень, какие данные пишутся и читаются на минимальной частоте, на которой сбои еще происходят и на максимальной. По данным можно попытаться угадать, что за глюк.
Еще можно послать письмо об ошибке производителю платы - чего стесняться-то?
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 2 2011, 12:17
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Цитата(Shtirlits @ Mar 2 2011, 14:59) *
Покажите, если не лень, какие данные пишутся и читаются на минимальной частоте, на которой сбои еще происходят и на максимальной. По данным можно попытаться угадать, что за глюк.

Сбой заключается в том, что одно из данных в потоке "залипает" на выходе FIFO. Вследствие этого часть данных теряется. И на максимальной, и на минимальной частоте это выглядит одинаково. Побитовых сбоев нет - то что пишу, то и читаю обратно. Если не лень, можете глянуть wlf файл. Я его получил из vcd файла, который вытащил из ChipScopa. Ошибка происходит в 343 нс и в 382 нс.
Цитата(Shtirlits @ Mar 2 2011, 14:59) *
Еще можно послать письмо об ошибке производителю платы - чего стесняться-то?

Письмо отправили - отвечать не торопятся.
Прикрепленные файлы
Прикрепленный файл  VCD_WLF.rar ( 16.01 килобайт ) Кол-во скачиваний: 17
 
Go to the top of the page
 
+Quote Post
Victor®
сообщение Mar 2 2011, 13:35
Сообщение #11


Lazy
******

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



Цитата(Nosss @ Mar 2 2011, 12:47) *
Здравствуйте! Есть ПЛИС Spartan-6 xc6slx150-3fgg484 и внешняя память DDR3 MT41J64M16LA-187E. Память подключена к третьему банку ПЛИС. Частота работы с памятью 300 МГц.

В ISE12.4 сделал проект контроллера памяти с помощью MIG. В проекте оставил один двунаправленный порт х32. Взял example_design. Отмоделировал - все в порядке. А вот при тестировании в железе начались проблемы, которые никак не удается победить. Проблемы двух типов:

1) При чтении пачки данных одно из данных застревает на выходе FIFO на несколько тактов. При этом часть данных теряется. Эта ситуация показана на картинке error1. Ошибка повторяется время от времени в процессе тестирования. Данная ошибка, как выяснилось, зависит от частоты работы. На 250 МГц ее вероятность намного меньше, а на 200 МГц она вообще пропадает. Также ситуация стала лучше после того, как поменял настройку Unused IOB Pins = Float на Pull Down в свойствах генерации программного файла.

2) Начиная с какого-то момента, контроллер просто перестает выполнять новые запросы. В результате переполняется командное FIFO и тест останавливается. Вероятность этой ошибки зависит от диапазона тестируемых адресов. Если значение параметра C3_HW_TESTING = "FALSE", то встречается она очень редко. Если же поставить "TRUE" - ошибка происходит тут же при начале тестирования. Такая ситуация повторяется на любой частоте от 200 до 300 МГц.

В чем тут может быть дело?



Не из этой оперы?
http://www.xilinx.com/support/answers/35978.htm

P.S.
и еще
http://www.xilinx.com/support/answers/33566.htm


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 2 2011, 14:17
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Цитата(Victor® @ Mar 2 2011, 16:35) *

У меня ISE 12.4. В нем как бы обещали поправить уже этот глюк.
Цитата(Victor® @ Mar 2 2011, 16:35) *

И это не про меня. После загрузки конфигураций сброс подавал несколько раз - ситуация не меняется.


Хочу заодно спросить. Есть ли у кого-нибудь положительный опыт работы со связкой spartan6 + ddr3 ?
Go to the top of the page
 
+Quote Post
billidean
сообщение Mar 2 2011, 14:53
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



может дело не при чтении вовсе, а, например, когда идет режим записи данных, они снаружи переключаются на следующие, а уже в железо не записываются, какие-нибудь коллизии или задержки или недоустановка адресов например
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Mar 2 2011, 15:18
Сообщение #14


Знающий
****

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



Да, данные перестают меняться, посмотрел первое из мест.
Может быть и проблема записи.
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 2 2011, 18:18
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



А мне кажется что проблема там с чтением. Данные всегда теряются пакетами, насколько я заметил (1 пакет = 4 слова х32 = 8 слов х16). То есть память почему-то не понимает команду чтения, на шине стоит старая информация, которую контроллер всасывает и отдает мне.
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 3 2011, 06:56
Сообщение #16


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Нет, соврал я. Сегодня посмотрел внимательнее: может теряться 1, 2, 3, 4 и более данных х32.
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 5 2011, 12:56
Сообщение #17


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Немного прояснилась ситуация. Оказалось, что на плате установлены ES FPGA. IDCODE = 0401d093, Manufacturer's ID = Xilinx xc6slx150, version 0. На 99 процентов уверен в том, что контроллеры памяти на этих ПЛИС просто сырые. На этой же плате установлена интерфейсная ПЛИС Dataflow Manager xc6slx150t-2fgg676. Она оказалась тоже ES, но тот же самый проект в этой ПЛИС работает как часы на максимальной заявленной частоте 333 МГц (для sg2). Вот такие пирожки. А техподдержка dinigroup так и не ответила...
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Mar 6 2011, 09:23
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(Nosss @ Mar 5 2011, 15:56) *
Немного прояснилась ситуация. Оказалось, что на плате установлены ES FPGA. IDCODE = 0401d093, Manufacturer's ID = Xilinx xc6slx150, version 0. На 99 процентов уверен в том, что контроллеры памяти на этих ПЛИС просто сырые. На этой же плате установлена интерфейсная ПЛИС Dataflow Manager xc6slx150t-2fgg676. Она оказалась тоже ES, но тот же самый проект в этой ПЛИС работает как часы на максимальной заявленной частоте 333 МГц (для sg2). Вот такие пирожки. А техподдержка dinigroup так и не ответила...


посмотрите в еррату
Прикрепленные файлы
Прикрепленный файл  en115.pdf ( 169.5 килобайт ) Кол-во скачиваний: 407
 
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 6 2011, 12:09
Сообщение #19


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Цитата(VladimirB @ Mar 6 2011, 12:23) *
посмотрите в еррату


Я смотрел ее. Моя ситуация после этого яснее не стала. Написано, что должны работать, но не работают ведь. Если вы про hold time, то я пробовал поставить заплатку, которая рекомендована в AR34089 - стало еще хуже, посыпались просто не те данные. Вывод прежний - MCB сырые в этих ПЛИС.
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Mar 6 2011, 15:01
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(Nosss @ Mar 6 2011, 15:09) *
Я смотрел ее. Моя ситуация после этого яснее не стала. Написано, что должны работать, но не работают ведь. Если вы про hold time, то я пробовал поставить заплатку, которая рекомендована в AR34089 - стало еще хуже, посыпались просто не те данные. Вывод прежний - MCB сырые в этих ПЛИС.

В еррате ещё про напряжение ядра написано, попробуйте его немного повысить перепайкой задающих резисторов у техасовских
DC-DC конвертеров.
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 6 2011, 20:29
Сообщение #21


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Цитата(VladimirB @ Mar 6 2011, 18:01) *
В еррате ещё про напряжение ядра написано, попробуйте его немного повысить перепайкой задающих резисторов у техасовских
DC-DC конвертеров.


Оно на ядре и так повышенное, изначально. Это сделано специально, чтобы контроллер мог работать на максимальной частоте в режиме extended. Об этом в документации на плату говорится, и так оно и есть. Кроме того, я пробовал работать и на более низких частотах, до 200 МГц опускался, не помогает.
Go to the top of the page
 
+Quote Post
Nosss
сообщение Mar 7 2011, 11:08
Сообщение #22


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Ну вот, дождался ответа от техподдержки Xilinx. Мои догадки подтвердились.

You have rev 1.0 of the silicon (first engineering sample).There are several known issues with that version of the silicon. One is the one that you are describing. You need to get a newer version of the silicon and in all likelihood this will fix the issue. If you still have problems after that we can debug this further. The schematics and termination look fine.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Apr 5 2011, 08:49
Сообщение #23


Lazy
******

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



Цитата(Nosss @ Mar 7 2011, 14:08) *
Ну вот, дождался ответа от техподдержки Xilinx. Мои догадки подтвердились.

You have rev 1.0 of the silicon (first engineering sample).There are several known issues with that version of the silicon. One is the one that you are describing. You need to get a newer version of the silicon and in all likelihood this will fix the issue. If you still have problems after that we can debug this further. The schematics and termination look fine.


Позвольте поинтересоваться как вышли из ситуации?
Перепаивали? Dini-Group хоть как-то отреагировала на это? Или им главное продать?


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
Nosss
сообщение Apr 5 2011, 18:37
Сообщение #24


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 11-07-06
Пользователь №: 18 747



Цитата(Victor® @ Apr 5 2011, 12:49) *
Позвольте поинтересоваться как вышли из ситуации?
Перепаивали? Dini-Group хоть как-то отреагировала на это? Или им главное продать?


Dini-Group ответили примерно через неделю, после чего отвечали регулярно. Они нас заверили, что все платы у них проходят тестирование перед продажей и проблем быть не должно. Однако, после того, как переслал им диаграммы с чип-скопа, признали, что с платой что-то не так. Предложили отправить плату им на ремонт, либо, если у нас сроки поджимают, были согласны на обмен. У нас эта ситуация пока развития не получила - начальство думает.

Да, разобрался-таки с их reference design - ведет себя в железе точно так же, как и мой собственный проект. Большие сомнения у меня, что у них эта плата успешно прошла тестирование. Хотя, все может быть, конечно.

Еще спросил, почему Xilinx нигде не поместил информацию об этой проблеме с ES, любопытно, что они ответили:
Unfortunately this was one of those issues that we failed to mention in the errata. The rev 1.0 LX150 ES devices had been shipped to a limited number of customers and since we fixed the issue in subsequent revs we didn't think it warranted issuing an errata on this.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Apr 5 2011, 19:33
Сообщение #25


Lazy
******

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



Цитата(Nosss @ Apr 5 2011, 21:37) *
Dini-Group ответили примерно через неделю, после чего отвечали регулярно. Они нас заверили, что все платы у них проходят тестирование перед продажей и проблем быть не должно. Однако, после того, как переслал им диаграммы с чип-скопа, признали, что с платой что-то не так. Предложили отправить плату им на ремонт, либо, если у нас сроки поджимают, были согласны на обмен. У нас эта ситуация пока развития не получила - начальство думает.

Да, разобрался-таки с их reference design - ведет себя в железе точно так же, как и мой собственный проект. Большие сомнения у меня, что у них эта плата успешно прошла тестирование. Хотя, все может быть, конечно.

Еще спросил, почему Xilinx нигде не поместил информацию об этой проблеме с ES, любопытно, что они ответили:
Unfortunately this was one of those issues that we failed to mention in the errata. The rev 1.0 LX150 ES devices had been shipped to a limited number of customers and since we fixed the issue in subsequent revs we didn't think it warranted issuing an errata on this.


Ясно, спасибо что уделили время на ответ.
А то, вроде Dini не делает ширпотреб по первому впечатлению... а тут...
Успехов Вам!


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 13:11
Рейтинг@Mail.ru


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