高速突發(fā)模式誤碼測試儀的FPGA實(shí)現(xiàn)方案
2 FPGA中邏輯功能模塊設(shè)計(jì)
作為實(shí)現(xiàn)突發(fā)模式誤碼測試儀的重要芯片,FPGA主要實(shí)現(xiàn)如下功能:
①發(fā)送端產(chǎn)生兩路高速的時(shí)分復(fù)用信號(hào),這兩路信號(hào)要具有GPON上行數(shù)據(jù)包的特點(diǎn),即32位保護(hù)時(shí)間,44位前導(dǎo)碼,20位定界符。
②接收部分將接收到的4位寬的數(shù)據(jù)并化為8位寬的數(shù)據(jù),并搜尋定界符將接收的數(shù)據(jù)進(jìn)行邊界對(duì)齊。
③誤碼檢測器將接收到的邊界對(duì)齊后的數(shù)據(jù)與本地產(chǎn)生的偽隨機(jī)碼進(jìn)行比對(duì),僅對(duì)有效數(shù)據(jù)中出現(xiàn)的誤碼進(jìn)行統(tǒng)計(jì)。
④同步檢測,失步后的重新同步。
圖2為FPGA中實(shí)現(xiàn)的主要邏輯功能模塊。
①控制信號(hào)譯碼器根據(jù)Microblaze微處理器通過GPIO_IN輸入的地址信息,將控制信息賦值給誤碼測試邏輯模塊相應(yīng)的控制信號(hào)??刂菩畔⒅饕ǎ喊L度、保護(hù)時(shí)間長度、前導(dǎo)碼長度、碼型選擇、GTP屬性的DRP地址和值、時(shí)鐘合成芯片的控制信息等。
②狀態(tài)編碼器將誤碼測試模塊的狀態(tài)信息存儲(chǔ)映射到不同地址的GPIO_OUT上,然后傳送給Microblaze微處理器。輸出的狀態(tài)信息主要包括:誤碼比特?cái)?shù)、接收到的總碼數(shù)、同步狀態(tài)、接收無信號(hào)等。
③碼型產(chǎn)生器模塊包含PRBS產(chǎn)生器和數(shù)據(jù)包頭產(chǎn)生器2個(gè)子模塊。PRBS產(chǎn)生器根據(jù)碼型選擇控制信號(hào)產(chǎn)生相應(yīng)碼型的8位寬度偽隨機(jī)序列,數(shù)據(jù)包頭產(chǎn)生器模擬GPON上行數(shù)據(jù)包包頭結(jié)構(gòu)的特點(diǎn)中產(chǎn)生類似前導(dǎo)碼和定界符的碼型。碼型產(chǎn)生器模塊還包含1個(gè)數(shù)據(jù)包封裝有限狀態(tài)機(jī),它的主要作用是產(chǎn)生發(fā)送碼狀態(tài)的控制信號(hào),將包頭數(shù)據(jù)、包間隔(保護(hù)時(shí)間)、CID(長連O/1)穿插在PRBS中以模擬GPON上行數(shù)據(jù)。包含兩路包信號(hào)的數(shù)據(jù)txdata在與包分離信號(hào)相與后,分離成兩路時(shí)分復(fù)用的信號(hào)txdata0和txdatal,時(shí)序如圖3所示。
④GTP0和GTPl為FPGA芯片的固核。它將低速的8位寬度的并行數(shù)據(jù)txdatal和txdata2串化為1路高速的串行數(shù)據(jù),可以通過修改GTP的DRP屬性來改變發(fā)送數(shù)據(jù)的速率。GTP還負(fù)責(zé)向發(fā)送端提供同步時(shí)鐘。
⑤數(shù)據(jù)重構(gòu)模塊將接收到的4位寬的數(shù)據(jù)并化為8位寬的數(shù)據(jù),并搜尋16位定界符將接收的數(shù)據(jù)進(jìn)行邊界對(duì)齊。
⑥誤碼檢測器主要由1個(gè)本地偽隨機(jī)序列產(chǎn)生器、1個(gè)接收狀態(tài)機(jī)和1個(gè)同步檢測狀態(tài)機(jī)構(gòu)成。本地偽隨機(jī)序列產(chǎn)生器與發(fā)送端的隨機(jī)序列產(chǎn)生器階數(shù)和本原多項(xiàng)式相同,它生成的偽隨機(jī)數(shù)據(jù)與接收到的數(shù)據(jù)進(jìn)行比對(duì),對(duì)比的結(jié)果由誤碼計(jì)數(shù)器進(jìn)行統(tǒng)計(jì)。接收狀態(tài)機(jī)根據(jù)定界符檢測信號(hào)和包長(包1或包2)計(jì)數(shù)器來判斷接收的數(shù)據(jù)是否為有效數(shù)據(jù),并生成一個(gè)有效數(shù)據(jù)指示信號(hào)。同步檢測狀態(tài)機(jī)根據(jù)比對(duì)結(jié)果判斷本地隨機(jī)序列產(chǎn)生器生成的數(shù)據(jù)與接收到的數(shù)據(jù)是否已經(jīng)同步,如果沒有同步,本地偽隨機(jī)序列產(chǎn)生器將從接收的數(shù)據(jù)中截取32位的連續(xù)信號(hào)作為其移位寄存器的初始值來產(chǎn)生后面的數(shù)據(jù)以重新同步(灌碼同步)。
⑦誤比特計(jì)數(shù)器用來統(tǒng)計(jì)誤比特?cái)?shù),它僅對(duì)有效數(shù)據(jù)中出現(xiàn)的誤碼進(jìn)行統(tǒng)計(jì)。接收字計(jì)數(shù)器用來統(tǒng)計(jì)接收到的有效數(shù)據(jù)字節(jié)數(shù)。
3 控制系統(tǒng)設(shè)計(jì)
本設(shè)計(jì)中使用Microblaze嵌入式軟核處理器來實(shí)現(xiàn)對(duì)誤碼測試儀邏輯部分的控制,控制部分的硬件框圖如圖4所示。GPIO1用于處理器與BERT核的通信;GPIO2與LED和撥碼開關(guān)相連,用于顯示狀態(tài)和板級(jí)控制誤碼測試儀;GPl03與LCD相連,將誤碼測試結(jié)果顯示于LCD上;count-er 64為64位寬的計(jì)數(shù)器,用于記時(shí)。UART通過RS232與電腦相連,讀取在PC上設(shè)定的控制信息并將誤碼測試結(jié)果和誤碼儀的狀態(tài)詳細(xì)地顯示在PC上。
評(píng)論