FPGA - GTX收發器-K碼 以及 IBERT IP核使用

一,前言

在FPGA - Xilinx系列高速收發器---GTX中詳細介紹了GTX的基礎知識,以及IP核的調用,下面將補充一下GTX在使用中的高速串行數據流在接收和發送時的控制與對齊(K碼),以及高速接口GTX,如果GTX建鏈建不起來,Vivado自帶的調試工具誤碼率測試(Integrated Bit Error Ratio Tester,IBERT)核的使用。


二,Comma碼(K碼)

????????高速串行數據流在接收端需要重新串并轉換成多個字節的并行數據,如何有效的識別32bit數據邊界?這就需要一個特殊的序列,即為Comma碼(K碼)。在任意數據組合中,Comma碼只作為控制字符出現,在數據負荷部分不會出現,所以使用comma碼字符只是幀的開始和結束標志,或者修正和數據流對齊的控制字符

????????K碼是一個集合,D碼用來傳數據字符,K碼用來傳控制字符,所有和數據本身無關的通道控制功能都是由K碼來完成的。
????????常見的 K 碼為 K28.5,換成十六進制就是 0xBC。
????????使用 GT 收發器時,K碼主要起到兩個作用:??①K碼對齊(comma alignment)? ②)幀對齊(word alignment)

????????K碼對齊(comma alignment)
????????定義:接收端通過K碼,將連續1bit 的數據串行數據分割成有效的字節數據,也就是將有效數據從連續的 0、1中間恢復出來。K 碼對齊是 GT IP 核自動完成的

? ? ? ? 看下面例子(aabbcc可以看作為幀頭,bc為K碼)

????????? ? ?

? ? ? ? 但是在實際傳輸中可能出現了字節偏移,如下圖:

? ? ? ?? ? ??

? ? ? ? 對于用戶端就得設計幀對齊,即通過判斷charisk的值,來判斷是否發生了字節偏移 ,如果發生了偏移 就進行移位操作,如下圖:?

? ? ? ? ? ? ? ? ? ? ? ?


三,IBERT核

1,概述

????????IBERT(集成誤碼率測試儀)是xilinx為7系列FPGA?GTX收發器設計的,用于評估和監控GTX收發器。IBERT包括在FPGA邏輯中實現的模式生成器和檢查器,以及對端口的訪問和GTX收發器的動態重新配置端口屬性,還包括通信邏輯,以允許設計在運行時通過JTAG進行訪問。

????????IBERT工具用于對Xilinx?FPGA芯片的高速串行收發器進行板級硬件測試。通過IBERT可以獲取誤碼率,觀察眼圖,調節串行收發器的參數,從而有助于判斷可能存在的問題,便于驗證硬件的穩定性和信號完整性。

2,測試原理

????????IBERT中的BERT是Bit Error Ratio Test的縮寫,指比特出錯概率測試,簡而言之就是誤碼率測試。Vivado中IBERT工具的測試原理是通過收發器由外部回環進行自收自發而實現。就是將同一組收發器的TX和RX進行短接,TX發送端通過發送某種特定序列的數據流,在RX接收端接收后,通過比對發送和接收的數據,從而得出接收端誤碼的統計值。

????????GTX接收和發送方向均由PMAPCS兩部分組成,PCS提供豐富的物理編碼層特性,如8b10b編碼、時鐘校準等功能,PMA部分為模擬電路,提供高性能的串行接口特性,如預加重、均衡等功能。GTX同時還提供動態配置接口,用于動態的修改GTX的配置。

?????????IBERT 工具的環回模式有:

????????近端PCS環回測試(路徑①),數據流僅通過近端GTX的PCS部分,可用于驗證近端GTX中PCS收發雙向的設置;

????????近端PMA環回測試(路徑②),數據流通過近端GTX的PCS、PMA,可用于驗證近端GTX收發雙向的設置;

????????遠端PMA環回測試(路徑③),數據流通過近端GTX的PCS和PMA,遠端的GTX的PMA部分,通過兩個GTX之間的物理連線,驗證兩個GTX之間物理聯系的可靠性,以及驗證兩個GTX的PMA部分設置的正確性;

????????遠端PCS環回測試(路徑④)驗證近端收發器和遠端收發器的通信狀況;以及None無環回模式即通過外部連接發送和接收。

????????遠端PCS或PMA環回測試時板卡下載IBERT核生成的bit文件,通過兩個通道上的Tx和Rx接口互相連接,其中一個通道上的模式設置為Far_End_PMAFar_End_PCS模式,另一個通道設置為默認的None模式并監測誤碼率

????????Vivado中IBERT默認模式為None模式,收發器通過外部連線由外部環回進行自收自發而實現。可將同一組收發器的TX和RX進行短接,在RX接收端接收TX發送的數據后,通過比對發送和接收的數據,從而得出接收端誤碼的統計值。

3,IP核配置

(1)創建工程

打開vivado,新建工程后從IP Catalog找到IBERT并雙擊打開;

(2)第一頁配置

IBERT測試協議選擇Custom1,GTX參考時鐘選擇頻率為125MHz,在配置的過程中,Refclk可選的頻率是由LineRate決定,由于在板卡上Refclk已固定為125MHz,因此測試所選擇的線速應支持125MHz的參考時鐘。

(3)?第二頁配置

(4)?第三頁配置?

(5)第四頁總結??

(6)打開例程

創建完成后打開官方例程

(7)生成比特流-燒錄

(8)測試

在Serial I/O Links窗口創建連接,將同1個GTX中同一個通道的TX和RX建立link。(也可以選擇auto-detectlinks)

進行近端環回

?選擇????????MGT_X0Y0/TX? ?????????MGT_X0Y0/RX

????????????????MGT_X0Y1/TX? ? ? ?????MGT_X0Y1/RX

在serial I/O link最右端的loopback mode選擇近端PCS(或PMA)環回模式,在改變模式時可能會出現誤碼,需要點擊reset重新監測

然后創建眼圖:

可以看到藍色表示正常,紅色表示誤碼


遠端環回

改變環回模式后記得復位一下

創建眼圖


四、總結

????????通過環回和開環方式進行誤碼率測試,可以識別問題測定板卡的實際支持速率。IBERT能夠在運行時配置高速串行收發通道的各項參數,提供多種環回模式和測試激勵源,并通過自動掃描測試確定收發的最佳參數。這能夠滿足硬件測試中對高速串行收發通道信號測試的大部分需求,也適用于故障定位等場合。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13187.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13187.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13187.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Springboot開發 -- Postman 調試 session 驗證 接口

當我們在開發Spring Boot應用時,經常會遇到帶有Session驗證的接口,這些接口需要用戶先登錄并獲取到Session ID(或稱為cookie中的JSESSIONID),然后在后續的請求中攜帶這個Session ID來保持會話狀態。下面我將以一個實際…

力扣72-編輯距離

題目鏈接 記憶化搜索: 解題關鍵:每次僅考慮兩字符串word1、word2分別從0 - i修改成0-j下標的完全匹配(下標表示) 臨界條件:當 i 或 j 小于0時,表示該字符串為空,編輯距離確定為 y1 或 x1 int dp[501][501…

Hello, GPT-4o!

2024年5月13日,OpenAI 在官網正式發布了最新的旗艦模型 GPT-4o 它是一個 多模態模型,可以實時推理音頻、視頻和文本。 * 發布會完整版視頻回顧:https://www.youtube.com/watch?vDQacCB9tDaw GPT-4o(“o”代表“omni”&#xff0c…

高效協同,智慧繪制:革新型流程圖工具全解析

流程圖,作為一種直觀展示工作過程和系統運作的工具,在現代辦公和項目管理中發揮著不可或缺的作用。 其優勢在于能夠清晰、直觀地呈現復雜的過程和關系,幫助人們快速理解并掌握關鍵信息。同時,流程圖也廣泛應用于各種場景&#xf…

linux常用命令(持續更新)

1.sudo -i 切換root權限 2. ll 和 ls 查看文件夾下面的文件 3. cat 查看文件內容 cat xxx.txt |grep 好 篩選出有好的內容 4. vi 編輯文件 點擊insert進入編輯模式 編輯完之后點擊Esc退出編輯模式 數據:wq!回車保存文件 5. ssh 連接到可以訪問的系統 6. telnet 看端口是否可以…

【Python】圖像批量合成視頻,并以文件夾名稱命名合成的視頻

一個文件夾中有多個子文件夾,子文件夾中有多張圖像。如何把批量把子文件夾中的圖像合成視頻,視頻名稱是子文件夾的名稱,生成的視頻保存到指定文件夾,效果記錄。 代碼 import os import cv2def create_video_from_images(image_f…

leetcode刷題(6):二叉樹的使用

文章目錄 104. 二叉樹的最大深度解題思路c 實現 94. 二叉樹的中序遍歷解題思路c 實現 101. 對稱二叉樹解題思路c 實現 96. 不同的二叉搜索樹解題思路c 實現 102. 二叉樹的層序遍歷解題思路c 實現 104. 二叉樹的最大深度 題目: 給定一個二叉樹 root ,返回其最大深度…

重新認識Flutter跨平臺技術(上)

背景 2017年,Flutter剛推出來的時候,正好自己在做TV Launcher開發的工作。 我們知道TV Launcher是Android TV操作系統中的一個啟動器應用程序。它負責在打開電視時展示給用戶的主要界面,包括應用程序圖標、推薦內容等。通過Android TV Launcher,用戶可以方便地瀏覽和啟動…

ALV 圖標顯示

前言 在ABAP ALV中,使用fieldcat來定義列表中每個字段的顯示屬性,包括圖標(Icon)的顯示。圖標可以在ALV列表中為特定列的行或標題添加圖形元素,以增強視覺提示或傳達附加信息。 ICON查詢 圖標的名稱用事務碼”ICON“進…

智能BI(后端)-- 系統異步化

文章目錄 系統問題分析什么是異步化?業務流程分析標準異步化的業務流程系統業務流程 線程池為什么需要線程池?線程池兩種實現方式線程池的參數線程池的開發 項目異步化改造 系統問題分析 問題場景:調用的服務能力有限,或者接口的…

離岸公司+外貿

為什么外貿公司老板都喜歡注冊離岸公司呢?怎樣利用離岸公司做進出口貿易呢? 今天大家花一分鐘時間來了解清楚 第一步就是注冊一家離岸公司,將這個離岸公司作為國際外貿的中轉站,與國外客戶簽訂單,你從國內工廠采購商…

【文檔理解】TextMonkey:一種OCR-Free的用于文檔理解的多模態大模型

背景 傳統的信息提取,通常是從文本中提取信息,相關技術也比較成熟。然而對于復雜領域,例如圖片,文檔等形式的數據,想要提取出高質量的、可信的數據難度就比較大了,這種任務也常稱為:視覺文檔理…

CTF網絡安全大賽web題目:just_sqli

這道題目是bugku的web題目 題目的 描  述: KosenCTF{} 原文鏈接&#xff1a; CTF網絡安全大賽web題目&#xff1a;just_sqli - 紅客網-網絡安全與滲透技術 題目Web源代碼&#xff1a; <?php$user NULL; $is_admin 0;if (isset($_GET["source"])) {highlig…

齊護K210系列教程(二十七)_語音識別

語音識別 1.燒錄固件和模型2.語音識別程序2.1訓練并識別2.2使用本地文件語音識別 3.課程資源聯系我們 1.燒錄固件和模型 注&#xff1a;本應用只適用于有麥克風功能的型號&#xff1a;AIstart_pro、AIstart_掌機、AIstart_Mini, 其它型號不支持&#xff01; 機器碼生成以及模…

linux中遠程服務器上傳輸文件的10個sftp命令示例

目錄 1. 如何連接到 SFTP 2. 幫助 3.檢查當前工作目錄 4. 使用 sftp 列出文件 遠程 本地 5. 使用 sftp 上傳文件 6. 使用 sftp 上傳多個文件 7. 使用 sftp 下載文件 8. 在 sftp 中切換目錄 遠程 本地 9. 使用 sftp 創建目錄 10. 使用 sftp 刪除目錄 11. 退出 sf…

(001)apidoc 的安裝

安裝 1.確定 node 和 npm 的匹配版本 node -vv10.14.1# 切換node 版本 nvm list nvm use 20.12.22.安裝 apidoc。 npm install -g apidoc3.生成文檔&#xff1a; apidoc -i ../ -o document/ -f ".java$"-i &#xff1a;指定掃描路徑。-o&#xff1a;輸出目錄。…

golang并發(同步)多任務高性能執行聚合

taskgroup golang并發執行多任務&#xff0c;并聚合多任務結果。 使用文檔、 項目github 使用: go get github.com/mlee-msl/taskgroup 功能特點 并發安全的執行多個任務將多個任務的結果進行聚合通過扇出/扇入模式&#xff0c;結合線程安全channel實現高效協程間通信多任務復…

【Linux:環境變量】

環境變量一般是指在操作系統中用來指定操作系統環境的一些參數 常見的環境變量&#xff1a; PATH 指定可執行程序的搜索路徑 系統級的文件&#xff1a;/etc/bashrc 用戶級文件&#xff1a;~/.bashrc ~/.bash_profile HOME 指定用戶的主要工作目錄&#xff08;當前用…

kettle從入門到精通 第六十一課 ETL之kettle 任務調度器,輕松使用xxl-job調用kettle中的job和trans

想真正學習或者提升自己的ETL領域知識的朋友歡迎進群&#xff0c;一起學習&#xff0c;共同進步。若二維碼失效&#xff0c;公眾號后臺加我微信入群&#xff0c;備注kettle。 1、大家都知道kettle設計的job流程文件有個缺點&#xff1a;只能設置簡單的定時任務&#xff0c;無法…

DPDK:用rte_wmb()來保序,對ARM和IA而言,RTE_WMB()的實現有何不同

rte_wmb()函數在DPDK中用于實現寫入屏障&#xff08;Write Memory Barrier&#xff09;&#xff0c;它的作用是確保在CPU執行寫操作之前&#xff0c;所有先前的寫操作已經被完全刷新到內存中。這個函數在IA和ARM處理器上的實現有一些不同。 對于Intel Architecture (IA)處理器而…