<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Aurora 8B/10B IP核(一)—Aurora概述及數據接口

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-16 16:21 ? 次閱讀

1、Aurora 8B/10B 協議
Aurora 協議是一個用于在點對點串行鏈路間移動數據的可擴展輕量級鏈路層協議(由Xilinx開發提供)。這為物理層提供透明接口,讓專有協議或業界標準協議上層能方便地使用高速收發器。Aurora協議在Xilinx的FPGA上有兩種實現方式:8B/10B 與 64B/10B。兩個協議大部分相同,主要區別在編碼方式上:

  • Aurora 8B/10B:將8bit數據編碼成10bit數碼進行傳輸,盡量平衡數據中“0”和“1”的個數以實現DC平衡,顯然這個編碼方式的開銷是20%,也就是效率為80%
  • Aurora 64B/10B:將64bit數據編碼成66bit塊傳輸,66bit塊的前兩位表示同步頭,主要由于接收端的數據對齊和接收數據位流的同步。同步頭有“01”和“10”兩種,“01“表示后面的64bit都是數據,“10”表示后面的64bit是數據信息。數據信息0和1不一定是平衡的,因此需要進行加擾,開銷較小

Aurora 8B/10B 常用于芯片(FPGA)與芯片(FPGA)之間通信。它用于使用一個或多個收發器在設備之間傳輸數據。連接可以是全雙工(雙向數據)或單工。最多可實現16個收發器(GTX,GTP或GTH),吞吐量可從480 Mb / s擴展到84.48 Gb / s。Aurora核心吞吐量取決于收發器的數量以及所選收發器的線路速率。 通過使用25%的開銷來計算吞吐量Aurora 8B / 10B協議編碼和以及線速0.5 Gb / s至6.6 Gb / s的線速范圍來計算,其傳輸吞吐量為從單通道設計的0.4 Gb / s到最高16通道的84.48 Gb / s。

下圖是一個典型的使用兩個全雙工模式、多條lane構成的Aurora 8B/10B 通信系統。

pYYBAGIMoemAV9mNAAF1_32q300396.png

從上圖不難看出:

  • 用戶使用用戶接口與Aurora 8B/10B IP核進行數據交互
  • Aurora 8B/10B IP核是全雙工模式,其數據通路由多條Lane組成
  • 發送的數據通過Aurora IP核進行8B/10B編碼后,通過多條Lane發送到另一個Aurora IP核,該IP核通過用戶接口將接收到的數據發送給用戶

2、Aurora 8B/10B IP核
2.1、IP核組成

接下來我們看一下Aurora 8B/10B IP核的組成:

poYBAGIMoeuAPtgJAAIkg2RwxY0764.png

主要組成部分如下:

  • Lane Logic(通道邏輯):每個GT收發器由通道邏輯模塊的實例驅動,其初始化每個單獨的收發器并處理控制字符的編碼和解碼以及錯誤檢測。
  • Global Logic(全局邏輯):全局邏輯模塊執行通道初始化的綁定和驗證。 在運行期間,模塊會生成Aurora協議所需的隨機空閑字符,并監視所有通道邏輯模塊的錯誤。
  • RX User Interface(RX接收端口):AXI4-Stream RX接收端口將數據從通道移動到應用程序,并執行流量控制功能。
  • TX User Interface(TX發送端口):AXI4-Stream TX發送端口將數據從應用程序移動到通道,并執行流量控制TX功能。 標準時鐘補償模塊嵌入在內核中。 該模塊控制時鐘補償(CC)字符的周期性傳輸。

看到這里基本就清楚了:Aurora 8B/10B是一個基于GT高速收發器(物理層)的全雙工點到點協議,GT高速收發器的每個Channel就是Aurora協議的一條Lane。

下圖是IP核的頂層結構示意圖,更好的說明了該IP核與GT高速收發器的關系。

pYYBAGIMoe2AKMZvAAFaiDAH2Lk818.png

2.2、延遲(Latency)
由于Aurora 8B/10B IP核的邏輯設計(流水線、編解碼等),用戶端發送給IP核的數據,需要一定的延遲才能通過IP核發送。這一延遲的近似值為37(2字節位寬)和41(4字節位寬),如下圖所示:

poYBAGIMoe-AfhaVAAJu6s5ug8M312.png

2.3、Throughput(吞吐率):
Aurora 8B/10B IP核吞吐率取決于GT收發器的數量和線速率。 單通道設計到16通道設計的吞吐率分別為0.4Gb/s到84.48Gb/s。 通過Aurora 8B/10B協議編碼和0.5Gb/s至6.6 Gb/s線路速率范圍的20%開銷來計算吞吐率。

也就是說,使用的GT高速收發器的通道越多、且其支持的線速率越高,則整個Aurora 8B/10B IP核的吞吐率越高,但是要注意乘以80%,因為8B/10B編碼存在20%的開銷。

