Xilinx提供了一個(gè)1G/10G/25G Switching以太網(wǎng)IP,該IP可以動(dòng)態(tài)切換為1G以太網(wǎng)或者10G/25G以太網(wǎng),它們共享同一個(gè)GT/SERDES端口。
這個(gè)IP目前僅支持比較新的器件,如UltraScale/UltraScale+,Versal;如果需要使用7系列器件,可以到Xilinx主頁(yè)搜索參考設(shè)計(jì)XAPP1243;又或者,如果想有更大的設(shè)計(jì)修改余地,而不想用IP,那UltraScale/UltraScale+也有參考設(shè)計(jì)XAPP1307
1G/10G/25G Switching以太網(wǎng)IP的結(jié)構(gòu):
實(shí)際上,這個(gè)Switching IP內(nèi)部,直接調(diào)用了,另外兩個(gè)Xilinx以太網(wǎng)IP core,分別是10G/25G Ethernet Subsystem IP和1G/2.5G Ethernet PCS/PMA or SGMII IP,然后共享了用戶(hù)側(cè)數(shù)據(jù)接口,和物理層GT端口。當(dāng)需要切換速率的時(shí)候,IP只需要用選擇器選擇,走的是10G/25G IP還是1G IP,同時(shí)通過(guò)GT的DRP端口,動(dòng)態(tài)切換GT的線(xiàn)速。
也正因?yàn)槭沁@樣的結(jié)構(gòu)設(shè)計(jì),對(duì)于一些更細(xì)致具體的信息,如1588功能或者寄存器定義,可以在10G/25G IP文檔PG210,以及1G IP文檔PG138或PG047里面找到。
如何手動(dòng)切換IP的速率:
手動(dòng)模式下,Switching IP通過(guò)信號(hào)“ctl_core_speed_sel”來(lái)配置你所期望的速率,通過(guò)信號(hào)“stat_core_speed”來(lái)觀(guān)察當(dāng)前IP的速率。
實(shí)際上,產(chǎn)生一個(gè)Switching IP的例子工程,例子提供了手動(dòng)切換速率的示例,直接跑功能仿真就能看到。例子工程手動(dòng)切換速率的流程為:
1. 首先拉高代碼里的“mode_change”信號(hào),開(kāi)始切換
2. 接著例子代碼就會(huì)寫(xiě)IP的寄存器,修改“ctl_core_speed_sel”為需要的速率
3. 并且自動(dòng)通過(guò)GT的DRP接口,修改GT的參數(shù),動(dòng)態(tài)切換端口線(xiàn)速率
4. 最后等待以太網(wǎng)IP的link up
對(duì)應(yīng)例子工程代碼如下:
對(duì)應(yīng)仿真截屏:
如何使用以太網(wǎng)的自協(xié)商功能,自動(dòng)切換IP的速率:
首先,需要使能IP的自協(xié)商功能,以10G/25G以太網(wǎng)IP為例,拉高信號(hào)“ctl_autoneg_enable”,拉低信號(hào)“ctl_autoneg_bypass”,并且兩端的以太網(wǎng)要設(shè)置不同的AN Nonce Seed的值,這樣10G的自協(xié)商就可以自動(dòng)成功完成。
要注意的是,無(wú)論是10G/25G還是1G的以太網(wǎng)協(xié)議,都要求兩端同時(shí)打開(kāi)自協(xié)商,或者同時(shí)關(guān)閉自協(xié)商,兩端才能link up;一端開(kāi)一端關(guān)的話(huà),自協(xié)商是無(wú)法成功的。
接下來(lái),如果10G/25G的自協(xié)商失敗了,例如對(duì)端其實(shí)是一個(gè)1G的以太網(wǎng)器件,那么自協(xié)商狀態(tài)機(jī)會(huì)走到Parallel Detection狀態(tài),Switching IP就會(huì)自動(dòng)切換速率到1G,再進(jìn)行下一步操作。PG292對(duì)自協(xié)商速率的流程有如下描述:
A block diagram of the 1G/10G/25G Ethernet Subsystem with Auto-Negotiation (AN) with Parallel Detection (PD) is shown in the following figure. The Parallel Detection is done inside the AN RTL, which is encrypted. As a result of PD, only the AN is resolved to 1G speed.
這里提到的Parallel Detection就是源自IEEE802.3協(xié)議關(guān)于10G以太網(wǎng)自協(xié)商定義的那部分,狀態(tài)機(jī)跳轉(zhuǎn)里的一個(gè)狀態(tài);當(dāng)10G自協(xié)商不能成功,狀態(tài)機(jī)就會(huì)跳到這個(gè)PD狀態(tài)。有興趣的可以打開(kāi)IEEE802.3的Clause 73章節(jié)了解進(jìn)一步的詳情。
整個(gè)流程,從仿真里看,如下截屏:
由于以太網(wǎng)自協(xié)商的過(guò)程中,里頭的狀態(tài)都有計(jì)數(shù)器時(shí)間定義需要等待,所以在仿真里需要很長(zhǎng)很長(zhǎng)時(shí)間才能完成,因此并不建議自協(xié)商做功能仿真。
以上就是1G/10G/25G Switching以太網(wǎng)IP的手動(dòng)和自動(dòng)兩種切換速率的原理和方法。
審核編輯:湯梓紅
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5419瀏覽量
171598 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
仿真
+關(guān)注
關(guān)注
50文章
4070瀏覽量
133552 -
端口
+關(guān)注
關(guān)注
4文章
963瀏覽量
32051
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論