0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Versal GTM如何用Tcl命令在IBERT生成QPRBS13序列

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 2023-08-18 09:53 ? 次閱讀

本文作者:AMD 工程師 Cheng Zhang

一、關(guān)于 PRBS13、QPRBS13、PRBS13Q 和 QPRBS13-CEI 的定義。

1. PRBS13 的表達式為 x13 + x12 + x2 + x + 1。

2. 在 AR72117 中對 QPRBS13、PRBS13Q 和 QPRBS13-CEI 有以下定義:

PRBS13Q 按照 IEEE 802.3bs-2017 120.5.11.2.1 被定義為重復(fù)兩次以格雷編碼的 PRBS13

QPRBS13-CEI 與 PRBS13Q 相同

QPRBS13 是 PRBS13 和反轉(zhuǎn)的 PRBS13 組合

目前對于 Vivado 2023.1 版本的 IBERT GUI 界面暫時不支持 QPRBS13 的設(shè)置,需要通過 tcl 或者端口設(shè)置的方法來實現(xiàn)。

Tips:不建議同時用 IBERT GUI 和 Properties 窗口設(shè)置 GTM 的 Attributes,可能會導(dǎo)致寄存器值出錯。

3. PRBS13、QPRBS13、PRBS13Q 解析。

首先,根據(jù) PRBS13 的表達式來構(gòu)建一個數(shù)列表格, PRBS13 每 8191 個 bit 循環(huán)一次,此處選取前 64 位數(shù)據(jù)展示并且與仿真波形作對比:

3b71d85a-3cee-11ee-ac96-dac502259ad0.png

PRBS13 仿真波形 (TXQPRBSEN = 0, TX_GRAY_BYP_EN = 1)

3bc580e0-3cee-11ee-ac96-dac502259ad0.png

注意:按照 AM017 的描述,當(dāng) TX_GRAY_BYP_EN 為 1 時,關(guān)閉 GARY 編碼器。當(dāng) TX_GRAY_BYP_EN 為 0 時,使能 GARY 編碼器。

3be63f9c-3cee-11ee-ac96-dac502259ad0.png

PRBS13Q 仿真波形 (TXQPRBSEN = 0, TX_GRAY_BYP_EN = 0)

3c0b56e2-3cee-11ee-ac96-dac502259ad0.png

QPRBS13 仿真波形 (TXQPRBSEN = 1, TX_GRAY_BYP_EN = 1)

3c4faa86-3cee-11ee-ac96-dac502259ad0.png

當(dāng)前輸入為反轉(zhuǎn)后的 PRBS13(連續(xù)12位“1”),因此按照 PRBS13 表達式產(chǎn)生的 64 位數(shù)據(jù)如下表所示:

3c6a728a-3cee-11ee-ac96-dac502259ad0.png

在了解 QPRBS13 的編碼規(guī)則后,接下去搭建工程做實際的測試。

二、新建 Versal GTM 工程

對于 Versal GTM,IBERT 工具已經(jīng)被集成到 GTM 內(nèi)部。因此需要使用 Versal Transceivers Wizard 新建一個測試工程,本文的測試工程基于 VPK120 評估板設(shè)計。

在 Wizard 中主要更改兩個地方的設(shè)置:

Transceiver type:設(shè)置為 GTM

Preset:選擇 GTM(PAM4) Ethernet 51G

設(shè)置完成后打開 IP Example Design:

3ca40464-3cee-11ee-ac96-dac502259ad0.png

三、調(diào)整硬件設(shè)置

此處需要對 Example design 做四個調(diào)整:

1. 把 gpio_enable、gt_reset 和 rate_sel 三個信號連接到 VIO 的輸出。

2. 添加 Clocking wizard 模塊,設(shè)置 clk_out1 的頻率為 200MHz,并且提供給 gt_bridge 和 gt_quad 的 apb3_clk 作為時鐘

3. 設(shè)置 TX 和 RX 的 Reference Clock 頻率為 156.25MHz。

4. 把 GT Quad 約束到 Quad 202,Reference clock 約束到管腳 V45。

修改完成后點擊 Generate Device Image 生成 PDI 文件,連接 JTAG 并且把 PDI 下載到 VPK120。

四、構(gòu)建寄存器讀寫函數(shù)

控制 GTM 相關(guān)寄存器需要按位操作,因此首先需要設(shè)計一個能夠按位讀寫的函數(shù),函數(shù)內(nèi)部執(zhí)行步驟如下:

1. 獲取對象名稱。

3cd9a07e-3cee-11ee-ac96-dac502259ad0.png

本文中的 IBERT 名稱為 IBERT_0,在后面的操作中都以 IBERT_0 作為操作的對象名稱。因為工程中用了 GT Quad202,所以 tcl 命令對于 Quad202 的 ch0 定義為:IBERT_0.Quad_202.CH_0 ,其他通道可參照這個命名類推。

2. 刷新全部寄存器。

這一步操作很重要,如果沒有刷新全部寄存器的步驟,將無法讀取到最新的寄存器數(shù)據(jù),可能會讀出來上一次的數(shù)據(jù)或者全 0 的數(shù)據(jù)。

