本文為明德?lián)P原創(chuàng)文章,轉載請注明出處!
今天跟大家分享基于Xilinx K7和C5之間的光纖通信,本工程是K7例化四個速率都是3.125Gbps的光纖GTX的IP核的設置,C5例化的是兩個GTX的IP核的設置,然后一個K7的板卡和兩個C5的板卡連接。
一、例化K7的光纖的IP核
(一) 打開Vivado光纖工程。
這里我選擇的是明德?lián)P的工程,芯片型號為XC7K325tffg900-2,大家做的時候可以新建任意工程。
(二) 點擊“IP Catalog”,進入IP核配置界面。
(三) 搜索“gt”,雙擊選擇“7 Series FPGAs Transceivers Wizard”。
(四) 選擇“Line Rate,RefClk Selection”頁面設置
根據(jù)左下角電路圖,去掉通道0的勾選,再勾選通道8到通道11,如下面兩張圖所示;
配置TX/RX端的時鐘和速率,如下圖所示。
(五) 選擇“Encoding and Clocking”頁面設置
在“TX”和“RX”端進行選擇設置:“External Data Width (Bits)”中都選擇“16”,“Encoding”和“Decoding”中都選擇“8B/10B”;
在“Optional Ports”端進行勾選:對“TXPCSRESET”、“TXPMARESET”、“TXBUFSTATUS”、“RXPCSRESET”、“RXBUFSTATUS”、“RXBUFRESET”、“RXCDRHOLD”進行選擇。
相關項目選擇如下圖所示:
(六) 選擇“Comma Alignment and Equalization”頁面設置
“RX COMMA detection”設置:其中“Allgn to”下選擇“Any Byte Boundary”,如下圖所示。
之所以進行此設置,是為了更好的對齊字節(jié)。比如說數(shù)據(jù)“0x0102 0x0304”, 選擇“Any Byte Boundary”的時候,接收到的數(shù)據(jù)出現(xiàn)“0x0102 0x0304”的概率就會更大,否則接收到的數(shù)據(jù)就會是“0x0201 0x0403”。
(七) 選擇“CB and CC Sequence ”頁面設置
“Clock correction”設置:勾選“Use Clock Correction”和“Use Two Clock Correction Sequences”;在“PPM Offset +/-”填上“1000”;在“Sequence length”選擇“2”,如下圖所示。
“PPM Offset +/-”中選擇“1000”是時鐘的質(zhì)量,數(shù)值越大表示質(zhì)量越差。
(八) 查看參數(shù)配置
參數(shù)都配置完以后,可以在“Summary”頁面查看完整的參數(shù)列表,如下圖所示。
(九) 生成IP核
配置完IP核參數(shù)后,彈出如下界面,點擊“Generate”生成IP核。
(十) 添加IP核
返回到“Sources”界面,選擇添加的IP核,右鍵選擇“Open IP Example Design…”;
彈出界面如下圖所示,點擊“OK”確認。
(十一) IP核移植
點擊“OK“后會彈出一個新的Vivado界面,這就是它生成IP核使用的例程,如下圖所示。
我們需要把里面的一些內(nèi)容注釋掉,并且添上我們的代碼,讓這個例程封裝成一個接口,成為我們能用的IP核——這個過程就是IP核的移植過程。如果不進行修改的話,IP核與我們的工程不配套,就無法正常使用。
需要注釋掉的部分如下圖所示:
即:
將提供的IP核的用戶接口的代碼引出,并修改成本工程可以使用的用戶接口代碼,完成移植。
添加的代碼如下:
以上就是K7光纖工程IP核配置和移植的具體操作,如有不明白的地方可以加我的QQ:1479512800,共同討論,期待與大家一起探討進步!
二、例化Altera_C5的光纖的IP核
Altera的光纖的IP核同樣的是例化3.125Gbps的速率,也就是說板卡和板卡之間的通信速率是一樣的。
Altera的光纖的IP核是已經(jīng)集成了高速的PLL在native_phy的,所以不需要外部的高速的PLL,Altera的光纖的IP核由兩個IP核組成,分別為phy_reset的IP核和native_phy核。
(一) Naive_phy的IP核的例化
(二) native_phy的IP核的設置,選擇協(xié)議和速率
(三) 選擇實際的參考時鐘
(四) 點擊finish完成即可
疑惑點:
有的同學有疑惑不是說速率是在3.125G嗎,那為什么我們選擇的IP核為2.5G的IP核?
其實數(shù)據(jù)鏈路上的傳輸?shù)乃俾适?/span>3.125Gbps的,由于8b/10b編碼之間的關系,則有3.125G * 0.8 = 2.5Gbps(數(shù)據(jù)真正有效的速率),也就是說我們選擇的2.5Gbps的IP核是實際上的速率IP核。
(五) 光纖的復位IP核設置,選擇如下圖的IP核
復位IP核的設置如下圖所示,參考時鐘的選擇可以是普通PLL傳遞過來的時鐘,然后點擊“Finish”完成即可。
(六) 模塊頂層的例化
關鍵信號列表說明:
Tx_parallel_data: 發(fā)送的數(shù)據(jù);
Tx_datak: 發(fā)送的K碼;
Rx_parallel_data: 接收的數(shù)據(jù);
RX_datak: 接收的K碼;
另外,native_phy提供了對外發(fā)送和接收時鐘給用戶,分別是rx_std_coreclkin和tx_std_coreclkin,即用戶要發(fā)送數(shù)據(jù)的時候數(shù)據(jù)要以tx_std_coreclkin時鐘域?qū)R;
接收數(shù)據(jù)的時候是以rx_std_coreclkin對齊的。
以上就是基于Xilinx K7和C5之間的光纖通信設置,有不明白的朋友可以聯(lián)系明德?lián)P進行學習討論,當然大家也可以在留言中與我進行交流!