Всем доброго времени суток.
Собственно, нужно наладить прием/передачу по LVDS между двумя платами с Cyclone V. Скорость до 1 Гбит/с, расстояние до 20 метров.
Мне видятся два варианта:
- использовать Dedicated Tranceiver. Будет одна витая пара. Тут проблема в том, что для меня это зверь неизвестный и неизвестно сколько там будет глюков и подводных камней при его отладке. В этой связи хотелось бы послушать опытных в его использовании людей.
- прокинуть две витые пары под данные и под клок. Использовать либо готовое решение сериализатора/десериализатора в виде мегафункций ALTLVDS_TX/RX, либо самому это сделать на обычной внутренней PLL (ALT_PLL) и сдвиговых регистрах.
Мне больше всего нравится последний вариант - сделать все самому - по причине его прозрачности для меня как для разработчика. И если уж в этом случае исправлять глюки, то в основном свои, а не альтеровских разрабов. Вопрос в том, насколько это вообще реально, нормально выделить и подстроить под данные клок PLLкой на приемной стороне без применения оптимизированных dedicated блоков на таких скоростях и расстояниях.
Буду благодарен за советы.