|
Восстановление данных, Как думаете получится? |
|
|
|
Oct 12 2007, 07:10
|
Участник

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

|
Входной поток со скоростью 270Мбит/с. Кодировка 8В/10В. Если я подам на вход DCM тактовый сигнал с частотой 270 МГц, а на вход CLKFB данные, и на выходе триггер, тактируемый CLK180, то по идее данные должны восстанавливаться и одновременно тактовый сигнал будет подстраиваться под частоту потока данных. Смоделировал в ModelSim вроде работает, но будет ли это работать в железе? И еще вопрос - как определить начало прихода данных?
|
|
|
|
|
 |
Ответов
|
Oct 12 2007, 08:34
|
Узкополосный широкополосник
     
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Oct 12 2007, 08:43
|
Участник

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

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

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

|
Цитата(rloc @ Oct 12 2007, 12:11)  А на что Вам код 8B/10B? Как раз для того, чтобы корректировать ошибки. Цитата из xapp224: Это если один из символов в байте ошибочный. А если мы примем на один бит больше или наоборот один пропустим? А это вполне вероятно при разных частотах. Ну если на один больше это ладно - можно выкинуть и добить следующим, а если пропустим ? Куда его добивать? Или можно отследить место где пропущен?
|
|
|
|
|
Oct 12 2007, 17:30
|
Узкополосный широкополосник
     
Группа: Свой
Сообщений: 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, всегда очень грамотно и понятно расписывают свои приложения.
|
|
|
|
|
Oct 12 2007, 19:03
|
Участник

Группа: Новичок
Сообщений: 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, всегда очень грамотно и понятно расписывают свои приложения. Спасибо за помощь. Просто у меня мягко говоря проблемы с английским (я французский изучал), а на русском такой инфы не нашел. Поэтому такие туповатые вопросы и возникают  Буду дальше разбираться.
|
|
|
|
|
Oct 12 2007, 19:58
|
Участник

Группа: Новичок
Сообщений: 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? А что это получится за файл?
|
|
|
|
|
Oct 13 2007, 10:33
|
Узкополосный широкополосник
     
Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462

|
Цитата(Shumok @ Oct 12 2007, 23:58)  Благодарю. Декодер 8B/10B я сгенерировал в CoreGenerator. А остальное гляну. В том ядре, что я давал, он лучше, сделан на блочной памяти: маленький и быстрый. Да и потом корегенератор Вам исходников не дает, ограничивая в совместимости и гибкости использования. Сравните с тем, что Вы взяли:
encode_8b10b_xst.zip ( 4.59 килобайт )
Кол-во скачиваний: 139
decode_8b10b_xst.zip ( 9.44 килобайт )
Кол-во скачиваний: 129Цитата Еще один глупый вопрос. Что со скачаным файлом делать. Просто удалить .rar? А что это получится за файл? Останется файл с расширением .7z (архиватор 7zip, к сожалению такое расширение не прикрепляется)
|
|
|
|
|
Oct 13 2007, 11:20
|
Участник

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

|
Цитата(rloc @ Oct 13 2007, 13:33)  В том ядре, что я давал, он лучше, сделан на блочной памяти: маленький и быстрый. Да и потом корегенератор Вам исходников не дает, ограничивая в совместимости и гибкости использования. Сравните с тем, что Вы взяли:
encode_8b10b_xst.zip ( 4.59 килобайт )
Кол-во скачиваний: 139
decode_8b10b_xst.zip ( 9.44 килобайт )
Кол-во скачиваний: 129Останется файл с расширением .7z (архиватор 7zip, к сожалению такое расширение не прикрепляется) Я так понял на первый взгляд что приемопередатчик сделан на базе RocketIO? Просто мне для ASI интерфейса нужен только приемник. Там непрерывный транспортный поток MPEG2. Поэтому хотелось бы без использования RocketIO. Мне кажется я намучаюсь с его настройкой. Или я не прав? Есть просто xapp514, там показано как они делают ASI. Так вот там два варианта: один из них на RocketIO. Так вот мне кажется что этот вариант посложнее, хотя может быть лучше.
Сообщение отредактировал Shumok - Oct 13 2007, 11:31
|
|
|
|
|
Oct 15 2007, 06:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(dmitry-tomsk @ Oct 13 2007, 17:49)  Классика блока восстановления данных - XAPP224. Я вот внимательно читаю и никак не могу понять, что же с этим блоком будет, когда фаза входного сигнала совпадет с фазой внутреннего тактового. Допустим, на А будет единица, а на B - фронт, который поймается как 0. Блок скажет - отлично, давайте работать по B и D, а на D тоже придется фронт, который поймается неправильно.
|
|
|
|
Сообщений в этой теме
Shumok Восстановление данных Oct 12 2007, 07:10 DmitryR Я что-то не понял. Допустим, на вход идет поток да... Oct 12 2007, 08:13    DmitryR Цитата(Shumok @ Oct 12 2007, 14:32) Это е... Oct 12 2007, 13:25     Shumok Цитата(DmitryR @ Oct 12 2007, 16:25) Это ... Oct 12 2007, 13:43            dmitry-tomsk Цитата(DmitryR @ Oct 15 2007, 09:31) Я во... Oct 15 2007, 06:56             DmitryR Цитата(dmitry-tomsk @ Oct 15 2007, 10... Oct 15 2007, 11:39              dmitry-tomsk Цитата(DmitryR @ Oct 15 2007, 14:39) Ой. ... Oct 15 2007, 12:27               DmitryR Цитата(dmitry-tomsk @ Oct 15 2007, 16... Oct 15 2007, 12:33               Shumok Цитата(dmitry-tomsk @ Oct 15 2007, 15... Oct 18 2007, 08:25                dmitry-tomsk Цитата(Shumok @ Oct 18 2007, 11:25) А поч... Oct 22 2007, 03:58                 Shumok Цитата(dmitry-tomsk @ Oct 22 2007, 06... Oct 22 2007, 05:57          rloc В первую очередь хочу принести извенения, два посл... Oct 13 2007, 14:55           Shumok Цитата(rloc @ Oct 13 2007, 17:55) В перву... Oct 13 2007, 16:52            dmitry-tomsk Цитата(Shumok @ Oct 13 2007, 19:52) У нас... Oct 14 2007, 06:19             Shumok Цитата(dmitry-tomsk @ Oct 14 2007, 09... Oct 14 2007, 14:10              dmitry-tomsk Цитата(Shumok @ Oct 14 2007, 17:10) А что... Oct 14 2007, 14:39               Shumok Цитата(dmitry-tomsk @ Oct 14 2007, 17... Oct 14 2007, 15:55        Al Jumper Цитата(Shumok @ Oct 12 2007, 23:58) Еще о... Oct 13 2007, 17:14         Shumok Цитата(Al Jumper @ Oct 13 2007, 20:14) Зд... Oct 13 2007, 22:21  alex5991 Цитата(Shumok @ Oct 12 2007, 11:43) Жаль ... Oct 12 2007, 10:35   Shumok Цитата(alex5991 @ Oct 12 2007, 13:35) У A... Oct 12 2007, 11:04    alex5991 Цитата(Shumok @ Oct 12 2007, 14:04) А где... Oct 12 2007, 13:35 Shumok Кстати ее один вопросик.
Прилагаемые к xapp224 фай... Oct 18 2007, 12:56 Shumok Цитата(Shumok @ Oct 18 2007, 15:56) Кстат... Oct 21 2007, 18:11 stu а может кто-нить ответить на следующий вопрос:
к п... Dec 23 2011, 11:06
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|