一種基于FPGA的高速誤碼測(cè)試儀的設(shè)計(jì)
由FPGA控制SY87700V從122M數(shù)據(jù)提取時(shí)鐘和恢復(fù)數(shù)據(jù)的功能仿真的結(jié)果波形圖(用Modelsim仿真)如下圖5所示。本文引用地址:http://m.butianyuan.cn/article/191002.htm
測(cè)試文件中給data_i賦值為000011111,可以觀察出FREQUSEL1輸出值1,F(xiàn)REQUSEL2輸出值為0,F(xiàn)REQUSEL3輸出值為1,DIVSEL1輸出值為0,DIVSEL2輸出值為1。CLKSEL輸出高電平(這一信號(hào)可以控制SY87700V完成提取的輸入數(shù)據(jù)時(shí)鐘的功能)。CD也輸出高電平(使SY87700V能正常的進(jìn)行數(shù)據(jù)恢復(fù)和時(shí)鐘提取)。從圖中可以看出SY87700V控制模塊輸出的信號(hào)可以控制SY87700V完成對(duì)122M數(shù)據(jù)的時(shí)鐘提取和數(shù)據(jù)恢復(fù),實(shí)現(xiàn)預(yù)想的邏輯功能。
1.3 計(jì)數(shù)模塊
計(jì)數(shù)模塊是用來(lái)計(jì)算總的碼數(shù)和誤碼數(shù)以及誤碼塊數(shù)的,該計(jì)數(shù)器是一個(gè)同步復(fù)位計(jì)數(shù)器。由verilog HDL代碼綜合出的圖元如圖6所示。
該計(jì)數(shù)模塊最大的計(jì)數(shù)值達(dá)252,用Modelsim仿真軟件對(duì)計(jì)數(shù)模塊進(jìn)行功能仿真的結(jié)果如圖7所示:
在測(cè)試文件中,c_i賦值為一個(gè)脈沖流,在cnt_o輸出的計(jì)數(shù)結(jié)果是正確的??梢耘袛喑鲈撃K的功能的正確性。
1.4 偽隨機(jī)序列發(fā)送模塊
偽隨機(jī)序列發(fā)送模塊的任務(wù)是以SY87739L合成的頻率為時(shí)鐘產(chǎn)生偽隨機(jī)序列并串行輸出偽隨機(jī)序列。該模塊可以產(chǎn)生三種級(jí)數(shù)的偽隨機(jī)序列,生成的偽隨機(jī)序列串行輸出。具體合成那一級(jí)數(shù)決定于washbone模塊(FPGA與單片機(jī)的通信控制模塊)輸出的控制信號(hào):P09T-en(合成9級(jí)m序列使能信號(hào))、P15T-en(合成15級(jí)m序列使能信號(hào))、P23T-en(合成23級(jí)m序列使能信號(hào))。三個(gè)信號(hào)中哪個(gè)為高電平就合成相應(yīng)級(jí)數(shù)的偽隨機(jī)序列。由Verilog HDL代碼綜合出的圖元如圖8所示。
功能仿真結(jié)果(合成23級(jí)偽隨機(jī)序列)如圖9所示。
在測(cè)試文件中賦給該模塊的輸入信號(hào)相應(yīng)的值,使其完成合成23級(jí)偽隨機(jī)序列的功能。在上圖中,ser_o串行輸出23級(jí)的m序列,可以判斷該模塊可以成功的合成m序列實(shí)現(xiàn)誤碼測(cè)試儀發(fā)送端的功能。
1.5 數(shù)據(jù)接收模塊
FPGA中的接收模塊實(shí)現(xiàn)的功能有:1)m序列發(fā)生,2)是誤碼檢測(cè)。前者的邏輯功能與發(fā)送端模塊相類似,其作用是產(chǎn)生一個(gè)與發(fā)端碼形相同并且比特對(duì)齊的本地m序列;后者的作用是將收到的數(shù)據(jù)與本地m序列相比較,檢測(cè)是否有誤碼,若有誤碼則輸出一個(gè)誤碼脈沖給計(jì)數(shù)模塊進(jìn)行統(tǒng)計(jì)。該模塊可以接收三種級(jí)數(shù)的偽隨機(jī)序列,由Verilog程序綜合出的圖元如圖10所示。
發(fā)送的測(cè)試碼為周期是29-1的m序列時(shí),數(shù)據(jù)接收模塊的仿真波形如圖11所示。
在仿真文件中對(duì)該模塊輸入端口ser_i賦值一個(gè)碼流,當(dāng)賦值碼流與本地偽隨機(jī)序列同步的(同頻同相),數(shù)據(jù)接收模塊每比對(duì)一bit碼,就在sum_o端口輸出一高電平,若比對(duì)時(shí)有誤碼,則prt_o端口輸出一高電平。在上圖中,PRBS_r是本地合成的偽隨機(jī)序列,可以看出該模塊能夠?qū)崿F(xiàn)了m序列的產(chǎn)生和誤碼的檢測(cè)和統(tǒng)計(jì)功能。
評(píng)論