10g gtx 光纤通信测试_S03-CH05_UDP 万兆光通信
軟件版本:VIVADO2017.4
操作系統(tǒng):WIN10
硬件平臺:MK7160FA
5.1概述
MK7160FA 開發(fā)板的4路SFP+光口均與xc7k160T芯片的GTX 串行收發(fā)器連接。使用 FFG676 封裝的xc7k160t可以支持高達 12.5Gb/s 的傳輸速率。因此,在MK7160FA 開發(fā)板上可以實現(xiàn)萬兆光纖以太網(wǎng)傳輸。
在 MK7160FA 開發(fā)板中實現(xiàn)萬兆網(wǎng) UDP 傳輸?shù)幕具壿嬁蚣苋缦聢D所示。FPGA 程序基于米聯(lián)的新版 UDP IP 協(xié)
議棧以及Xilinx 的 IP 核 10G Ethernet Subsystem 而實現(xiàn)。
本文檔對應 2 個例程,分別為 udp_ip_10g 和 udp_ip_10g_4ch,分別實現(xiàn)單路和 雙路萬兆 UDP 光纖傳輸。
5.2 SFP+接口
MK7160FA 上有4?個SFP+屏蔽籠。MK7160FA 上有4?個SFP+屏蔽籠。SFP+屏蔽籠可以插入千兆或萬兆光模塊。SFP+信號定義與SFP 一致,如下圖所示。
5.3 IP?設(shè)置
將 IP 核 AXI-Stream 的用戶數(shù)據(jù)接口位寬設(shè)為 64bit,此時對應用戶接口時鐘頻率為 156.25MHz。如下圖所示。
將 AXI-Lite 配置接口時鐘頻率設(shè)置為 100MHz,當然用戶也可以自由選擇其他的頻率。不使用參數(shù)統(tǒng)計和優(yōu)先級流量控制功能。如下圖所示。
時鐘頻率的設(shè)置僅對 IP 核單獨綜合有效。如下圖。
將 GTX 動態(tài)重配置端口DRP 的時鐘設(shè)為 100MHz, Debug 功能不作使用,如下圖。
該時鐘頻率設(shè)置也僅對單獨綜合有效。如下圖。
1588 同步功能一般針對某些需要進行網(wǎng)絡(luò)時間同步的場合,如音視頻傳輸。僅用作數(shù)據(jù)傳輸時無需使用。因此
這里不啟用 1588 功能。如下圖。
當設(shè)計中只包含 1 個此 IP 核時,應當將可共享的邏輯資源和硬件模塊包含在 IP 核內(nèi)部,這樣會減少所生成的模塊數(shù)量,簡化設(shè)計。如下圖所示。
當設(shè)計中需要同時使用若干個此 IP 核,且所使用的GTX 均位于同一個GTX BANK 中。此時,只需其中 1 個IP 核內(nèi)部的共享資源(MMCM、QUADPLL、GTX 參考時鐘等)便可以滿足所有 IP 核的需求,即選擇將共享資源包含在 IP 核內(nèi)部。其余 IP 核將這些共享資源從其內(nèi)部剔除即可,即選擇將共享資源包含在 example 中。如下圖所示。
5.7.4IP?核結(jié)構(gòu)
IP 核的結(jié)構(gòu)如下圖所示。用戶的接收和發(fā)送接口均采用了 AXI-Stream 標準。
? ? ? ?10 Gigabit Ethernet Subsystem IP 核內(nèi)部由 10 Gigabit Ethernet MAC 和 10 Gigabit Ethernet PCS/PMA 兩個 IP 核所組成,兩個 IP 之間通過XGMII 和 MDIO 接口連接。如下圖所示。
5.7.4.1時鐘網(wǎng)絡(luò)
IP 核內(nèi)部時鐘網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。
5.4.2接收和發(fā)送接口時鐘6.4.2
從上圖中可以看到,GTX 的參考時鐘輸入后經(jīng)過BUFG 后直接作為AXI-Stream 接收和發(fā)送接口時鐘輸出,如下圖所示。當 AXI-Stream 接口為 64bit 數(shù)據(jù)位寬時,GTX 參考時鐘頻率為 156.25M,當 AXI-Stream 接口為 32bit 數(shù)據(jù)位寬時,GTX 參考時鐘頻率為 312.5M。
參考時鐘采用 156.25M 時,數(shù)據(jù)率為:156.25M×8byte×8bit=10000Mbps,由于 PCS 采用了 64b/66b 編碼方式。因此,此時 GTX 的傳輸速率為:10000Mbps×66/64 =10.3125Gbps。
5.4.3多IP?資源共享
例如,在設(shè)計中同時使用 3 個 IP 核時,3 個 IP 核之間的共享資源信號連接如下圖所示。
5.4.4用戶接口
5.4.4.1AXI-Stream接口
AXI-Stream 發(fā)送接口
AXI-Stream 發(fā)送接口信號如下圖所示。用戶通過該接口,向 IP 核傳輸所需要發(fā)送的以太網(wǎng)數(shù)據(jù)包。其中,
tx_ifg_delay 用于設(shè)置發(fā)送間隔,一般都默認采用最小間隔,將 tx_ifg_delay 置為 0 即可。
AXI-Stream 發(fā)送接口時序如下圖所示。
背靠背連續(xù)發(fā)送
AXI-Stream 接收接口
AXI-Stream 接收接口信號如下圖所示。用戶通過該接口接收從 IP 核輸出的以太網(wǎng)數(shù)據(jù)包。需要注意的是,接收接口沒有使用 AXI-Stream 標準中的 tready 信號。這代表接收端需要具備持續(xù)接收數(shù)據(jù)的能力,防止出現(xiàn)數(shù)據(jù)來不及接收而產(chǎn)生溢出。
AXI-Stream 接收接口時序如下圖所示。
5.4.4.2pcspma_status
pcspma_status 端口用戶反應 IP 核內(nèi)部 PCS PMA 部分的運行狀態(tài)。由于 GTX 只支持 10GBASE-R,因此pcspma_status 只有 bit0 有效。如下圖所示。
5.4.4.3sim_speed_up
sim_speed_up 引腳只有在仿真時才需要用到這個信號,用于加快仿真速度。編譯時將其置為 0 或 1 即可。
5.4.4.3光模塊相關(guān)信號
IP 與光模塊之間的連接信號及接法如下圖所示。
5.4.4.4流量控制信號
非高帶寬、大負荷傳輸情況下,一般不需要使用流量控制功能。因此,不需要發(fā)送暫停幀,將以下兩個信號均置為 0 即
可。
5.4.4.5計信號
下圖中的信號,用于統(tǒng)計并輸出當前發(fā)送完畢或者接收完畢的幀對應的各種類型的信息。除了調(diào)試用之外,一般無需使用。
信號時序如下圖所示。
5.4.4.6e接口
AXI-Lite 接口主要用于配置和讀取 IP 核內(nèi)部的寄存器。AXI-Lite 接口不僅可以配置 IP 核 MAC 部分的寄存器, 還可以直接通過 MAC 部分的 MDIO 接口配置PCS/PMA 部分的寄存器,如下圖所示。
通過AXI-Lite 接口實現(xiàn) MDIO 接口讀寫PCS/PMA 部分的寄存器的例子如下所示。
5.4.5用注意點
5.4.5.1數(shù)據(jù)發(fā)送長度
IP?核在默認情況下,發(fā)送幀長度小于 64?字節(jié)時,IP?核會在幀末尾自動補 0,補足至 64?字節(jié),并且再幀末尾自動插入 4?字節(jié) CRC。接收時,IP?核自動去除末尾 4?字節(jié)CRC,但對于長度小于 64?字節(jié)的幀末尾補的 0?不會被去掉, 仍會通過接收接口輸出。因此,可以發(fā)送的數(shù)據(jù)長度在 14~1514(含 14?字節(jié) MAC?幀頭)字節(jié)之間。
IP 使用文檔中對此有如下描述。
5.4.5.2用FIFO與IP核AXI-Stream接口連接
在設(shè)計中,可以使用 AXI-Stream DATA FIFO 與 IP 核的 AXI-Stream 接口,作為數(shù)據(jù)的緩沖。使用 FIFO 時有以下幾個注意點。對此,IP 核使用文檔中有如下描述:
5.4.5.3XI-Lite接口配置策略
仿真 ip 核自帶的 example,可以觀察到 example 中通過AXI-Lite 配置 IP 核MAC 部分的過程,如圖藍色方框內(nèi)所示。以及通過 AXI-Lite 經(jīng)過 MAC 部分的內(nèi)部MDIO 接口配置訪問PCS PMA 部分的寄存器,如圖紅色方框所示。具體寄存器定義參考PG157。
Example 通過AXI-Lite 配置 IP 核的流程如下圖所示。在例程中,直接采用這部分的代碼。
5.5例程設(shè)計
例程的原理如下圖所示。實現(xiàn)了一個 UDP 收發(fā)環(huán)路,即電腦通過網(wǎng)絡(luò)調(diào)試助手向開發(fā)板發(fā)送 udp 包,開發(fā)板接收到 udp 包經(jīng)過 fifo 緩存后重新發(fā)回電腦,由此驗證數(shù)據(jù)收發(fā)的正確性。
UDP?IP 協(xié)議棧與萬兆 IP 核之間通過 2 個 AXI-Stream DATA FIFO 進行連接。兩個 FIFO 的設(shè)置如下圖所示,均使能Packet mode 功能。
Packet mode 是指 FIFO 持續(xù)緩存 AXI-Stream 接口輸入的數(shù)據(jù)直至輸入端 tlast 信號拉高,即存滿一個完整的數(shù)據(jù)包時,才開始在 AXI-Stream 輸出端口向外輸出數(shù)據(jù)。需要注意的是,啟用 Packet mode 時,FIFO 必須工作于同步模式。
對于發(fā)送路徑,這樣做是為了防止 FIFO 被 IP 核讀空。對于接收路徑,是由于米聯(lián)的UDP IP 協(xié)議棧要求 1 個數(shù)據(jù)包的 tvalid 信號在數(shù)據(jù)包持續(xù)期間必須恒為 1。
由于在 Verilog 中定義變量,對 tdata 和 tkeep 進行大小端的字節(jié)序轉(zhuǎn)換。
5.6例程測試
萬兆網(wǎng)的測試需要使用萬兆網(wǎng)卡,用戶可以購買萬兆網(wǎng)卡配合臺式電腦進行測試。
udp_ip_10g_sfp 實現(xiàn)了單路 UDP 網(wǎng)絡(luò)傳輸功能,udp_ip_10g_sfp_4ch (MK7160FA中為udp_ip_10g_sfp_4ch)中同時例化了 4 個 UDP IP 協(xié)議棧, 實現(xiàn)了 4路 UDP 網(wǎng)絡(luò)傳輸功能。在例程中,電腦的 IP 地址為 192.168.10.2,UDP 端口號為 61441,MK7160FA 開發(fā)板中的 4 個 SFP 接口的 IP 地址均為 192.168.10.1,UDP 端口號均為 61440。
對于udp_ip_10g_sfp例程,將萬兆SFP+模塊及連接線插入SFP-A 對應的屏蔽籠內(nèi)。對于udp_ip_10g_sfp_4ch
例程可將萬兆 SFP+模塊及連接線與 SFP-A、SFP-B、SFP-C、SFP-D 中任意一個 SFP 屏蔽籠連接。
測試前,需要將所使用電腦網(wǎng)卡的 IP 地址設(shè)置為 192.168.10.2,子網(wǎng)掩碼設(shè)為 255.255.255.0,如下圖所示。
下載 bit 文件后,確認網(wǎng)絡(luò)連接狀態(tài)是否為 10Gbps,如下圖所示。
5..6.1路測試
打開網(wǎng)絡(luò)調(diào)試助手,分別設(shè)置好電腦和開發(fā)板的IP地址位和UDP端口號, 通過網(wǎng)絡(luò)調(diào)試助手以udp包的形式向開發(fā)板發(fā)送文字數(shù)據(jù),并以1ms的間隔不斷循環(huán)發(fā)送,如下圖所示。
測試結(jié)果上圖所示。從圖中可以看出,網(wǎng)絡(luò)調(diào)試助手所發(fā)出的udp包和開發(fā)板返回的udp包一致,接收和發(fā)送的數(shù)據(jù)包數(shù)量一致。
? ? ? 通過 wireshark 軟件可捕獲電腦和開發(fā)板之間的通信數(shù)據(jù)包,如下圖所示。
5.6.2 ARP?測試
在網(wǎng)絡(luò)調(diào)試助手向開發(fā)板發(fā) UDP 包的同時,通過 cmd 命令窗不斷向開發(fā)板發(fā)起 ping 命令,觀察 ping 命令的返回,如下圖所示。從圖中可以看到開發(fā)板能夠快速響應電腦發(fā)起的 ping 命令,UDP 數(shù)據(jù)包收發(fā)與 ping 應答互不干擾。
通過 wireshark 軟件對 ping 過程的數(shù)據(jù)進行抓包驗證,如下圖所示。
在整個測試過程中,電腦會以一定頻率持續(xù)向開發(fā)板發(fā)送 ARP 請求,開發(fā)板均能及時響應,wireshark 軟件抓取的電腦與開發(fā)板的 ARP 通信過程如下圖所示。
5.7解決方法
對于在 vivado?2016.4?中使用 10?Gigabit?Ethernet?Subsystem?IP?核在 place design?過程中處于卡死狀態(tài),軟件運行出現(xiàn)異常終止的 bug,如下圖所示。
解決方法如下:
上述的 2 個步驟可以通過在place design 過程進行之前和之后插入 tcl 腳本的方法來進行。具體方法如下:選擇
project setting
在 implementation 中找到Place Design,設(shè)置 2 個 tcl 文件的路徑,如下圖所示。
其中,在 pre.tcl 中寫入:
set_property is_loc_fixed false [get_ports -filter { IS_LOC_FIXED == "TRUE" } ]
在 post.tcl 中需要指定 xdc 文件的絕對路徑,例如:
read_xdc D:/vivado_project/MK7160FA/udp_ip_10g_sfp/udp_ip_10g_sfp.srcs/constrs_1/new/udp_ip_10g.xdc
設(shè)置完成后,在編譯過程中就不會再出現(xiàn)報錯。
總結(jié)
以上是生活随笔為你收集整理的10g gtx 光纤通信测试_S03-CH05_UDP 万兆光通信的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【SG建模同步】基于system gen
- 下一篇: VMware Workstation P