一、關(guān)于 PRBS13、QPRBS13、PRBS13Q 和 QPRBS13-CEI 的定義。
1. PRBS13 的表達(dá)式為 x13 + x12 + x2 + x + 1。
2. 在 AR72117 中對(duì) QPRBS13、PRBS13Q 和 QPRBS13-CEI 有以下定義:
PRBS13Q 按照 IEEE 802.3bs-2017 120.5.11.2.1 被定義為重復(fù)兩次以格雷編碼的 PRBS13
QPRBS13-CEI 與 PRBS13Q 相同
QPRBS13 是 PRBS13 和反轉(zhuǎn)的 PRBS13 組合
目前對(duì)于 Vivado 2023.1 版本的 IBERT GUI 界面暫時(shí)不支持 QPRBS13 的設(shè)置,需要通過(guò) tcl 或者端口設(shè)置的方法來(lái)實(shí)現(xiàn)。
Tips:不建議同時(shí)用 IBERT GUI 和 Properties 窗口設(shè)置 GTM 的 Attributes,可能會(huì)導(dǎo)致寄存器值出錯(cuò)。
3. PRBS13、QPRBS13、PRBS13Q 解析。
首先,根據(jù) PRBS13 的表達(dá)式來(lái)構(gòu)建一個(gè)數(shù)列表格, PRBS13 每 8191 個(gè) bit 循環(huán)一次,此處選取前 64 位數(shù)據(jù)展示并且與仿真波形作對(duì)比:
PRBS13 仿真波形 (TXQPRBSEN = 0, TX_GRAY_BYP_EN = 1)
注意:按照 AM017 的描述,當(dāng) TX_GRAY_BYP_EN 為 1 時(shí),關(guān)閉 GARY 編碼器。當(dāng) TX_GRAY_BYP_EN 為 0 時(shí),使能 GARY 編碼器。
PRBS13Q 仿真波形 (TXQPRBSEN = 0, TX_GRAY_BYP_EN = 0)
QPRBS13 仿真波形 (TXQPRBSEN = 1, TX_GRAY_BYP_EN = 1)
當(dāng)前輸入為反轉(zhuǎn)后的 PRBS13(連續(xù)12位“1”),因此按照 PRBS13 表達(dá)式產(chǎn)生的 64 位數(shù)據(jù)如下表所示:
在了解 QPRBS13 的編碼規(guī)則后,接下去搭建工程做實(shí)際的測(cè)試。
二、新建 Versal GTM 工程
對(duì)于 Versal GTM,IBERT 工具已經(jīng)被集成到 GTM 內(nèi)部。因此需要使用 Versal Transceivers Wizard 新建一個(gè)測(cè)試工程,本文的測(cè)試工程基于 VPK120 評(píng)估板設(shè)計(jì)。
在 Wizard 中主要更改兩個(gè)地方的設(shè)置:
Transceiver type:設(shè)置為 GTM
Preset:選擇 GTM(PAM4) Ethernet 51G
設(shè)置完成后打開(kāi) IP Example Design:
三、調(diào)整硬件設(shè)置
此處需要對(duì) Example design 做四個(gè)調(diào)整:
1. 把 gpio_enable、gt_reset 和 rate_sel 三個(gè)信號(hào)連接到 VIO 的輸出。
2. 添加 Clocking wizard 模塊,設(shè)置 clk_out1 的頻率為 200MHz,并且提供給 gt_bridge 和 gt_quad 的 apb3_clk 作為時(shí)鐘。
3. 設(shè)置 TX 和 RX 的 Reference Clock 頻率為 156.25MHz。
4. 把 GT Quad 約束到 Quad 202,Reference clock 約束到管腳 V45。
修改完成后點(diǎn)擊 Generate Device Image 生成 PDI 文件,連接 JTAG 并且把 PDI 下載到 VPK120。
四、構(gòu)建寄存器讀寫函數(shù)
控制 GTM 相關(guān)寄存器需要按位操作,因此首先需要設(shè)計(jì)一個(gè)能夠按位讀寫的函數(shù),函數(shù)內(nèi)部執(zhí)行步驟如下:
1. 獲取對(duì)象名稱。
本文中的 IBERT 名稱為 IBERT_0,在后面的操作中都以 IBERT_0 作為操作的對(duì)象名稱。因?yàn)楣こ讨杏昧?GT Quad202,所以 tcl 命令對(duì)于 Quad202 的 ch0 定義為:IBERT_0.Quad_202.CH_0 ,其他通道可參照這個(gè)命名類推。
2. 刷新全部寄存器。
這一步操作很重要,如果沒(méi)有刷新全部寄存器的步驟,將無(wú)法讀取到最新的寄存器數(shù)據(jù),可能會(huì)讀出來(lái)上一次的數(shù)據(jù)或者全 0 的數(shù)據(jù)。
3. 數(shù)據(jù)格式轉(zhuǎn)換。
刷新寄存器后會(huì)發(fā)現(xiàn)在 GT Properties 窗口顯示的數(shù)據(jù)從 0xXXXXXXXX 變?yōu)榱?0xXXXX_XXXX,然而在 tcl 的按位與和按位或的運(yùn)算中無(wú)法識(shí)別下劃線,下劃線會(huì)導(dǎo)致數(shù)據(jù)運(yùn)算出錯(cuò),這一步需要先從相應(yīng)的寄存器把數(shù)據(jù)讀取出來(lái),然后將下劃線移除。
這里的 channel 和 reg 是函數(shù)的參數(shù),channel 代表 GT 的通道編號(hào),reg 是需要操作的寄存器。
4. 判斷和位運(yùn)算。
這里的 op 和 value 是函數(shù)的參數(shù),op 代表運(yùn)算操作是按位與還是按位或,value 是具體運(yùn)算的值。
5. 將系數(shù)設(shè)回到相應(yīng)的寄存器 。
6. 操作函數(shù)定義。
操作函數(shù)有4個(gè)傳遞參數(shù) proc change_gtm_attributes { channel reg value op },具體作用在上文已經(jīng)說(shuō)明。例如對(duì)于下面這個(gè)函數(shù),其對(duì)應(yīng)的操作是向 Quad_202.CH_0 的 CH0_FABRIC_INTF_CFG0 寄存器按位與的方式寫入 0xFFFEFFDF,即將 CH0_FABRIC_INTF_CFG0 寄存器的 Bit5 和 Bit16 置為“0”,其余位保持不變。
五、配置 GTM 的相關(guān)寄存器產(chǎn)生 QPRBS13 序列
1. 打開(kāi) Attributes 控制使能,關(guān)閉端口控制。
2. 設(shè)置 TX PRBS 的 Pattern。
3. 設(shè)置 RX PRBS 的 Pattern。
4. 打開(kāi) TXQPRBS 使能。
5. 打開(kāi) RXQPRBS 使能。
6. 關(guān)閉 TX Gray Encoder 使能。
7. 關(guān)閉 TX Gray Decoder 使能。
8. 設(shè)置 LOOPBACK 為 Near end PCS。
六、實(shí)際運(yùn)行結(jié)果
1. 將 PDI 文件下載到器件中,并且運(yùn)行 tcl 命令,先不使能 QPRBS,設(shè)置為常規(guī) PRBS13 輸出。
可以看到 NEAR-END PCS 回環(huán)已經(jīng)建立,并且 RXPRBSLOCKED 也已經(jīng)拉高。
2. 運(yùn)行 TCL 命令,打開(kāi) TXQPRBS 使能,對(duì)于 RX 繼續(xù)輸出常規(guī) PRBS,此時(shí) Link status 顯示為 No Link 和實(shí)際速率之間翻轉(zhuǎn),且 RXPRBSLOCKED 輸出狀態(tài)也呈現(xiàn)為周期性翻轉(zhuǎn)。
3. 再次運(yùn)行 TCL 命令,打開(kāi) RXQPRBS 使能,此時(shí)的 Link status 再次恢復(fù)顯示為實(shí)際速率,RXPRBSLOCKED 輸出也再次呈現(xiàn)為高電平。
4. Versal GTM 除了不支持 QPRBS-7,其他的 Pattern 都是支持的。
5. 這個(gè)方法也可以用于產(chǎn)生其他 QPRBS Pattern。
審核編輯:湯梓紅
-
amd
+關(guān)注
關(guān)注
25文章
5484瀏覽量
134361 -
仿真
+關(guān)注
關(guān)注
50文章
4111瀏覽量
133798 -
命令
+關(guān)注
關(guān)注
5文章
692瀏覽量
22064 -
GUI
+關(guān)注
關(guān)注
3文章
662瀏覽量
39793 -
Versal
+關(guān)注
關(guān)注
1文章
161瀏覽量
7684
原文標(biāo)題:開(kāi)發(fā)者分享|Versal GTM 如何用 Tcl 命令在 IBERT 生成 QPRBS13 序列
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論