精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

使用AXI VIP的幾個關鍵步驟及常見功能

FPGA技術江湖 ? 來源:網絡交換FPGA ? 作者:趙雨晨 ? 2022-10-08 16:07 ? 次閱讀

AXI總線在FPGA設計中使用越來越頻繁,但初學的同學經常會因為對協議的理解不夠深入,寫出來的代碼經常會出現死鎖等問題,對FPGA設計與調試帶來很多不必要的麻煩。為了解決這個問題,我們可以使用Vivado生成AXI VIP(AXI Verification IP)來對自己設計的AXI接口模塊進行全方位的驗證(如使用VIP的Master、Passthrough、Slave三種模式對自己寫的AXI接口進行仿真驗證),提前規避和發現一些不滿足AXI總線規范的設計問題。本文就跟大家分享如何使用Xilinx AXI VIP對自己的設計搭建仿真驗證環境的方法。

本文參考的Xilinx官方文檔為:pg267-axi-vip.pdf。

01使用AXI VIP的幾個關鍵步驟

1.1、從IP Catalog中選擇并添加一個VIP,在這一步可以自定義該VIP的Component Name(新建完成后就很難再改名字了)。

fc0f6b0e-45cd-11ed-96c9-dac502259ad0.png

IP添加完成就可以在tb中實例化。

1.2、在sv格式的tb中加入下面兩條import語句,第一個import是固定不變的,axi_vip對應axi_vip_pkg,axi-stream vip對應axi4stream_vip_pkg。

第二個import是導入剛才例化的vip的pkg,格式為import {Component Name}_pkg::*; 比如Component Name為axi_vip_0,則import如下圖第二行。

vivado自帶的編輯器會提示找不到import的這些pkg,但不會影響仿真。

fc5d52d8-45cd-11ed-96c9-dac502259ad0.png

1.3、 在tb中聲明相關的agent,使用vip的agent和它支持的一些函數就能實現仿真的功能。AXI vip支持的agent類型如下:

(AXI Verification IP v1.1 第47頁)

fc7b3096-45cd-11ed-96c9-dac502259ad0.png

如果測試一個AXI Master接口,可以聲明一個自帶memory model的slave agent,結尾為mem_t:

fcb10bd0-45cd-11ed-96c9-dac502259ad0.png

這種自帶memory model的slave可以在執行start();之后自動生成AXI Slave時序,支持數據的寫入和讀出,也支持對memory內容的初始化和后臺讀寫操作。

1.4、Start前的初始化步驟

使用new函數將agent指定到待仿真的vip的IF上,

fccd3756-45cd-11ed-96c9-dac502259ad0.png

fd108a7e-45cd-11ed-96c9-dac502259ad0.png

第二行:為agent設置一個標簽,在使用多個vip時,方便在仿真時的錯誤信息中看到是哪個vip產生的。

第三行:設置verbosity為0,為不展示詳細的仿真信息。設置為400,則會在仿真時print出詳細的仿真信息。(不常用)

第四行:啟動slave,之后slave可以根據待測的Master接口的讀寫時序產生相應的slave時序,被Master進行讀寫。

仿真過程中,如果axi或axi stream總線上的時序出現了任何錯誤,vip都會自動結束(暫停)仿真過程,仿真記錄的波形會停在總線時序出錯的位置偏后一點,控制臺中也會顯示vip對錯誤的詳細描述。

02幾個常見功能

VIP的內部功能結構、支持的仿真函數在xilinx-vip-api-2021-2中有詳細的說明。使用瀏覽器打開下圖中的文件,便可以查看到。

fd3f992c-45cd-11ed-96c9-dac502259ad0.png

fd4f1050-45cd-11ed-96c9-dac502259ad0.png

axi-vip和axi-stream-vip都有自帶的仿真例程,常用的功能在仿真例程中都有涉及。

2.1 設置VIP支持的Outstanding讀寫深度

例如,設置slave vip的outstanding深度為32,執行下面代碼的前兩行即可。第3~4行則是獲取agent的讀寫深度,可以以此確認前面設置的讀寫深度是否有效。

fdb4f794-45cd-11ed-96c9-dac502259ad0.png

2.2 自定義ready信號

自帶memory model的slave vip可以在start_slave();之后產生slave時序,也可以通過slave的wr_driver或rd_driver,自定義ready的高低電平周期。

下圖代碼展示的是為axi產生自定義wready、awready、arready的方法。在這個initial的末尾,只是為ready信號設置了一個低電平時間為5clk,高電平時間為5clk的初始狀態。

fdd71112-45cd-11ed-96c9-dac502259ad0.png

仿真開始后,可以在每次AW(寫地址)通道握手之后,將新的awready和wready設置到agent上。在每次AR通道握手之后,將arready設置到agent上。

不能在axi的一個傳輸周期之內設置多組ready,否則vip會報出類似“太多未處理的ready”等錯誤信息,即使仿真依舊能夠進行。

fe1b6434-45cd-11ed-96c9-dac502259ad0.png

2.3 Axi slave vip的memory model

使用agent.mem_model.backdoor_memory_write等函數可以繞過vip直接對memory model進行一些讀寫操作,在xilinx vip api文檔中有詳細介紹,需要注意只有帶memory model的vip才支持這類功能。

fe34fb2e-45cd-11ed-96c9-dac502259ad0.png

03使用自己的仿真環境

dma_sim_vivado工程中含有兩個仿真源,一個是只測試AXI與AXI-Stream通路的回環測試工程,另一個是測試DMA所有功能包括接口的仿真工程。

