如何設計高效PL和PS數據交互通路的AXI接口

2020-11-26 電子發燒友

如何設計高效PL和PS數據交互通路的AXI接口

肅寧老趙 發表於 2020-11-13 16:43:47

(一)AXI接口

如何設計高效的 PL 和 PS 數據交互通路是 ZYNQ 晶片設計的重中之重。AXI 全稱 Advanced eXtensible Interface,是 Xilinx 從 6 系列的 FPGA 開始引入的一個接口協議,主要描述了主設備和從設備之間的數據傳輸方式。在 ZYNQ 中繼續使用,版本是 AXI4,所以我們經常會看到 AXI4.0, ZYNQ 內部設備都有 AXI 接口。其實 AXI 就是 ARM 公司提出的AMBA(Advanced Microcontroller Bus Architecture)的一個部分,是一種高性能、高帶寬、低延遲的片內總線。

AXI 協議主要描述了主設備和從設備之間的數據傳輸方式,主設備和從設備之間通過握手信號建立連接。當從設備準備好接收數據時,會發出 READY 信號。當主設備的數據準備好時,會發出和維持 VALID 信號,表示數據有效。數據只有在 VALID 和 READY 信號都有效的時候才開始傳輸。當這兩個信號持續保持有效,主設備會繼續傳輸下一個數據。主設備可以撤銷VALID 信號,或者從設備撤銷 READY 信號終止傳輸。 AXI 的協議如圖, T2 時,從設備的 READY信號有效, T3 時主設備的 VILID 信號有效,數據傳輸開始。

在 ZYNQ 中,支持 AXI-Lite, AXI4 和 AXI-Stream 三種總線,通過表以看到這三種AXI 接口的特性。

1、AXI4-Lite:

具有輕量級,結構簡單的特點,適合小批量數據、簡單控制場合。不支持批量傳輸,讀寫時一次只能讀寫一個字(32bit)。主要用於訪問一些低速外設和外設的控制。

2、AXI4:

接口和 AXI-Lite 差不多,只是增加了一項功能就是批量傳輸,可以連續對一片地址進行一次性讀寫。也就是說具有數據讀寫的 burst 功能。

上面兩種均採用內存映射控制方式,即 ARM 將用戶自定義 IP 編入某一地址進行訪問,讀寫時就像在讀寫自己的片內 RAM,編程也很方便,開發難度較低。代價就是資源佔用過多,需要額外的讀地址線、寫地址線、讀數據線、寫數據線、寫應答線。

3、AXI4-Stream:

這是一種連續流接口,不需要地址線(很像 FIFO,一直讀或一直寫就行)。對於這類 IP,ARM 不能通過上面的內存映射方式控制(FIFO 根本沒有地址的概念),必須有一個轉換裝置,例如 AXI-DMA 模塊來實現內存映射到流式接口的轉換。 AXI-Stream 適用的場合有很多:視頻流處理;通信協議轉換;數位訊號處理;無線通信等。其本質都是針對數值流構建的數據通路,從信源(例如 ARM 內存、 DMA、無線接收前端等)到信宿(例如 HDMI 顯示器、高速 AD 音頻輸出,等)構建起連續的數據流。這種接口適合做實時信號處理。

在 ZYNQ 晶片內部用硬體實現了 AXI 總線協議,包括 9 個物理接口,分別為 AXI-GP0~AXIGP3, AXI-HP0~AXI-HP3, AXI-ACP 接口。AXI_ACP 接口,是 ARM 多核架構下定義的一種接口,中文翻譯為加速器一致性埠,用來管理 DMA 之類的不帶緩存的 AXI 外設, PS 端是 Slave 接口。AXI_HP 接口,是高性能/帶寬的 AXI3.0 標準的接口,總共有四個, PL 模塊作為主設備連接。主要用於 PL 訪問 PS 上的存儲器(DDR 和 On-Chip RAM)AXI_GP 接口,是通用的 AXI 接口,總共有四個,包括兩個 32 位主設備接口和兩個 32 位從設備接口。

只有兩個 AXI-GP 是 Master Port,即主機接口,其餘 7 個口都是 Slave Port(從機接口)。主機接口具有發起讀寫的權限, ARM 可以利用兩個 AXI-GP 主機接口主動訪問 PL 邏輯,其實就是把 PL 映射到某個地址,讀寫 PL 寄存器如同在讀寫自己的存儲器。其餘從機接口就屬於被動接口,接受來自 PL 的讀寫,逆來順受。

另外這 9 個 AXI 接口性能也是不同的。 GP 接口是 32 位的低性能接口,理論帶寬600MB/s,而 HP 和 ACP 接口為 64 位高性能接口,理論帶寬 1200MB/s。

位於 PS 端的 ARM 直接有硬體支持 AXI 接口,而 PL 則需要使用邏輯實現相應的 AXI 協議。Xilinx 在 Vivado 開發環境裡提供現成 IP 如 AXI-DMA, AXI-GPIO, AXI-Dataover, AXI-Stream 都實現了相應的接口,使用時直接從 Vivado 的 IP 列表中添加即可實現相應的功能。

下圖為 Vivado 下的各種 DMA IP:

幾個常用的 AXI 接口 IP 的功能:

AXI-DMA:實現從 PS 內存到 PL 高速傳輸高速通道 AXI-HPAXI-Stream 的轉換

AXI-FIFO-MM2S:實現從 PS 內存到 PL 通用傳輸通道 AXI-GPAXI-Stream 的轉換

AXI-Datamover:實現從 PS 內存到 PL 高速傳輸高速通道 AXI-HPAXI-Stream 的轉換,只不過這次是完全由 PL 控制的, PS 是完全被動的。

AXI-VDMA:實現從 PS 內存到 PL 高速傳輸高速通道 AXI-HPAXI-Stream 的轉換,只不過是專門針對視頻、圖像等二維數據的。

AXI-CDMA:這個是由 PL 完成的將數據從內存的一個位置搬移到另一個位置,無需 CPU 來插手。

(二)AXI 交換機制

AXI 協議嚴格的講是一個點對點的主從接口協議,當多個外設需要互相交互數據時,我們需要加入一個 AXI Interconnect 模塊,也就是 AXI 互聯矩陣,作用是提供將一個或多個 AXI 主設備連接到一個或多個 AXI 從設備的一種交換機制(有點類似於交換機裡面的交換矩陣)。這個 AXI Interconnect IP 核最多可以支持 16 個主設備、 16 個從設備,如果需要更多的接口,可以多加入幾個 IP 核。

AXI Interconnect 基本連接模式有以下幾種:

N-to-1 Interconnect

to-N Interconnect

N-to-M Interconnect (Crossbar Mode)

N-to-M Interconnect (Shared Access Mode)

ZYNQ 內部的 AXI 接口設備就是通過互聯矩陣的的方式互聯起來的,既保證了傳輸數據的高效性,又保證了連接的靈活性。 Xilinx 在 Vivado 裡我們提供了實現這種互聯矩陣的 IP 核axi_interconnect,我們只要調用就可以。

