一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何創(chuàng)建基本AXI4-Lite Sniffer IP以對特定地址上正在發(fā)生的讀寫傳輸事務(wù)進(jìn)行計數(shù)

YCqV_FPGA_EETre ? 來源:FPGA開發(fā)圈 ? 2020-04-30 16:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

在某些情況下,通過嗅探 AXI 接口來分析其中正在發(fā)生的傳輸事務(wù)是很有用的。在本文中,我將為大家演示如何創(chuàng)建基本 AXI4-Lite Sniffer IP 以對特定地址上正在發(fā)生的讀寫傳輸事務(wù)進(jìn)行計數(shù)。

首先,編寫 HDL (Verilog) 代碼,然后將其封裝為 IP,最后將此 IP 添加到 IP IntegratorBlock Design (BD) 中。

我們將創(chuàng)建包含 AXI4-Lite 輸入接口的 AXI Sniffer 用于嗅探 AXI4-Lite 鏈接,并包含 2 項輸出以提供在特定地址上發(fā)生的讀寫傳輸事務(wù)的數(shù)量 (地址可通過 GUI 配置)。

創(chuàng)建 AXI Sniffer IP 以在 Vivado IP Integrator 中使用(教程)

1. 下載設(shè)計文件

https://forums.xilinx.com/xlnx/attachments/xlnx/support_blog/132/1/AXI_Basics_5.zip

2. 打開 Vivado 2019.2

3. 在 Tcl 控制臺中,使用 cd 命令導(dǎo)航到解壓縮的目錄 (cd AXI_Basics_5)

4.在 Tcl 控制臺中,使用 source 命令生成腳本 tcl (source ./create_proj.tcl)


這將創(chuàng)建一個附帶 BD 的 Vivado 工程,此 BD 包含 AXI VIP (設(shè)置為 AXI4-Lite 主接口) 和 AXI GPIO IP。這與我們在AXI 基礎(chǔ)第 3 講一文中完成的最終設(shè)計十分相似。

在此工程中,我們將創(chuàng)建 AXI Sniffer IP,然后嘗試將其連接到位于 AXI VIP 和 AXI GPIO IP 之間的 AXI4-Lite 接口

首先,讓我們來編寫適用于 AXI Sniffer IP 的 HDL (Verilog) 代碼

5.雙擊“源 (Sources)”窗口中的 AXI_Sniffer.v 文件以在文本編輯器中將其打開

首先,需要聲明 IP 端口。我們需要 1 個 AXI4-Lite 接口。根據(jù) ARM 網(wǎng)站上提供的 AMBA AXI和 ACE協(xié)議規(guī)范 (掃碼查看),AXI4-Lite 接口上所需信號如下

我們還需要添加 2 個端口 (read_accesses 和 write_accesses),用于輸出監(jiān)測地址的讀寫訪問次數(shù)。

6. 添加以下代碼以聲明所有必需的信號。

module AXI_Sniffer

(

input aclk,

input aresetn,

input s_axi_arvalid,

input s_axi_arready,

input [31:0] s_axi_araddr,

input [2:0] s_axi_arprot,

input s_axi_rvalid,

input s_axi_rready,

input [31:0] s_axi_rdata,

input [1:0] s_axi_rresp,

input s_axi_awvalid,

input s_axi_awready,

input [31:0] s_axi_awaddr,

input [2:0] s_axi_awprot,

input s_axi_wvalid,

input s_axi_wready,

input [31:0] s_axi_wdata,

input [3:0] s_axi_wstrb,

input s_axi_bready,

input s_axi_bvalid,

input [1:0] s_axi_bresp,

output [31:0] read_accesses,

output [31:0] write_accesses

);

注:在本例中,所有 AXI4-Lite 信號均設(shè)置為輸入,因為 IP 不應(yīng)對 AXI4-Lite 接口執(zhí)行任何操作,僅限于監(jiān)測其中的流量

然后,IP 需要 1 個參數(shù)用于設(shè)置要監(jiān)測的地址

7.添加以下代碼以添加用于監(jiān)測地址的參數(shù)

module AXI_Sniffer

#(

