本文開源一個(gè)FPGA項(xiàng)目:UDP萬兆光通信。該項(xiàng)目實(shí)現(xiàn)了萬兆光纖以太網(wǎng)數(shù)據(jù)回環(huán)傳輸功能。Vivado工程代碼結(jié)構(gòu)和之前開源的《UDP RGMII千兆以太網(wǎng)》類似,只不過萬兆以太網(wǎng)是調(diào)用了Xilinx的10G Ethernet Subsystem IP核實(shí)現(xiàn)。由于該IP核需要付費(fèi)使用,本文提供完整工程源碼。
下面圍繞該IP核的使用、用戶接口,以及數(shù)據(jù)傳輸方案展開介紹。
01軟硬件平臺(tái)
- 軟件平臺(tái):Vivado 2017.4;
- 硬件平臺(tái):XC7Z035FFG676-2;
02IP核參數(shù)配置
AXI4-Stream數(shù)據(jù)位寬 : 選擇64bits。對(duì)應(yīng)的用戶接口時(shí)鐘頻率為156.25MHZ。
MAC Options : 選擇使用AXI-Lite接口對(duì)IP核寄存器進(jìn)行配置,同時(shí)需要設(shè)置時(shí)鐘頻率,這里設(shè)置為100MHZ(該設(shè)置僅對(duì)IP核out-of-context模式的綜合有效);不使用參數(shù)統(tǒng)計(jì)和優(yōu)先級(jí)流量控制功能。
PCS/PMA Options: 配置GTX動(dòng)態(tài)重配置端口DRP時(shí)鐘為100MHZ(該設(shè)置同樣僅對(duì)IP核out-of-context模式的綜合有效);不使用Transceiver Debug功能。
IEEE1588 Options: IEEE1588功能一般用于某些需要進(jìn)行網(wǎng)絡(luò)時(shí)間同步的場合,例如音(視)頻傳輸。在本項(xiàng)目中只是進(jìn)行數(shù)據(jù)傳輸,因此可以不選擇使用。
Shared Logic: 由于在此項(xiàng)目Vivado工程中只需例化一個(gè)該IP核,因此這里選擇Include Shared Logic in core,將共享資源包含在IP內(nèi)部即可。如果需要例化多個(gè)該IP核,只需將其中一個(gè)IP核配置為Include Shared Logic in core,其余的都配置為Include Shared Logic in example design。
03用戶接口
- AXI-Stream發(fā)送接口
用戶通過該接口將要發(fā)送的以太網(wǎng)數(shù)據(jù)包寫入IP核。另外,由tx_ifg_delay接口控制發(fā)送間隔,將其配置為0即可。AXI-Stream發(fā)送接口時(shí)序如下圖所示。
- AXI-Stream接收接口
用戶通過該接口讀取IP核輸出的以太網(wǎng)數(shù)據(jù)包。AXI-Stream接收接口時(shí)序如下圖所示。
- Pcspma-Status接口
該接口用于輸出IP核內(nèi)部PCS PMA部分工作狀態(tài),在該工程中只有第0bit有效,用于指示PCS Block Lock。
- Sim-Speed-Up接口
該接口只在仿真時(shí)會(huì)用到,用于加快仿真速度,在該工程中將其設(shè)置為0即可。
- Optical模塊接口
signal_detect:光模塊狀態(tài)指示信號(hào),配置為1;
tx_fault:光模塊狀態(tài)指示信號(hào),配置為0;
tx_disable:輸出光模塊控制信號(hào)。
- Flow-Control接口
在高帶寬、大負(fù)荷傳輸場合,一般需要流量控制功能。在該工程不需要發(fā)送暫停幀,因此將以下兩個(gè)信號(hào)設(shè)置為0。
s_axis_pause_tvalid & s_axis_pause_tdata。
- AXI-Lite接口
該接口用于讀寫IP核內(nèi)部寄存器,通過對(duì)IP核各參數(shù)進(jìn)行配置,以實(shí)現(xiàn)基本的以太網(wǎng)數(shù)據(jù)包收發(fā)功能。
04數(shù)據(jù)傳輸方案及測試
該項(xiàng)目的功能主要用于實(shí)現(xiàn)萬兆以太網(wǎng)光纖數(shù)據(jù)回環(huán)傳輸,在電腦端通過網(wǎng)絡(luò)調(diào)試助手向FPGA發(fā)送數(shù)據(jù)包,F(xiàn)PGA端接收、緩存數(shù)據(jù)包后回傳給上位機(jī)。以太網(wǎng)數(shù)據(jù)回環(huán)傳輸方案如下圖所示。
其中,時(shí)鐘為156.25MHZ,數(shù)據(jù)位寬為64bits。在UDP IP核和10G Ethernet Subsystem IP核之間,通過插入FIFO實(shí)現(xiàn)對(duì)每包以太網(wǎng)數(shù)據(jù)流的緩存功能。
利用wireshark軟件抓取PC端和FPGA端之間以太網(wǎng)雙向傳輸數(shù)據(jù)包,結(jié)果如下圖所示。
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601238 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5343瀏覽量
170801 -
UDP
+關(guān)注
關(guān)注
0文章
322瀏覽量
33849 -
光通信
+關(guān)注
關(guān)注
19文章
858瀏覽量
33931 -
IP核
+關(guān)注
關(guān)注
4文章
326瀏覽量
49377
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論