novartis 0 19 июля, 2016 Опубликовано 19 июля, 2016 · Жалоба Собрал в квартусе для Стратикс 5 проект с использованием компонента Stratix V Transceiver Native Phy, в его настройках указал, что работать он будет в режиме PMA Direct mode. Компонент двухканальный. У платы два Sfp+ разъема, в них вставлен оптический кабель. Соответственно в проекте в tx одного канала засылаю данные, из rx другого канала принимаю данные. Проект скомпилил, залил. На вход компонента в 40-битную шину подаю постоянный код, например, 0x0707070707. На приемной стороне ожидаю получить тоже самое. Но получаю сплошной мусор. Если подать 0x5555555555, то получаю постоянно 0xAAAAAAAAAA. Плата у нас с чудесами, поэтому не понятно, то ли я не прав, то ли это плата так себя ведет. По самому коду проследил путь данных, для передаваемых данных - они заходят на компонент сериализации stratixv_hssi_pma_tx_ser, для принимаемых данных - они выходят из десериализатора stratixv_hssi_pma_rx_deser. Ладно бы там скрамблер стоял или 64/66 кодер, но их как и задумано нет. Вообщем, верно ли я понимаю, что в режиме PMA direct что подал, то и получил? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prig 0 21 июля, 2016 Опубликовано 21 июля, 2016 · Жалоба ... Ладно бы там скрамблер стоял или 64/66 кодер, но их как и задумано нет. Вообщем, верно ли я понимаю, что в режиме PMA direct что подал, то и получил? Ага, с точностью синхронизации, которая отсутствует. Если вам всё равно, прилетело 55 или AA, можете не париться. Если не всё равно, то лучше учитывать следующее: In PMA Direct mode, the Native PHY provides direct access to the PMA from the FPGA fabric; consequently, the latency for transmitted and received data is very low. However, you must implement any PCS function that your design requires in the FPGA fabric. Вы уж разберитесь, к чему там о PCS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 27 июля, 2016 Опубликовано 27 июля, 2016 · Жалоба Продолжаю возиться с альтеровским PMA. С его выхода выходит шина 80 бит. PMA настроена на ширину 32 бит. Из тех 80 бит использую только младшие 32. Набираю из этих 32 битных слов большой сдвиговый регистр на 4620 бит (это все для симуляции, синтезировать такое не буду). Потом этот большой региср разбиваю на блоки по 66 бит. Это я так gearbox реализовал (по быстрому для симуляции). И начинаю искать в них sync header. Сначала ищу на позиции (1 downto 0). Потом на позиции (2 downto 1). И так все позиции. Но последовательность валидных sync header длиной в 64 как этого требует протокол я не нахожу. Даже 40 подряд идущих блоков с валидными sync header нет. Может не так чего делаю? Или у альтеры другой подход? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novartis 0 9 августа, 2016 Опубликовано 9 августа, 2016 · Жалоба Из тех 80 бит использую только младшие 32. нашел ошибку, PMA компонент выдает шину 80 бит, но ширина PMA настроена на 32 бит, я использовал младшие 32 бита, а оказалось нужно было использовать 1-8,11-18,21-28,31-38 биты. Разумеется у альтеры об этом нигде не сказано. Исправил, sync header поймал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться