dsmv 0 7 марта, 2006 Опубликовано 7 марта, 2006 · Жалоба Думаю, что не ошибка :) Прошу прощения за тавтологию, но ошибка в младшем бите будет обнаружена, т.к. есть еще "running disparity", который вы измените поменяв бит, единственное, что ошибка обнаружится только при приеме следующего слова. К тому же любая нарушающая баланс ошибка, а не только одиночная, будет обнаружена :) Мне кажется, что в данном случае не обнаружиться, поскольку K28.4 не нарушает баланс. В нём одинаковое число нулей и единиц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Мне кажется, что в данном случае не обнаружиться, поскольку K28.4 не нарушает баланс. В нём одинаковое число нулей и единиц.Боюсь, вы всё-таки ошибаетесь: кодовая группа К28.3, которую вы привели, должна следовать после отрицательной перменной составляющей, и в результате в конце ожидается положительная переменная составляющая, поэтому следующая кодовая группа должна иметь отрицательную переменную составляющую для компенсации. В случае возникновения ошибки и приёма кодовой группы К28.4, которую вы привели и которая также должна следовать после отрицательной переменной составляющей, ожидаться будет положительная переменная составляющая для компенсации постоянного тока. Таким образом, ожидаться будет противоположная переменная составляющая, поэтому ошибка будет обнаружена. Кроме того, вы привели пример на зарезервированных кодовых группах, которые автор темы волен не использовать, как их не используют и в гигабитном изернете. Возможно, это лишь ваш неудачный пример. Если хотите, приведите другой пример, с реально действующими кодовыми группами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsmv 0 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Возможно, это лишь ваш неудачный пример. Если хотите, приведите другой пример, с реально действующими кодовыми группами. Вот ещё пример: D3.1 110001 1001 D4.1 110101 1001 Это коды уже из группы данных. Так что они точно используются. Код D3.1 является нейтральным. Мне пока не совсем понятен механизм перехода между положительной и отрицательной полярностью. Переход обязательно должен производиться, или возможена передача нескольких слов без перехода ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 9 марта, 2006 Опубликовано 9 марта, 2006 (изменено) · Жалоба В этом примере всё аналогично предыдущему: для кодовой группы D3.1 ожидается, что следующая кодовая группа будет положительной полярностью. А для кодовой группы D4.1 ожидается, что следующая будет отрицательной. Согласен? Поэтому обнаружить ошибку не составляет труда именно по несоответствию ожидаемой и действительно принятой полярности. Код D3.1 является нейтральным. Мне пока не совсем понятен механизм перехода между положительной и отрицательной полярностью. Переход обязательно должен производиться, или возможена передача нескольких слов без перехода ?На одну кодовую группу одной полярности должна приходиться кодовая группа другой полярности, притом подряд несколько одной полярности, потом подряд несколько другой полярности быть не может: только одна за другой. Между разными полярностями может вставать хоть сколько нейтральных, это не изменит баланса, поэтому на них плевать. Изменено 9 марта, 2006 пользователем Janna Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Victor 0 9 марта, 2006 Опубликовано 9 марта, 2006 (изменено) · Жалоба ... для кодовой группы D3.1 ожидается, что следующая кодовая группа будет положительной полярностью. Мне кажется, что не _следующая будет_, а _предыдущая была_ полярность RD-... Вот ещё пример: D3.1 110001 1001 D4.1 110101 1001 Понимаете, где бы ни был использован D3.1, это будет означать, что БЫЛ "RD-", а раз в D3.1 кол-во 0-й = кол-ву 1-ц, значит и на следующем БУДЕТ "RD-"! А если вместо D3.1 будет D4.1, это будет означать, что на следующем слове БУДЕТ "RD+", т.к. в D4.1 1-ц больше... Изменено 9 марта, 2006 пользователем Victor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsmv 0 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Провёл следственный эксперимент :-) Последовательно включил узлы 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 - принятый байт Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Magnum 0 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Провёл следственный эксперимент :-) Последовательно включил узлы encode8/10 и decode8/10 Интересно, а откуда взялись эти узлы, на чем написаны? Можно их посмотреть? :cheers: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsmv 0 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Эти узлы собраны кодогенератором из ISE 7.1; Они у меня работают в реальной системе. Могу их выслать, вместе с тестовым проектом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsmv 0 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Собственно вот тестовый проект. Работает в Aldec ActivHDL 7.1 encode8b10b.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Последовательно включил узлы encode8/10 и decode8/10 Привожу временную диаграмму. Сигнал code_err это признак ошибки. Видно, что он не устанавливается. Да, эксперимент показал отсутствие ошибки. Но мы выше, ранее доказали, что ошибку обнаружить можно. Таким образом, можно высказать предположение, что сам алгоритм декодера несовершенен, не на 100% соответствует стандарту. (Лично я основываюсь на IEEE802.3, часть 3) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsmv 0 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Я бы сказал по другому: Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены. А то, что будут обнаружены ВСЕ одиночные ошибки, никто не обещал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба Не хотелось бы скатываться на банальные перепирательства, но теория всё-таки первична. Поэтому, если что-то в теории возможно, а практическая реализация не позволяет, то это уже недостатки лишь практической реализации. Таким образом, если уж быть совсем точным, то Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены......данной реализацией декодера. И ничего более. Уж не собираетесь ли вы опровергать теорию (а это очень неблагодарное занятие...)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 12 9 марта, 2006 Опубликовано 9 марта, 2006 (изменено) · Жалоба Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены. Эксперимент показал, что существуют одиночные ошибки, которые не могут быть обнаружены по сигналу 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 ведь показал ошибки, почему Вы этот сигнал игнорируете? Изменено 9 марта, 2006 пользователем =AK= Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pyadvychuk 0 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба о.. и я подключюсь к интересующей теме чета с этими ошибками сильно удалились от темы.. вопрос о выделении клока из кодированного потока данных все еще остается открытым (для меня лично). итак: есть xapp250 от Xilinx который предлагает, используя внешний VCO, выделять клок. Как я понял из хода дискусии этот метод не устраивает не токма меня. есть xapp244 от Xilinx который предлагает делать семплирование бита, но он тоже не устраивает, потому как соотношение бауд рейта и системной частоты синхронизации приемника немногим больше 1. есть вариант кодировки манчестером, но вдвое расширять полосу канала тоже как то не улыбается, хотя там клок выделяется железно есть ну и совсем уж простое решение - передавать клок рядом с данными хочется самый "аппетитный" вариант это, что то похожее на xapp250 тока на внутренней PLL/DCM тогда с кодировкой 8b/10b все понятно - она дает сбалансированное кол-во 0-й и 1-ц в потоке, вопрос правда в следующем - на сколько такой поток можно использовать на внутренних DCM-ах, скажем S3 тогда Схемотехника № 12 • декабрь 2004. описано скремблирование данных псевдослучайной последовательностью. но там проблема основная - синхронизация передающего и приемного регистра ПСП вопросы к уважаемым все ли перечислил, или чегой то забыл?? есть ли люди которые уже решали(решили) задачу именно выделения клока?? поделитесь плз. опытом есть ли у альтеры какая нибудь апликуха на енту тему? а то я на их сайте не ориентируюсь премного дякую заранее :)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 9 марта, 2006 Опубликовано 9 марта, 2006 · Жалоба с кодировкой 8b/10b все понятно - она дает сбалансированное кол-во 0-й и 1-ц в потоке, вопрос правда в следующем - на сколько такой поток можно использовать на внутренних DCM-ах, скажем S3Поскольку чередование нулей и единиц непериодично, то простой ПЛЛ с таким не справится. Для кода 8В/10В также требуется клок рекавери сёркит. А вот для стартстопной кодировки частота стартстопных бит фиксирована, поэтому на внутренней ПЛЛ можно выделить тактовую. ЗЫ: не знаю, что такое DCM, не знаком с терминологией, отличной от альтеровской. Схемотехника № 12 • декабрь 2004. описано скремблирование данных псевдослучайной последовательностью. но там проблема основная - синхронизация передающего и приемного регистра ПСПСкремблирование, кажется, уже обсуждалось. Всегда найдётся такая последовательность бит, которая в результате скремблирования даст большое число нулей или единиц, что приведёт к срыву синхронизации. (если нет избыточности кодирования) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться