chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

AXI VIP 中產(chǎn)生傳輸事務的基本方法

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-08-29 14:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本系列我想深入探尋 AXI4 總線。不過事情總是這樣,不能我說想深入就深入。當前我對 AXI總線的理解尚談不上深入。但我希望通過一系列文章,讓讀者能和我一起深入探尋 AXI4。

歡迎來到深入 AXI4 總線的實戰(zhàn)篇,系列第二篇文章中,我們將首先了解調用 AXI VIP 產(chǎn)生激勵與響應的方法,并完成一個小目標:實現(xiàn)三種情況下的握手信號

關于平臺移植

本文的實戰(zhàn)在第一篇的示例工程上,新建 tb 來實現(xiàn)我們的功能。新建 tb 中的邏輯由 demo tb 的內(nèi)容搬運簡化而來。

本來計劃新建一個工程,但是閱讀 PG267 (IP 核的產(chǎn)品文檔)發(fā)現(xiàn),當前 Vivado 對于該 IP 的支持還比較弱,需要將 IP 的實例名以及層次路徑硬編碼至 tb 中,如果新建工程還比較麻煩。所以本文暫時還是在 example 的基礎上展開 。

想要重新搭建工程的讀者請注意閱讀 demo tb 開頭的說明,或者 PG267 第六章中的內(nèi)容。

本文的場景為主機與從機之間通過 Pass-through (以后叫 ta 中間機?)進行通信。從機選用 mem 模式,有自己的存儲模型,即使用 mem_stimulus.sv 作為激勵。關于存儲模型,我們將在后續(xù)的文章中討論。

我們的改動在于主機的激勵部分,以原先的 mst_stimulus.sv 為基礎,構建我們自己的主機激勵,改動后的 testbench 結構如下圖所示。

2fb3fb5e-25a9-11ed-ba43-dac502259ad0.png

是的,新的激勵加上了 headbig 字段,這來自于 深入 AXI4 總線 系列文章的英文名:Headbig AXI4。

VIP API 基本調用方式

PG 文檔中,Xilinx 表示 VIP 基于 SystemVerilog 語言開發(fā),同時在 API 的設計上,命名與數(shù)據(jù)結構的設計均參考了 UVM 框架,便于 VIP 在驗證系統(tǒng)中的集成。由于本文的重點不在于 UVM 或者 API 的設計,因此僅跟著 demo 以及 PG 中的 API 調用流程過一遍。

主機 master

首先來看主機,定義于 axi_vip_master_mst_stimulus.sv 中

為主機 master ip 創(chuàng)建一個 agent 對象,傳入 master ip 的層級路徑,后續(xù)通過該 agent 控制主機 ip

agent = new("master vip agent",DUT.ex_design.axi_vip_mst.inst.IF);

通過 agent 啟動主機

agent.start_master();

在 fork ...join 并發(fā)塊中同時發(fā)出主機的讀寫傳輸事務。

fork
 begin
  //調用寫傳輸事務 API
 end
 
 begin
  //調用讀傳輸事務 API
 end
join

產(chǎn)生兩者的 API 結構相似,我們以寫傳輸事務為例。例程中依次使用了 3 種 API ,分別產(chǎn)生

完全隨機化的寫傳輸事務

multiple_write_transaction_full_rand ("single write",1);

定制化的寫傳輸事務

single_write_transaction_api("single write with api",
                   .id(mtestWID),
                   .addr(mtestWADDR),
                   .len(mtestWBurstLength), 
                   .size(mtestWDataSize),
                   .burst(mtestWBurstType),
                   .wuser(mtestWUSER),
                   .awuser(mtestAWUSER), 
                   .data(mtestWData)
                   );

部分隨機化的寫傳輸事務

multiple_write_transaction_partial_rand(相關參數(shù));

我們常說,不想知道 API 函數(shù)之下發(fā)生了什么的程序員不是好程序員,IC 工程師同樣如是。以較簡單的定制化寫傳輸事務函數(shù)為例,所謂函數(shù)實質上是一個 sv task,以下是 task 中的主要內(nèi)容:

  axi_transaction                wr_trans;
  wr_trans = agent.wr_driver.create_transaction(name);
  wr_trans.set_write_cmd(addr,burst,id,len,size);
  wr_trans.set_prot(prot);
  //...
  wr_trans.set_data_block(data);
  agent.wr_driver.send(wr_trans); 

