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