硬件加速 | 常用電路設計之PRBS僞隨機碼發生器的設計

一、PRBS僞隨機碼產生原理

        PRBS 僞隨機編碼是一種專門用於在高速設計中測試高速串行通道傳輸誤碼率的一種編碼類型。 PRBS僞隨機碼不僅具有隨機序列的一些統計特性和高斯噪聲所有的良好的自相關特徵,而且具有某種確定的編碼規則,同時又便於重複產生和處理,因而在通信領域應用廣泛。生成原理是根據本原表達式來生成一段隨機碼流,本原表達式可以用線性反饋移位寄存器來表示,移位寄存器的長度稱爲階數n,常用的階數有 7, 9, 11, 15, 20, 23, 31,則序列的週期爲, 該隨機碼流具有周期循環特性,PRBS 編碼的長度與它的階數成指數式增長,

       PRBS 編碼的驗證就是 PRBS 編碼生成的逆過程, 詳細說來就是首先在接收機端緩存一定長度的數據, 數據長度等於你的階數, 然後將緩存器中的數據進行利用 PRBS 編碼線性反饋移位寄存器進行編碼, 最後將編碼後的數據與新一輪接收到的數據的每一位進行比較, 如果比較結果一致則表示校驗通過。

        這裏以階數爲15的僞隨機碼爲例,本原表達式爲:x15+x14+1x^{15}+x^{14}+1,該本原表達式對應的線性移位寄存器爲:

在這裏插入圖片描述

二、PRBS編碼的Verilog實現

module  prbs(
	//system signals
	input	sclk							, 
	input	s_rst_n							,
	input	load		,
	input			[14:0]		seed		,
	output			[14:0]		prbs15		,
	//
);
reg 			[14:0]				prbs15	;
integer i;
always @ (posedge sclk or negedge s_rst_n) begin
	if(s_rst_n == 1'b0)
		prbs15<=15'b0;
	else if(load)
                prbs15<=seed;
    else begin
    	for (i = 0; i <= 14; i = i + 1)
    	    begin
    	        prbs15[i]<=prbs15[i-1];
    	        prbs15[0]=prbs15[14]^prbs15[13];
    	    end
    end
end
endmodule
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章