首先聲明一個 axi 傳輸事務對象,然后在主機 ip 的 agent 下建立傳輸事務。

通過 API 函數(shù)設定寫命令信息,設定傳輸屬性以及待傳輸?shù)臄?shù)據(jù)塊。數(shù)據(jù)塊的數(shù)據(jù)類型為

bit [4 * 1024 * 8 - 1:0]

從機 slave

接下來,我們看一下從機的相關流程,定義于 axi_vip_master_mem_stimulus.sv 中。

同樣為從機創(chuàng)建并啟動相應 agent,此處與主機相似不表。

在 demo 中構造了一個虛擬數(shù)據(jù)作為后續(xù)對主機讀數(shù)據(jù)的回應,因為本文的主要工作是得到握手信息的波形,因此并不會實際存儲主機寫入的數(shù)據(jù),而是在主機讀取任意地址時,返回這個虛擬數(shù)據(jù)。

最后,從機調用 API 產(chǎn)生 wready 信號應答

  task user_gen_wready();
   axi_ready_gen              wready_gen;
   wready_gen = agent.wr_driver.create_ready("wready");
   wready_gen.set_ready_policy(XIL_AXI_READY_GEN_OSC);
   wready_gen.set_low_time(1);
   wready_gen.set_high_time(2);
   agent.wr_driver.send_wready(wready_gen);
  endtask

此處表示 wready 信號在從機空閑時周期性生成,有效時間為 2/3,我們可以在后續(xù)的波形中看到。

握手波形

我們對主機的激勵代碼進行修改,僅保留單次定制化的讀寫傳輸事務,地址為 0x0,突發(fā)長度為 0。在波形中我們得到了三種情況下的握手信號。

(1)VALID 信號等待 READY 信號

2fc32c3c-25a9-11ed-ba43-dac502259ad0.png

在 tb 中主機并行地啟動讀寫傳輸事務,AR/W VALID 同時置高,在等待從機給出 READY 信號后完成地址與控制信號的傳輸,此時地址為 0x0.

(2)READY 信號等待 VALID 信號

2fd8e180-25a9-11ed-ba43-dac502259ad0.png

主機在發(fā)出讀傳輸事務后,置高 RREADY 信號等待接收從機返回的讀數(shù)據(jù)。在從機置高 RVALID 后,讀傳輸事務完成。

(3)READY 與 VALID 信號同時置起

在設置從機的 READY 信號類型時,我們設置為周期性置高 READY,從下圖中可以看到,READY 信號在送出 2 個周期高電平后置低 1 個周期。

2fe625e8-25a9-11ed-ba43-dac502259ad0.png

在這個場景中,寫數(shù)據(jù)通道中的 WREADY 信號正好與 WVALID 信號同時置起,解鎖了最后三種握手姿勢中的最后一種,OK 本文實戰(zhàn)篇收工了。

結語

本文首先介紹了 AXI VIP 中產(chǎn)生傳輸事務的基本方法。基于 demo 修改了一個簡單純粹的例子,并基于這個例子觀察到了握手信號。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)

    關注

    8

    文章

    7256

    瀏覽量

    91828
  • 存儲
    +關注

    關注

    13

    文章

    4531

    瀏覽量

    87437
  • 編碼
    +關注

    關注

    6

    文章

    968

    瀏覽量

    55759
  • AXI總線
    +關注

    關注

    0

    文章

    66

    瀏覽量

    14554

