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

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

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

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

簡(jiǎn)單講解AXI Interconnect IP核的使用方法

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

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

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

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

為了簡(jiǎn)化整體例子的復(fù)雜度,整個(gè)測(cè)試工程項(xiàng)目采用了兩個(gè)措施:

  1. 使用Block Design代替了RTL代碼書(shū)寫(xiě)連線(xiàn)操作
  2. 使用AXI4-Lite總線(xiàn)進(jìn)行測(cè)試,相對(duì)于A(yíng)XI4,省去了部分信號(hào)
  3. 整個(gè)工程量不大,故沒(méi)有在VCS中仿真,使用Vivado自帶的仿真器做仿真

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

圖片

圖1

簡(jiǎn)單介紹一下圖1中的模塊功能

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

簡(jiǎn)單介紹下Block Design的AXI Interconnect IP核使用(因?yàn)锽lock Design可以實(shí)現(xiàn)自動(dòng)連線(xiàn),自動(dòng)設(shè)置位寬等信息,所以設(shè)置內(nèi)容沒(méi)有AXI Interconnect RTL多,后者專(zhuān)用于Verilog代碼中使用)

圖片

圖2

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

圖片

圖3

圖片

圖4

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

圖片

圖5

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

圖片

圖6

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

Sxx_ACLK是對(duì)應(yīng)總線(xiàn)的總線(xiàn)時(shí)鐘,Sxx_ARESETN是對(duì)應(yīng)總線(xiàn)的異步低有效復(fù)位信號(hào)。同理,Mxx_ACLK是對(duì)應(yīng)總線(xiàn)的總線(xiàn)時(shí)鐘,Mxx_ACLK_ARESETN是對(duì)應(yīng)總線(xiàn)的異步低有效復(fù)位信號(hào)。

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

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

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

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

s00_axi在100MHz時(shí)鐘域下,我們單獨(dú)對(duì)它進(jìn)行寫(xiě)操作。

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

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

可以看到,等到s00_axil_wready拉高,Master會(huì)把s00_axil_wvalid拉高,并生成一個(gè)隨機(jī)數(shù)寫(xiě)入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),會(huì)加4;同樣,地址寫(xiě)到1024后會(huì)重新歸零。

可以看到,等到s01_axil_rvalid拉高,s01_axil_rready會(huì)拉高,讀取出對(duì)應(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

當(dāng)然,為什么兩個(gè)不同的總線(xiàn)能夠?qū)σ粋€(gè)BRAM進(jìn)行操作,這里涉及到地址分配的問(wèn)題;

圖片

圖7

兩個(gè)總線(xiàn)可以訪(fǎng)問(wèn)到同一個(gè)地址,所以自然可以對(duì)同一個(gè)BRAM進(jìn)行操作;那有人可能問(wèn),假如我操作s00訪(fǎng)問(wèn)的地址超過(guò)了分配的地址范圍呢,那么s00_axil_bresp會(huì)等于2'd3,告知地址錯(cuò)誤的問(wèn)題。

圖片

圖8

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

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

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

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

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

圖片

圖9

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

至此,簡(jiǎn)單總結(jié)下在A(yíng)XI通信中使用AXI Interconnect的好處:

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

    關(guān)注

    114

    文章

    17017

    瀏覽量

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

    關(guān)注

    1

    文章

    388

    瀏覽量

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

    關(guān)注

    0

    文章

    80

    瀏覽量

    9862
  • AXI總線(xiàn)
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    14514
  • BRAM
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    11248
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    一文詳解Video In to AXI4-Stream IP

    Video In to AXI4-Stream IP用于將視頻源(帶有同步信號(hào)的時(shí)鐘并行視頻數(shù)據(jù),即同步sync或消隱blank信號(hào)或者而后者皆有)轉(zhuǎn)換成AXI4-Stream接口形
    的頭像 發(fā)表于 04-03 09:28 ?1069次閱讀
    一文詳解Video In to <b class='flag-5'>AXI</b>4-Stream <b class='flag-5'>IP</b><b class='flag-5'>核</b>

    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é)議。為什么沒(méi)有AXI_WID這個(gè)信號(hào)呢?

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

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

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

    PCIE項(xiàng)目中AXI4 IP例化詳解

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

    AXI FIFO和AXI virtual FIFO這兩個(gè)IP使用方法

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

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

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

    基于MicroBlaze的AXI總線(xiàn)實(shí)時(shí)時(shí)鐘IP設(shè)計(jì)

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

    AXI接口簡(jiǎn)介_(kāi)AXI IP的創(chuàng)建流程及讀寫(xiě)邏輯分析

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

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

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

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

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

    Xilinx FPGA里面的AXI DMA IP簡(jiǎn)單用法

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

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

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

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

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

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

    上一篇介紹了常用的鎖相環(huán)IP,這一節(jié)將介紹一種較為常用的 存儲(chǔ)類(lèi)IP ——ROM的使用方法。ROM是 只讀存儲(chǔ)器 (Read-Only Memory),顧名思義,我們只能讀出事先存放
    的頭像 發(fā)表于 08-22 15:06 ?6606次閱讀
    FPGA學(xué)習(xí)筆記:ROM <b class='flag-5'>IP</b><b class='flag-5'>核</b>的<b class='flag-5'>使用方法</b>
    主站蜘蛛池模板: 四虎最新地址 | 亚洲4区| 色综合激情丁香七月色综合 | 亚洲成a人片在线网站 | 男男憋尿play按小腹 | 男人天堂综合网 | 免费91视频 | 一区二区三区影视 | 天天草天天操 | 色综合视频一区二区三区 | 亚洲视频第一页 | 色偷偷资源网 | 手机视频在线播放 | 欧美一区二区视频三区 | 欧美猛交lxxxxxxxxx | 一级欧美一级日韩 | 亚州怡红院 | 1024在线观看你懂的 | 国产成人高清精品免费5388密 | 亚洲精品久久婷婷爱久久婷婷 | 国产真实野战在线视频 | 日操夜操天天操 | 四虎新地址4hu 你懂的 | 国产高清在线观看 | 亚洲天堂成人网 | 亚洲高清免费在线观看 | 国产一卡二卡3卡4卡四卡在线视频 | 国产精品欧美精品国产主播 | 全国男人的天堂天堂网 | 操人网站 | 欧美一区二区三区视频在线观看 | 天天艹夜夜 | 呦交小u女国产秘密入口 | 曰曰摸天天摸人人看久久久 | 国产黄色小视频在线观看 | 久久思re热9一区二区三区 | 99国产国人青青视频在线观看 | 亚洲一区二区免费视频 | 天天干干天天 | 黑人边吃奶边扎下面激情视频 | 亚洲视频入口 |