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

 
 
5 страниц V  « < 2 3 4 5 >  
Reply to this topicStart new topic
> Выбираем униполярный самосинхронизирующийся код, Передача данных и CLK м/у ПЛИС по одному LVDS каналу
dsmv
сообщение Mar 7 2006, 17:15
Сообщение #46


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Цитата(Victor @ Mar 7 2006, 17:10) *
Думаю, что не ошибка smile.gif
Прошу прощения за тавтологию, но ошибка в младшем бите будет обнаружена, т.к. есть еще "running disparity", который вы измените поменяв бит, единственное, что ошибка обнаружится только при приеме следующего слова. К тому же любая нарушающая баланс ошибка, а не только одиночная, будет обнаружена smile.gif


Мне кажется, что в данном случае не обнаружиться, поскольку K28.4 не нарушает баланс. В нём одинаковое число нулей и единиц.
Go to the top of the page
 
+Quote Post
Krys
сообщение Mar 9 2006, 06:23
Сообщение #47


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(dsmv @ Mar 7 2006, 23:15) *
Мне кажется, что в данном случае не обнаружиться, поскольку K28.4 не нарушает баланс. В нём одинаковое число нулей и единиц.
Боюсь, вы всё-таки ошибаетесь: кодовая группа К28.3, которую вы привели, должна следовать после отрицательной перменной составляющей, и в результате в конце ожидается положительная переменная составляющая, поэтому следующая кодовая группа должна иметь отрицательную переменную составляющую для компенсации.
В случае возникновения ошибки и приёма кодовой группы К28.4, которую вы привели и которая также должна следовать после отрицательной переменной составляющей, ожидаться будет положительная переменная составляющая для компенсации постоянного тока.
Таким образом, ожидаться будет противоположная переменная составляющая, поэтому ошибка будет обнаружена.
Кроме того, вы привели пример на зарезервированных кодовых группах, которые автор темы волен не использовать, как их не используют и в гигабитном изернете.
Возможно, это лишь ваш неудачный пример. Если хотите, приведите другой пример, с реально действующими кодовыми группами.
Go to the top of the page
 
+Quote Post
dsmv
сообщение Mar 9 2006, 06:51
Сообщение #48


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Цитата(Janna @ Mar 9 2006, 09:23) *
Возможно, это лишь ваш неудачный пример. Если хотите, приведите другой пример, с реально действующими кодовыми группами.


Вот ещё пример:
D3.1 110001 1001
D4.1 110101 1001

Это коды уже из группы данных. Так что они точно используются.
Код D3.1 является нейтральным. Мне пока не совсем понятен механизм перехода между
положительной и отрицательной полярностью. Переход обязательно должен производиться, или возможена передача нескольких слов без перехода ?
Go to the top of the page
 
+Quote Post
Krys
сообщение Mar 9 2006, 07:11
Сообщение #49


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



В этом примере всё аналогично предыдущему: для кодовой группы D3.1 ожидается, что следующая кодовая группа будет положительной полярностью. А для кодовой группы D4.1 ожидается, что следующая будет отрицательной. Согласен? Поэтому обнаружить ошибку не составляет труда именно по несоответствию ожидаемой и действительно принятой полярности.
Цитата(dsmv @ Mar 9 2006, 12:51) *
Код D3.1 является нейтральным. Мне пока не совсем понятен механизм перехода между положительной и отрицательной полярностью. Переход обязательно должен производиться, или возможена передача нескольких слов без перехода ?
На одну кодовую группу одной полярности должна приходиться кодовая группа другой полярности, притом подряд несколько одной полярности, потом подряд несколько другой полярности быть не может: только одна за другой. Между разными полярностями может вставать хоть сколько нейтральных, это не изменит баланса, поэтому на них плевать.

Сообщение отредактировал Janna - Mar 9 2006, 07:13
Go to the top of the page
 
+Quote Post
Victor
сообщение Mar 9 2006, 07:42
Сообщение #50


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

Группа: Свой
Сообщений: 122
Регистрация: 21-02-05
Из: Питер
Пользователь №: 2 811



Цитата
... для кодовой группы D3.1 ожидается, что следующая кодовая группа будет положительной полярностью.

