PRBS(偽隨機二進制序列)或PN(偽噪聲)發(fā)生器在數(shù)字數(shù)據(jù)傳輸中有廣泛的應用(參考文獻1)。這些電路通常由帶反饋的簡單移位寄存器構(gòu)成,它可以用作串行數(shù)據(jù)鏈路的測試源。正如它們名稱所示,輸出序列并非真正隨機,實際上是在2N-1位后重復,其中N表示移位寄存器的長度。多項式標注的階數(shù)對應于移位寄存器的長度,因此PRBS的周期就為描述序列提供了一個簡便的方法。
通信設備的測試要使用某種標準多項式。例如,x7+x6+1產(chǎn)生一個 127位的PRBS周期,而x23+x18+1 則產(chǎn)生大于800萬位的周期,x31+x28+1產(chǎn)生的周期更長,256倍。有較長周期的 PRBS 通常提供更多的數(shù)據(jù)類型,從而能更仔細地檢測傳輸系統(tǒng)的性能。
一個采用中間級反饋的簡單移位寄存器就可以產(chǎn)生一個PRBS。構(gòu)成寄存器的觸發(fā)器運行速度必須與傳輸速度一致,如果你打算建立一個運行在千兆赫茲時鐘速率下的長周期PRBS發(fā)生器,則可能產(chǎn)生問題。德州儀器公司的高速串行器TLK2201B運行在高達1.6 Gbps速率下,它提供了一個可能的解決方法。但是,該串行器并不能以原有的全部串行格式接受PRBS,而一次只能接收10位部分。
圖1中電路表示一個31階的并行 PRBS 發(fā)生器,它提供10位輸出段,可以很容易適應其它的PRBS序列和輸出寬度。在設計電路時,先畫一個有31個觸發(fā)器的圖,每行包含10個觸發(fā)器。在此例中,設計包含四行,第一行只有一個觸發(fā)器。圖1顯示了觸發(fā)器和編號約定之間的時序關系。
組成的結(jié)構(gòu)形成一個并行移位寄存器,其中第3行直接送至第 4 行,第2行送至第3行,等等。第2行的觸發(fā)器10至觸發(fā)器2和第1行的觸發(fā)器1從反饋路徑接受它們的輸入。這種排列可保證相連行中的觸發(fā)器提供10倍于當時間隔的輸出,因而發(fā)生器的時鐘速度為等效串行移位寄存器PRBS實現(xiàn)速度的十分之一。
為確定反饋信號,推導出描述一個標準(即串行)PRBS 發(fā)生器輸出的公式,對多項式 x31+x28+1,得出 y(n)=y(n-31) xor y(n-28)。用此公式可以推導出描述反饋信號fdbk1 ~ fdbk10的公式。即:fdbk1:y (n+9)=y(n-22) xor y(n-19),fdbk2:y(n+8)=y(n-23) xor y(n-20),... fdbk10:y(n)=y(n-31) xor y(n-28)。例如,反饋信號 fdbk1 來自觸發(fā)器22和19輸出驅(qū)動的兩個輸入異或門的輸出。
圖1電路是用CPLD或FPGA器件實現(xiàn)的VHDL代碼。15行~18 行定義了并行移位寄存器,21行~23行定義了反饋電路的結(jié)構(gòu)。本設計實例的電路適合于Xilinx的XC3S50 Spartan 3器件,它運行在150 MHz 時鐘速率下;也可以通過一個10位接口,以150 MHz驅(qū)動一個德州儀器公司的 TLK2201B串行器。Xilinx's ISE 7.1i 軟件編譯電路的VHDL文件。圖2顯示串行器輸出的眼圖,并確保電路工作在1.5 Gbps。編譯軟件預測電路應工作在300 MHz以上時鐘速率下,但TLK2201B的極限工作頻率為150 MHz。
參考文獻
1, Miller, Andy, and Mike Gulotta, "PN generators using the SRL macro," Application Note APP211, Xilinx Inc, June 15, 2004.