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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Восстановление данных, Как думаете получится?
Shumok
сообщение Oct 12 2007, 07:10
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 18-05-07
Пользователь №: 27 804



Входной поток со скоростью 270Мбит/с. Кодировка 8В/10В.
Если я подам на вход DCM тактовый сигнал с частотой 270 МГц, а на вход CLKFB данные, и на выходе триггер, тактируемый CLK180, то по идее данные должны восстанавливаться и одновременно тактовый сигнал будет подстраиваться под частоту потока данных. Смоделировал в ModelSim вроде работает, но будет ли это работать в железе? И еще вопрос - как определить начало прихода данных?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Oct 12 2007, 08:13
Сообщение #2


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

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



Я что-то не понял. Допустим, на вход идет поток данных 001100110011..., т.е. частота на CLKFB получится вдвое ниже, чем на CLKIN. Хотите сказать, что DCM не потеряет LOCK?
Go to the top of the page
 
+Quote Post
rloc
сообщение Oct 12 2007, 08:34
Сообщение #3


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(Shumok @ Oct 12 2007, 11:10) *
Входной поток со скоростью 270Мбит/с. Кодировка 8В/10В.
Если я подам на вход DCM тактовый сигнал с частотой 270 МГц, а на вход CLKFB данные, и на выходе триггер, тактируемый CLK180, то по идее данные должны восстанавливаться и одновременно тактовый сигнал будет подстраиваться под частоту потока данных. Смоделировал в ModelSim вроде работает, но будет ли это работать в железе? И еще вопрос - как определить начало прихода данных?

В ModelSim заложена очень упрощенная модель DCM'а. В реальности DCM - это полноценная петля ФАПЧ (точнее две ФАПЧ), имеющая как минимум фазовый детектор, интегрирующую цепочку и ГУН. Принцип работы ФАПЧ - это подстройка частоты ГУНа к частоте входного сигнала (в DCM). Так к чему будет подстраиваться частота DCM, если нет обратной связи? Возможны два варианта: либо частота DCM настроится на крайние частоты, либо DCM определит сбой и вообще отключит ГУН. Подавать на вход CLKIN поток 8B/10B также не имеет смысла т.к. в общем случае он псевдослучайный без выраженной спектральной составляющей на частоте 270M.
Go to the top of the page
 
+Quote Post
Shumok
сообщение Oct 12 2007, 08:43
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 18-05-07
Пользователь №: 27 804



Цитата(rloc @ Oct 12 2007, 11:34) *
В ModelSim заложена очень упрощенная модель DCM'а. В реальности DCM - это полноценная петля ФАПЧ (точнее две ФАПЧ), имеющая как минимум фазовый детектор, интегрирующую цепочку и ГУН. Принцип работы ФАПЧ - это подстройка частоты ГУНа к частоте входного сигнала (в DCM). Так к чему будет подстраиваться частота DCM, если нет обратной связи? Возможны два варианта: либо частота DCM настроится на крайние частоты, либо DCM определит сбой и вообще отключит ГУН. Подавать на вход CLKIN поток 8B/10B также не имеет смысла т.к. в общем случае он псевдослучайный без выраженной спектральной составляющей на частоте 270M.

Жаль конечно, значит придется делать как в xapp224. В принципе там все ясно, но есть одно но...
Частота тактового генератора приемника и информационного потока будут в любом случае отличаться и современем это приведет к ошибке при выделении информации. Так вот хотелось бы как то время от времени синхронизироваться с информационным потоком.
Go to the top of the page
 
+Quote Post
rloc
сообщение Oct 12 2007, 09:11
Сообщение #5


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(Shumok @ Oct 12 2007, 12:43) *
Жаль конечно, значит придется делать как в xapp224. В принципе там все ясно, но есть одно но...
Частота тактового генератора приемника и информационного потока будут в любом случае отличаться и современем это приведет к ошибке при выделении информации. Так вот хотелось бы как то время от времени синхронизироваться с информационным потоком.

