Jump to content
    

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: почему для тестирования данного кодирования используется именно такой полином?

Edited by Dantist2k17

Share this post


Link to post
Share on other sites

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

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

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

- ???.

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

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

Share this post


Link to post
Share on other sites

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 бит считается для этого достаточной.

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

Edited by Dantist2k17

Share this post


Link to post
Share on other sites

5 hours ago, Dantist2k17 said:

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

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

 

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

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

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

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

 

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

 

Share this post


Link to post
Share on other sites

1 hour ago, prig said:

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

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

Quote

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

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

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

Edited by Dantist2k17

Share this post


Link to post
Share on other sites

2 hours ago, Dantist2k17 said:

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

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

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

 

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

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

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

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

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

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

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

 

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

Удачи.

Share this post


Link to post
Share on other sites

2 hours ago, prig said:

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

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

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

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

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

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

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

 

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

Удачи.

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

Edited by Dantist2k17

Share this post


Link to post
Share on other sites

On 10/4/2018 at 9:25 PM, Dantist2k17 said:

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

 

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

Share this post


Link to post
Share on other sites

10 hours ago, prig said:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...