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

 
 
> 8b/10b code. Восстановление тактовой синхронизации
Костян
сообщение Nov 10 2010, 11:56
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



Возможно ли в FPGA c применением доп. внеш элементов восстановить битовую синхронизацию в 8b/10b decoder -е ? Подобный модуль реализован на схеме CDR в RocketIO , но мне совершенно не понятны принципы его работы.
Выделение в CDR синхронизации идет только по comma symbol , либо также по данным ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 12)
iosifk
сообщение Nov 10 2010, 12:10
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Костян @ Nov 10 2010, 15:56) *
Возможно ли в FPGA c применением доп. внеш элементов восстановить битовую синхронизацию в 8b/10b decoder -е ?

а посмотреть аппликухи у ксайлинкса об этом?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Nov 10 2010, 12:10
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Как мне кажется, comma нужна исключительно, чтобы узнать где граница символов, а выделение клока с помощью PLL происходит по кажому фронту данных. Восстановление клока к кодированию не имеет прямого отношения.
С тем же успехом можно отключить блок 8b/10b и пальчиками кодировать 64/66 или любым другим способом обеспечивающим достаточную частоту перехода между 0 и 1 и их баланс.
Go to the top of the page
 
+Quote Post
DW0
сообщение Nov 10 2010, 12:21
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 9-08-10
Из: Украина
Пользователь №: 58 828



8b/10b комма действительно только границу пакета определяет, для синхронизации приемника с передатчиком важно то, что частоты и фазы разные, еще и дышат, и без подстройки частоты, или еще каких либо "танцев" Вы не получите результат без сбоев. можете почитать про метастабильность, но сразу предупреждаю решение проблем с метастабильностью не решает проблемы синхронизации
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Nov 10 2010, 12:34
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Костян @ Nov 10 2010, 14:56) *
Возможно ли в FPGA c применением доп. внеш элементов восстановить битовую синхронизацию в 8b/10b decoder -е ?
Зачем на стадии 8b/10 нужна битовая синхронизация? Все уже параллельно, нужна словная. Что касается RocketIO - то я недавно сделал на нем SATA-II, совершенно не пытаясь вникнуть в то, как он достает синхронизацию. Он подавал мне наружу слова и словную синхру, а как там внутри - кому это надо голову ломать?
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Nov 10 2010, 12:46
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



OFF:
Разница частот специфицирована в протоколах типа PCIe, 10Gb Ethernet, USB3.0 - специально смотрел, а распространенное решение этой проблемы - эластичный буфер - выдумка реализаторов.
Наихудший случай, когда разница в частотах максимальная, а пакет наибольшей длины.
Это несколько символов, в разных протоколах по разному.
Тоже самое может быть в другую сторону, когда быстрый кварц оказался в противоположном устройстве.
И все было б не так плохо, если бы эластичный буфер заполнялся перед приемом пакета именно на это время.
USB superspeed 8 символов, PCI-e 4 символа, Infiniband 3 символа.
В трансиверах FPGA он заполняется на половину своего размера, да и в других устройствах тоже, retiming repeaters этим тоже грешат.
Соответственно, данные почти всегда будут отставать на эти несколько символов на каждом хопе.
В FPGA этот же буфер используется для выравнивания каналов и кое-что можно простить, но не 16 символов.
Вообще, лишний символ "/" в "http://" может оказаться ерундой по сравнению с потерями на PCI-e компьютерах при коротких запросах.
Go to the top of the page
 
+Quote Post
andrewkrot
сообщение Nov 10 2010, 13:59
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 306
Регистрация: 11-11-04
Из: Москва
Пользователь №: 1 106



Цитата(Костян @ Nov 10 2010, 15:56) *
Возможно ли в FPGA c применением доп. внеш элементов восстановить битовую синхронизацию в 8b/10b decoder -е ? Подобный модуль реализован на схеме CDR в RocketIO , но мне совершенно не понятны принципы его работы.
Выделение в CDR синхронизации идет только по comma symbol , либо также по данным ?

Восстановление битовой тактовой частоты возможно с применением цифровой ФАПЧ, правда для ее нормальной работы внутренняя тактовая частота должна быть по крайней мере в 8 раз выше битовой частоты. Джиттер при этом будет нехилый, ну так никто и не знает, какой он Вам нужен...
Go to the top of the page
 
