Надо передавать данные между 2мя Циклонами2 по LVDS, развязанному трансформаторами.
Используется ALTLVDS RX/TX и 8b10b Encoder/Decoder Megafunction.
Как я понимаю, выглядеть должно следующим образом:
1. На передающей стороне байты, которые надо передать, формируются в пакеты, между которыми вставляется символ К28.5, например путем использования idle_ins входа энкодера 8b10b
2. Выход 8b10b энкодера отправляем на ALTLVDS_TX. Для ALTLVDS ставим Deserialization Factor = 10.
Вопрос: в чем смысл outclock divide factor?
3. На приемной стороне на выходе ALTLVDS_RX ищем символ К28.5 и по нему синхронизируем поток. Нарезаем поток по 10 бит и подаем их на 8b10b декодер. На выходе декодера получаем переданные байтики.
Еще вопрос: надо ли самому следить за диспарити, или это делает 8b10b мегафункция?
Так ли следует делать? Или забыты какие операции?
Спасибо.
Мне тоже предстоит делать нечто подобное (gigabit ethernet), но я пока больше теоретик. Постараюсь ответить, как я считаю.
За диспарити должна следить сама мегафункция кодека, а при нарушении - выдавать соответствующий сигнал ошибки на какой-то выход (точно не знаю).
Смысл outclock divide factor - в том, что этот вывод является обычным наследником любой PLL, а в LVDS она входит (если только у вас Deserialization Factor не равен 1, что уже тривиальный случай). У меня в проекте этот клок вообще не используется (на приёмной стороне стоит внешняя микросхема SerDes c CDR). Если данный клок используется, то ты можешь задать для него определённый коэффициент деления, как и у любой PLL, когда задаётся определённый коэффициент деления опорной частоты и частоты выходной.
Мой к Вам вопрос: где достать эту мегафункцию кодека? Для моего изернета она будет как нельзя к стати.
Мегафункцию брал из Мегакоре Либ 2004.12. Там она версии 1.5.0. Есть новее, но не смог уговорить работать бесплатно :-)
Мегакоре Либ взял с известного фтп.
Если можно, перешлите, пожалуйста Мегакоре Либ 2004.12, если можно! Местный ФТП не работает, а попробовать интересно!
Моё мыло paul_paul (gav-gav) ngs (tochka) ru
yurich
May 10 2006, 14:18
Там 160М.
Возьмите лучше с фтп Альтеры. Там есть, только что проверил.
gosu-art
Oct 4 2011, 10:43
А какие трансформаторы можно использовать для LVDS (поток в районе 100Mb/s)? Erhernet'овские? И нужно ли передавать клок при 8b10b кодировке?
dvladim
Oct 4 2011, 17:47
Цитата(gosu-art @ Oct 4 2011, 14:43)

А какие трансформаторы можно использовать для LVDS (поток в районе 100Mb/s)? Erhernet'овские? И нужно ли передавать клок при 8b10b кодировке?
Ну а почему бы и нет, в Erhernet те же 100 Мбит (125 полоса), те же трансформаторы. Клок обычно восстанавливается (Clock Data Recovery CDR).
gosu-art
Oct 4 2011, 18:43
вот я тут нашел тему, но так и не понял как все таки восстанавливается клок
http://electronix.ru/forum/index.php?showt...195&hl=lvdsВот у меня есть два СIII связанные по LVDS ->DS кодом. Т.е. для передачи в одну сторону используется две линии. Хочу попробовать 8b/10b. Создаю 2е мегафункции (соответственно кодер/декодер). У каждой свой клок. Будет ли обеспечен нормальный прием/передача?
И как все таки восстанавливается клок в данной кодировке?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.