fea4ec22-45cd-11ed-96c9-dac502259ad0.png

其中,axi_if_sim中例化了一個axi vip和一個axi stream vip,其測試內容為:

1、 填充axi stream接口的rxfifo。

2、 axi master接口將rxfifo中的數據寫入到axi vip的memory。

3、 axi master接口將ax vip中memoty的數據全部讀出,并存入txfifo。

4、 txfifo上的axi-stream master接口將txfifo內的數據以axi-stream的形式傳給axi stream vip。

5、最后比較axi stream vip接收的數據與一開始填充進rxfifo的數據是否一致,輸出仿真結果。

np_dma_sim中的vip使用基本一致,增加的內容在于使用

agent.mem_model.backdoor_memory_write為slave vip的memory預先填充了一部分DMA的描述符,方便后面的仿真使用。

feb77cfc-45cd-11ed-96c9-dac502259ad0.png

審核編輯:湯梓紅

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

    關注

    1626

    文章

    21667

    瀏覽量

    601858
  • Xilinx
    +關注

    關注

    71

    文章

    2163

    瀏覽量

    121010
  • AXI
    AXI
    +關注

    關注

    1

    文章

    127

    瀏覽量

    16598

原文標題:【經驗分享】Xilinx AXI VIP使用說明

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AXI VIP設計示例 AXI接口傳輸分析

    賽靈思 AXI Verification IP (AXI VIP) 是支持用戶對 AXI4 和 AXI4-Lite 進行仿真的 IP。它還可
    發表于 07-08 09:24 ?1750次閱讀

    如何使用AXI VIPAXI4(Full)主接口中執行驗證和查找錯誤

    AXI 基礎第 2 講 一文中,曾提到賽靈思 Verification IP (AXI VIP) 可用作為 AXI 協議檢查工具。在本次第4講中,我們將來了解下如何使用它在
    發表于 07-08 09:31 ?2784次閱讀

    AXI VIP當作master時如何使用

    AXI VIP當作master時如何使用。 ??新建Vivado工程,并新建block design,命名為:axi_demo 新建axi vip
    的頭像 發表于 07-27 09:19 ?1124次閱讀
    <b class='flag-5'>AXI</b> <b class='flag-5'>VIP</b>當作master時如何使用

    主軸維修:關鍵步驟和要點有哪些?|深圳恒興隆機電.

    主軸維修:關鍵步驟和要點有哪些?|深圳恒興隆機電主軸是許多機床設備中的關鍵組成部分,通常用于加工、旋轉和支撐各種工件。由于其復雜性和多功能性,主軸的維護和維修變得尤為重要。本文將深入探討主軸的維修
    發表于 03-25 09:45

    PCB制作關鍵步驟說明書

    PCB制作關鍵步驟說明書.
    發表于 11-10 19:06

    RNN算法的三個關鍵步驟

    DL之RNN:RNN算法相關論文、相關思路、關鍵步驟、配圖集合+TF代碼定義
    發表于 12-28 14:20

    如何使用Xilinx AXI VIP對自己的設計搭建仿真驗證環境的方法

    :pg267-axi-vip.pdf。01 使用AXI VIP幾個關鍵步驟1.1、從IP Catalog中選擇并添加一個
    發表于 10-09 16:08

    布線測試中的幾個關鍵步驟

    布線測試中的幾個關鍵步驟 步驟1: 通斷測試是基礎   通斷測試是測試的基礎,是對線路施工的一種最基
    發表于 04-14 11:46 ?535次閱讀

    設計 NCL30088 控制的 LED 驅動器的 4 個關鍵步驟

    設計 NCL30088 控制的 LED 驅動器的 4 個關鍵步驟
    發表于 11-14 21:08 ?0次下載
    設計 NCL30088 控制的 LED 驅動器的 4 個<b class='flag-5'>關鍵步驟</b>

    關于工業物聯網的3個關鍵步驟

    可以通過以下三個關鍵步驟使工業物聯網的采用更容易:數據結構、連接性、人機界面 生態系統。
    發表于 11-23 09:36 ?414次閱讀

    AXI協議的幾個關鍵特性

    AXI 協議有幾個關鍵特性,旨在改善數據傳輸和事務的帶寬和延遲
    的頭像 發表于 05-06 09:49 ?1091次閱讀

    AXI VIP當作master時如何使用?

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

    焊接貼片電阻的關鍵步驟

    貼片電阻是一種常見的電子元件,用于電路板的焊接。焊接貼片電阻需要注意一些關鍵步驟和技巧,以確保焊接質量和電路的穩定性。
    的頭像 發表于 08-19 10:52 ?1381次閱讀

    邪惡PLC攻擊技術的關鍵步驟

    今天我們來聊一聊PLC武器化探秘:邪惡PLC攻擊技術的六個關鍵步驟詳解。
    的頭像 發表于 01-23 11:20 ?1016次閱讀
    邪惡PLC攻擊技術的<b class='flag-5'>關鍵步驟</b>

    組合邏輯電路設計的關鍵步驟是什么

    組合邏輯電路設計的關鍵步驟主要包括以下幾個方面: 1. 邏輯抽象 任務 :根據實際邏輯問題的因果關系,確定輸入、輸出變量,并定義邏輯狀態的含義。 內容 :明確問題的邏輯要求,找出自變量(輸入條
    的頭像 發表于 08-11 11:28 ?740次閱讀