|
Вопрос по использованию корки RocketIO Xilinx10.2 |
|
|
|
Oct 24 2010, 11:10
|
Местный
  
Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249

|
Используется данная корка при построении интерфейса Fibre Channel. Возник вопрос по подключению конкретно двух сигналов: ENMCOMMAALIGN и ENPCOMMAALIGN (необходимы для выравнивания последовательного входящего потока по принимаемым символам "comma", отрицательному или положительному значению. В UG024 приводится, на стр. 68, схема подключения этих сигналов, но не приводится описание формирования сигналов "PCOMMA_CONTROL" и "MCOMMA_CONTROL". В этом и есть проблемма. Упоминания про них больше нигде не встречается ((. Если на вход этих сигналов подать просто уровень логической единицы, т.е. ENMCOMMAALIGN = 1 и ENPCOMMAALIGN = 1, то выравнивание происходит, но я пока проводил только временной анализ в пакете, не в железе. Как будет в железе не ясно. Мне кажется, что заводить эти сигналы тупо на "1" не совсем корректно, т.к. выравнивание должно происходить только в моменты поступления именно символов "comma". Не хелпните, кто уже работал с этой коркой в железе. Как использовались эти сигналы.
|
|
|
|
|
 |
Ответов
(1 - 4)
|
Oct 24 2010, 18:34
|
Местный
  
Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249

|
Эти сигналы нужны именно для выравнивания входного последовательного потока данных, по крайней мере это написанно в 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"... Вообщем пока думаю.
|
|
|
|
|
Oct 24 2010, 21:59
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Если подать единицу на эти входы постоянно, то трансивер будет все время готов к выравниванию. Ну придет "ordered set" (извините мой infiniband-язык) или что там начинается с запятой, случится выравнивание, это же нормально! И чем это плохо? Если у вас хорошие линки, то выравнивание случится только один раз за сеанс. Я в упомянутом документе НЕ вижу рекомендации по динамическому использованию, а только инструкцию на случай, если это необходимо. У меня на Virtex-IIpro двухметровым кабелем 4x infiniband за пару суток не было ни одной ошибки обнаруженой CRC32, и выравнивать ничего не требовалось. Может быть проблема обнаружить, что выравнивание произошло? Вот это я пока не знаю как определить. Но факт приема символа COMMA должен насторожить.
И вообще, если есть соменения - лучше сделать свое выравнивание, а аппаратное отключить к<censored>м. В конце концов, PLL и сдвиговый регистр вам дали, а дальше сами вертитесь как хотите!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|