Jump to content

    

Проблемы с ECP5-5G Versa Development Kit

Добрый день!

 

По акции была приобретена данная плата что-бы поиграться с PCI-Express.

Начал с демонстрационных проектов, которые не заработали.

Засомневался в работоспособности SERDES и электрических соединений на пути к PCI-е разъему.

 

В моем варианте ПЛИС четыре SERDES устройства.

Тогда с помощью SERDESEyeDemo проекта решил проверить их работоспособность.

В оригинале SERDESEyeDemo использует DCU0 CH1. И в такой конфигурации все работает, как и должно быть. Т.е. передатчик передает, приемник принимает, как с

Internal Loopback так и c External Loopback.

 

Дальше в проекте стал менял SERDES.

Во-первых, выяснилась такая особенность.

У каждого SERDES имеется Receive CDR Loss of Lock, который, насколько понимаю, показывает есть ли синхронизация с примаемым потоком.

Так вот в оригинальном SERDESEyeDemo (DCU0 CH1) все работает объяснимо – есть поток на входе – есть синронизация, нет потока – нет синхроницации.

Для остальных трех SERDES, что есть поток, что нету, показывает, что есть синронизация. Смотрю это в Reveal Analyzer SERDES Debug, а также на отладочном светодиоде.

 

Для двух SERDES из DCU1 могу использовать только Internal Loopback. И они в принципе работают.

SERDES CH0 из DCU0, который ответственен за PCI-Express с Internal Loopback тоже принимает, но когда делаешь External Loopback принимать совсем не хочет.

Хотя передатчик передает (смотрю осциллографом), и детектор сигнала на входе показывает, что он есть.

 

Вообщем, происходят странные вещи, с которыми непонятно, что делать.

Остается два предположения. Либо делаю что-то не так. Либо ПЛИС имеет дефект в SERDES юнитах, во что верится с трудом.

 

Может кто сталкивался с подобным? Или может что-то еще посоветовать.

 

В принципе, могу предоставить прошивки для ПЛИС. Возможно кто-то еще располагает аналогичной платой и сможет посмотреть, как она себя ведет.

Также, если у кого-то заработали-не заработали демо проекты для PCI-e, то было бы также интересным узнать про это.

 

 

 

Share this post


Link to post
Share on other sites

Не вижу в тексте результата проверки PCI-E Demo прошивки. Вижу что пробовалось. Но какой конкретно результат? А то "сомневаюсь что работает" - как это понимать? У меня на ECP3 все прекрасно пахало, но это совсем другая плата конечно.

 

Устройство не видится вообще? И как проверялось его наличие? Это смешные вопросы, но не обладая опытом работы с этой шиной, можно произвольно трактовать отсутствие работы...

Share this post


Link to post
Share on other sites
Не вижу в тексте результата проверки PCI-E Demo прошивки. Вижу что пробовалось. Но какой конкретно результат?

 

Компьютер никак не реагирует на вставленную плату. Пробовал на двух разных. Сами слоты PCI-E компьютеров проверял сетевой карточкой. С ними все в порядке.

Светодиоды на плате, например Data Link up, не демонстрируют какую-либо активность.

 

Битстрим для FPGA заливал в загрузочную флеш.

 

Share this post


Link to post
Share on other sites
Светодиоды на плате, например Data Link up, не демонстрируют какую-либо активность

Надеюсь это достаточный признак. Хорошо, какая операционная система проверялась? Где искалась карточка? Я бы запустил Linux и смотрел там в dmesg и lspci.

Какой версии порты? Можно сюда модели материнских плат? Нужно понять насколько они стары или новы.

Могу ошибаться, но spread spectrum в биосе включен или выключен для клоков?

Эта отладочная плата тактирует порт от встроенного генератора или от клоков с материнской платы?

 

Битстрим для FPGA заливал в загрузочную флеш

Что, если загрузить битстрим в ПЛИС через JTAG без флэша и перезагрузить компьютер (именно ребут, а не выключить и включить)?

Вдруг оно не взлетает при подаче питания при включения компьютера? А если зашить на лету, и перезагрузиться, то всё будет как надо?

Share this post


Link to post
Share on other sites
Битстрим для FPGA заливал в загрузочную флеш.

 

Пробуйте, как говорит AVR. Таймаут при инициализации на PCIe 100ms. ПЛИС банально может не успевать подтянуть конфигурацию из флешки после подачи питания.

Edited by Inanity

Share this post


Link to post
Share on other sites
Хорошо, какая операционная система проверялась? Где искалась карточка? Я бы запустил Linux и смотрел там в dmesg и lspci.

Какой версии порты? Можно сюда модели материнских плат? Нужно понять насколько они стары или новы.

Могу ошибаться, но spread spectrum в биосе включен или выключен для клоков?

Эта отладочная плата тактирует порт от встроенного генератора или от клоков с материнской платы?

 

Что, если загрузить битстрим в ПЛИС через JTAG без флэша и перезагрузить компьютер (именно ребут, а не выключить и включить)?