2.4、大小端
在IP核的定制中,有一個大小端的選擇問題。所謂的小端,就是我們最常見的多位數據定義方式:[n:0] 左邊是高位,右邊是低位,符合Verilog編寫習慣,大端反之。

pYYBAGIMofGAKq6UAAAT1IXqNQg168.png

2.5、數據發送、接收接口
Aurora 8B/10B IP核支持AXI4-Stream協議,并依據是否對AXI4-Stream協議進行再封裝來提供兩種數據傳輸接口:Framing 接口(幀傳輸接口)和Streaming接口(流傳輸接口)。

  • Framing接口(幀傳輸接口):在AXI4-Stream的基礎上添加了幀頭、幀尾等控制信號,使得傳輸更準確,但是會降低傳輸效率和使用較多資源
  • Streaming接口(流傳輸接口):基本上就是一個非常簡化的AXI4-Stream接口,只有數據有效、握手和數據信號,此種方式傳輸效率高,但無法保證傳輸的準確性

關于AXI4-Stream協議可以參考:帶你快速入門AXI4總線--匯總篇(直達鏈接)

2.5.1、AXI4-Stream位排序(AXI4-Stream Bit Ordering):
Aurora 8B / 10B IP核采用升序排列。 首先發送和接收最高有效字節的最高有效位。 下圖顯示了n字節的Aurora 8B / 10B IP核的AXI4-Stream數據接口示例。

poYBAGIMofKALSAiAAFZcbFqCWU562.png

2.5.2、Framing接口
Framing接口示意圖如下:

pYYBAGIMofSAWFzQAAEoTk7mslU606.png

Framing接口由于存在frame(幀)的概念,所以接口信號較之Streaming接口要復雜一點,主要接口如下:

發送端(相對于用戶來說):

pYYBAGIMofaAF2dkAAEzSzEXbPQ631.jpg

接收端(相對于用戶來說):

poYBAGIMofmAScVBAAD_vvzQkCc235.jpg

如果你熟悉AXI4-Stream協議的話,基本就能馬上上手數據的接收發送部分了。

發送數據

  • 從發送端的幾個信號就可以判斷,當s_axi_tx_tready與s_axi_tx_tvalid握手成功后,即可發送數據
  • 使用s_axi_tx_tlast來表示當前發送最后一個數據
  • s_axi_tx_tkeep來表示最后一個數據的有效字節(應用場景在發送奇數個字節時,IP核會自動添加一個pad到數據中,所以存在一個無效字節需要指出),這一點倒是與AXI4-Stream協議不太一樣

接收數據

  • 接收數據不需要握手過程
  • 當m_axi_rx_tvalid為高時,即說明此時的數據是有效數據,可以拿來用了
  • m_axi_rx_tkeep與m_axi_rx_tlast的用法與發送端對應的信號一致

幀結構

TX子模塊將每個接收的用戶幀通過TX接口轉換為Aurora 8B / 10B幀。 幀開始(SOF)通過在幀開始處添加2字節的SCP代碼組來指示。 幀結束(EOF)是通過在幀的末尾添加一個2字節的信道結束通道協議(ECP)碼組來確定。 數據不可用時插入空閑代碼組。 代碼組是8B / 10B編碼字節對,所有數據都作為代碼對發送,因此具有奇數個字節的用戶幀具有稱為PAD的控制字符,附加到幀的末尾以填寫最終的代碼組。 下圖顯示了具有偶數數據字節的典型Aurora 8B / 10B幀。

pYYBAGIMofqAfeYiAADACPaMgCA622.png

4種發送案例

手冊(PG046)里舉了4種傳輸案例方便我們理解發送過程:

Example A: Simple Data Transfer(簡單數據傳輸)

在valid信號與ready信號握手成功期間傳輸數據,傳輸到最后一個數據DATA2時,拉高tlast信號,表明此時傳輸的是最后一個數據。tkeep信號表示最后一個數據的那些字節是有效的。

poYBAGIMofuAL7e_AAFFT0VJKR8225.png

Example B: Data Transfer with Pad(奇數字節數據傳輸)

在valid信號與ready信號握手成功期間傳輸數據,傳輸到最后一個數據DATA2時,拉高tlast信號,表明此時傳輸的是最后一個數據。tkeep信號表示最后一個數據的那些字節是有效的。由于此時傳輸的是奇數個字節,所以最后一個數據中存在無效字節,故tkeep信號的值為N-1。

pYYBAGIMof2AKUUJAAG3DcExILQ440.png

Example C: Data Transfer with Pause(帶有暫停的數據傳輸)

在valid信號與ready信號握手成功期間傳輸數據,傳輸到最后一個數據DATA2時,拉高tlast信號,表明此時傳輸的是最后一個數據。tkeep信號表示最后一個數據的那些字節是有效的。