+Quote Post
Костян
сообщение Nov 10 2010, 14:42
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (DmitryR @ Nov 10 2010, 10:34) *
Зачем на стадии 8b/10 нужна битовая синхронизация? Все уже параллельно, нужна словная. Что касается RocketIO - то я недавно сделал на нем SATA-II, совершенно не пытаясь вникнуть в то, как он достает синхронизацию. Он подавал мне наружу слова и словную синхру, а как там внутри - кому это надо голову ломать?

это понятно, поясню, нужно захватить сигнал в кодировке 8b/10b (сформированный тем же RocketIO) на спартане3 , который не имеет ни CDR, ни RocketIO. Поэтому и разбираюсь как там внутри.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Nov 10 2010, 15:22
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Меня почему-то смущает, что RocketIO в знакомом мне Virtex-IIpro начинается с 622MHz. Медленнее PLL-ка не запускается.
На spartan-3 не получится. Может быть лучше AVR-кой? smile.gif
В природе есть трансиверы, которые по отношению к FPGA будут называться внешними, и есть spartan-6 с трансиверами на борту, arria, stratix gx ...
Go to the top of the page
 
+Quote Post
Костян
сообщение Nov 10 2010, 15:37
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (Shtirlits @ Nov 10 2010, 13:22) *
Меня почему-то смущает, что RocketIO в знакомом мне Virtex-IIpro начинается с 622MHz. Медленнее PLL-ка не запускается.

хм..верно для V5 0.78Gbit. Но мне не интересна задача формирования потока(можно сформировать на том же спартан3, рокет написал для примера выше), нужен его захват с выделением тактовой!
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Nov 10 2010, 16:00
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Непонятно, это круглая лошадь при низком давлении или реальная плата с экономически обоснованными решениями?

Чтобы просто поиграть на какой получится частоте, можно сделать цифровую модель PLL, которая содержит, ясное дело, регулируемый генератор и компаратор детектор фазы, который определяет, какой сигнал поменялся раньше, входной или принимаемя и дает команду чуточку сменить частоту. Реагировать компаратор детектор фазы должен только внутри битового периода. Обычная спартановская PLL частоту захватит, так как тренировка идет на символах с кодировкой 101010101..., но скорее всего будет терять синхронизацию. Я не знаю, как именно устроеных PLL в FPGA и как они относятся к пропускам импульсов.

http://en.wikipedia.org/wiki/Multi-gigabit_transceiver
Go to the top of the page
 
+Quote Post
agate
сообщение Nov 10 2010, 16:57
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 19-06-10
Пользователь №: 58 021



QUOTE (Костян @ Nov 10 2010, 14:56) *
Возможно ли в FPGA c применением доп. внеш элементов восстановить битовую синхронизацию в 8b/10b decoder -е ? Подобный модуль реализован на схеме CDR в RocketIO , но мне совершенно не понятны принципы его работы.
Выделение в CDR синхронизации идет только по comma symbol , либо также по данным ?

K28.5 кома - Это единственный символ который позволяет выделить 10 битные границы в последовательном потоке 8В10В данных. Остальные символы имеют алиасы.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Nov 11 2010, 06:59
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Костян @ Nov 10 2010, 17:42) *
это понятно, поясню, нужно захватить сигнал в кодировке 8b/10b (сформированный тем же RocketIO) на спартане3

Или вам все же не понятно, или вы не можете объяснить, что вам нужно. Повторю: чтобы захватить выход RocketIO чем угодно нужно использовать восстановленную в RocketIO СЛОВНУЮ синхронизацию. Надо начинать не с разбирательств как устроен RocketIO внутри, а с того как устроен его интерфейс. Потому что понимание внутренних алгоритмов его работы конечно полезно, но работать с интерфейсом не помогает никак вообще.

И еще абсолютно непонятно, зачем к большой FPGA, в которой есть RoketIO еще рядом приделывать Spartan3.

А, на всякий случай: если вы хотите захватить в Spartan3 ПОСЛЕДОВАТЕЛЬНЫЙ поток, который где-то выходит из RocketIO - забудьте: там слишком высокая частота. Если бы это было возможно - RocketIO никто бы не делал.
Go to the top of the page
 
+Quote Post

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

 


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


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