Добрый день!
По акции была приобретена данная плата что-бы поиграться с 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, то было бы также интересным узнать про это.
|