А на что Вам код 8B/10B? Как раз для того, чтобы корректировать ошибки.
Цитата из xapp224:
Цитата
If the received data is coded in some method such as 8b/10b, this will not be a problem, because an adequate number of transitions will exist.
Go to the top of the page
 
+Quote Post
Shumok
сообщение Oct 12 2007, 10:32
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 18-05-07
Пользователь №: 27 804



Цитата(rloc @ Oct 12 2007, 12:11) *
А на что Вам код 8B/10B? Как раз для того, чтобы корректировать ошибки.
Цитата из xapp224:

Это если один из символов в байте ошибочный. А если мы примем на один бит больше или наоборот один пропустим? А это вполне вероятно при разных частотах. Ну если на один больше это ладно - можно выкинуть и добить следующим, а если пропустим ? Куда его добивать? Или можно отследить место где пропущен?
Go to the top of the page
 
+Quote Post
alex5991
сообщение Oct 12 2007, 10:35
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 13-10-06
Пользователь №: 21 281



Цитата(Shumok @ Oct 12 2007, 11:43) *
Жаль конечно, значит придется делать как в xapp224. В принципе там все ясно, но есть одно но...
Частота тактового генератора приемника и информационного потока будут в любом случае отличаться и современем это приведет к ошибке при выделении информации. Так вот хотелось бы как то время от времени синхронизироваться с информационным потоком.


У Alterы года 2 назад был открытый проект - ASI интерфейс. Это теже 270MB/s последовательные данные с 8В/10В кодеком. Там прием осуществлялся на эквивалентной 3х270 или 5х270 MHz. Делается,
соответствено, 3 или 5 выборок и по мажоритарному принципу выбирается достоверная. Проверял - работает.
Go to the top of the page
 
+Quote Post
Shumok
сообщение Oct 12 2007, 11:04
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 18-05-07
Пользователь №: 27 804



Цитата(alex5991 @ Oct 12 2007, 13:35) *
У Alterы года 2 назад был открытый проект - ASI интерфейс. Это теже 270MB/s последовательные данные с 8В/10В кодеком. Там прием осуществлялся на эквивалентной 3х270 или 5х270 MHz. Делается,
соответствено, 3 или 5 выборок и по мажоритарному принципу выбирается достоверная. Проверял - работает.

А где этот открытый проект можно глянуть? Подскажите буду признателен.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Oct 12 2007, 13:25
Сообщение #9


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

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



Цитата(Shumok @ Oct 12 2007, 14:32) *
Это если один из символов в байте ошибочный. А если мы примем на один бит больше или наоборот один пропустим? А это вполне вероятно при разных частотах.

Это вряд ли, потому что частота небольшая, приемная PLL будет успевать нормально подстраиваться под девиацию частоты передатчика. Вот если бы частота была раз в пять хотя бы побольше - там да, лишние/выпавшие биты встречаются.
Go to the top of the page
 
+Quote Post
alex5991
сообщение Oct 12 2007, 13:35
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 13-10-06
Пользователь №: 21 281



Цитата(Shumok @ Oct 12 2007, 14:04) *
А где этот открытый проект можно глянуть? Подскажите буду признателен.


Пойщу у себя, найду дам знать.
Но на сайте Altera можно найти документацию, там принцип неплохо описан.

http://www.altera.com/products/ip/iup/addi.../m-alt-asi.html

Почитайте.
Go to the top of the page
 
+Quote Post
Shumok
сообщение Oct 12 2007, 13:43
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 18-05-07
Пользователь №: 27 804



Цитата(DmitryR @ Oct 12 2007, 16:25) *
Это вряд ли, потому что частота небольшая, приемная PLL будет успевать нормально подстраиваться под девиацию частоты передатчика. Вот если бы частота была раз в пять хотя бы побольше - там да, лишние/выпавшие биты встречаются.

Из xapp 224
As discussed, the local clock will probably be a bit faster or slower than the incoming clock/data stream, and therefore, there will be clock cycle where the received data is either invalid (local clock faster) or two data bits will be required (local clock slower).
и
In an actual system, these events occur continuously
Go to the top of the page
 
