學習aurora64/66b.20240703

簡介

The AMD LogiCORE?IP Aurora 64B/66B core是一種可擴展的輕量級高數據速率鏈路層協議,用于高速串行通信。該協議是開放的,可以使用AMD設備技術實現。

Aurora 64B/66B是一種輕量級的串行通信協議,適用于多千兆位鏈路 (如下圖所示)。它用于使用一個或多個GTX、GTH或GTY收發器在設備之間傳輸數據。連接可以是全雙工 (兩個方向的數據) 或單工 (任一方向的數據)。

Aurora 64B/66B信道概覽

Aurora 64B/66B內核在連接到Aurora64B/66B渠道合作伙伴時會自動初始化渠道。初始化后,應用程序可以通過通道傳遞數據作為幀或數據流。Aurora 64B/66B框架可以是任何尺寸。高優先級請求能夠在任何時間中斷這些幀。有效數據字節之間的間隙會自動填充閑置,以保持鎖定并防止過多的電磁干擾。流控制在Aurora 64B/66B中是可選的,可用于限制linkpartner的傳輸數據速率,或通過通道發送簡短的高優先級消息。流在Aurora 64B/66B中實現為單個無休止的幀。每當數據未被發送時,發送閑置以保持鏈路存活。過多的位錯誤、斷開連接或設備故障會導致內核重置并嘗試初始化新通道。Aurora 64B/66B核心可以支持多通道信道的接收中的最多兩個符號偏斜。Aurora 64B/66B協議使用64B/66B編碼。與8B的25% 開銷相比,64B/66bencoding具有非常低 (3%) 的傳輸開銷,因此理論上可以提高性能。

Aurora 64B/66B核心框圖

通道邏輯: 通道邏輯模塊的實例驅動每個GT收發器。該通道邏輯初始化每個單獨的收發器,處理控制字符的編碼和解碼,并執行錯誤檢測

通道邏輯: 通道邏輯模塊的實例驅動每個GT收發器。該通道邏輯初始化每個單獨的收發器,處理控制字符的編碼和解碼,并執行錯誤檢測。

全局邏輯: 內核中的全局邏輯模塊執行用于通道初始化的通道綁定。在操作期間,通道跟蹤由Aurora 64B/66B協議定義的未就緒空閑特性,并監視所有通道邏輯模塊的錯誤。

RX用戶界面: AXI4-Stream接收 (RX) 用戶界面將數據從通道移動到應用程序,并執行流量控制功能。

TX用戶界面: AXI4-Stream傳輸 (TX) 用戶界面將數據從應用程序移動到信道,并執行流量控制TX功能。標準時鐘補償模塊嵌入在核心內部。該模塊控制時鐘補償 (CC) 的周期性傳輸。

核操作的最大頻率取決于支持的線路速率和設備的速度等級。

吞吐量:Aurora 64B/66B核心吞吐量取決于收發器的數量、收發器類型和所選收發器的目標線路速率。對于GTH收發器,吞吐量分別從單通道設計到16通道設計的0.48 Gbps到254.06 Gbps不等。note:為了在使用VIVADO的默認合成策略時獲得更好的定時性能,請將線路速率從IP/收發器支持的最大線路速率降低約30%。當啟用CRC_MODE時,將線路速率降低50%。使用另一種合適的合成策略,用戶可以實現IP中支持的最大線路速率。?

端口說明:

頂層文件實例化Aurora 64B/66B lanemodule、TX和RX AXI4-Stream模塊、全局邏輯模塊以及GTX、GTH、orGTY收發器包裝器。此頂級包裝文件在示例設計文件中與時鐘、復位電路、幀生成器和檢查器模塊一起實例化。

下圖顯示了Aurora 64B/66B AXI4-Stream數據接口位排序的n字節示例。

成幀用戶界面 (如下圖所示) 符合AMBA AXI4-StreamProtocol規范 (ARM IHI 0051A),并包含發送和接收成幀用戶數據所需的信號。成幀接口的詳細描述如下。

僅當s_axi_tx_tready和s_axi_tx_tvalid均被斷言時,Aurora 64B/66B核心才對數據進行采樣。用戶應用程序可以在任何時鐘周期 (帶暫停的數據傳輸) 取消斷言s_axi_tx_tvalid,以忽略該周期的AXI4-Stream輸入。如果這發生在幀的中間,則通過Aurora 64B/66B信道發送空閑符號。AXI4-Stream數據僅在成幀時有效。忽略幀外的數據。要結束aframe,當數據的最后一個字 (或部分字) 在thes_axi_tx_tdata端口上時,斷言s_axi_tx_tlast,并使用s_axi_tx_tkeep指定最后數據節拍中的有效字節數。(就是AXI-S的傳輸模式)

在framing中,每個幀以數據塊開始,并以包含幀的最后字節的分隔符塊結束。每當數據不可用時,就插入空閑塊。塊是8個字節的加擾數據或具有2位控制報頭 (總共66位) 的控制信息。

(幀傳輸過程為AXI傳輸模式大致一致,具體內容在file:///D:/NKUiversity/相關論文/xilinx資料/pg074-aurora-64b66b-en-us-12.0.pdf。16-20頁,之后有成幀效率)

流接口:

流接口 (如下圖所示) 允許在沒有幀分隔符的情況下進行數據傳輸,因此操作簡單,同時使用的資源比framing interface少。

在數據流中,Aurora 64B/66B通道用作管道。流式Aurora 64B/66Binterface期望填充整個s_axi_tx_tdata端口寬度 (八個字節的整數倍) 的數據。當s_axi_tx_tvalid被取消斷言時,除傳輸時鐘補償序列外,在保留的字之間會產生間隙。

當數據到達Aurora 64B/66B通道的RX端時,如果不立即讀取,則會丟失。如果這是不可接受的,則必須將緩沖器連接到RX接口以保存數據,直到可以使用。

下圖顯示了一個典型的流數據傳輸,開始時沒有斷言兩個就緒信號,以表明用戶邏輯和核心都沒有準備好傳輸數據。

在下一個時鐘周期中,內核通過斷言s_axi_tx_tready表示它已準備好傳輸數據。一個周期后,用戶邏輯斷言s_axi_tx_tvalid信號,并將數據放在s_axi_tx_tdata總線上,表明它已準備好傳輸數據。因為現在兩個信號都被斷言了,所以如下圖所示的數據0從用戶邏輯傳輸到核心。數據1按以下時鐘周期傳輸。在本例中,內核釋放它的就緒信號s_axi_tx_treready,并且直到下一個時鐘周期才傳輸數據。當再次斷言s_axi_tx_tready信號時,用戶應用程序在下一個時鐘周期取消斷言s_axi_tx_tvalid,并且在斷言兩個信號之前不傳輸數據。

下圖顯示了一個典型的流數據接收示例,可以看到,在rx_valid有效的時候才會接收數據

時鐘接口:

參考gtx收發器

流量控制接口:

狀態、控制和收發器接口:

Aurora 64B/66B核心的狀態和控制端口允許用戶應用程序監控通道并使用GTX、GTH和GTY收發器的內置功能。介紹狀態接口、控制接口、收發模塊串口的示意圖和端口說明。DRP接口允許通過符合AXI4-Lite協議或本機動態重新配置端口(DRP)接口讀取和更新串行收發器參數和設置

? ?(接口說明在page 38-41)主要是動態重新配置高速收發器

reset_pb:?按鈕重置。在example design 中作為的top層重置輸入。驅動內核內部的支持重置邏輯所需。

pma_init:收發器PMA_INIT復位信號通過一個無抖動器連接到頂層。系統地重置收發器的所有物理編碼子層(PCS)和物理介質附件(PMA)子組件。信號使用init_clk_in去抖動至少6個init_clk周期。有關詳細信息,請參閱相關收發器用戶指南中的重置部分。

可以理解為這兩個信號都是復位信號。

drp_clk_in:用戶可配置的參數僅適用到 7 系列 FPGA 設計。默認值為100兆赫。drp_clk頻率可以從50 MHz 至 x MHz,其中 x 是設備和速度取決于等級。

init_clk_in:信號用于注冊和去抖動pma_init信號。首選的init_clk范圍是50 ~ 200mhz。核心設置的默認init_clk頻率為50mhz,用于7系列設計,

note:收發器控制和狀態接口中的端口必須按照相應的GT用戶指南進行驅動。使用表12所示的輸入信號:收發器控制和狀態接口端口使用不當可能會導致IP核的不可預知行為

auror64B/66B內核中的錯誤信號:

設備問題和通道噪聲可能導致極光64B/66B通道運行錯誤。64B/66B編碼方法允許Aurora 64B/66B核心檢測信道中發生的位錯誤。內核通過在檢測到這些錯誤的每個周期中斷言soft_err信號來報告這些錯誤。

該核心還監視每個高速串行GTX和GTH收發器的硬件錯誤,如緩沖區溢出和鎖丟失。通過斷言hard_err信號來報告硬件錯誤。災難性的硬件錯誤也可以表現為軟錯誤的爆發。Aurora 64B/66B協議規范(SP011)中描述的塊同步算法決定是否將軟錯誤突發視為硬錯誤。

無論何時檢測到硬錯誤,內核都會自動重置自身并嘗試重新初始化。在大多數情況下,當導致硬錯誤的硬件問題得到解決時,這允許重新建立Aurora 64B/66B通道。軟錯誤不會導致重置,除非在短時間內出現某些觸發塊同步狀態機的錯誤。

硬錯誤:1.TX溢出/下流:TX數據彈性緩沖區存在溢出或下流情況。當用戶時鐘和參考時鐘源不在同一頻率上工作時,就會出現這種情況。2.RX溢出/下流:RX數據時鐘校正和通道綁定FIFO存在溢出或下流情況。當兩個通道伙伴的時鐘源頻率不在±100ppm范圍內時,就會出現這種情況

軟錯誤:短時間內發生的軟錯誤太多。1.如果檢測到太多無效同步標頭,對齊塊同步狀態機將自動嘗試重新對齊。軟錯誤不會轉化為硬錯誤。2.無效的同步頭:64位塊上的2位頭不是有效的控制頭或數據頭。3.無效的同步頭:64位塊上的2位頭不是有效的控制頭或數據頭。

初始化:

上電、復位、硬錯誤后,內核自動初始化(下圖)。通道兩側的核心模塊執行Aurora 64B/66B初始化過程,直到通道準備好使用。lane_up總線指示通道中的哪些通道已經完成了過程的通道初始化部分。lane_up信號可以用來幫助調試多通道信道中的設備問題。Channel_up只有在核心完成整個初始化過程之后才會斷言。

Aurora 64B/66B內核可以在斷言channel_up之前接收數據。應該只使用用戶界面m_axi_rx_tvalid信號來限定傳入的數據。因為在斷言channel_up之后才會發生傳輸,所以channel_up可以反轉并用于重置驅動全雙工信道的TX端的模塊。如果用戶應用模塊需要在接收數據之前復位,則可以使用反向lane_up信號來實現此目的。在所有的lane_up信號被斷言之前,數據不能被接收。

時鐘:

良好的時鐘對64B/66B核心的正確運行至關重要。核心需要一個低抖動參考時鐘來驅動GTX、GTH或GTY收發器中的高速TX時鐘和時鐘恢復電路。核心還需要至少一個鎖定頻率的并行時鐘,以便與用戶應用程序進行同步操作。時鐘架構圖:

gt_refclk (clkp/clkn)是一個專用的外部時鐘,由振蕩器生成,并通過專用的IBUFDS提供。

時鐘接口具體與開發板的連接還需要熟悉。明天再看看GTX收發器

(本文僅對用賽靈思手冊的前半部分,后部分有IP核GUI頁面的說明解釋,調試以及遷移應用等,較為全面,暫時用不到,僅做學習之用)

加:

? ? 正/負差分串行數據輸出引腳。

Q AND A:

1.drp_clk是用來設置參數進行調試用,和gt_ref_clk無關(大概是這個意思)

2.采用init_clk 與開發板上的時鐘沒有關系,50mhz是允許最低的時鐘頻率,有最低的功耗,開發板上的時鐘是提供給fpga一個時鐘源。fpga內部自己可以規定時鐘。

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

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

相關文章

【MATLAB源碼-第139期】基于matlab的OFDM信號識別與相關參數的估計,高階累量/小波算法調制識別,循環譜估計,帶寬估計,載波數目估計等等。

操作環境: MATLAB 2022a 1、算法描述 在現代無線通信系統中,正交頻分復用(OFDM)因其高效的頻譜利用率、強大的抗多徑衰落能力以及靈活的帶寬分配等優勢,成為了一種非常重要的調制技術。然而,隨著無線通信…

采沙船智能監測識別攝像機

對于現代河流管理來說,采沙船智能監測識別攝像機正逐漸成為解決非法采砂和保護河流生態環境的重要工具。這類攝像機通過先進的視覺識別和數據分析技術,有效監控和管理河道上的采沙行為,對保護水域資源和改善生態環境具有顯著的意義。 采沙船智…

Linux容器篇-使用kubeadm搭建一個kubernetes集群

kubernetes集群架構和組件 master節點組件 kube-apiserver:Kubernetes API,集群的統一入口,各組件的協調者,以RESTful API提供接口服務,所有對象資源的增刪改查和監聽操作都交給APIserver處理后再交給Etcd存儲。 kube…

學習Mybatis

Mybatis 第一節 引言 1. 什么是框架 框架是一個半成品,解決了軟件開發過程中的普遍性問題,簡化了開發步驟,提高了開發效率。 2. 什么是ORM ORM全稱為Object Relational Mapping,意為對象關系映射,主要實現了將程序…

usecallback()與usememo()

簡單的說 都是用來監聽數據變化 來進行控制渲染、減少不必要的渲染 、優化性能 usecallback()是用來監聽數據變化從而調用方法 usememo()是用來監聽數據變化從而改變數據 使用return返回變化的數據 當然return 也可以返回方法 所以usememo()可以代替usecallback() 下面詳解 …

常見的編碼技術簡介

常見的編碼技術簡介 文章目錄 常見的編碼技術簡介1. 字符編碼1.1 ASCII1.2 Unicode 2. 數據傳輸編碼2.1 Base系列編碼2.1.1 Base642.1.2 Base162.1.3 Base322.1.4 Base852.1.5 其他Base編碼 2.2 URL編碼2.3 JSON2.4 XML2.5 Protobuf (Protocol Buffers) 1. 字符編碼 1.1 ASCII…

AI是在幫助開發者還是取代他們?——探討AI在軟件開發中的角色與未來

引言 隨著人工智能技術的迅猛發展,AI工具在軟件開發中的應用越來越廣泛。有人認為AI可以顯著提升開發者的效率,而也有人擔心AI會取代開發者的工作。本文將從三個方面探討AI在軟件開發中的角色:AI工具現狀、AI對開發者的影響以及AI開發的未來…

學習springAOP

第三章 Spring AOP 第一節 AOP 簡介 1. 概念 AOP全稱為Aspect Oriented Programming,表示面向切面編程。何為切面呢? 由此可以得出,切面是一種將那些與業務無關,但業務模塊都需要使用的功能封裝起來的技術。這樣便于減少系統的…

昇思25天學習打卡營第4天|應用實踐

昇思25天學習打卡營第4天 文章目錄 昇思25天學習打卡營第4天基于 MindSpore 實現 BERT 對話情緒識別模型簡介環境配置數據集數據加載和數據預處理input_idsattention_mask 模型構建模型驗證模型推理自定義推理數據集 打卡記錄 基于 MindSpore 實現 BERT 對話情緒識別 模型簡介…

奧比中光astra_pro相機使用記錄

一、信息獲取 1、官網 用于了解產品信息 http://www.orbbec.com.cn/sys/37.html 2、開發者社區 咨詢問題下載開發部https://developer.orbbec.com.cn/ 二 、windowvs19 1、相機型號 orbbec_astro_pro 根據對應的型號找到需要的包工具 踩坑1,因為這個相機型號…

第20章 Mac+VSCode配置C++環境

1. 下載VSCode VSCode下載地址在mac終端里輸入xcode- select --install命令,根據提示安裝xcode工具。 2. 安裝插件(4個) 打開VScode,點擊應用右側菜單欄 C/C(必裝) Code Runner(必裝&#xf…

UCOS-III 任務調度與就緒列表管理

01. 就緒優先級位圖 在實時操作系統中,任務調度的效率至關重要。UCOS-III通過就緒優先級位圖來快速查找最高優先級的就緒任務,從而實現高效調度。就緒優先級位圖是一個按位表示的結構,每個位代表一個優先級,當某個優先級上有任務就…

高效管理 TensorFlow 2 GPU 顯存的實用指南

前言 在使用 TensorFlow 2 進行訓練或預測時,合理管理 GPU 顯存至關重要。未能有效管理和釋放 GPU 顯存可能導致顯存泄漏,進而影響后續的計算任務。在這篇文章中,我們將探討幾種方法來有效釋放 GPU 顯存,包括常規方法和強制終止任…

【FFmpeg】avcodec_open2函數

目錄 1. avcodec_open21.1 編解碼器的預初始化(ff_encode_preinit & ff_decode_preinit)1.2 編解碼器的初始化(init)1.3 釋放編解碼器(ff_codec_close) FFmpeg相關記錄: 示例工程&#xff…

Windows編程之多線程事件對象(Event Object)用法詳解

目錄 一、前言 二、基礎用法 三、API詳解 1.創建事件對象 2控制事件狀態 3.等待事件對象: 四、實戰案例 1.案例描述 2.代碼設計 3.總設計代碼 4.運行結果 一、前言 事件對象(Event Object)是我們在大型項目中,進行多線…

競賽選題 醫學大數據分析 - 心血管疾病分析

文章目錄 1 前言1 課題背景2 數據處理3 數據可視化4 最后 1 前言 🔥 優質競賽項目系列,今天要分享的是 🚩 基于大數據的心血管疾病分析 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! &#x1f9…

AI繪畫Stable Diffusion 解鎖精美壁紙創作:利用SD與LLM定制你的專屬壁紙,AI副業變現指南!

大家好,我是畫畫的小強 今天給大家分享一下用AI繪畫Stable Diffusion 制作精美手機壁紙,這也可能是當前最快AIGC變現的一種途徑。雖然本文的主題為手機壁紙,當調整不同的比例的分辨率寬高比例,就可以直接復用到手機、電腦和平板、…

旋轉和鏡像的關系

旋轉矩陣行列式與 在E(3)三維空間中,旋轉矩陣的行列式可以用來判斷該旋轉是否包含鏡像變換。 行列式為正: 表示純旋轉,不包含鏡像。 旋轉矩陣保持向量的長度和角度不變,只是改變向量的方向。 行列式為負: 表示旋轉…

機器學習原理之 -- 支持向量機分類:由來及原理詳解

支持向量機(Support Vector Machine, SVM)是統計學習理論的一個重要成果,廣泛應用于分類和回歸問題。SVM以其高效的分類性能和良好的泛化能力在機器學習領域中占據重要地位。本文將詳細介紹支持向量機的由來、基本原理、構建過程及其優缺點。…

LVS負載均衡群集部署之——DR模式的介紹及搭建步驟

一、LVS-DR集群介紹1.1 LVS-DR 工作原理1.2 數據包流向分析1.3 LVS-DR 模式的特點1.4 LVS-DR中的ARP問題1.4.1 問題一1.4.2 問題二二、構建LVS-DR集群2.1 構建LVS-DR集群的步驟(理論)1.配置負載調度器(192.168.80.30)(…