在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

簡單講解AXI Interconnect IP核的使用方法

冬至子 ? 來源:Bug記錄 ? 作者:woodfan ? 2023-06-19 15:45 ? 次閱讀

最近需要用到AXI接口的模塊,xilinx的IP核很多都用到了AXI總線進行數(shù)據(jù)和指令傳輸。如果有多個設(shè)備需要使用AXI協(xié)議對AXI接口的BRAM進行讀寫,總線之間該如何進行仲裁,通信

這里我們注意到,Vivado有一個叫做AXI Interconnect (RTL)的IP核,這個IP核可以實現(xiàn)上述功能。

本文將簡單講解AXI Interconnect IP核的使用方法,設(shè)計到Vivado的Block Design,仿真等知識運用。

為了簡化整體例子的復(fù)雜度,整個測試工程項目采用了兩個措施:

  1. 使用Block Design代替了RTL代碼書寫連線操作
  2. 使用AXI4-Lite總線進行測試,相對于AXI4,省去了部分信號
  3. 整個工程量不大,故沒有在VCS中仿真,使用Vivado自帶的仿真器做仿真

最終整體的Block Design結(jié)構(gòu)如下圖:

圖片

圖1

簡單介紹一下圖1中的模塊功能

  1. clk_wiz_0: MMCM,模式時鐘管理器,這里作用主要是產(chǎn)生100MHz的clk_out1和200MHz的clk_out2,類似鎖相環(huán);
  2. proc_sys_reset_x: 系統(tǒng)復(fù)位模塊,根據(jù)輸入時鐘和輸入的信號產(chǎn)生對應(yīng)的高復(fù)位有效信號和低復(fù)位有效信號;
  3. axi_interconnect_0: AXI Interconnect,這里管理著2個Slave接口和1個Master接口;對總線傳輸進行仲裁,通信,時序轉(zhuǎn)換等操作。
  4. axi_bram_ctrl_0: Bram Controller,AXI接口的Bram控制器
  5. blk_mem_gen_0: Block Ram

簡單介紹下Block Design的AXI Interconnect IP核使用(因為Block Design可以實現(xiàn)自動連線,自動設(shè)置位寬等信息,所以設(shè)置內(nèi)容沒有AXI Interconnect RTL多,后者專用于Verilog代碼中使用)

圖片

圖2

這個界面設(shè)置Slave Interface的數(shù)量,與Master 模塊的數(shù)量對應(yīng);Master Interface數(shù)量,與 Slave模塊的數(shù)量對應(yīng),如果想不明白可以看圖6。

圖片

圖3

圖片

圖4

這里使能S/M_AXI端口的Register Slice和Data FIFO功能,Slice對時序收斂有一定作用,但是數(shù)據(jù)輸出會延遲一個周期;Data FIFO,顧名思義,可以實現(xiàn)數(shù)據(jù)緩存和packet mode。

圖片

圖5

勾選圖2的Advanced Options后,可以進入圖5界面,這里可以設(shè)置S_AXI端口的優(yōu)先級,優(yōu)先級值越高,越優(yōu)先,平行優(yōu)先級的端口會使用輪詢的方式處理端口請求。

圖片

圖6

整個IP核的外部端口,Sxx_AXI連接Master模塊的M_AXI接口;Mxx_AXI連接Slave模塊的S_AXI接口;ACLK是IP核的運行時鐘,ARESETN是IP核的異步低有效復(fù)位信號。

Sxx_ACLK是對應(yīng)總線的總線時鐘,Sxx_ARESETN是對應(yīng)總線的異步低有效復(fù)位信號。同理,Mxx_ACLK是對應(yīng)總線的總線時鐘,Mxx_ACLK_ARESETN是對應(yīng)總線的異步低有效復(fù)位信號。

圖中出現(xiàn)了4個時鐘端口,這4個時鐘端口的頻率可以各不相同。曾經(jīng)我很疑惑ACLK的時鐘頻率到底應(yīng)該如何設(shè)置,找到了一個在Xilinx論壇的帖子,上面的建議是連接到任一Sxx_ACLK或者Mxx_ACLK,雖然ACLK可以隨意連接到一個時鐘頻率信號。

圖1的輸入端口有S00_AXI,S01_AXI的接口,clk_100MHz的時鐘輸入信號,reset_rtl_0的高有效復(fù)位信號;輸出有100MHz的clk_out1,200MHz的clk_out2;

