概述
本文開源一個FPGA高速串行通信項目:Aurora 8b10b光通信。7 Series FPGAs Transceivers Wizard IP是Xilinx官方7系列FPGA的高速串行收發(fā)器,本工程主要是圍繞該IP核采用Vivado提供的例程創(chuàng)建。
下面主要介紹一下7 Series FPGAs Transceivers Wizard IP核的參數(shù)配置以及如何建立該項目Vivado工程。
軟硬件平臺
軟件平臺 :Vitis 2019.2;
硬件平臺 :XC7Z035FFG676-2;
IP核參數(shù)配置
GT Selection
GT Selection相關(guān)參數(shù)配置保持默認即可;
Line Rate, RefClk Selection
Protocol :此選項下有多種協(xié)議可供選擇,這里選擇 Aurora 8b10b single lane 4bytes,對外接口也就是32位;
TX & RX :收發(fā)器是獨立的,可以選擇不同的編碼和速度,對于GTX收發(fā)器最大是10.3125Gbps,這里選擇5Gbps。參考時鐘必須和FPGA板卡上的時鐘一致,為125MHz。
Transceiver Selection :該項目采用的FPGA型號為MK7325,有兩個SFP接口,分別連接到GTX_X0Y12和GTX_X0Y13;
Encoding and Clocking
TX & RX :內(nèi)部數(shù)據(jù)寬度設置為20(16bit數(shù)據(jù)利用8b10b編碼為20bits),兩個內(nèi)部數(shù)據(jù)拼接為1個32bit外部數(shù)據(jù),編碼方式采用8b10b編碼,這種編碼方式最主要的目的是保持 直流平衡,根據(jù)特定的編碼表實現(xiàn)數(shù)據(jù)傳輸過程中0和1的數(shù)量基本一致,減少連續(xù)0或1的情況。DRP/System Clock是動態(tài)重配置/系統(tǒng)工作時鐘,通過DPR可以根據(jù)所配置線速率和協(xié)議實時調(diào)整收發(fā)器參數(shù)。DRP時鐘頻率設置為100MHz,可以通過外部PLL產(chǎn)生,利用DRP時鐘初始化一些GTX控制器信號或者參數(shù);
Synchronization and Clocking :TXUSERCLK,和 RXUSERCLK 時鐘的選擇一般TXUSERCLK可以直接選擇TXOUTCLK作為用戶時鐘,而RXUSERCLK可以選擇TXOUTCLK也可以選擇RXUSERCLK,還可以選擇RXPLLREFCLK作為用戶時鐘。這里就涉及到一個同步的概念,如果時鐘不一致必須設置TX和RX的 BUFFER,默認都是設置的。另外輸入TX的發(fā)送時鐘和RX的恢復時鐘差異交大,可能會導致RX BUFFER的溢出或者讀空,而導致數(shù)據(jù)出錯。比較好的解決辦法就是設置RXUSERCLK為RXOUTCLK,就是利用恢復時鐘作為用戶時鐘,這樣就很好的解決了同步的問題了。
Comma Alignment and Equalization
Comma Value :設置K碼為K28.5,K碼用于修正數(shù)據(jù)對齊,其它選項保持默認配置即可;
PCIe SATA PRBS
保持默認配置即可;
CB and CC Sequence
Clock correction :選擇支持時鐘校準,設置每5000個字節(jié)發(fā)送一組CC Seq,因為從數(shù)據(jù)流中恢復出來的時鐘和本地產(chǎn)生的FIFO讀側(cè)的時鐘的頻率不可能完全一致,所以才要進行CC處理。這個周期是根據(jù)發(fā)送側(cè)和接收側(cè)的時鐘差算出來,然后再根據(jù)實際調(diào)試結(jié)果進行一定的修正。
Summary
根據(jù)上圖可以看出,TXUSRCLK和RXUSRCLK頻率為250M,TXUSRCLK2和 RXUSRCLK2為125M,也就是我們寫代碼要使用的時鐘。
Vivado工程創(chuàng)建
右擊IP核,選擇 open IP example design;
其中,gt aurora GT FRAME GEN模塊功能是產(chǎn)生要發(fā)送的測試數(shù)據(jù),gt aurora GT FRAME CHECK模塊檢查回環(huán)收到的數(shù)據(jù)是否正確;
由于開發(fā)板的SFP屏蔽籠的tx_disable引腳都默認接了上拉電阻。要使收發(fā)回環(huán)測試可以正常進行,必須要將tx_disable引腳拉低。因此,在example design的頂層模塊,添加2個sfp_tx_disable引腳,且均置為0即可;
將drp_clk直接連入sysclk,官方例程這個時鐘是引腳進來的加了bufg,該工程用PLL產(chǎn)生;
接下來我們將在硬件上實現(xiàn)回環(huán)傳輸測試數(shù)據(jù)的功能,首先我們需要從外部給出一個自由時鐘,hb_gtwiz_reset_all_in復信號是高電平有效,用戶直接拉低即可。由于開發(fā)板的SFP屏蔽籠的tx_disable引腳都默認接了上拉電阻。要使收發(fā)回環(huán)測試可以正常進行,必須要將tx_disable引腳拉低;
最后在示例工程里添加必要的ILA,去抓取對應的信號。
功能測試
本工程實現(xiàn)功能為光纖信號8b10b回環(huán)傳輸,F(xiàn)PGA板上測試結(jié)果如下圖所示,可以看到gt0_error_count_i信號保持為0,也就是說8b10b光通信傳輸正常。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603317 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121398 -
串行通信
+關(guān)注
關(guān)注
4文章
572瀏覽量
35398 -
光通信
+關(guān)注
關(guān)注
19文章
879瀏覽量
33972 -
Vivado
+關(guān)注
關(guān)注
19文章
812瀏覽量
66523
發(fā)布評論請先 登錄
相關(guān)推薦
評論