Мне кажется, что не _следующая будет_, а _предыдущая была_ полярность RD-...

Цитата(dsmv @ Mar 9 2006, 09:51) *
Вот ещё пример:
D3.1 110001 1001
D4.1 110101 1001

Понимаете, где бы ни был использован D3.1, это будет означать, что БЫЛ "RD-", а раз в D3.1 кол-во 0-й = кол-ву 1-ц, значит и на следующем БУДЕТ "RD-"! А если вместо D3.1 будет D4.1, это будет означать, что на следующем слове БУДЕТ "RD+", т.к. в D4.1 1-ц больше...

Сообщение отредактировал Victor - Mar 9 2006, 07:49


--------------------
Dies diem docet.
Go to the top of the page
 
+Quote Post
dsmv
сообщение Mar 9 2006, 08:06
Сообщение #51


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Провёл следственный эксперимент :-)
Последовательно включил узлы encode8/10 и decode8/10
На вход подал тестовую последовательность и получил результат
Вход: код 10, выход
0x00 0x0B9 0x00
0x23 0x263 0x23
0x24 0x26B 0x24
0x23 0x263 0x23
0x24 0x254 0x24 - смена полярности

А вот теперь последовательность с ошибкой
0x00 0x0B9 0x00
0x23 0x263 0x23
0x24 0x263 0x23 - вот здесь ошибка
0x23 0x263 0x23
0x24 0x254 0x24 - смена полярности

Привожу временную диаграмму. Сигнал code_err это признак ошибки. Видно, что он не устанавливается.
d8_in - это входной байт
d10 - байт в кодировке 8/10
d10i - байт с ошибкой
d8_out - принятый байт
[attachment=4621:attachment] [attachment=4621:attachment]
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Magnum
сообщение Mar 9 2006, 09:28
Сообщение #52


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 26-05-05
Пользователь №: 5 397



Цитата(dsmv @ Mar 9 2006, 14:06) *
Провёл следственный эксперимент :-)
Последовательно включил узлы encode8/10 и decode8/10

Интересно, а откуда взялись эти узлы, на чем написаны? Можно их посмотреть? cheers.gif
Go to the top of the page
 
+Quote Post
dsmv
сообщение Mar 9 2006, 09:32
Сообщение #53


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Эти узлы собраны кодогенератором из ISE 7.1; Они у меня работают в реальной системе.
Могу их выслать, вместе с тестовым проектом.
Go to the top of the page
 
+Quote Post
dsmv
сообщение Mar 9 2006, 09:59
Сообщение #54


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Собственно вот тестовый проект.
Работает в Aldec ActivHDL 7.1
Прикрепленные файлы
Прикрепленный файл  encode8b10b.zip ( 16.81 килобайт ) Кол-во скачиваний: 62
 
Go to the top of the page
 
+Quote Post
Krys
сообщение Mar 9 2006, 10:39
Сообщение #55


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(dsmv @ Mar 9 2006, 14:06) *
Последовательно включил узлы encode8/10 и decode8/10
Привожу временную диаграмму. Сигнал code_err это признак ошибки. Видно, что он не устанавливается.
Да, эксперимент показал отсутствие ошибки. Но мы выше, ранее доказали, что ошибку обнаружить можно. Таким образом, можно высказать предположение, что сам алгоритм декодера несовершенен, не на 100% соответствует стандарту. (Лично я основываюсь на IEEE802.3, часть 3)
Go to the top of the page
 
+Quote Post
dsmv
сообщение Mar 9 2006, 11:14
Сообщение #56


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Я бы сказал по другому:
Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены.
А то, что будут обнаружены ВСЕ одиночные ошибки, никто не обещал.
Go to the top of the page
 
+Quote Post
Krys
сообщение Mar 9 2006, 12:01
Сообщение #57


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Не хотелось бы скатываться на банальные перепирательства, но теория всё-таки первична. Поэтому, если что-то в теории возможно, а практическая реализация не позволяет, то это уже недостатки лишь практической реализации. Таким образом, если уж быть совсем точным, то
Цитата(dsmv @ Mar 9 2006, 17:14) *
Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены...
...данной реализацией декодера. И ничего более. Уж не собираетесь ли вы опровергать теорию (а это очень неблагодарное занятие...)?
Go to the top of the page
 
