*此調(diào)試過程亦適用于10G,25G,40G,50G,100G以太網(wǎng)IP核,每個IP可能會有些細節(jié)上的不同,但整個自協(xié)商和LinkTraining過程是類似的,可以作為參考。
*如果是40G/50G, 100G以太網(wǎng),選的是多通道的IP,務必保證兩端的通道0是正確對接上的,因為在做自協(xié)商的時候,以太網(wǎng)只使用通道0,其它通道需在自協(xié)商完成后再加入工作。
一.產(chǎn)生一個例子工程仿真
打開你的Vivado工具,選擇你所需要的器件類型,在IPCatalog里產(chǎn)生一個10G/25GEthernet Subsystem IP core,勾上BASE-KR和IncludeAN/LT Logic以涵蓋IP自協(xié)商功能
(這里為方便起見,選擇了Controland Status Vectors接口,這樣IP的配置可以通過在代碼中直接用邏輯賦值IP的input輸入來完成;如果你需要選用AXI接口進行寄存器配置,請參考例子工程的各項配置,自己相應地寫好對應寄存器值)
右鍵IP的.xci,Open IPExample Design
例子工程產(chǎn)生出來之后,我們需要做一些簡單的修改,因為原始的例子工程仿真里面,沒有做自協(xié)商的演示。
1. 修改頂層代碼“xxv_ethernet_0_exdes.v”,使能自協(xié)商功能,并且將AN的seed信號引到輸入port上,方便之后修改,如下圖
2. 修改tb文件,原來tb只調(diào)用了一個IP自己做環(huán)回,我們需要再復制一個,改成兩個IP互聯(lián),將兩者的串行數(shù)據(jù)txp/txn和rxp/rxn對接起來;新加的IP,輸入可以跟原來那個共享保持不變,輸出可以懸空;最后將之前拉出來的AN的seed值任意設置為兩個不同的值即可(這是IEEE協(xié)議的要求,PG210中有相關(guān)描述)
3. 在開始仿真前,請取消“UsePrecompiled IP simulation libraries”的勾,并加上“-dSIM_SPEED_UP”的vlog選項,以加速完成你的仿真,便于查看仿真結(jié)果。
然后,點擊RunBehavior Simulation
二.自協(xié)商與LinkTraining的調(diào)試過程
*以下整個調(diào)試過程同時適用于仿真與上板,上板時可以用ILA抓出相同的信號來進行調(diào)試
a. 隨著tx_disable拉高一個脈沖,標志著以太網(wǎng)的自協(xié)商狀態(tài)機正式開始運行;上電,復位IP或兩端任一端復位AN,都會導致這一行為的發(fā)生。
b.自協(xié)商的工作完全由IP自動完成的,所以只要配置沒問題,你只需要耐心等待就可以看到自協(xié)商的完成,以an_good_check為標志,并且進入下一步linktraining
c. 在LT的過程中,首先你要等到IP能夠鎖定LT幀,即frame_lock拉高,然后你就可以進行你自己的LT算法了,與AN不同LT是由客戶手動完成的。
不過由于Xilinx的Serial Transceiver能夠提供非常好的信號質(zhì)量,因此我們建議用戶如果兩端用的都是Xilinx的器件,可以直接跳過此步驟,將輸入信號rx_trained拉高。
d.無論你是做完了自己的LT測試,還是直接跳過了此步驟,當兩端都拉高了自己的rx_trained之后,就可以等待LT的完成標志signal_detect拉高
e.最后autoneg_complete拉高代表了整個自協(xié)商和LinkTraining的流程都成功完成了,此時IP恢復到與BASE-R模式完全相同的工作模式
f.等待block_lock,stat_rx_status等信號拉高,以太網(wǎng)IP最終完成了linkup
*具體AN/LT的步驟(包括狀態(tài)機)可以同時參考IEEE協(xié)議的定義
*以上這些IP標志信號的命名,與以太網(wǎng)協(xié)議定義的AN/LT狀態(tài)機中狀態(tài)信號命名基本保持一致,方便客戶在協(xié)議中找到對應的涵義
三.調(diào)試建議
當你在實際應用中,無法完成自協(xié)商時,可以分步來做調(diào)試;首先關(guān)閉兩端的AN/LT,以太網(wǎng)是否能完成link up,并且傳輸數(shù)據(jù)無誤碼;然后分別打開AN關(guān)閉LT,或者打開LT關(guān)閉AN,是否都能linkup,哪個失敗就具體調(diào)試哪個部分;最后全部使能,檢查link結(jié)果。
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5346瀏覽量
170839 -
寄存器
+關(guān)注
關(guān)注
31文章
5300瀏覽量
119860 -
IP
+關(guān)注
關(guān)注
5文章
1616瀏覽量
149271
原文標題:開發(fā)者分享 | 如何調(diào)試10G/25G以太網(wǎng)IP自協(xié)商/Link Training
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論