Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PMA Direct mode
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Fast Ethernet/Gigabit Ethernet/FibreChannel
novartis
Собрал в квартусе для Стратикс 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
Цитата(novartis @ Jul 19 2016, 13:17) *
...
Ладно бы там скрамблер стоял или 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
Продолжаю возиться с альтеровским 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
Цитата(novartis @ Jul 27 2016, 16:31) *
Из тех 80 бит использую только младшие 32.

нашел ошибку, PMA компонент выдает шину 80 бит, но ширина PMA настроена на 32 бит, я использовал младшие 32 бита, а оказалось нужно было использовать 1-8,11-18,21-28,31-38 биты.
Разумеется у альтеры об этом нигде не сказано. Исправил, sync header поймал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.