3d04c3a8-3cee-11ee-ac96-dac502259ad0.png

3. 數(shù)據(jù)格式轉(zhuǎn)換。

刷新寄存器后會發(fā)現(xiàn)在 GT Properties 窗口顯示的數(shù)據(jù)從 0xXXXXXXXX 變?yōu)榱?0xXXXX_XXXX,然而在 tcl 的按位與和按位或的運算中無法識別下劃線,下劃線會導(dǎo)致數(shù)據(jù)運算出錯,這一步需要先從相應(yīng)的寄存器把數(shù)據(jù)讀取出來,然后將下劃線移除。

這里的 channel 和 reg 是函數(shù)的參數(shù),channel 代表 GT 的通道編號,reg 是需要操作的寄存器。

3d196bbe-3cee-11ee-ac96-dac502259ad0.png

4. 判斷和位運算。

這里的 op 和 value 是函數(shù)的參數(shù),op 代表運算操作是按位與還是按位或,value 是具體運算的值。

3d29072c-3cee-11ee-ac96-dac502259ad0.png

5. 將系數(shù)設(shè)回到相應(yīng)的寄存器 。

3d461952-3cee-11ee-ac96-dac502259ad0.png

6. 操作函數(shù)定義。

操作函數(shù)有4個傳遞參數(shù) proc change_gtm_attributes { channel reg value op },具體作用在上文已經(jīng)說明。例如對于下面這個函數(shù),其對應(yīng)的操作是向 Quad_202.CH_0 的 CH0_FABRIC_INTF_CFG0 寄存器按位與的方式寫入 0xFFFEFFDF,即將 CH0_FABRIC_INTF_CFG0 寄存器的 Bit5 和 Bit16 置為“0”,其余位保持不變。

3d632b28-3cee-11ee-ac96-dac502259ad0.png

五、配置 GTM 的相關(guān)寄存器產(chǎn)生 QPRBS13 序列

1. 打開 Attributes 控制使能,關(guān)閉端口控制。

3d7edf94-3cee-11ee-ac96-dac502259ad0.png

2. 設(shè)置 TX PRBS 的 Pattern。

3da21dce-3cee-11ee-ac96-dac502259ad0.png

3. 設(shè)置 RX PRBS 的 Pattern。

3db7974e-3cee-11ee-ac96-dac502259ad0.png

4. 打開 TXQPRBS 使能。

3dcc2934-3cee-11ee-ac96-dac502259ad0.png

5. 打開 RXQPRBS 使能。

3dd83364-3cee-11ee-ac96-dac502259ad0.png

6. 關(guān)閉 TX Gray Encoder 使能。

3df414f8-3cee-11ee-ac96-dac502259ad0.png

7. 關(guān)閉 TX Gray Decoder 使能。

3e0b2102-3cee-11ee-ac96-dac502259ad0.png

8. 設(shè)置 LOOPBACK 為 Near end PCS。

3e1d03b8-3cee-11ee-ac96-dac502259ad0.png

六、實際運行結(jié)果

1. 將 PDI 文件下載到器件中,并且運行 tcl 命令,先不使能 QPRBS,設(shè)置為常規(guī) PRBS13 輸出。

3e4aea26-3cee-11ee-ac96-dac502259ad0.png

可以看到 NEAR-END PCS 回環(huán)已經(jīng)建立,并且 RXPRBSLOCKED 也已經(jīng)拉高。

3e6afc4e-3cee-11ee-ac96-dac502259ad0.png

2. 運行 TCL 命令,打開 TXQPRBS 使能,對于 RX 繼續(xù)輸出常規(guī) PRBS,此時 Link status 顯示為 No Link 和實際速率之間翻轉(zhuǎn),且 RXPRBSLOCKED 輸出狀態(tài)也呈現(xiàn)為周期性翻轉(zhuǎn)。

3e831a9a-3cee-11ee-ac96-dac502259ad0.png

3e9da19e-3cee-11ee-ac96-dac502259ad0.png

3. 再次運行 TCL 命令,打開 RXQPRBS 使能,此時的 Link status 再次恢復(fù)顯示為實際速率,RXPRBSLOCKED 輸出也再次呈現(xiàn)為高電平。

3eac5fcc-3cee-11ee-ac96-dac502259ad0.png

3ec91824-3cee-11ee-ac96-dac502259ad0.png

4. Versal GTM 除了不支持 QPRBS-7,其他的 Pattern 都是支持的。

3edaa97c-3cee-11ee-ac96-dac502259ad0.png

5. 這個方法也可以用于產(chǎn)生其他 QPRBS Pattern。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • amd
    amd
    +關(guān)注

    關(guān)注

    25

    文章

    5420

    瀏覽量

    133807
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4023

    瀏覽量

    133336
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    676

    瀏覽量

    21965
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    638

    瀏覽量

    39482
  • Versal
    +關(guān)注

    關(guān)注

    1

    文章

    151

    瀏覽量

    7624