然后將Block Design生成為verilog文件,供其他的verilog文件直接實例化。這里我們利用留出的clk_out1,clk_out2,s00_axi,s01_axi接口,對Bram進行簡單的地址讀寫操作,讀寫時鐘分別為200MHz/100MHz。

Testbench里面,除了必要的initial和時鐘賦值外,主要的還是對s00_axi,s01_axi的控制。

s00_axi在100MHz時鐘域下,我們單獨對它進行寫操作。

在設(shè)計過程中,我還發(fā)現(xiàn)了一個奇怪的現(xiàn)象,原本的設(shè)計中,握手信號想等著s00_axil_awready信號拉高之后,這邊的s00_axil_awvalid再拉高。結(jié)果發(fā)現(xiàn)awready遲遲沒有拉高,在看完參考資料1后,才知道需要Master這側(cè)的valid先拉高,否則slave的ready信號不一定會拉高;所以s00_axil_awvalid, s01_axil_arvalid設(shè)置為1 。

100MHz頻率下,s00_axil_awaddr 在寫入數(shù)據(jù)完成(s00_axil_wready & s00_axil_wvalid)后,地址會加4;地址寫到1024后會重新歸零。

可以看到,等到s00_axil_wready拉高,Master會把s00_axil_wvalid拉高,并生成一個隨機數(shù)寫入BRAM;然后s00_axil_wvalid拉低。

