基于FPGA的高速串行傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
由于AURORA光纖通信的輸出時(shí)鐘頻率設(shè)定的是125 MHz,結(jié)合硬件電路的設(shè)計(jì),硬件晶振的頻率為20 MHz,因此選擇M值為000011001(25),N的值為10(4),故時(shí)鐘芯片的時(shí)鐘輸出頻率為:
時(shí)鐘控制模塊的實(shí)測(cè)時(shí)鐘信號(hào)如圖5所示。本文引用地址:http://m.butianyuan.cn/article/191038.htm
圖5是用Chipscope在線邏輯分析儀得到的波形,由于Chipscope在線邏輯分析儀的觸發(fā)時(shí)鐘是100 MHz,因此在抓取125 MHz的時(shí)鐘信號(hào)時(shí),在圖上顯示的時(shí)鐘信號(hào)占空比不定,若將時(shí)鐘芯片產(chǎn)生的時(shí)鐘頻率降低,則此現(xiàn)象消失。
2.2 AURORA發(fā)送模塊
在生成AURORA IP CORE時(shí),同時(shí)生成了一個(gè)基于AURORA協(xié)議的例示程序。因此,要實(shí)現(xiàn)基于AURORA協(xié)議的光纖通信,在發(fā)送端只需要在frame_gen_i模塊將要發(fā)送的數(shù)據(jù)打包,然后通過AURORA模塊發(fā)送出去。因此該模塊著重介紹如何將上一級(jí)傳送過來的數(shù)據(jù)進(jìn)行打包壓縮,形成適合AURORA協(xié)議的數(shù)據(jù)幀,通過AURORA協(xié)議發(fā)送到接收端。圖6為frame_gen_i模塊的RTL級(jí)模型圖。
考慮到上一級(jí)傳輸數(shù)據(jù)速率可能會(huì)與AURORA傳輸?shù)臅r(shí)鐘頻率不同,因此在發(fā)送端建立一個(gè)FIFO來做緩沖器。并且AURORA協(xié)議的發(fā)送時(shí)序圖如圖7所示??梢钥闯?,TX_SOF_N為數(shù)據(jù)包幀的開始標(biāo)志,TX_EOF_N為數(shù)據(jù)包幀的結(jié)束.標(biāo)志,TX_REM[0:r(n)]記錄最后的傳輸數(shù)據(jù)的線程,TX_SRC_RDY_N為低代表數(shù)據(jù)有效,TX_DST_RDY_N為低代表準(zhǔn)備好接受數(shù)據(jù),TX_D[0:(8n-1)]是此模塊的輸出數(shù)據(jù)。以上信息是AURORA協(xié)議的發(fā)送時(shí)序,在使用FIFO做緩沖時(shí)也應(yīng)該遵循這樣的協(xié)議。
發(fā)送端的FIFO模塊分別包括FIFO的復(fù)位信號(hào)、FIFO空、FIFO滿、以及讀/寫時(shí)鐘、使能和數(shù)據(jù)信號(hào)線。因此應(yīng)該根據(jù)FIFO的標(biāo)志位empty和full來產(chǎn)生AURORA的發(fā)送時(shí)序,參考模型如圖8所示:當(dāng)RESET信號(hào)到來之時(shí),首先將S0置為高電平,將S1置為低電平,同時(shí)根據(jù)FULL和EM-PTY的狀態(tài)確定接下來的S0和S1的狀態(tài),進(jìn)而根據(jù)以上邏輯關(guān)系得到TX_SOF_N,TX_EOF_N,TX_SRC_RDY_N等邏輯信號(hào),并且根據(jù)數(shù)據(jù)X_DST_ RDY_N和TX_SRC_RDY_N生成FIFO的讀使能。由以上邏輯可以看出,只有在FULL為1,EMPTY為0時(shí),F(xiàn)IFO的讀使能才能被打開。TX_SOF_N為數(shù)據(jù)包的幀頭標(biāo)志,TX_EOF_N為數(shù)據(jù)包的幀尾標(biāo)志,TX_STC_RDY_N為低時(shí)代表數(shù)據(jù)有效,TX_DST_RDY_N為輸入信號(hào),根據(jù)此輸入信號(hào)確定FIFO的讀寫時(shí)序。
評(píng)論