原文標(biāo)題:開發(fā)者分享|Versal GTM 如何用 Tcl 命令在 IBERT 生成 QPRBS13 序列

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何使用GTM_TIM (TIM_EXT_CAPTURE) 作為觸發(fā)源SOMP模式下觸發(fā)GTM_ATOM頻道?

    500us),計時器達到所需值(500us)后,會生成一個觸發(fā)器,用于重置連接的 GTM_ATOM 通道的 CN0 值。 CAN 有人給我一些幫助嗎?
    發(fā)表于 01-29 08:13

    怎么ibert中使用外部時鐘

    我一直試圖ibert中使用外部時鐘。但我不能。任何人都可以幫助我?我使用核心生成器從ISE Designs Tools生成核心,并且放置了作為我的外部時鐘源的引腳號。但是當(dāng)我
    發(fā)表于 03-12 13:48

    如何使用IBERT生成眼圖

    GTX端口是TX,另一個是RX)。以下是頂層模塊中IBERTblock的實例化。 ibert_7series_gtx_0 ibert_0 //頂層生成
    發(fā)表于 05-22 10:18

    使用IBERT時,為什么MGT鏈路狀態(tài)chipcope分析儀中沒有鏈接

    問題是關(guān)于IBERT,首先讓我描述一下我遇到的現(xiàn)象:我使用IBERT核心生成生成比特流文件并將其下載到我的板上以測試我的設(shè)計的BER,然后我打開I
    發(fā)表于 06-03 11:15

    IBERT設(shè)計如何配置?

    你好, 我遇到了生成IBERT設(shè)計的問題。第一個配置工作正常,但如果我示例項目中修改IBERT核心,那些更改將不會生效。對于Virtex設(shè)計,我修改了
    發(fā)表于 08-05 13:36

    如何使用ISE 14.7并且使用斯巴達6生成IBERT核心?

    我正在使用IBERT進行掃描測試,發(fā)現(xiàn)IBERT控制臺上用于掃描測試日志,掃描測試圖和掃描測試信息的單選按鈕丟失了。我正在使用ISE 14.7并且使用斯巴達6生成IBERT核心。有沒
    發(fā)表于 08-10 10:27

    IBERT GUI中,如果我將DWELL BER設(shè)置為1e-5是什么意思?

    嗨,我已經(jīng)ISE 14.7中的芯片內(nèi)窺鏡IBERT核心上生成了以太網(wǎng)10G BASE-R核心,我能夠成功運行眼睛掃描測試。IBERT G
    發(fā)表于 08-17 09:13

    如何在SystemVerilog中為狀態(tài)機的命令序列生成建模

     我們將展示如何在SystemVerilog中為狀態(tài)機的命令序列生成建模,并且我們將看到它是如何實現(xiàn)更高效的建模,以及實現(xiàn)更好的測試生成。?
    發(fā)表于 01-01 06:05

    Vivado圖形化界面IDE中運行和調(diào)試Tcl命令

    管腳到內(nèi)部的線長也需要考慮。fpga工程師可以vivado的Tcl Console中執(zhí)行tcl命令生成對應(yīng)器件的trace length
    發(fā)表于 06-17 14:52

    華為gtm900無線模塊(AT命令手冊)

    本手冊包含7 章,內(nèi)容如下。􀁺 AT 命令概述:從整體上對GTM900 提供的AT 命令進行了介紹,包括AT 命令類型、AT 命令
    發(fā)表于 08-14 22:21 ?192次下載

    詳解如何用AD生成Gerber文件

    詳解如何用AD生成Gerber文件
    發(fā)表于 11-23 11:07 ?0次下載

    WCDMA中如何用FPGA生成下行擾碼

    由兩個M序列相加而成,且容易產(chǎn)生、自相關(guān)性優(yōu)良的優(yōu)點。本文介紹下行擾碼的生成過程和如何用FPGA的實現(xiàn)。采用Verlog硬件描述語言進行功能描述,寫信號的作用下,予付擾碼初值,
    的頭像 發(fā)表于 07-02 08:06 ?1839次閱讀
    <b class='flag-5'>在</b>WCDMA中如<b class='flag-5'>何用</b>FPGA<b class='flag-5'>生成</b>下行擾碼

    何用proc sql生成宏變量?

    上節(jié)我們講了PROC SQL的基本結(jié)構(gòu),以及一些sql命令的使用,這節(jié)我們主要講一下case...when...、order by 、group by 、update、delete語句以及如何用proc sql生成宏變量。
    的頭像 發(fā)表于 05-19 16:13 ?2295次閱讀
    如<b class='flag-5'>何用</b>proc sql<b class='flag-5'>生成</b>宏變量?

    Versal GTY/GTYP:使用PRBS生成器和檢查器

    本文涵蓋了 Versal GTY 和 GTYP 中使用模式生成器和檢查器時對以下操作的限制
    的頭像 發(fā)表于 07-10 17:18 ?1036次閱讀

    Vivado設(shè)計套件Tcl命令參考指南

    電子發(fā)燒友網(wǎng)站提供《Vivado設(shè)計套件Tcl命令參考指南.pdf》資料免費下載
    發(fā)表于 09-14 10:23 ?1次下載
    Vivado設(shè)計套件<b class='flag-5'>Tcl</b><b class='flag-5'>命令</b>參考指南