在握手期間,用戶通過拉低valid信號中斷了握手,實現了數據發送的暫停(流控)。

pYYBAGIMof-AV7O1AAHZlUomjVk434.png

Example D: Data Transfer with Clock Compensation(帶時鐘補償的數據傳輸)

當Aurora 8B / 10B IP核發送時鐘補償序列時,會自動中斷數據傳輸。 時鐘補償序列每10,000字節加上每個通道的12字節開銷。其他與上述情況一致。

poYBAGIMogKAF9krAAJf055gUL4002.png

接收數據案例

不同于發送數據的握手過程,接收數據過程簡單的很,只需要數據有效信號m_axi_rx_tvalid為高時,則表示此時接收的數據有效,也用m_axi_rx_tkeep、m_axi_rx_tlast來修飾接收的最后一個數據。典型過程如下:

pYYBAGIMogSAaXA8AAEslZpkqxg571.png

當m_axi_rx_tvalid為高時,接收到的數據有效,其他時候則無效。

Framing接口總結:

  • Framing接口類似被再封裝的AXI4-Streaming接口,IP核自動加入幀頭、幀尾,并在固定時間內完成時鐘補償
  • 發送端用戶只需要在發送、接收雙方完成握手后,即可發送數據,通信雙方均可通過握手信號來反壓對方;接收端用戶僅需要在valid信號有效時從總線上拿數據即可
  • 由于是幀結構,所以需要有信號來約束幀長度--tlast;由于數據的發送是成對發送,所以最后一個數據可能存在無效字節的情況,故需要對最后一個數據的有效字節數進行約束--tkeep

2.5.3、Streaming接口
Streaming接口示意圖如下:

pYYBAGIMogWAXYOQAADtd_Yfysw345.png

看起來比 Framing接口清爽了很多,因為發送端和接收端都少了keep和last這兩個信號(共4個)。之前說過,Framing接口的幀框架使得需要使用keep和last這兩個信號來控制幀的長度,所以信號較多。而Streaming接口則沒有幀框架,相當于一條不停流動的管道,所以不需要使用keep和last這兩個信號來控制長度。

用起來也很簡單,發送數據只要在tvalid信號和tready信號握手成功時就可以發送;接收數據就更簡單了,只要tvalid為高則說明此時接收的數據是有效的。

直接看圖來加深理解:

Example A: TX Streaming Data Transfer(數據發送)

簡單直白,只有當s_axi_tx_tready、s_axi_tx_tvalid均為高(成功握手)時,才可以發送數據。

pYYBAGIMogiAdaXxAAFZLiMKkaE432.png

Example B: RX Streaming Data Transfer(接收數據)

簡單直白,只有當m_axi_rx_tvalid為高時才說明接收到的數據為有效數據。

pYYBAGIMogqACrgwAAFV3foQZZw621.png

Streaming接口總結:

  • Streaming接口就是經典的AXI4-Streaming接口,沒有幀的概念,數據總線上數據長度是不受限制的
  • 發送端用戶只需要在發送、接收雙方完成握手后,即可發送數據,通信雙方均可通過握手信號來反壓對方;接收端用戶僅需要在valid信號有效時從總線上拿數據即可

3、其他

  • 下一節我們再來一起學習下Aurora IP核的時鐘架構、復位和指示信號。
  • 創作不易,如果本文對您有幫助,還請多多點贊、評論和收藏。您的支持是我持續更新的最大動力!
  • 關于本文,您有什么想法均可在評論區留言。如果需要整個工程,請在評論留下郵箱或者私信我郵箱(注意保護隱私)。
  • 自身能力不足,如有錯誤還請多多指出!

參考資料

Aurora 8B/10B Protocol Specification

Aurora 8B/10B v11.1 LogiCORE IP Product Guide

FPGA設計心得(3)Aurora IP core 的理論學習記錄

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據接口
    +關注

    關注

    1

    文章

    73

    瀏覽量

    17766
  • AURORA
    +關注

    關注

    0

    文章

    24

    瀏覽量

    5352
