Перейти к содержанию

    

PRBS в процедуре BIST GTP-transceiver (TLK2711-SP)

Добрый день.

 

Если я правильно понял, то PRBS формируется на основании полинома 1+x^6+x^7, 127 значений. Сам полином генерируется 7-ми битным регистром. 

Вопрос №1: как правильно применить полученный регистр для тестирования приемопередатчика (при кодирование данных в коде 8b/10b)? Прикрепляю код генератора, в котором представлено два способа формирования выходных данных PRBS, есть ли среди них правильный, какова идеология?

module prbs_generator(
    output  [9:0]   data_out,
    input           txclk,
    input           prbsen,
    input           rst_n);
    
    reg     [6:0]   register;
    
    //Способ №1 -- дополняем до 8 бит а затем пропускаем через кодер 8b/10b,
    //среди просмотренных функциональных схем приемопередатчиков, кодер на выходе блока генерации PRBS не встерчал   
    coder_8b10b	coder	(
    	.data_in({(register[6]^register[5]),register}),
    	.data_out(data_out));
    
    //Способ №2 -- готовый код для передачи
    assign data_out = {3'd0,register};    
    
    //1+x^6+x^7
    always@(posedge txclk) begin
        if(!rst_n)
            register <= 7'd1;
        else if(!prbsen)
            register <= 7'd1;
        else
            register <= {register[5:0],(register[6]^register[5])};
    end

endmodule

Вопрос №3: почему для тестирования данного кодирования используется именно такой полином?

Изменено пользователем Dantist2k17

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- Вообще-то, GTP-transceiver, как и TLK2711, имеет аппаратно реализованный генератор PRBS, а как эта последовательность генерится - дело десятое.

И согласно докам, PRBS может подаваться только непосредственно на сердез. Через кодер его просто не прогнать.

Не говоря уже о том, что ни с каких 7-битных регистров такая последовательность не считывается и, тем более, не может просто  дополняться до 8-ми бит. И даже если бы это было возможно, кодер сделает из PRBS нечто другое.

- ???.

- Длина полинома выбирается из потребной длины PRBS. Для тестирования собственно трансивера обычно используется PRBS7, длина последовательности 127 бит считается для этого достаточной. Но если для TLK2711 это единственный вариант PRBS, у GTP возможности поболее.

Ну и к вопросу выбора полинома при заданной длине. Не все полиномы одинаково хороши. "Номерные" полиномы PRBSx давно известны, проверены на псевдослучайность и широко используются для задач генерации PRBS нужной длины (2^x-1).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 hours ago, prig said:

- Вообще-то, GTP-transceiver, как и TLK2711, имеет аппаратно реализованный генератор PRBS, а как эта последовательность генерится - дело десятое.

Все дело в том, что я как раз и занимаюсь аппаратной реализацией TLK2711-SP в составе ASIC.

 

Quote

И согласно докам, PRBS может подаваться только непосредственно на сердез. Через кодер его просто не прогнать.

Не говоря уже о том, что ни с каких 7-битных регистров такая последовательность не считывается и, тем более, не может просто  дополняться до 8-ми бит. И даже если бы это было возможно, кодер сделает из PRBS нечто другое.

Что вы подразумеваете под сердез, сериализатор? Если да, то согласен, тоже самое обозначено в datashhet файле на TLK2711-SP (страница 13). Однако там прорисована 10-ти битная параллельная шина, которая затем через мультиплексор идет на сериализатор. В том же самом фале в разделе 8.3.5 прописано, что TLP2711-SP имеет 127 встроенных PRBS функций. При этом известно, что аппаратная генерация полинома 1+x^6+x^7 осуществляется на основе 7-ми битного регистра, который генерирует последовательность из 127 чисел (разрядностью 7 каждое). Отсюда и возникли вопросы что из себя представляет PRBS, в процессе просмотра datasheet файлов сформировалось две версии: последовательность из 127 бит или же из 127 7-ми битных чисел. Однако обе они не ложатся на описание TLP2711-SP.

 

Quote

Для тестирования собственно трансивера обычно используется PRBS7, длина последовательности 127 бит считается для этого достаточной.

Вопрос и заключается, почему считается достаточной? Но это уже факультативный интерес.

Изменено пользователем Dantist2k17

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 hours ago, Dantist2k17 said:

... При этом известно, что аппаратная генерация полинома 1+x^6+x^7 осуществляется на основе 7-ми битного регистра, который генерирует последовательность из 127 чисел (разрядностью 7 каждое)...

Вопрос и заключается, почему считается достаточной? Но это уже факультативный интерес.

 

- Вообще-то, этот регистр сдвиговый, с обратными связями, и генерируется битовая последовательность (обычно рисуют со сдвигом вправо, правый бит - выход, левый бит - вход ОС).

В принципе, эту битовую последовательность можно сразу отправлять на выход передатчика. Ну а на схеме TLP2711 её пакуют по 10 бит и потом записывают в 10-битный сериализатор, т.е., сдвиговый регистр. Разница только в задержке на 10 тактов.

- Я так думаю, что если есть проблемы в канале передачи, на 127 битах PRBS они себя практически всегда проявят.

А вот для измерения джиттера используют полином подлиннее. Если память не изменяет PRBS16. Просто ч.б. набрать статистику.

 

Я бы таки посоветовал Вам разобраться с полиномами. Постарайтесь понять, что это такое, и с чем их едят.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 hour ago, prig said:

- Вообще-то, этот регистр сдвиговый, с обратными связями, и генерируется битовая последовательность (обычно рисуют со сдвигом вправо, правый бит - выход, левый бит - вход ОС).

Да, с этим я разобрался, в блоке always (в первом сообщении) он и описан.

Quote

В принципе, эту битовую последовательность можно сразу отправлять на выход передатчика. Ну а на схеме TLP2711 её пакуют по 10 бит и потом записывают в 10-битный сериализатор, т.е., сдвиговый регистр. Разница только в задержке на 10 тактов.

Ну да, вполне возможно, при этом возникает вопрос, что передает передатчик в течении 9 тактов (один такт из 10-ти займет бит из PRBS)? А способ разделить 127 бит на n-ое количество слов по 10 бит не представляется возможным. Еще конечно можно передавать по одному биту 10 раз подряд, но какой в этом смысл. Передать можно все что угодно и как угодно, хочется прояснить как правильно и почему именно так.

Разобраться не помешает, теоретическая основа в подобных темах весьма туманна.

Изменено пользователем Dantist2k17

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 hours ago, Dantist2k17 said:

Да, с этим я разобрался, в блоке always (в первом сообщении) он и описан.

Ну да, вполне возможно, при этом возникает вопрос, что передает передатчик в течении 9 тактов (один такт из 10-ти займет бит из PRBS)? А способ разделить 127 бит на n-ое количество слов по 10 бит не представляется возможным. Еще конечно можно передавать по одному биту 10 раз подряд, но какой в этом смысл. Передать можно все что угодно и как угодно, хочется прояснить как правильно и почему именно так.

Разобраться не помешает, теоретическая основа в подобных темах весьма туманна.

 

- Ну, если бы Вы ещё поняли, зачем нужно то, с чем Вы разобрались, "Способ No1" не появился бы.

- А кто сказал, что он должен что-то передавать эти 9 тактов? Он просто позже начнёт передавать.

Вы поймите, что цель использования этой приблуды - выдать PRBS заданной длины в линию и заткнуться.

А приёмник должен эту последовательность принять и что-то по ней определить. Что именно, зависит от конкретной задачи. И всё.

И совершенно не принципиально, как нарезать те же 127 бит. Можно дополнительно сгенерить ничего не значащие недостающие 3 бита и затыкаться по счётчику переданных бит.

Ну а причин, почему в чипах PRBS нарезают, а не гонят напрямую, может быть много. Об этом как раз должны знать разработчики чипов.

- Ну, Вы и без теории смогли в 7-ми битах заблудиться. Так что, хотя бы в качестве тренировки. Да и вообще, самообразование - штука полезная.

 

Ну да ладно, если будет желание, потихоньку разберётесь.

Удачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 hours ago, prig said:

- Ну, если бы Вы ещё поняли, зачем нужно то, с чем Вы разобрались, "Способ No1" не появился бы.

- А кто сказал, что он должен что-то передавать эти 9 тактов? Он просто позже начнёт передавать.

Вы поймите, что цель использования этой приблуды - выдать PRBS заданной длины в линию и заткнуться.

А приёмник должен эту последовательность принять и что-то по ней определить. Что именно, зависит от конкретной задачи. И всё.

И совершенно не принципиально, как нарезать те же 127 бит. Можно дополнительно сгенерить ничего не значащие недостающие 3 бита и затыкаться по счётчику переданных бит.

Ну а причин, почему в чипах PRBS нарезают, а не гонят напрямую, может быть много. Об этом как раз должны знать разработчики чипов.

- Ну, Вы и без теории смогли в 7-ми битах заблудиться. Так что, хотя бы в качестве тренировки. Да и вообще, самообразование - штука полезная.

 

Ну да ладно, если будет желание, потихоньку разберётесь.

Удачи.

Спасибо Вам конечно за отзывчивость. Тем не менее, осадок от общения так себе. Вопрос разрешен.

Изменено пользователем Dantist2k17

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 10/4/2018 at 9:25 PM, Dantist2k17 said:

...Тем не менее, осадок от общения так себе. ...

 

И это говорит человек, который занимается "аппаратной реализацией TLK2711-SP в составе ASIC"? Постеснялись бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 hours ago, prig said:

И это говорит человек, который занимается "аппаратной реализацией TLK2711-SP в составе ASIC"? Постеснялись бы.

Чего же мне стесняться? Поясните.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация