Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по использованию корки RocketIO Xilinx10.2
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
ovs_pavel
Используется данная корка при построении интерфейса Fibre Channel. Возник вопрос по подключению конкретно двух сигналов:
ENMCOMMAALIGN и ENPCOMMAALIGN (необходимы для выравнивания последовательного входящего потока по принимаемым символам "comma", отрицательному или положительному значению. В UG024 приводится, на стр. 68, схема подключения этих сигналов, но не приводится описание формирования сигналов "PCOMMA_CONTROL" и "MCOMMA_CONTROL". В этом и есть проблемма. Упоминания про них больше нигде не встречается ((.
Если на вход этих сигналов подать просто уровень логической единицы, т.е. ENMCOMMAALIGN = 1 и ENPCOMMAALIGN = 1, то выравнивание происходит, но я пока проводил только временной анализ в пакете, не в железе. Как будет в железе не ясно.
Мне кажется, что заводить эти сигналы тупо на "1" не совсем корректно, т.к. выравнивание должно происходить только в моменты поступления именно символов "comma". Не хелпните, кто уже работал с этой коркой в железе. Как использовались эти сигналы.
AsJohnAs
Да это сигналы разрешения использования сигналов запятых. Они нужны например в том случае если обучение нужно проводить только в самом начале работы или в определенных фазах
Shtirlits
Мне кажется, что эти сигналы нужны для выбора способа выравнивания или реализации протоколов, в которых выравнивание выполняется каким-то другим способом.
Если управлять ими динамически, то нужно использовать RXRECCLK, который из PLL трансивера выходит и замучать P&R констрейнами, чтобы он разместил схему синхронизации.
В infiniband я тупо заводил единицу на оба, потом определял полярность подключения и реагировал согласно спецификации.
ovs_pavel
Эти сигналы нужны именно для выравнивания входного последовательного потока данных, по крайней мере это написанно в UG024:
"These two alignment ports control how the PMA aligns incoming serial data. It can align on a minus-comma (negative disparity), a plus-comma (positive disparity), both, or neither if comma alignment is not desired. These signals are latched inside the transceiver with RXRECCLK." К тому же, если на эти сигналы подать логический 0, то выравнивание байт не происходит, т.е. если выдавали, например, 15FB, 1324 и т.д., то на приемной стороне можем получить FB13, т.е неправильно определяется граница между байтами (это конкретно для 2-х байтной ширины пакета). Как раз в доке они и рекомендуют управлять динамически, и для этого на них необходимо подать через триггер сигналы, как я уже писал ранее, "PCOMMA_CONTROL" и "MCOMMA_CONTROL". Триггеры разместить в заданном месте не проблемма, проблемма сформировать эти сигналы, т.к. никаких рекомендаций нет. Если просто подать 1, то получается что мы всегда принимаем символ "comma"... Вообщем пока думаю.
Shtirlits
Если подать единицу на эти входы постоянно, то трансивер будет все время готов к выравниванию.
Ну придет "ordered set" (извините мой infiniband-язык) или что там начинается с запятой,
случится выравнивание, это же нормально! И чем это плохо?
Если у вас хорошие линки, то выравнивание случится только один раз за сеанс.
Я в упомянутом документе НЕ вижу рекомендации по динамическому использованию, а только инструкцию на случай, если это необходимо.
У меня на Virtex-IIpro двухметровым кабелем 4x infiniband за пару суток не было ни одной ошибки обнаруженой CRC32, и выравнивать ничего не требовалось.
Может быть проблема обнаружить, что выравнивание произошло? Вот это я пока не знаю как определить.
Но факт приема символа COMMA должен насторожить.

И вообще, если есть соменения - лучше сделать свое выравнивание, а аппаратное отключить к<censored>м.
В конце концов, PLL и сдвиговый регистр вам дали, а дальше сами вертитесь как хотите!

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.