always @ (posedge clk_out1) begin
if (s00_axil_wready & s00_axil_wvalid)
s00_axil_awaddr <= (s00_axil_awaddr < 32'd1023) ? s00_axil_awaddr + 32'd4 : 0;

if (s00_axil_wready & ~s00_axil_wvalid) begin
s00_axil_wvalid <= 1'b1;
s00_axil_wdata <= $random;
end
else
s00_axil_wvalid <= 1'b0;
end

200MHz頻率下,s01_axil_araddr在讀取數(shù)據(jù)完成后(s01_axil_rvalid & s01_axil_rready),會加4;同樣,地址寫到1024后會重新歸零。

可以看到,等到s01_axil_rvalid拉高,s01_axil_rready會拉高,讀取出對應(yīng)數(shù)據(jù),然后拉低s01_axil_rready;

always @ (posedge clk_out2) begin
s01_axil_arvalid <= 1'b1;
if (s01_axil_rvalid & s01_axil_rready)
s01_axil_araddr <= (s01_axil_araddr < 32'd1023) ? s01_axil_araddr + 32'd4 : 0;

if (s01_axil_rvalid & ~s01_axil_rready) begin
s01_axil_rready <= 1'b1;

end
else
s01_axil_rready <= 1'b0;
end

當然,為什么兩個不同的總線能夠?qū)σ粋€BRAM進行操作,這里涉及到地址分配的問題;

圖片

圖7

兩個總線可以訪問到同一個地址,所以自然可以對同一個BRAM進行操作;那有人可能問,假如我操作s00訪問的地址超過了分配的地址范圍呢,那么s00_axil_bresp會等于2'd3,告知地址錯誤的問題。

圖片

圖8

由于設(shè)計問題,讀取的地址相比寫入數(shù)據(jù)落后幾個時鐘周期,這樣可以將剛寫入的數(shù)據(jù)讀出來。

這個實驗表明AXI Interconnect不僅是總線仲裁器,還幫助時鐘域不同的AXI總線完成了時序轉(zhuǎn)換。除此之外,AXI Interconnect還可以實現(xiàn)數(shù)據(jù)位寬轉(zhuǎn)換,AXI協(xié)議轉(zhuǎn)換,例如AXI4/3轉(zhuǎn)AXI4-Lite,AXI4轉(zhuǎn)AXI3等;增加Register Slice改善時序,增加數(shù)據(jù)fifo緩存數(shù)據(jù);

AXI Interconnect最多支持16 MI與16 SI組合。不過,當配置只有一個SI接口時,MI接口最多可以設(shè)置到64位。

其中的仲裁采用的輪詢調(diào)度算法,當然,IP核可以設(shè)置每個SI的優(yōu)先級,值越高,優(yōu)先級越高;

當然,這篇文章只是為了簡單介紹AXI Interconnect的作用,更復(fù)雜更多的功能還有待發(fā)掘。當然,功能強大意味著復(fù)雜,比如根據(jù)參考資料2,AXI4協(xié)議中的ID信號,如果在AXI Interconnect中使用不當,可能造成仲裁器死鎖。

圖片

圖9

看上圖,在我的示例中,ACLK與S01_ACLK同源同頻,所以示意圖中,s01_couples從S_AXI直通到M_AXI;而s00_couples則添加了一個AXI Clock Converter做時序轉(zhuǎn)換;在m00_couples中,又使用了AXI Clock Converter將ACLK轉(zhuǎn)換到M00_ACLK;

至此,簡單總結(jié)下在AXI通信中使用AXI Interconnect的好處:

  1. 真正實現(xiàn)了總線通信,N Master模塊與M Slave模塊的通信,減少了相互間通信的復(fù)雜度
  2. 內(nèi)部實現(xiàn)時鐘域轉(zhuǎn)換,不需要外部的過度干預(yù)
  3. 內(nèi)部可實現(xiàn)FIFO等,免去了很多場景下需要FIFO,Register,位寬轉(zhuǎn)換,協(xié)議轉(zhuǎn)換的需求
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16447

    瀏覽量

    179460
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59951
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    9647
  • AXI總線
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    14315
  • BRAM
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    11016
收藏 人收藏

    評論

    相關(guān)推薦

    Designing High-Performance Video Systems with the AXI Interconnect

    can be created using Xilinx AXI IP. The use of AXI Interconnect, Memory Interface Generator
    發(fā)表于 01-26 18:57

    有人知道為什么MIG IP中的AXI協(xié)議。為什么沒有AXI_WID這個信號呢?

    有人知道為什么MIG IP中的AXI協(xié)議。為什么沒有AXI_WID這個信號呢。
    發(fā)表于 04-13 09:22

    如何在IP_catalog中創(chuàng)建可見的axi_interconnect_v2.1?

    你好。Vivado 2015.1 IP目錄包含AXI_interconnect V1.7(默認情況下),同時DIR .. / data / IP / xilinx包含文件
    發(fā)表于 04-08 10:30

    PCIE項目中AXI4 IP例化詳解

    4和PCIE之間有什么聯(lián)系,敬請關(guān)注我們的連載系列文章。在本篇文章中暫時先不講解AXI4協(xié)議,先來分享例化AXI4的自定義IP詳細步驟。一
    發(fā)表于 12-13 17:10

    AXI FIFO和AXI virtual FIFO這兩個IP使用方法

    Controller 的 IP 內(nèi)核,以簡化開發(fā)人員希望使用 DDR 存儲器將信號或數(shù)據(jù)樣本存儲在外部 DDR 中作為 FIFO 的情況。AXI Virtual FIFO Controller為開發(fā)人員提供可連接
    發(fā)表于 11-04 11:03

    三個不同AXI IP的實現(xiàn)的方法_性能的對比及差異的分析

    本文先總結(jié)不同AXI IP的實現(xiàn)的方法,性能的對比,性能差異的分析,可能改進的方面。使用的硬件平臺是Zedboard。 不同的AXI總線卷
    的頭像 發(fā)表于 06-29 14:34 ?8331次閱讀
    三個不同<b class='flag-5'>AXI</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>的實現(xiàn)的<b class='flag-5'>方法</b>_性能的對比及差異的分析

    基于MicroBlaze的AXI總線實時時鐘IP設(shè)計

    作者:薩其日娜 內(nèi)蒙古魯電電力工程有限公司 摘要: 應(yīng)用MicroBlaze軟作為CPU的硬件平臺,在此平臺上設(shè)計了基于AXI總線的通用實時時鐘IP。給出了創(chuàng)建
    發(fā)表于 11-17 16:34 ?3960次閱讀

    AXI接口簡介_AXI IP的創(chuàng)建流程及讀寫邏輯分析

    本文包含兩部分內(nèi)容:1)AXI接口簡介;2)AXI IP的創(chuàng)建流程及讀寫邏輯分析。 1AXI簡介(本部分內(nèi)容參考官網(wǎng)資料翻譯) 自定義
    的頭像 發(fā)表于 06-29 09:33 ?1.7w次閱讀
    <b class='flag-5'>AXI</b>接口簡介_<b class='flag-5'>AXI</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>的創(chuàng)建流程及讀寫邏輯分析

    AXI總線協(xié)議的幾種時序介紹

    由于ZYNQ架構(gòu)和常用接口IP經(jīng)常出現(xiàn) AXI協(xié)議,賽靈思的協(xié)議手冊講解時序比較分散。所以筆者收藏AXI協(xié)議的幾種時序,方便編程。
    發(fā)表于 05-12 09:10 ?1.1w次閱讀
    <b class='flag-5'>AXI</b>總線協(xié)議的幾種時序介紹

    自定義sobel濾波IPIP接口遵守AXI Stream協(xié)議

    自定義sobel濾波IP IP接口遵守AXI Stream協(xié)議
    的頭像 發(fā)表于 08-06 06:04 ?3978次閱讀

    如何使用MicroBlaze調(diào)用AXI IP詳細解析

    在一個項目中,當你使用microblaze作為控制器來進行系統(tǒng)調(diào)度的時候,一般是建議將所有模塊封裝成AXI形式的IP,這樣好管理,也容易調(diào)試。
    的頭像 發(fā)表于 04-27 11:17 ?6973次閱讀
    如何使用MicroBlaze調(diào)用<b class='flag-5'>AXI</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>詳細解析

    Xilinx FPGA里面的AXI DMA IP簡單用法

    本文以浮點數(shù)Floating-point IP將定點數(shù)轉(zhuǎn)換為浮點數(shù)為例,詳細講解AXI DMA IP
    的頭像 發(fā)表于 02-16 16:21 ?9942次閱讀
    Xilinx FPGA里面的<b class='flag-5'>AXI</b> DMA <b class='flag-5'>IP</b><b class='flag-5'>核</b>的<b class='flag-5'>簡單</b>用法

    AXI4-Stream Video 協(xié)議和AXI_VDMA的IP介紹

    本文主要介紹關(guān)于AXI4-Stream Video 協(xié)議和AXI_VDMA的IP相關(guān)內(nèi)容。為后文完成使用帶有HDMI接口的顯示器構(gòu)建圖像視頻顯示的測試工程做準備。
    的頭像 發(fā)表于 07-03 16:11 ?8546次閱讀

    自定義AXI-Lite接口的IP及源碼分析

    在 Vivado 中自定義 AXI4-Lite 接口的 IP,實現(xiàn)一個簡單的 LED 控制功能,并將其掛載到 AXI Interconnect
    發(fā)表于 06-25 16:31 ?3501次閱讀
    自定義<b class='flag-5'>AXI</b>-Lite接口的<b class='flag-5'>IP</b>及源碼分析

    FPGA學(xué)習(xí)筆記:ROM IP使用方法

    上一篇介紹了常用的鎖相環(huán)IP,這一節(jié)將介紹一種較為常用的 存儲類IP ——ROM的使用方法。ROM是 只讀存儲器 (Read-Only Memory),顧名思義,我們只能讀出事先存放
    的頭像 發(fā)表于 08-22 15:06 ?5314次閱讀
    FPGA學(xué)習(xí)筆記:ROM <b class='flag-5'>IP</b><b class='flag-5'>核</b>的<b class='flag-5'>使用方法</b>
    主站蜘蛛池模板: 天天色综合久久 | 好吊色7777sao在线视频观看 | 天天操天天摸天天碰 | 色视频线观看在线播放 | 四虎精品成人a在线观看 | 午夜国产精品免费观看 | 欧美交片 | 男人女人的免费视频网站 | 免费人成网址在线观看国内 | 午夜艹逼| 一级大片免费看 | www.亚洲免费| 国产黄色三级网站 | 黄色刺激网站 | 久久久精品午夜免费不卡 | 欧美黑人巨大日本人又爽又色 | 一级视频在线观看免费 | 国产美女一级高清免费观看 | www.天天操 | 亚洲欧美一区二区三区四区 | 狠狠操人人 | 91日本视频 | 综合免费视频 | 性色a | ww久久| 视频一区二区不卡 | 欧美在线bdsm调教一区 | 人人人干| 一级特黄aa大片免费播放视频 | 福利视频999 | 久久99精品久久久久久臀蜜桃 | 国产成人影院 | 色视频免费观看 | 国模一区二区三区私啪啪 | 亚洲黄色三级 | 成年片色大黄全免费 | 色综合久久天天综合绕观看 | 一级毛片一级毛片一级级毛片 | 国产又黄又爽又猛的免费视频播放 | 欧美另类激情 | 国产农村妇女毛片精品久久久 |