Перейти к содержанию

Проблемы с 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, то было бы также интересным узнать про это.


Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(AVR @ Nov 6 2017, 16:32) <{POST_SNAPBACK}>
Не вижу в тексте результата проверки PCI-E Demo прошивки. Вижу что пробовалось. Но какой конкретно результат?


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Pavel_I @ Nov 7 2017, 00:57) <{POST_SNAPBACK}>
Светодиоды на плате, например Data Link up, не демонстрируют какую-либо активность

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

Цитата(Pavel_I @ Nov 7 2017, 00:57) <{POST_SNAPBACK}>
Битстрим для FPGA заливал в загрузочную флеш

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Pavel_I @ Nov 7 2017, 00:57) <{POST_SNAPBACK}>
Битстрим для FPGA заливал в загрузочную флеш.


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

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Pavel_I @ Nov 9 2017, 00:31) <{POST_SNAPBACK}>
Linux пробовал. Там тоже никакой реакции.

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

Цитата(Pavel_I @ Nov 9 2017, 00:31) <{POST_SNAPBACK}>
Еще такой момент.
Слот 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 свой - можно и его задействовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация