主頁 > 後端開發 > Xilinx GTH 簡介 ,CoaXpress FPGA PHY 部分

Xilinx GTH 簡介 ,CoaXpress FPGA PHY 部分

2023-06-12 07:43:55 後端開發

什么是GTH

GTH 是Xilinx UltraScale系列FPGA上高速收發器的一種型別,本質上和其它名稱如GTP, GTX等只是器件型別不同、速率有差異;GTH 最低速率在500Mbps,最高在16Gbps

CoaXpress Host/Device IP 均需要用到廠商的GT收發器模塊,因此這里寫一篇筆記作為開發記錄

GTH 的特性

physical coding sublayer (PCS) 是Xilinx 高速收發器的最頂層.

PCS(Physical Coding Sublayer)層是資料鏈路層中的一個子層,位于物理層和MAC(Media Access Control)層之間,它是在資料鏈路層中的一個組成部分,用于實作物理層與MAC層之間的介面功能,

PCS層的主要作業是將上層的資料幀轉換為物理層能夠傳輸的信號,并負責將接收到的信號決議為資料幀,它主要完成以下幾個任務:

編碼和解碼:PCS層負責將上層資料幀進行編碼,將其轉換為物理層可傳輸的信號,這通常涉及到將數字資料轉換為模擬信號,并在發送端對信號進行編碼,接收端的PCS層則負責對接收到的信號進行解碼,將其轉換回數字資料,

時鐘恢復:PCS層通過對接收到的信號進行時鐘恢復操作,確保資料的準確傳輸,這包括識別接收信號中的時鐘資訊,以便正確地決議資料,

傳輸編碼:PCS層可能會對資料進行傳輸編碼,以增強傳輸的可靠性和效率,這包括添加冗余校驗碼、錯誤檢測和糾正碼等,以提高資料傳輸的可靠性,并確保資料在傳輸程序中不會出現錯誤,

對齊:PCS層負責對接收到的資料進行對齊,確保資料能夠正確地被上層的MAC層處理和決議,

總的來說,PCS層在資料鏈路層和物理層之間起到了一個介面的作用,負責將上層的資料進行編碼、時鐘恢復、傳輸編碼和對齊等操作,以實作可靠的資料傳輸,

由此可見,時鐘恢復,資料編碼,資料對齊等操作,均在PCS層完成,如果需要傳輸CRC校驗,可以在更上一層實作,計算CRC后,將CRC結果作為正常資料進行傳輸

GTH 結構

下圖是GTH的架構圖,從圖中可以得到幾個資訊:

1、GTH 一般是4個一組,4個channel ,1個common ,common負責時鐘部分,channel 部分對應具體的serdes;

2、時鐘恢復電路在PMA部分;

普通使用中需要關注的部分如下:

8B/10B 編解碼,以RX為例

GTH模塊內置了8b/10b編解碼

對于單個channel來說,通常會選擇內部40bit 位寬,用戶32bit位寬模式,因為多數協議會定義用戶資料為1個word == 4 bytes

8b/10b 編碼的錯誤指示

The 8B/10B decoder performs out-of-table error detection and drives the RXCTRL3 port High when it is enabled,

but receives a 10-bit character that cannot be mapped into a valid 8B/10B character listed in Appendix A, Valid Data Characters. When this occurs, the

non-decoded 10-bit character is piped out of the decoder through the RX data interface with this format:

? The corresponding RXCTRL1 represents the 9th bit

? The corresponding RXCTRL0 represents the 8th bit

? The corresponding RXDATA byte represents the [7:0] bits

? The corresponding RXCTRL3 represents that an invalid 8B/10B character error occurred

8b/10b comma 對齊與word對齊

用K 碼做對齊,常見用作對齊的K碼為K28.5和K28.1,下圖就實用K28.5做對齊

這只是byte對齊了,那么word怎么對齊呢?比如CoaXPress的downconnection高速傳輸用的都是1個word 4個位元組作為一個最小單位,那么word怎么對齊呢?GTH也已經考慮了這一點,配置如下:

對應到GTWIZARD 模塊,配置如下:

根據上述配置,CoaXpress協議對應的word資料就能正確的對齊并輸出

(A word consists of 4 consecutive 8B/10B characters labeled P0, P1, P2 and P3 and are transmitted in the stated order (i.e. P0 first). The receiver shall perform word alignment in order to successfully decode the packets.)

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/554905.html

標籤:其他

上一篇:【技識訓累】Java中的泛型【一】

下一篇:返回列表

標籤雲
其他(160794) Python(38219) JavaScript(25492) Java(18216) C(15237) 區塊鏈(8270) C#(7972) AI(7469) 爪哇(7425) MySQL(7246) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5873) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4589) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2435) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1961) Web開發(1951) C++(1933) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Xilinx GTH 簡介 ,CoaXpress FPGA PHY 部分

    ## 什么是GTH GTH 是Xilinx UltraScale系列FPGA上高速收發器的一種型別,本質上和其它名稱如GTP, GTX等只是器件型別不同、速率有差異;GTH 最低速率在500Mbps,最高在16Gbps ![](https://img2023.cnblogs.com/blog/274 ......

    uj5u.com 2023-06-12 07:43:55 more
  • 【技識訓累】Java中的泛型【一】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-12 07:43:40 more
  • List 介面及其常用方法

    List 介面是 Collection 介面的子介面。List 中元素有序,是按照元素的插入順序進行排序的。每個元素都有一個與之關聯的整數型索引(索引從 0 開始),可以根據索引來訪問和操作元素,可以使用普通 for 回圈遍歷。List 中可以包含重復的元素。 ......

    uj5u.com 2023-06-12 07:43:36 more
  • Go 語言實作 MySQL 資料庫事務

    # Go 實作 MySQL 資料庫事務 ## 一、MySQL事務 MySQL事務是指一組資料庫操作,它們被視為一個邏輯單元,并且要么全部成功執行,要么全部回滾(撤銷)。事務是資料庫管理系統提供的一種機制,用于確保資料的一致性和完整性。 事務具有以下特性(通常由ACID原則定義): 1. 原子性(At ......

    uj5u.com 2023-06-12 07:43:32 more
  • Spring配置動態資料庫

    前言 本文主要介紹使用spring boot 配置多個資料庫,即動態資料庫 開始搭建 首先創建一個SpringWeb專案——dynamicdb(spring-boot2.5.7) 然后引入相關依賴lombok、swagger2、mybatis-plus,如下: <?xml version="1.0" ......

    uj5u.com 2023-06-12 07:43:24 more
  • ubuntu 搭建 cmake + vscode 的 c/c++ 開發環境

    # todo 串列 - [ ] clang-format - [ ] c++ 整合 # 軟體安裝 略 # 基本的環境搭建 ## 最基本的 vscode 插件 只需要安裝如下兩個插件即可 c/c++ 擴展是為了最基本的代碼提示和除錯支持 cmake language support 是為了提示 CMa ......

    uj5u.com 2023-06-12 07:42:41 more
  • Java NIO原理 (Selector、Channel、Buffer、零拷貝、IO多路復用)

    [系列文章目錄和關于我](https://www.cnblogs.com/cuzzz/p/16609728.html) ## 零丶背景 最近有很多想學的,像netty的使用、原理原始碼,但是苦于自己對于作業系統和nio了解不多,有點無從下手,遂學習之。 ## 一丶網路io的程序 ![image-202 ......

    uj5u.com 2023-06-12 07:41:52 more
  • 【VS Code 與 Qt6】運用事件過濾器批量操作子級組件

    如果某個派生自 QObject 的類重寫 eventFilter 方法,那它就成了事件過濾器(Event Filter)。該方法的宣告如下: virtual bool eventFilter(QObject *watched, QEvent *event); watched 引數是監聽事件的物件,即 ......

    uj5u.com 2023-06-12 07:41:25 more
  • Go 連接 MySQL之 MySQL 預處理

    # Go 連接 MySQL之 MySQL 預處理 ## 一、ChatGPT 關于 MySQL 預處理 的回答 ### 問:什么是MySQL 的預處理 具體執行程序時什么 #### ChatGPT 答: MySQL的預處理是一種在執行SQL陳述句之前,先進行編譯和優化的機制。它將SQL陳述句分成兩個階段: ......

    uj5u.com 2023-06-12 07:40:49 more
  • Java 網路編程 —— 基于 UDP 的資料報和套接字

    ## UDP 簡介 UDP(User Datagram Protocol,用戶資料報協議)是傳輸層的另一種協議,比 TCP 具有更快的傳輸速度,但是不可靠。UDP 發送的資料單元被稱為 UDP 資料報,當網路傳輸 UDP 資料報時,無法保證資料報一定到達目的地,也無法保證各個資料報按發送的順序到達目 ......

    uj5u.com 2023-06-12 07:40:45 more