原文標題:深入AXI4 總線實戰(zhàn):Hello AXI handshake

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    如何將AXI VIP添加到Vivado工程中

    在這篇新博文中,我們來聊一聊如何將 AXI VIP 添加到 Vivado 工程中,并對 AXI4-Lite 接口進行仿真。隨后,我們將在仿真波形窗口中講解用于AXI4-Lite
    發(fā)表于 07-08 09:27 ?2269次閱讀

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

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

    AXI VIP當作master時如何使用

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

    高級可擴展接口(AXI)簡介

    的設計理念相似,但使用多個專用通道進行讀寫。像它的前身一樣,AXI是基于突發(fā)的,并且在交換數(shù)據(jù)之前使用類似的地址和控制階段。AXI還包括許多新功能,包括亂序事務,未對齊的數(shù)據(jù)傳輸,高速
    發(fā)表于 09-28 10:14

    ARM系列 -- AXI協(xié)議資料匯總(一)

    地址通道中,主機(master)是發(fā)送方,而從機(slave)是接收方;在讀數(shù)據(jù)通道中,主機是接收方,從機是發(fā)送方。3、AXI協(xié)議傳輸事務的結構了解完通道握手的依賴關系,我們再看看傳輸
    發(fā)表于 04-08 09:34

    ARM系列 -- AXI協(xié)議資料匯總(二)

    1、AXI協(xié)議用AxCACHE來控制事務屬性來看看事務屬性(Transaction Attributes),主要是對cache,buffer和memory controller的規(guī)定。按照協(xié)議,從機
    發(fā)表于 04-08 09:49

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

    接口進行仿真驗證),提前規(guī)避和發(fā)現(xiàn)一些不滿足AXI總線規(guī)范的設計問題。本文就跟大家分享如何使用Xilinx AXI VIP對自己的設計搭建仿真驗證環(huán)境的方法。本文參考的Xilinx官方
    發(fā)表于 10-09 16:08

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

    這將創(chuàng)建一個附帶 BD 的 Vivado 工程,此 BD 包含 AXI VIP (設置為 AXI4-Lite 主接口) 和 AXI GPIO IP。這與我們在
    的頭像 發(fā)表于 04-30 16:24 ?2797次閱讀
    如何創(chuàng)建基本<b class='flag-5'>AXI</b>4-Lite Sniffer IP以對特定地址上正在發(fā)生的讀寫<b class='flag-5'>傳輸</b><b class='flag-5'>事務</b>進行計數(shù)

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

    接口進行仿真驗證),提前規(guī)避和發(fā)現(xiàn)一些不滿足AXI總線規(guī)范的設計問題。本文就跟大家分享如何使用Xilinx AXI VIP對自己的設計搭建仿真驗證環(huán)境的方法
    的頭像 發(fā)表于 10-08 16:07 ?6395次閱讀

    一些高質量的AMBA(APB/AHB/AXI) VIP分享

    關于VIP的好處,估計就不用我安利了,引用最近S家的一句廣告語,“擁有VIP,無懼芯片設計挑戰(zhàn)”。而在當今的芯片領域,用的最多的可能還是標準總線APB/AHB/AXI等。提到VIP,估
    的頭像 發(fā)表于 12-06 14:58 ?2589次閱讀

    AXI協(xié)議的幾個關鍵特性

    AXI 協(xié)議有幾個關鍵特性,旨在改善數(shù)據(jù)傳輸事務的帶寬和延遲
    的頭像 發(fā)表于 05-06 09:49 ?1419次閱讀

    調試AMBA AXI未完成事務

    驗證當今的復雜設計非常耗時,因為仿真需要長時間運行,并且會執(zhí)行數(shù)百萬個事務。傳統(tǒng)的調試方法是將數(shù)百萬個數(shù)據(jù)包的所有信息轉儲到日志文件中,但是從龐大的日志文件中過濾掉特定的事務總是具有挑戰(zhàn)性的。例如
    的頭像 發(fā)表于 05-26 16:03 ?748次閱讀
    調試AMBA <b class='flag-5'>AXI</b>未完成<b class='flag-5'>事務</b>

    AXI VIP當作master時如何使用?

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

    AXI傳輸數(shù)據(jù)的過程

    AXI-Stream,其中AXI-Lite和AXI-Full都是基于memory map的形式實現(xiàn)數(shù)據(jù)傳輸(即包括地址總線),而AXI-St
    的頭像 發(fā)表于 10-31 15:37 ?1675次閱讀
    <b class='flag-5'>AXI</b><b class='flag-5'>傳輸</b>數(shù)據(jù)的過程