Вдруг оно не взлетает при подаче питания при включения компьютера? А если зашить на лету, и перезагрузиться, то всё будет как надо?

 

Система Win 7/64

Согласно документации система должна сообщить о новом устройстве. Этого не происходит. И в девайс менеджере новых устройств не появляется.

Linux пробовал. Там тоже никакой реакции.

 

Обе материнки на Intel H81 Express. У одной слот PCI-E x1, у другой mini-PCI-E (использовал переходник).

Spread spectrum опции в биосе нет.

К сожалению, под рукой пока нет других компьютеров. Нынче ноутбуки у всех в округе.

 

Плата тактирутся с материнки. Судя по LOCK светодиоду генератора клоков, клок с материнки приходит.

Пробовал шить по-разному и перегружать. Работать упорно не хочет.

 

Еще такой момент.

Слот PCI-E x1, а плата может x2. Вот не знаю, может ли она автоматом переключится на нужную скорость?

 

...Таймаут при инициализации на PCIe 100ms. ПЛИС банально может не успевать подтянуть конфигурацию из флешки после подачи питания.

Это уже в прошивку надо править. Пока не дошел до этого.

Пока склоняюсь, что проблема все-таки на железном уровне.

Share this post


Link to post
Share on other sites
Linux пробовал. Там тоже никакой реакции.

Что означает "никакой реакции"? Как было установлено, что ничего не появилось? Это важный момент.

Прошу прислать вывод команды dmesg прикрепленный к сообщению (ибо там много текста).

Причем, предлагаю записать два вывода dmesg > output1.txt и dmesg > output2.txt, первый раз когда карта стартует из флэшки, а второй раз когда она перезагрузилась от JTAG. Если записать еще dmesg > output3.txt когда вообще карточка вытащена, то есть некоторый шанс, что мы увидим разницу, и может быть даже причину.

 

Еще такой момент.

Слот PCI-E x1, а плата может x2. Вот не знаю, может ли она автоматом переключится на нужную скорость?

1.0 и 2.0 или речь именно про x1/x2 число линий? По этой части, до PCI-E 4.x, в этом месте всё должно быть совместимо. Да даже в PCI-E 4.x можно вставлять карточки от 1.0 до 4.0, если речь про скорость - всё автоматом подстраивается по стандарту вообще. Если речь про x1/x2 то карточку x16 можно воткнуть в x1 порт через пассивный переходник и тоже будет хорошо, по стандарту. В этом плане это замечательный стандарт, без идиотских ограничений, к счастью.

 

Я работал с PCI-E на Lattice, правда на ECP 3, помню что там можно вытащить больше статусов и состояний, и прямо на светодиоды. А еще лучше, сделать некоторый буфер для быстрого накопления различных переходов состояния ядра при включении, а затем накопленную информацию можно вывалить через медленный UART. Есть там и аналог SignalTap/ChipScope свой - можно и его задействовать.

Share this post


Link to post
Share on other sites

а удалось таки запустить?

дошли у меня руки до этой платы и так сразу не завелось:

во первых все экзамплы собраны для ECP5-5G, а на плате напаяна LFE5UM без G

пересобрать под LFE5UM можно, но сомневаюсь в результатах - все-таки PCIE2 ядро там от ЕCP5-5G и PCIE gen 2 вроде как на LFE5UM работать не будет

то есть образ собирается, трансиверы и окружающая логика не выбрасываются - присутствуют в "device view", каких-либо замечаний, кроме того, что эвалюэйшин версия с огранияением по времени я в логе не увидел

-------------------

в ПК плата не видна - ставил на слот gen2 и gen1 при этом тактовая микросхема ispCLOCK5406D не выставляет LOCK - светодиод не горит, зато из ПЛИСины (pcie корки) PLL locked to PCI Express 100 MHz clock. - горит.

-------------------

вопросы :

вообще эта плата может работать как PCIE endpoint (то есть удавалось ее кому-нибудь воткнуть в ПК)?

если стоит LFE5UM без G плата может работать как PCIE endpoint?

если нужна eval pcie корка для LFE5UM без G, где ее взять? в документации написано, что эвейлабле, но как ???

--------------------

может нужно какое-то программирование ispCLOCK5406D - вроде бы, когда я UG смотрел раньше (очень бегло - плата покупалось из-за лицензии на LFE5UM, не было времени на саму плату) - там было про программирование (ispCLOCK5406D и к JTAG подключена) но в новых доках нет и каких-то файлов интуитивно понятных, что для нее - не увидел

вообще как и каким софтом она прошивается?

Share this post


Link to post
Share on other sites

----------

upd: зря я на Латтис наехал  - нужно было все-таки перепрошить  ispCLOCK5406D  - причем не самому ковырять, а в demonstration лежит проект он же и прошивка (jed) для клока.

все запустилось (ну по крайней мере винда увидела и демо софт заработал) PCIE gen1 c LFE5UM без G

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this