реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> xapp224(Data Recovery), может кто работал?
YGin
сообщение Jul 28 2006, 09:57
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 193
Регистрация: 28-02-06
Пользователь №: 14 796



Добрый день! Проблема тут
нашол я этот xapp и вроде самое то да только
он какойто не такой blink.gif !
Пробовал читать datashet но стало только хуже!
Может ли кто помочь? Вопрос glare.gif
1 Зачем там по выходу 2 бита инф?
2 как правильно написать shift регистер?
Выложу может кому згодится!
Прикрепленные файлы
Прикрепленный файл  xapp224.pdf ( 206.15 килобайт ) Кол-во скачиваний: 176
Прикрепленный файл  xapp224.zip ( 65.84 килобайт ) Кол-во скачиваний: 86
 
Go to the top of the page
 
+Quote Post
Doka
сообщение Jul 28 2006, 12:11
Сообщение #2


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(YGin @ Jul 28 2006, 13:57) *
1 Зачем там по выходу 2 бита инф?


при внимательном чтении харра становится понятно, что:
Цитата
...локальный синхросигнал будет вероятно чуть быстрее или чуть медленнее, чем поступающий поток синхросигнала/данных, и по­этому будет цикл синх­ро­сигнала, в котором принятые данные либо недействительны (локальный синхросигнал быстрее), либо потребуется два бита данных (локальный синхросигнал медленнее). По ме­ре "премещения" синхросигнала/данных во времени, может быть использован мультиплексор, для выбора данных от одной из четырёх имеющихся временных областей, но за дву­мя исключениями. Если схема перемещается из области А в область D, то выходящие данные фактически будут недействительны. Это индицируется пользователю переходом сигнала data valid (DV) в низкий уровень. Если схема перемещается из области D в область A, то потребуется сгенерировать два бита данных. Это индицируется пользователю установкой обоих битов data valid в высокий уровень. (рис.6). В реальной системе, эти события происходят непрерывно но случайным образом, по мере перемещения схемы из-за дрожания синхросигнала (clock jitter) и схождения глазковой диаграммы данных (data eye closure), но выход данных всегда будет действительным, согласно наличным битам данных. Например, при локальном синхросигнале 401 МГц (период 2.506 нс) и поступа­ю­щем потоке данных 400 Мб/с (период 2.500 нс), принятые данные будут недействительными (DV=”0”) приблизительно каждые 416 циклов локального синхросигнала.

Противоположный случай: локальный синхросигнал может быть 400 МГц, а поступа­ю­щий поток данных 401 Мб/с. В этом случае, два бита данных будут генерироваться в сред­нем каждые 416 циклов синхросигнала. В случае когда частоты номинально одинаковы, например два отдельных кварцевых генератора, разница в частотах будет несколько ppm (в любом направлении), и будет видно, что схема качается между выдачей нуля, одного или двух битов действительных данных в каждом синхросигнале приёмника, но данные всегда извлекаются корректно.



Цитата(YGin @ Jul 28 2006, 13:57) *
2 как правильно написать shift регистер?


тут так сразу с кондачка и не сообразить. Возможно следует придерживаться рекомендаций:

Цитата
Как было ранее отмечено, в каждом цикле синхросигнала приёма, схема восстановления данных генерирует ноль, один или два бита данных. На рис.5 это SDATA(1:0), а их действительность индицируется DV(1:0). Первый принятый бит будет SDATA(0). Второй принятый бит будет SDATA(1), когда он действителен. Эти биты будут обычно синхронно по­ступать в FIFO, для дальнейшей обработки разрядности 8, 16 или 32 бита. Пусть требуются 8-разрядные данные, тогда потребуется чуть более сложная логика, чем казалось сна­чала. Обычно биты принятых данных передаются в сдвиговый регистр для “распараллеливания”, и когда синхронно вошло восемь битов, результирующее 8-разрядное слово син­х­ронно поступает в FIFO. Но поскольку схема восстановления данных может потенциально генерировать два бита данных в каждом синхросигнале, следует рассматривать случай, где счётчик принятых битов переходит из 7 в 9.

Здесь наилучший путь – использовать 9-разрядный сдвиговый регистр. Если в цикле синхросигнала нет в наличии битов данных, сдвигатель и ассоциированный с ним счётчик остаётся статичным. Если в наличии один бит, он вдвигается в MSB, и счётчик инкрементирует на 1. Если в наличии два бита, они оба синхронно входят, перемещая сдвиговый регистр на две позиции и инкрементируя счётчик на 2. Если счётчик достигает 8, то действительный байт представлен в битах с 1 по 8 сдвигового регистра, а если счётчик достигает 9, то действительный байт представлен в битах с 0 по 7 сдвигового регистра. Поэтому действительные данные могут передаваться к FIFO (или напрямую к остальной части системы) с использованием простейшего мультиплексора.

Следует также заметить, что нет никакой гарании, что первые несколько принятых битов бу­дут корректны, т.к. в это время схема будет “выискивать” корректные фазовые соотноше­ния. Это относится к первым восьми принятым битам, после чего данные будут действительными.


успехов!


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016