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