Цитата(DmitryR @ Feb 6 2008, 16:25)

Начнем с того, что ISERDES использовать не надо - он коротковат и все равно придется его перехлопывать в триггеры, 300 МГц даже на спартане ловится без проблем.
Далее, для захвата битов необходимо использовать входную частоту 300, пропущенную через IDELAY (или DCM), задержку (или phase shift) на котором (которой) надо подобрать либо по результатам временного моделирования, либо написать калибровочный автомат, который будет переводить АЦП в режим тестирования и, меняя задержку IDELAY (dynamic phase shift DCM), находить окно, в котором приходят правильные данные, впоследствии устанавливая задержку на середину этого окна. Захват битов необходимо осуществлять в IDDR, также в IOB надо обязательно разместить триггер, который будет захлопывать строб фрейма.
Затем биты, захваченные в IDDR уже только по восходящему фронту входной частоты по два захлопываются в обычный сдвиговый регистр длиной 12. В момент подъема фреймового строба, задержанного еще на такт для компенсации задержки в IDDR этот регистр записывается в короткий FIFO (elastic buffer). Читается elastic buffer по входной частоте, деленной на 6.
Исходный код я тут не привожу сознательно - учитесь, это занимает немного времени, но приносит большой опыт.
P.S. Имейте в виду, что в текущей версии ISE есть баг (обсужденный на Webcase и признанный), в результате которого IDELAY с переменной задержкой во временную модель не попадает, поэтому ее (модель) надо поправлять руками.
насчёт коротковат не согласен
лвдс вход включает в себя 2 преобразователя в одиночный выход - или как его там - короче примитив его лвдс вход - 2 противофазных выхода
к обоим выходам прямому и инверсному подключаем по ISERDES (их в этом модуле тоже 2) оба в мастер режиме
клок данных с ацп 300 мгц подаю на глобал и использую для тактирование DCM
с DCM беру противофазные клоки и подаю на клоковые входы ISERDES
само сабой что при таком построении каждый ISERDES запишет черезбитовую последовательность по 6 на каждый. только в одном все биты будут инверсны. то есть 12 бит принимаем запроста.
на триггерах собирать всё это может не хватить несурсов FX20 загружен уже на 85% а каналов таких 4
фактически 12 бит захвачены - только как стактировать фреймовым клоком - если на ISERDES на CLKDIV подаётся клок 300 делённый на 6.
и вот чего я ещё никак не могу понять - в ISERDES по CLKDIV что внутри происходит?
если он защёлкивает данные сдвигового регистра - то само собой что они на выходе будут сдвинуты и сдвинуты на число отсчётов разфазировки между от балды полученным CLKDIV и фреймовым причём чтобы этот сдвиг восстановить нужно будет использовать 24 бита предыдущий и текущий 12 битный отсчёт. Меня все документы посвяженные этому запутали окончательно