+Quote Post
rloc
сообщение Oct 12 2007, 17:30
Сообщение #12


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(Shumok @ Oct 12 2007, 14:32) *
Это если один из символов в байте ошибочный. А если мы примем на один бит больше или наоборот один пропустим? А это вполне вероятно при разных частотах. Ну если на один больше это ладно - можно выкинуть и добить следующим, а если пропустим ? Куда его добивать? Или можно отследить место где пропущен?

Похоже Вы еще не до конца разобрались. Поток, который идет с декодирующей схемы (см. Figure 6 из xapp224) нужно подавать на 10-битный сдвиговый регистр. Причем в подавляющем большинстве случаев в этот регистр нужно будет задвигать по 1 биту за такт, и иногда либо пропускать, либо задвигать сразу 2 бита за такт (надеюсь, как это делать, объяснять не надо). Как только накапливается 10 бит, подаете на вход схемы декодера 8B/10B, и получаете на выходе 8 бит. Для того, чтобы все это корректно работало, на странице 7 в разделе "Lock Requirements" подробно расписано, как частота появления ошибочного бита связана с разностью частот приемника и передатчика. Плюс прилагается еще исходный код, чтобы можно было это проверить на практике. Люблю Xilinx, всегда очень грамотно и понятно расписывают свои приложения.
Go to the top of the page
 
+Quote Post
Shumok
сообщение Oct 12 2007, 19:03
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 18-05-07
Пользователь №: 27 804



Цитата(rloc @ Oct 12 2007, 20:30) *
Похоже Вы еще не до конца разобрались. Поток, который идет с декодирующей схемы (см. Figure 6 из xapp224) нужно подавать на 10-битный сдвиговый регистр. Причем в подавляющем большинстве случаев в этот регистр нужно будет задвигать по 1 биту за такт, и иногда либо пропускать, либо задвигать сразу 2 бита за такт (надеюсь, как это делать, объяснять не надо). Как только накапливается 10 бит, подаете на вход схемы декодера 8B/10B, и получаете на выходе 8 бит. Для того, чтобы все это корректно работало, на странице 7 в разделе "Lock Requirements" подробно расписано, как частота появления ошибочного бита связана с разностью частот приемника и передатчика. Плюс прилагается еще исходный код, чтобы можно было это проверить на практике. Люблю Xilinx, всегда очень грамотно и понятно расписывают свои приложения.

Спасибо за помощь. Просто у меня мягко говоря проблемы с английским (я французский изучал), а на русском такой инфы не нашел. Поэтому такие туповатые вопросы и возникаютsmile.gif Буду дальше разбираться.
Go to the top of the page
 
+Quote Post
rloc
сообщение Oct 12 2007, 19:14
Сообщение #14


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(Shumok @ Oct 12 2007, 23:03) *
Спасибо за помощь. Просто у меня мягко говоря проблемы с английским (я французский изучал), а на русском такой инфы не нашел. Поэтому такие туповатые вопросы и возникаютsmile.gif Буду дальше разбираться.

Посмотрите, как Xilinx делает 1Gb Ethernet, можете кодер и декодер 8b/10b взять оттуда, или все остальное. Выудил из последнего IP1 для ISE v9.2i (расширение .rar потом удалить).
[attachment=14404:attachment]
Go to the top of the page
 
+Quote Post
Shumok
сообщение Oct 12 2007, 19:58
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 18-05-07
Пользователь №: 27 804



Цитата(rloc @ Oct 12 2007, 22:14) *
Посмотрите, как Xilinx делает 1Gb Ethernet, можете кодер и декодер 8b/10b взять оттуда, или все остальное. Выудил из последнего IP1 для ISE v9.2i (расширение .rar потом удалить).
[attachment=14404:attachment]

Благодарю. Декодер 8B/10B я сгенерировал в CoreGenerator. А остальное гляну.

Цитата(Shumok @ Oct 12 2007, 22:54) *
Благодарю. Декодер 8B/10B я сгенерировал в CoreGenerator. А остальное гляну.

Еще один глупый вопрос. Что со скачаным файлом делать. Просто удалить .rar? А что это получится за файл?
Go to the top of the page
 
+Quote Post

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

 


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


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