|
Проблемы с ECP5-5G Versa Development Kit, Странное поведение SERDES |
|
|
|
Nov 5 2017, 21:44
|
Частый гость
 
Группа: Свой
Сообщений: 179
Регистрация: 27-06-05
Из: Москва
Пользователь №: 6 325

|
Добрый день!
По акции была приобретена данная плата что-бы поиграться с 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, то было бы также интересным узнать про это.
|
|
|
|
|
 |
Ответов
(1 - 6)
|
Nov 6 2017, 21:57
|
Частый гость
 
Группа: Свой
Сообщений: 179
Регистрация: 27-06-05
Из: Москва
Пользователь №: 6 325

|
Цитата(AVR @ Nov 6 2017, 16:32)  Не вижу в тексте результата проверки PCI-E Demo прошивки. Вижу что пробовалось. Но какой конкретно результат? Компьютер никак не реагирует на вставленную плату. Пробовал на двух разных. Сами слоты PCI-E компьютеров проверял сетевой карточкой. С ними все в порядке. Светодиоды на плате, например Data Link up, не демонстрируют какую-либо активность. Битстрим для FPGA заливал в загрузочную флеш.
|
|
|
|
|
Nov 7 2017, 06:28
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(Pavel_I @ Nov 7 2017, 00:57)  Светодиоды на плате, например Data Link up, не демонстрируют какую-либо активность Надеюсь это достаточный признак. Хорошо, какая операционная система проверялась? Где искалась карточка? Я бы запустил Linux и смотрел там в dmesg и lspci. Какой версии порты? Можно сюда модели материнских плат? Нужно понять насколько они стары или новы. Могу ошибаться, но spread spectrum в биосе включен или выключен для клоков? Эта отладочная плата тактирует порт от встроенного генератора или от клоков с материнской платы? Цитата(Pavel_I @ Nov 7 2017, 00:57)  Битстрим для FPGA заливал в загрузочную флеш Что, если загрузить битстрим в ПЛИС через JTAG без флэша и перезагрузить компьютер (именно ребут, а не выключить и включить)? Вдруг оно не взлетает при подаче питания при включения компьютера? А если зашить на лету, и перезагрузиться, то всё будет как надо?
--------------------
|
|
|
|
|
Nov 7 2017, 08:27
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(Pavel_I @ Nov 7 2017, 00:57)  Битстрим для FPGA заливал в загрузочную флеш. Пробуйте, как говорит AVR. Таймаут при инициализации на PCIe 100ms. ПЛИС банально может не успевать подтянуть конфигурацию из флешки после подачи питания.
Сообщение отредактировал Inanity - Nov 7 2017, 08:27
|
|
|
|
|
Nov 8 2017, 21:31
|
Частый гость
 
Группа: Свой
Сообщений: 179
Регистрация: 27-06-05
Из: Москва
Пользователь №: 6 325

|
Цитата(AVR @ Nov 7 2017, 10:28)  Хорошо, какая операционная система проверялась? Где искалась карточка? Я бы запустил 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. Вот не знаю, может ли она автоматом переключится на нужную скорость? Цитата(Inanity @ Nov 7 2017, 12:27)  ...Таймаут при инициализации на PCIe 100ms. ПЛИС банально может не успевать подтянуть конфигурацию из флешки после подачи питания. Это уже в прошивку надо править. Пока не дошел до этого. Пока склоняюсь, что проблема все-таки на железном уровне.
|
|
|
|
|
Nov 9 2017, 07:52
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(Pavel_I @ Nov 9 2017, 00:31)  Linux пробовал. Там тоже никакой реакции. Что означает "никакой реакции"? Как было установлено, что ничего не появилось? Это важный момент. Прошу прислать вывод команды dmesg прикрепленный к сообщению (ибо там много текста). Причем, предлагаю записать два вывода dmesg > output1.txt и dmesg > output2.txt, первый раз когда карта стартует из флэшки, а второй раз когда она перезагрузилась от JTAG. Если записать еще dmesg > output3.txt когда вообще карточка вытащена, то есть некоторый шанс, что мы увидим разницу, и может быть даже причину. Цитата(Pavel_I @ Nov 9 2017, 00:31)  Еще такой момент. Слот 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 свой - можно и его задействовать.
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|