編輯:hfy

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • ZYNQ系列FPGA使用,PS與PL接口設計和硬體設計
    部分硬體設計中需要CPU完成對電路寄存器的配置,為了完成Zedboard對FPGA上部分寄存器的配置功能,可以在PS單元(處理器系統)上運行裸機程序(無作業系統支持)完成和PL單元(FPGA部分)的數據交互功能,此時PS單元更像單片機開發;另一種方法是PS單元運行Linux作業系統,通過驅動程序和應用程式完成對硬體寄存器的讀寫操作,並且Linux有著完整的網絡協議棧支持
  • 如何設計分層架構和交互接口 API?
    第一刀:按照這套方法論來進行架構設計,最理想的情況是將X軸切分成七層。而第一刀應該先切在業務和領域之間,即通過API把兩邊解耦。交互和業務跟用戶關聯度高,經常隨需求變化而改動,而領域和資源相對比較穩定。
  • 基於CPCI總線接口和LVDS接口的接收和傳輸測試數據實驗設計
    2 RS422接口設計 RS422接口用來下發命令字和接收狀態字,由於信號碼率較低,為625 kb/s,因此設計中主要考慮傳輸的穩定性和可靠性。本設計針對此問題首先選擇了抗幹擾性強的差分對信號傳輸數字量,同時對信號採取隔離措施,以防止前後級設備之間的互相干擾。接口電路示意圖如圖2所示。
  • 如何設計restful風格接口
    restful風格接口URL定位資源,用HTTP動詞(GET,POST,DELETE,DETC)描述操作。識別(identify)、 表示(represent) 、交互(interact with)。看Url就知道要什麼看http method就知道幹什麼看http status code就知道結果如何1.
  • 硬體與軟體接口如何與CPU交互
    硬體/軟體接口(簡稱為"HSI")是一個術語,用來描述SoC外圍設備的配置和功能,以及它們如何與CPU交互。 從寄存器位到訪問類型、屬性和功能的各種因素的數量,在現代SoC中可能是絕對令人吃驚的。 例如,如果有一個32位地址總線,可以訪問2 ^ 32內存映射寄存器。
  • 心理所揭示視覺背側通路和嗅覺系統可能存在交互作用
    在視覺-嗅覺交互作用方面,以前研究(Zhou et.al.,2010)利用雙眼競爭削弱視覺的辦法,成功觀察到了嗅覺對視覺物體知覺時間的影響,表明嗅覺系統和視覺物體認知通路(腹側通路,圖1)存在交互作用。但是,目前尚不清楚這種交互作用是否僅僅局限於視覺腹側這一特定通路,或是可以擴展到背側通路。前者表明視覺-嗅覺跨模態調節的特異性,而後者說暗示視覺-嗅覺交互作用的廣泛性與一般性。
  • mipi是什麼接口_mipi接口定義詳解
    MIPI聯盟定義了一套接口標準,把行動裝置內部的接口如攝像頭、顯示屏、基帶、射頻接口等標準化,從而增加設計靈活性,同時降低成本、設計複雜度、功耗和EMI。   由於MIPI是採用差分信號傳輸的,所以在設計上需要按照差分設計的一般規則進行嚴格的設計,關鍵是需要實現差分阻抗的匹配,MIPI協議規定傳輸線差分阻抗值為80-125歐姆。
  • 河北日報:腦機接口,開啟「終極交互」
    這項新突破讓研究者們振奮:將實現「終極交互」的腦機接口,不僅會改寫生命定義,更將重塑生命體驗。     1 「翻譯」腦電波     過去的數十年裡,計算機科學和腦科學研究都取得了令人矚目的巨大進展。
  • 一文知道高性能接口的設計準則
    為了讓業務可以流暢的運行並且給用戶一個好的交互體驗,我們需要根據業務場景預估達到的並發量等因素,來設計適合自己業務場景的高並發處理方案。 在工作這些年裡,我有幸遇到了高並發各種坑,對如何設計高性能接口有一些經驗,其實無外乎滿足以下幾個特點: 靈敏性 伸縮性 容錯性 事件驅動/消息驅動 高性能接口設計準則 在引言裡我也說了高性能設計的四個準則,現在具體對這四個準則做一些描述; 1.
  • 信息維度與互動設計原理
    圖形用戶界面的互動設計關注在二維空間裡,如何選擇二維媒介載體,表達內容的信息架構與功能的交互模型,達成互動設計的可用性目標與用戶體驗目標。 三維信息由二維信息和一維信息演化而來,三維信息構建為三維空間,簡稱為「體」,由實體的點、線、面、塊、體構成生活在其中的信息空間。通過將二維摺疊形成的蟲洞,就是三維空間。
  • 解讀交互稿模板:如何讓設計稿更規範化?
    交互稿應該包含哪些內容?如何搭建一個合理的交互稿結構?PS:本文適用於移動端,Axure軟體製作的文檔型交互稿。交互稿應該包含哪些內容?如何搭建一個合理的交互稿結構?各個界面應該如何擺放?清晰易讀的設計說明應該是怎樣的?想必作為一個新人,很難完全弄清上面的問題。
  • 腦機接口難題不少
    腦機接口是在人與外部設備間創建的信息連接通路。通過解碼腦信號,將其轉換為可被識別的命令信號,實現人與機器或外部環境之間的交互。1973年,計算機科學教授雅克·維達爾首次在學術期刊上提出「腦機接口」的概念。2014年巴西世界盃開幕式上,一名截癱男子用思維控制機械外骨骼成功開球。如今,腦機接口已成為腦科學、神經科學等領域最受矚目的研究方向之一。
  • IEEE彙刊報導ERP控制信號的腦-機接口系統
    IEEE彙刊報導ERP控制信號的腦-機接口系統 2018-05-02 10:11 來源:澎湃新聞·澎湃號·政務
  • 活豬腦機接口試驗成功!腦機交互 離我們不遠了嗎?
    央視網消息:在大腦中植入電腦設備,實現腦機交互。這個聽起來很有未來感的想法,正在一步步走入現實。北京時間8月29日凌晨,埃隆·馬斯克帶來他旗下腦機接口公司的最新發布,只不過這一次是先在動物身上實現的,硬幣大小的晶片被植入豬腦,豬的腦部活動被展示了出來。
  • 兩種MCU間的串行通信協議設計
    目前,越來越多的嵌入式系統同時使用了上述兩種MCU,因此如何使Cortex-M3與8051之間可以高效地進行信息交互,是實現設計目標的關鍵。1 方案設計 要進行信息交互,離不開物理接口。在嵌入式應用中,目前常用的接口有UART、SPI和I2C等串行接口。
  • 開發者分享 | 有關 Zynq UltraScale+ RFSoC 的 AXI CDMA Linux...
    本篇博文將為您演示如何創建 AXI CDMA Linux
  • 如何合理地設計軟體應用系統中數據訪問服務層內的各個功能程序類
    軟體項目實訓及課程設計指導——如何合理地設計數據訪問服務層中的各個功能程序類作者已經在本系列文章《軟體項目實訓及課程設計指導--如何正確地設計J2EE應用系統持久層中的各個組件結構及關係》中為讀者介紹了為什麼要設計和應用數據訪問服務接口的目的及如何設計該接口以真正達到利用數據訪問服務層組件隔離業務處理邏輯和數據訪問操作邏輯的應用效果
  • 目前來看,腦機接口果然還是卡在數據分析和腦科學上
    馬斯克的腦機接口展示,已經成為震撼整個科技圈的一顆炸彈。這種怎麼看怎麼像科幻電影裡的科技,和擅長「把不可能變成可能」的科學狂人馬斯克結合,的確讓人不能不浮想聯翩。人們熱衷的探討著這種科技在未來的應用場景,幻想著用它實現顛覆教育、醫療等各個領域,引爆一次新的技術革命;或者擔心這種新科技對社會結構和倫理道德的衝擊,憂慮淪為「黑客帝國」裡被圈養的牲畜或二等公民,仿佛科技已經近在眼前。
  • 為逐次逼近型ADC 設計可靠的數字接口
    主機處理器可以通過多種串行和並行接口(如SPI、I2C 和LVDS)訪問或控制ADC。本文將討論打造可靠、完整數字接口的設計技術,包括數字電源電平和序列、啟動期間的I/O 狀態、接口時序、信號質量以及數字活動導致的誤差。
  • XFI 和SFI接口系統設計
    XFI(Ziffy音)和SFI是兩個常見的10Gbps高速串行接口,都是連接ASIC晶片和光模塊的電氣接口。在傳統光通信,數據交換機和伺服器等上都可以找到些接口。兩者之間有什麼相似的地方?區別在哪裡?我設計的系統接口是否滿足標準要求?本博客將一一嘗試介紹。