parameter SLAVE_BASE_ADDR = 32'h40000000

)

(

最后,我們需要添加用于對地址訪問次數(shù)進(jìn)行計數(shù)的邏輯。監(jiān)測地址出現(xiàn)在 axi 總線上時,每次 r/wready 和 r/wvalid處于高位時,此代碼都會將計數(shù)增加 1。

8. 請將以下代碼添加到此文件中

reg [31:0] read_accesses_cnt;

reg [31:0] write_accesses_cnt;

assign read_accesses = read_accesses_cnt;

assign write_accesses = write_accesses_cnt;

//Check the Read Address Channel

always @(posedge aclk)

begin

if(aresetn == 0)

begin

read_accesses_cnt = 0;

end

else if (s_axi_arready && s_axi_arvalid && s_axi_araddr == SLAVE_BASE_ADDR)

begin

read_accesses_cnt = read_accesses_cnt + 1;

end

else

read_accesses_cnt = read_accesses_cnt;

end

//Check the Write Address Channel

always @(posedge aclk)

begin

if(aresetn == 0)

begin

write_accesses_cnt = 0;

end

else if (s_axi_awready && s_axi_awvalid && s_axi_awaddr == SLAVE_BASE_ADDR)

begin

write_accesses_cnt = write_accesses_cnt + 1;

end

else

write_accesses_cnt = write_accesses_cnt;

end

endmodule

9.保存 AXI_Sniffer.v 文件

在 IP Integrator 中,提供了一項允許用戶將 HDL 文件導(dǎo)入 BD 的功能。

10.右鍵單擊 BD,然后單擊“添加模塊 (Add Module...)”

可以看到,該工具將所有 s_axi_* 信號組合為接口 s_axi。但如果我們嘗試將此接口連接到 AXI VIP 與 AXI GPIO 之間的現(xiàn)有連接上,該工具將會禁止此操作。

這是因為導(dǎo)入模塊工具已將 s_axi 接口設(shè)置為從接口,而 Vivado 僅允許每個主接口連接到一個從接口。

要創(chuàng)建監(jiān)測 IP,我們需要將代碼封裝為 IP,這將為我們提供更多接口選項。

11.單擊“工具 (Tools) > 創(chuàng)建并封裝新 IP (Create and Package New IP...) ”

12.在“Create and Package New IP”的第 2 個頁面上,選擇“封裝指定目錄 (Package a specified directory)”,然后單擊“下一步 (Next)”

13.選中 AXI_Basics_5/src/hdl/AXI_Sniffer 目錄,然后單擊“Next > Next(保留默認(rèn)設(shè)置) > 完成 (Finish)

這樣將創(chuàng)建 IP Packager 工程 。在“封裝 IP (Package IP)”選項卡中,單擊“端口和接口 (Ports and Interface)”部分。

可以看到,工具又一次將 s_axi_* 信號分組構(gòu)成 s_axi 接口。但此接口仍設(shè)置為從接口。要連接到現(xiàn)有 AXI 總線,我們需要告知該工具,此接口并非從接口,而是監(jiān)測接口。

14.右鍵單擊 s_axi 接口,然后單擊“編輯接口 (Edit Interface...)”

15.在“Edit Interface”窗口的“常規(guī) (General)”選項卡中,將“模式 (Mode)”更改為“monitor”

16. 然后單擊“端口映射 (Port Mapping)”選項卡,并啟用“隱藏已映射的端口 (Hide Mapped Port)”

17.對于 IP 的每個名為 s_axi_* 的物理端口,查找接口的匹配“邏輯端口 (Logical Ports)”,然后單擊“映射端口 (Map Ports)”

18.完成所有 s_axi_* 端口映射后,單擊“確定 (OK)”,以關(guān)閉“編輯接口 (Edit Interface)”窗口

19. 再次右鍵單擊 s_axi 接口,然后單擊“關(guān)聯(lián)時鐘 (Associate Clocks...)”

20. 在下一個窗口中,應(yīng)該會自動選中 aclk。單擊“OK”

21. 單擊“復(fù)查并封裝 (Review and Package)”部分,然后單擊“封裝 IP (Package IP)”。

這樣將關(guān)閉 IP Packager 工程。

22. 從初始工程的 BD 中移除先前的AXI_Sniffer IP
23. 右鍵單擊初始工程的 BD,然后單擊“添加 IP (Add IP)”。找到 AXI Sniffer IP(應(yīng)已自動添加到 IP 目錄中),并將其添加到 BD

24. 嘗試將新 AXI Sniffer IP 的 s_axi 接口連接到 AXI VIP 與 AXI GPIO 之間的總線?,F(xiàn)在,此操作已可行。

25. 將定制 IP 的 aclk 和 aresetn 輸入端口連接到對應(yīng)的 BD 端口。
26. 驗證 BD 設(shè)計。確保其中不存在任何嚴(yán)重警告或錯誤。保存 BD。

最后,我們可在仿真中驗證此 IP 是否有效。
27. 啟動仿真,將 AXI_Sniffer IP 的端口 read_accesses 和 write_accesses 添加到波形窗口中。

28.重新啟動仿真,保持運行 3us

在仿真波形中可以看到,正在執(zhí)行 2 項讀取和 2 項寫入傳輸事務(wù)。但我們的 IP 計數(shù)僅顯示 2 項寫入傳輸事務(wù)和 1 項讀取傳輸事務(wù)。

我們可以觀察每項傳輸事務(wù)的地址,查看輸出是否正確。在 IP 監(jiān)測的地址 0x4000_0000 上正在發(fā)生 2 項寫入傳輸事務(wù)。

但只有 1 項讀取傳輸事務(wù)目標(biāo)為地址 0x4000_0000(另一項讀取傳輸事務(wù)目標(biāo)為 0x4000_0008),因此 IP 行為正確。

本文僅展示了 1 個利用 AXI Sniffer(或者稱為 Monitor)IP 可實現(xiàn)的操作的示例。您可編輯 Verilog 代碼以添加自己的功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9005

    瀏覽量

    153772
  • 賽靈思
    +關(guān)注

    關(guān)注

    33

    文章

    1797

    瀏覽量

    132364

原文標(biāo)題:AXI基礎(chǔ)第5講——創(chuàng)建 AXI4-Lite Sniffer IP 以在賽靈思 Vivado IP Integrator 中使用

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    關(guān)于AXI Lite無法正常握手的問題

    關(guān)于AXI Lite的問題 為什么我寫的AXI Lite在使用AXI Lite Slave
    發(fā)表于 07-16 18:50

    RDMA over RoCE V2設(shè)計2:ip 整體框架設(shè)計考慮

    ,設(shè)計使用標(biāo)準(zhǔn)化的 AXI4AXI-Stream 總線接口進(jìn)行數(shù)據(jù)傳輸,同時使用標(biāo)準(zhǔn)化的 AXI-Lite 總線接口提供系統(tǒng)控制功能,在保證
    發(fā)表于 07-16 08:51

    NVMe IP高速傳輸擺脫XDMA設(shè)計之四:系統(tǒng)控制模塊設(shè)計

    的方式實現(xiàn)功能的控制和狀態(tài)的監(jiān)測。 為方便用戶訪問這些寄存器組, 系統(tǒng)控制模塊采用 AXI4-Lite 總線作為接口, AXI4-Lite 接口具有低帶寬、 低延時、 低復(fù)雜度的特點, 采用該接口可以簡化
    發(fā)表于 06-29 18:07

    NVMe IP高速傳輸卻不依賴XDMA設(shè)計之三:系統(tǒng)架構(gòu)

    所設(shè)計的新系統(tǒng)架構(gòu)中,Nvme over PCIe IP通過 PCIe 3.0x4 接口連接 NVMe固態(tài)硬盤, 并提供 AXI4-Lite 接口用于系統(tǒng)控制, 以及 AXI4 接口用
    的頭像 發(fā)表于 06-29 17:46 ?599次閱讀
    NVMe <b class='flag-5'>IP</b>高速<b class='flag-5'>傳輸</b>卻不依賴XDMA設(shè)計之三:系統(tǒng)架構(gòu)

    NVMe IP高速傳輸卻不依賴便利的XDMA設(shè)計之三:系統(tǒng)架構(gòu)

    NVMe 固態(tài)硬盤, 并提供 AXI4-Lite 接口用于系統(tǒng)控制, 以及 AXI4 接口用于數(shù)據(jù)傳輸。 在該IP內(nèi)部, 根據(jù)功能劃分為系統(tǒng)控制模塊、 初始化模塊、 NVMe 控制模
    發(fā)表于 06-29 17:42

    RDMA簡介8之AXI分析

    傳輸接口,其支持亂序傳輸、突發(fā)傳輸傳輸方式,同時通過獨立的地址總線,實現(xiàn)高性能的數(shù)據(jù)地址映射;
    的頭像 發(fā)表于 06-24 23:22 ?153次閱讀
    RDMA簡介8之<b class='flag-5'>AXI</b>分析

    RDMA簡介8之AXI 總線協(xié)議分析1

    ,分別為:AXI4、AXI4-LiteAXI4-Stream接口。其中 AXI4 也稱為 AXI4-Full 是一種基于
    發(fā)表于 06-24 18:00

    NVMe IPAXI4總線分析

    AXI4-Full AXI4-Lite AXI4-Stream 總線寬度 32,64,128,256,512,1024 32,64 32,64,128,256,512,1024 通道 寫地址
    發(fā)表于 06-02 23:05

    AMD Versal Adaptive SoC Clock Wizard AXI DRP示例

    本文將使用 Clocking Wizard 文檔 PG321 中的“通過 AXI4-Lite 進(jìn)行動態(tài)重配置的示例”章節(jié)作為參考。
    的頭像 發(fā)表于 05-27 10:42 ?510次閱讀
    AMD Versal Adaptive SoC Clock Wizard <b class='flag-5'>AXI</b> DRP示例

    NVMe協(xié)議簡介之AXI總線

    高性能、高帶寬、低延時的片內(nèi)互連需求。AXI4總線則是AXI總線的第四代版本,主要包含三種類型的接口,分別是面向高性能地址映射通信的AXI4接口、面向輕量級單次
    發(fā)表于 05-17 10:27

    NVMe控制器IP設(shè)計之接口轉(zhuǎn)換

    (addr、en、data_db)轉(zhuǎn)換為與AXI PCIe IP模塊相連接的AXI4-Lite接口。該模塊的主要功能是在隊列管理模塊需要更新SSD內(nèi)部門鈴寄存器時,通過訪問BAR空間實現(xiàn)更新NVMe SSD
    發(fā)表于 05-10 14:33

    一文詳解AXI DMA技術(shù)

    ,SG)功能還可以將數(shù)據(jù)移動任務(wù)從位于于處理器系統(tǒng)中的中央處理器(CPU)中卸載出來??梢酝ㄟ^一個AXI4-Lite從接口訪問初始化、狀態(tài)和管理寄存器。如圖4. 8展現(xiàn)了DMA IP的功能構(gòu)成核心。
    的頭像 發(fā)表于 04-03 09:32 ?1006次閱讀
    一文詳解<b class='flag-5'>AXI</b> DMA技術(shù)

    一文詳解Video In to AXI4-Stream IP

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

    AXI接口FIFO簡介

    AXI接口FIFO是從Native接口FIFO派生而來的。AXI內(nèi)存映射接口提供了三種樣式:AXI4AXI3和AXI4-Lite。除了Na
    的頭像 發(fā)表于 03-17 10:31 ?1080次閱讀
    <b class='flag-5'>AXI</b>接口FIFO簡介

    公共 IP 地址前綴如何進(jìn)行網(wǎng)絡(luò)資源配置?

    IPv4或IPv6地址組成。在具有可用區(qū)域的地方,我們可將其創(chuàng)建區(qū)域冗余模式,也可讓其和特定的可用區(qū)域相關(guān)聯(lián)。一旦創(chuàng)建了公共
    的頭像 發(fā)表于 08-21 14:57 ?595次閱讀
    公共 <b class='flag-5'>IP</b> <b class='flag-5'>地址</b>前綴如何<b class='flag-5'>進(jìn)行</b>網(wǎng)絡(luò)資源配置?