<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天內不再提示

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

454398 ? 來源:CSDN博主 ? 作者:肅寧老趙 ? 2020-11-13 16:43 ? 次閱讀

(一)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-HP<---->AXI-Stream 的轉換

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

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

AXI-VDMA:實現從 PS 內存到 PL 高速傳輸高速通道 AXI-HP<---->AXI-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

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

    關注

    134

    文章

    8725

    瀏覽量

    363087
  • Zynq
    +關注

    關注

    9

    文章

    600

    瀏覽量

    46813
  • AXI
    AXI
    +關注

    關注

    1

    文章

    126

    瀏覽量

    16350
收藏 人收藏

    評論

    相關推薦

    有關PL端利用AXI總線控制PS端DDR進行讀寫(從機wready信號一直不拉高)

    一直拉高的。這與寫數據通道好像有點區別。 我不清楚PS 端的DDR到底發生了什么,但是和MIG核就是有點不一樣,通過仿真MIG核可以發現,PL端的DDR是會先一直發出wready信號的。這個問題就是我
    發表于 05-31 12:04

    FPGA通過AXI總線讀寫DDR3實現方式

    AXI總線由一些核心組成,包括AXI主處理器接口AXI4)、AXI處理器到協處理器接口
    發表于 04-18 11:41 ?467次閱讀

    AXI通道讀寫DDR的阻塞問題?

    基于vivado2020.1和zcu102開發板(rev1.1)開發項目,工程涉及DDR4(MIG)和PL端多個讀寫接口交互的問題,通過AXI interconnect進行互聯和仲裁(采用默認配置)。
    的頭像 發表于 12-01 09:04 ?557次閱讀
    <b class='flag-5'>AXI</b>通道讀寫DDR的阻塞問題?

    Xilinx FPGA IP之Block Memory Generator AXI接口說明

    之前的文章對Block Memory Generator的原生接口做了說明和仿真,本文對AXI接口進行說明。
    的頭像 發表于 11-14 18:25 ?949次閱讀
    Xilinx FPGA IP之Block Memory Generator <b class='flag-5'>AXI</b><b class='flag-5'>接口</b>說明

    ZYNQ的ARM和FPGA數據交互——AXI交互最重要的細節

    。 ③EMIO :由于MIO管腳有限,PS端可以通過EMIO訪問PL端引腳。 ④GP :通用AXI接口,用來實現一般主從互聯、數據
    發表于 11-03 10:51

    AXI傳輸數據的過程

    AXI4為例,有AXI full/lite/stream之分。 在Xilinx系列FPGA及其有關IP核中,經常見到AXI總線接口,AXI
    的頭像 發表于 10-31 15:37 ?559次閱讀
    <b class='flag-5'>AXI</b>傳輸<b class='flag-5'>數據</b>的過程

    LogiCORE JTAG至AXI Master IP核簡介

    中的一個參數來選擇。 集成設計環境(IDE)。AXI數據總線的寬度可定制。該IP可通過AXI4互連驅動AXI4-Lite或AXI4內存映射從
    的頭像 發表于 10-16 10:12 ?590次閱讀
    LogiCORE JTAG至<b class='flag-5'>AXI</b> Master IP核簡介

    【KV260視覺入門套件試用體驗】 硬件加速之—使用PL加速FFT運算(Vivado)

    和HLS核之間進行數據傳輸。它可以通過AXI1接口PS部分的ARM Core和DDR進行通信,以及通過AXI Stream
    發表于 10-02 22:03

    AXI IIC總線接口介紹

    LogiCORE?IPAXI IIC總線接口連接到AMBA?AXI規范,提供低速、兩線串行總線接口,可連接大量流行的設備。
    的頭像 發表于 09-28 15:56 ?4686次閱讀

    ZYNQ設計的基本流程

    ZYNQ內部的總體框架如所示,PS中包含2個ARM Cortex-9的內核,一些基本的外設擴展口以及Memory接口。PSPL的相互通信通
    的頭像 發表于 09-22 09:26 ?645次閱讀
    ZYNQ設計的基本流程

    基于PSPL的1G/10G以太網解決方案

    電子發燒友網站提供《基于PSPL的1G/10G以太網解決方案.pdf》資料免費下載
    發表于 09-15 10:05 ?1次下載
    基于<b class='flag-5'>PS</b>和<b class='flag-5'>PL</b>的1G/10G以太網解決方案

    基于Xilinx FPGA AXI-EMC IP的EMIF通信測試

    EMIF通信,也可方便地實現 PL (FPGA)和 PS (MicroBlaze或者ARM)之間的數據交互功能。
    的頭像 發表于 08-31 11:25 ?3644次閱讀
    基于Xilinx FPGA <b class='flag-5'>AXI</b>-EMC IP的EMIF通信測試

    Linux下如何通過UIO監控PL給到PS的中斷

    xilinx mpsoc 平臺中,PSPL 進行交互時,PS 需要獲取 PL 發出的中斷信號。從 mpsoc 技術參考手冊 ug108
    發表于 08-24 16:06 ?865次閱讀
    Linux下如何通過UIO監控<b class='flag-5'>PL</b>給到<b class='flag-5'>PS</b>的中斷

    AXI VIP當作master時如何使用?

    ?AXI接口雖然經常使用,很多同學可能并不清楚Vivado里面也集成了AXI的Verification IP,可以當做AXI的master、pass through和slave,本次內
    的頭像 發表于 07-27 09:16 ?1073次閱讀
    <b class='flag-5'>AXI</b> VIP當作master時如何使用?

    U70 PL-20 USB 網絡接口數據

    U70 PL-20 USB 網絡接口數據
    發表于 07-04 20:06 ?0次下載
    U70 <b class='flag-5'>PL</b>-20 USB 網絡<b class='flag-5'>接口</b><b class='flag-5'>數據</b>表
    亚洲欧美日韩精品久久_久久精品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>