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

 
 
> Clock Recovery из 8B10B
Vitaly_N
сообщение Oct 25 2015, 12:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 30-11-07
Пользователь №: 32 839



Передо мной стоит задача связать два девайса по одному каналу. Из чипа выходит LVDS и в другой чип входит LVDS. Предполагаю использовать Xilinx Spartan 6 и не использовать GTP (уже занято). Кодирование в канале планирую использовать 8B10B. Передатчик до 950 Мбит/с я уже сделал (это потому что speed grade -2), тут всё просто. А вот с приёмом проблема. XAPP1064 я, разумеется, читал, но вот в чём проблема - я не хочу тащить второй канал для передачи клока. Вот прям очень сильно не хочу - это настолько усложняет реализацию, что лишает всю затею смысла. Короче, считайте, что канал даден свыше только один, и это не обсуждается. (Было бы два - сделал бы, как в XAPP1064, и вопроса бы не было.) Так что очень хочется обойтись одним каналом. Соответственно вопрос - подскажите, пожалуйста, что тут можно придумать, ну или аргументированно объясните, что задача нерешаемая, чтоб я зря время не тратил! Пожалуйста!

(Вариант снизить скорость, скажем, до 125 Мбит/с - это решаемо, но это неинтересно. Надо больше. Чем больше - тем лучше.)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
des00
сообщение Oct 25 2015, 13:10
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Vitaly_N @ Oct 25 2015, 19:08) *
аргументированно объясните, что задача нерешаемая, чтоб я зря время не тратил! Пожалуйста!

отсутствие возможности сделать на логике CDR на такие скорости. либо тащите клок, либо ставьте внешнюю CDR, либо освобождайте GTP


--------------------
Go to the top of the page
 
+Quote Post
Vitaly_N
сообщение Oct 25 2015, 14:00
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 30-11-07
Пользователь №: 32 839



Цитата(des00 @ Oct 25 2015, 19:10) *
отсутствие возможности сделать на логике CDR на такие скорости. либо тащите клок, либо ставьте внешнюю CDR, либо освобождайте GTP

Клок тащить - не вариант, я уже сказал, GTP освободить невозможно.

Я думал использовать DCM_CLKGEN. Там есть интересная фича - FREEZEDCM. Если его подать, то DCM продолжает генерить сигнал даже при отсутствии входного клока. Задумка была такая. Ставлю два IODELAY2, один задерживает на T, другой - на 2T (2T = один бит). XOR их между собой и входным сигналом. Получаю некий импульс синхронно с каждым переходом. Этот импульс подаю на CLKIN DCM, а в отсутствие импульса на DCM подаю FREEZEDCM. Точнее, сначала при старте системы DCM кормлю от генератора с нужной частотой, чтобы он завёлся, а потом, когда увижу данные в канале, через BUFGMUX переключаю на работу от детектора переходов. Однако результаты симулирования отрицательные - несмотря на FREEZE DCM продолжает измерять период входного сигнала. Ну и когда потом FREEZE снимаешь, дескать, поехали работать, эта скотина считает, что новый период должен быть таким, чего DCM намерил со времён последнего импульса. smile3046.gif

Вообще, именно на такой скорости клок в логике получать и не обязательно. Вполне сгодится клок любой другой частоты, а при помощи PLL потом получу, сколько надо. Скажем, битовая скорость 950 МБит/с, 10 бит на слово, стало быть, вполне устроит восстановленная частота 95 МГц (что вполне посильно для логики общего назначения) или даже 47.5 МГц, которую на PLL разогнать до 950 МГц. Лишь бы синхронно со словом было. В общем, вполне устроит один перепад на слово. Вопрос только, как этот перепад гарантированно выделить...

Ещё в ISERDES2 есть встроенный фазовый детектор, правда, я ещё не разобрался, как им пользоваться, стало быть, и не могу понять, поможет оно мне или нет.
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 25 2015, 14:16
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Vitaly_N @ Oct 25 2015, 21:00) *
Клок тащить - не вариант, я уже сказал, GTP освободить невозможно.

не всегда наши желания, совпадают с нашими возможностями (с)

Цитата
Однако результаты симулирования отрицательные

шаманство оно всегда такое.

Цитата
Вообще, именно на такой скорости клок в логике получать и не обязательно. Вполне сгодится клок любой другой частоты, а при помощи PLL потом получу, сколько надо. Скажем, битовая скорость 950 МБит/с, 10 бит на слово, стало быть, вполне устроит восстановленная частота 95 МГц (что вполне посильно для логики общего назначения) или даже 47.5 МГц, которую на PLL разогнать до 950 МГц. Лишь бы синхронно со словом было. В общем, вполне устроит один перепад на слово. Вопрос только, как этот перепад гарантированно выделить...

нет у вас слов в канале. там летит поток бит 950Мб/с. 8б10б это всего лишь способ борьбы с постоянкой. И что бы с работать с символами 8б10б, нужно сделать эти символы из битового потока в 950МГц. Для этого нужен CDR.


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 17:10
Рейтинг@Mail.ru


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