收藏 人收藏

    評論

    相關推薦

    基于 FPGA 的光纖混沌加密系統

    Series FPGAs GTX/GTH Transceivers User Guide [2] Vivado Design Suite User Guide [3] Aurora 8B/10B
    發表于 04-26 17:18

    8b10b編碼verilog實現

    8b/10b編碼是種用于減少數據線上的低效能時鐘信號傳輸的技術,通過在數據流中插入特殊的控制字符,來同步
    發表于 03-26 07:55

    Zebra Aurora深度學習OCR算法榮獲CAIMRS頒發的自動化創新獎

    在第二十二屆中國自動化及數字化年度評選活動中,Zebra Aurora深度學習OCR算法獲得了由中國自動化及數字化產業年會(簡稱CAIMRS)頒發的自動化創新獎。
    的頭像 發表于 03-20 16:35 ?250次閱讀

    映泰發布A620MH Aurora主板,支持DDR5內存,配備32條PCIe通道

    而作為一款給力的主板,映泰A620MH Aurora為M-ATX板型設計,具備雙DDR5內存插槽;同時搭配了瑞昱RTL8111H千兆網卡以及ALC897音頻芯片。
    的頭像 發表于 03-01 13:51 ?349次閱讀

    光伏逆變器拓撲概述及關鍵技術

    光伏逆變器拓撲概述及關鍵技術
    的頭像 發表于 02-21 09:47 ?345次閱讀
    光伏逆變器拓撲<b class='flag-5'>概述及</b>關鍵技術

    Texas Instruments品牌 ADC12DJ5200ALRSHP 耐輻射加固保障 (RHA)、300krad、12 位、雙通道 5.2GSPS 或單通道 10.4GSPS ADC

    數進行權衡。支持 8b/10b 和 64b/66b 數據編碼方案。64b/66
    發表于 01-31 15:22

    英飛凌攜手Aurora Labs為汽車行業提供優化的預測性維護解決方案

    本文轉載自:英飛凌官微 英飛凌科技與極光實驗室(Aurora Labs,以下同)在CES 2024上發布了一套全新的人工智能(AI)解決方案,可提高轉向、制動、安全氣囊等關鍵汽車部件的長期可靠性
    的頭像 發表于 01-14 20:06 ?141次閱讀
    英飛凌攜手<b class='flag-5'>Aurora</b> Labs為汽車行業提供優化的預測性維護解決方案

    JESD204B的常見疑問解答

    問:什么是8b/10b編碼,為什么JESD204B接口需使用這種編碼? 答:無法確保差分通道上的直流平衡信號不受隨機非編碼串行數據干擾,因
    發表于 01-03 06:35

    俄羅斯操作系統Aurora OS 5.0發布

    Aurora OS 包含許多改進,提升了辦公人員在日常場景使用設備的易用性。最顯著的變化是采用全新 UI 和手勢控制 —— 據稱根據第四代 Aurora OS 的兩年工業使用經驗和用戶研究進行了重新設計。
    的頭像 發表于 11-16 11:12 ?591次閱讀
    俄羅斯操作系統<b class='flag-5'>Aurora</b> OS 5.0發布

    基于FPGA的Aurora 8b10b光通信測試方案

    本文開源一個FPGA高速串行通信項目:Aurora 8b10b光通信。7 Series FPGAs Transceivers Wizard IP是Xilinx官方7系列FPGA的高速串行收發器,本工程主要是圍繞該
    的頭像 發表于 10-01 09:48 ?3983次閱讀
    基于FPGA的<b class='flag-5'>Aurora</b> 8b<b class='flag-5'>10</b>b光通信測試方案

    HLS中RTL無法導出IP是為什么?

    請教下,我在HLS里面要將以下程序生成IP,C Synthesis已經做好了,但是在export RTL的時候直在運行 int sum_single(int A int
    發表于 09-28 06:03

    英特爾第一超算Aurora:峰值性能達2百億億次,擁有世界最大GPU集群

    Aurora是Intel近年來參與的最受期待和最引人注目的項目之一,它是對Intel整個系統組合的大膽投注。預計這臺機器將是首臺峰值性能達到2 exaflops(2x10^18)浮點運算每秒的超級
    的頭像 發表于 08-29 15:29 ?326次閱讀

    Neon--AWS Aurora Postgres的無服務器開源替代品

    Neon 是 AWS Aurora Postgres 的無服務器開源替代品。它將存儲和計算分開,并通過跨節點集群重新分布數據來替代 PostgreSQL 存儲層。 嘗試使用 Neon 免費套餐創建
    的頭像 發表于 08-21 10:46 ?404次閱讀
    Neon--AWS <b class='flag-5'>Aurora</b> Postgres的無服務器開源替代品

    IP_數據表(A-11):雙通道 8b D/A 轉換器

    IP_數據表(A-11):雙通道 8b D/A 轉換器
    發表于 07-06 20:15 ?0次下載
    <b class='flag-5'>IP</b>_<b class='flag-5'>數據</b>表(A-11):雙通道 <b class='flag-5'>8b</b> D/A 轉換器

    全球首臺200億億次超級計算機Aurora組裝完成

    英特爾表示,aurora已準備好滿足hpc和ai計算的要求,并將教育氣候、生物、醫藥等科學計算相關的大規模開源人工智能模型。aurora擁有超過60,000個gpu,使用hpe slingshot高性能存儲架構和全單色驅動器設計,是一個完美的人工智能訓練平臺。
    的頭像 發表于 06-26 10:32 ?997次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>