Status: Done 🙌
在IBERT測試中需要注意的有以下兩個要點:
1.System Clock的選擇
在UI配置Clock Settings中有對System Clock的選擇,所謂“System Clock”查手冊理解為該IP core工作所需時鍾,跟GT口沒有直接關系,主要用於測試所需通信以及其他的邏輯。可以用外部引入的時鍾,也可以用GT口的REFCLK。當system clock 大於100MHz時,內部會生成MMCM以滿足約束要求,所以我理解的是IP core內部時鍾需要100MHz。
2.有關Loopback Mode
把IBERT example的bit燒入待測試的板子,並且建立測link以后,最重要的操作就是選擇Loopback Mode,它有五種選擇:分別為none 、near-end-pma、near-end-pcs、far-end-pma、far-end-pcs。下面就梳理一下其工作機制。
常見的測試方式無非就兩種:1.測試一個GT口;2.兩個GT口互測;對於我的項目來說,物理上是基於SFP光模塊的高速網口。下面來說明一下這兩種情況
結合GT口的內部框圖來說明不同Links下的配置以及測試的結果。
2.1 1個GT口自測
對於1個GT口的自測,比較容易理解,即TX GTs和RX GTs同屬一條lane的TX和RX,比如X0Y4/TX和X0Y4/RX,對應外部連接則是將光纖跳線兩頭分別插入同一光口的收發端。
此時,loopback選擇none、Near-End PMA和Near-End PCS的路徑如上圖所示,也比較好理解。None即沒有內部loopback路徑,依靠光口和光纖跳線完成數據的回環。對於一個口的自測,完成這三種mode的測試就夠了,那如何理解Far-End PMA和Far-End PCS呢?在GT User Guide中有這樣一張圖和描述如下:
我對這段說明簡單的理解就是:Near-End loopback是將發送數據環進接收端(自測),Far-End loopback則是將接收數據環入發射(作為對端互測)。所以Far-End loopback在互測時才用到。(我是這么理解的,不知道對不對)。
2.2 2個GT口互測
兩個GT口互測,對應外部連接則是將兩個SFP光模塊互聯,一個發對應另一個的收,所以要建兩個Links。這里有引申出我到現在都沒有很好理解的“有關Links的問題”,物理光纖上肯定是1個TX對另一個的RX,那么直接理解的話建立links應該是:X0Y4/TX和X0Y5/RX、X0Y5/TX和X0Y4/RX這兩條links,但實際上互測回環,應該是X0Y4/TX和X0Y4/RX、X0Y5/TX和X0Y5/RX這兩條links(誰能解釋一下)。先接受這個結論吧,看看互測方式。
結合2.1的引用,那么一個GT口應該將數據發送出去(不回環),另一個GT口將接收到的數據再回環發出去(3、4路徑),那么一條link的loopback mode設置成none,另一條則設置為Far-End mode。
PS:后來咨詢了一下,實際上create links只是起一個標識作用,選什么都不影響背后真正的物理連接方式。其實又引申一個問題,如果選X0Y4/TX和X0Y5/RX這樣的link,最終測出的結果是哪個GT的呢?以RX端所在的GT為准嗎?anyway,不得而知。
以上。