+Quote Post
=AK=
сообщение Mar 9 2006, 12:14
Сообщение #58


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(dsmv @ Mar 9 2006, 20:44) *
Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены.

Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены по сигналу CODE_ERR Как я понял, речь шла о
http://www.xilinx.com/ipcenter/catalog/log...ecode_8b10b.pdf
CODE_ERR, an optional output, indicates that the 10-bit symbol on the data-in bus during the rising
edge of the clock was not a valid member of the code set. Active (logic 1) represents a CODE_ERR, and
inactive (logic 0) indicates that the 10-bit code was a valid member of the code set (although other
errors may still exist).

По моему, достаточно ясно сказано, что CODE_ERR не обнаружит все ошибки. Однако на Вашей картинке сигнал DISP_ERR ведь показал ошибки, почему Вы этот сигнал игнорируете?

Сообщение отредактировал =AK= - Mar 9 2006, 12:39
Go to the top of the page
 
+Quote Post
lutik
сообщение Mar 9 2006, 12:27
Сообщение #59


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

Группа: Свой
Сообщений: 128
Регистрация: 30-06-04
Из: Odessa
Пользователь №: 216



о..
и я подключюсь к интересующей теме
чета с этими ошибками сильно удалились от темы..

вопрос о выделении клока из кодированного потока данных все еще остается открытым (для меня лично).

итак:
есть
xapp250 от Xilinx который предлагает, используя внешний VCO, выделять клок. Как я понял из хода дискусии этот метод не устраивает не токма меня.
есть
xapp244 от Xilinx который предлагает делать семплирование бита, но он тоже не устраивает, потому как соотношение бауд рейта и системной частоты синхронизации приемника немногим больше 1.
есть
вариант кодировки манчестером, но вдвое расширять полосу канала тоже как то не улыбается, хотя там клок выделяется железно
есть
ну и совсем уж простое решение - передавать клок рядом с данными


хочется
самый "аппетитный" вариант это, что то похожее на xapp250 тока на внутренней PLL/DCM
тогда
с кодировкой 8b/10b все понятно - она дает сбалансированное кол-во 0-й и 1-ц в потоке, вопрос правда в следующем - на сколько такой поток можно использовать на внутренних DCM-ах, скажем S3
тогда
Схемотехника № 12 • декабрь 2004. описано скремблирование данных псевдослучайной последовательностью. но там проблема основная - синхронизация передающего и приемного регистра ПСП

вопросы к уважаемым
все ли перечислил, или чегой то забыл??
есть ли люди которые уже решали(решили) задачу именно выделения клока?? поделитесь плз. опытом
есть ли у альтеры какая нибудь апликуха на енту тему? а то я на их сайте не ориентируюсь

премного дякую заранее
smile.gif)


--------------------
однако..
Go to the top of the page
 
+Quote Post
Krys
сообщение Mar 9 2006, 12:36
Сообщение #60


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(lutik @ Mar 9 2006, 18:27) *
с кодировкой 8b/10b все понятно - она дает сбалансированное кол-во 0-й и 1-ц в потоке, вопрос правда в следующем - на сколько такой поток можно использовать на внутренних DCM-ах, скажем S3
Поскольку чередование нулей и единиц непериодично, то простой ПЛЛ с таким не справится. Для кода 8В/10В также требуется клок рекавери сёркит. А вот для стартстопной кодировки частота стартстопных бит фиксирована, поэтому на внутренней ПЛЛ можно выделить тактовую.
ЗЫ: не знаю, что такое DCM, не знаком с терминологией, отличной от альтеровской.
Цитата(lutik @ Mar 9 2006, 18:27) *
Схемотехника № 12 • декабрь 2004. описано скремблирование данных псевдослучайной последовательностью. но там проблема основная - синхронизация передающего и приемного регистра ПСП
Скремблирование, кажется, уже обсуждалось. Всегда найдётся такая последовательность бит, которая в результате скремблирования даст большое число нулей или единиц, что приведёт к срыву синхронизации. (если нет избыточности кодирования)
Go to the top of the page
 
+Quote Post

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

 


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


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