Здравствуйте!
Пишу приемник по LVDS-каналу:
- частота не очень большая 27 Мгц,
- коэфициент десериализации - 7х,
- 3 дифференциальных канала данных и 1 диф. канал - такты для lvds
Данные должны приниматься в следующем порядке:

Накидал следующую схему, используя модуль altlvds_rx:

Выставляю данные на входе, прогоняю альтеровским симулятором:

и на выходе после десериализации получаю поврежденные данные:

Причем перебирал значение отклонения сигнала данных от фронта такта в градусах с шагом 15 градусов и ни разу требуемого результата не добился!
Поэтому вопросы:
1) правильно ли нарисовалы синхроимпульсы в протоколе? действительно ли при нечетном параметре десериализации скважность тактового сигнала не равна 50%?
2) Был ли у вас опыт симулирования LVDS-сигналов и в частности модуля altlvds штатных симулятором? или для этого подходит лишь более продвинутый ModelSim, с которым я, к сожалению, пока не знаком

А если вы дружны с моделсимом, не могли бы вы прогнать симуляцию через него и сообщить о результатах, совпадают ли они?
3) Как подсчитать теоретическое смещение сигнала тактов от данных? я пока считал так: 360 (град) / 7 (бит) *5 (бит) = 257. Ближайшее доступное значение в модуле - 258,75!
4) Есть ли замечания по проекту в целом? Я основывался на альтеровских апликухах, но может есть другое решение как принять и обработать lvds-сигнал? Сам проект целиком во вложенном архиве!
Это мой первый проект, использующий LVDS, не пинайте сильно!
Заранее спасибо за отклики и советы!!!
Сообщение отредактировал KWIer - Apr 9 2010, 14:02