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

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

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

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

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

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2022-08-29 14:58 ? 次閱讀

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

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

關(guān)于平臺(tái)移植

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

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

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

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

我們的改動(dòng)在于主機(jī)的激勵(lì)部分,以原先的 mst_stimulus.sv 為基礎(chǔ),構(gòu)建我們自己的主機(jī)激勵(lì),改動(dòng)后的 testbench 結(jié)構(gòu)如下圖所示。

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

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

VIP API 基本調(diào)用方式

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

主機(jī) master

首先來(lái)看主機(jī),定義于 axi_vip_master_mst_stimulus.sv 中

為主機(jī) master ip 創(chuàng)建一個(gè) agent 對(duì)象,傳入 master ip 的層級(jí)路徑,后續(xù)通過(guò)該 agent 控制主機(jī) ip

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

通過(guò) agent 啟動(dòng)主機(jī)

agent.start_master();

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

fork
 begin
  //調(diào)用寫傳輸事務(wù) API
 end
 
 begin
  //調(diào)用讀傳輸事務(wù) API
 end
join

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

完全隨機(jī)化的寫傳輸事務(wù)

multiple_write_transaction_full_rand ("single write",1);

定制化的寫傳輸事務(wù)

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

部分隨機(jī)化的寫傳輸事務(wù)

multiple_write_transaction_partial_rand(相關(guān)參數(shù));

我們常說(shuō),不想知道 API 函數(shù)之下發(fā)生了什么的程序員不是好程序員,IC 工程師同樣如是。以較簡(jiǎn)單的定制化寫傳輸事務(wù)函數(shù)為例,所謂函數(shù)實(shí)質(zhì)上是一個(gè) 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); 

首先聲明一個(gè) axi 傳輸事務(wù)對(duì)象,然后在主機(jī) ip 的 agent 下建立傳輸事務(wù)。

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

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

從機(jī) slave

接下來(lái),我們看一下從機(jī)的相關(guān)流程,定義于 axi_vip_master_mem_stimulus.sv 中。

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

在 demo 中構(gòu)造了一個(gè)虛擬數(shù)據(jù)作為后續(xù)對(duì)主機(jī)讀數(shù)據(jù)的回應(yīng),因?yàn)楸疚牡闹饕ぷ魇堑玫轿帐中畔⒌牟ㄐ危虼瞬⒉粫?huì)實(shí)際存儲(chǔ)主機(jī)寫入的數(shù)據(jù),而是在主機(jī)讀取任意地址時(shí),返回這個(gè)虛擬數(shù)據(jù)。

最后,從機(jī)調(diào)用 API 產(chǎn)生 wready 信號(hào)應(yīng)答

  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 信號(hào)在從機(jī)空閑時(shí)周期性生成,有效時(shí)間為 2/3,我們可以在后續(xù)的波形中看到。

握手波形

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

(1)VALID 信號(hào)等待 READY 信號(hào)

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

在 tb 中主機(jī)并行地啟動(dòng)讀寫傳輸事務(wù),AR/W VALID 同時(shí)置高,在等待從機(jī)給出 READY 信號(hào)后完成地址與控制信號(hào)的傳輸,此時(shí)地址為 0x0.

(2)READY 信號(hào)等待 VALID 信號(hào)

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

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

(3)READY 與 VALID 信號(hào)同時(shí)置起

在設(shè)置從機(jī)的 READY 信號(hào)類型時(shí),我們?cè)O(shè)置為周期性置高 READY,從下圖中可以看到,READY 信號(hào)在送出 2 個(gè)周期高電平后置低 1 個(gè)周期。

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

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

結(jié)語(yǔ)

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

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

    關(guān)注

    8

    文章

    7232

    瀏覽量

    90698
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4460

    瀏覽量

    86860
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    963

    瀏覽量

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

    關(guān)注

    0

    文章

    66

    瀏覽量

    14463

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

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AXI VIP設(shè)計(jì)示例 AXI接口傳輸分析

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

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

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

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

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

    AXI VIP當(dāng)作master時(shí)如何使用

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

    高級(jí)可擴(kuò)展接口(AXI)簡(jiǎn)介

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

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

    地址通道中,主機(jī)(master)是發(fā)送方,而從機(jī)(slave)是接收方;在讀數(shù)據(jù)通道中,主機(jī)是接收方,從機(jī)是發(fā)送方。3、AXI協(xié)議傳輸事務(wù)的結(jié)構(gòu)了解完通道握手的依賴關(guān)系,我們?cè)倏纯?b class='flag-5'>傳輸
    發(fā)表于 04-08 09:34

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

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

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

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

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

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

    使用AXI VIP的幾個(gè)關(guān)鍵步驟及常見(jiàn)功能

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

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

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

    AXI協(xié)議的幾個(gè)關(guān)鍵特性

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

    調(diào)試AMBA AXI未完成事務(wù)

    驗(yàn)證當(dāng)今的復(fù)雜設(shè)計(jì)非常耗時(shí),因?yàn)榉抡嫘枰L(zhǎng)時(shí)間運(yùn)行,并且會(huì)執(zhí)行數(shù)百萬(wàn)個(gè)事務(wù)。傳統(tǒng)的調(diào)試方法是將數(shù)百萬(wàn)個(gè)數(shù)據(jù)包的所有信息轉(zhuǎn)儲(chǔ)到日志文件中,但是從龐大的日志文件中過(guò)濾掉特定的事務(wù)總是具有挑戰(zhàn)性的。例如
    的頭像 發(fā)表于 05-26 16:03 ?631次閱讀
    調(diào)試AMBA <b class='flag-5'>AXI</b>未完成<b class='flag-5'>事務(wù)</b>

    AXI VIP當(dāng)作master時(shí)如何使用?

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

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

    AXI-Stream,其中AXI-Lite和AXI-Full都是基于memory map的形式實(shí)現(xiàn)數(shù)據(jù)傳輸(即包括地址總線),而AXI-St
    的頭像 發(fā)表于 10-31 15:37 ?1428次閱讀
    <b class='flag-5'>AXI</b><b class='flag-5'>傳輸</b>數(shù)據(jù)的過(guò)程
    主站蜘蛛池模板: 婷婷丁香色综合狠狠色 | 人人爽天天爽夜夜爽qc | 五月综合激情 | 免费h视频在线观看 | 香蕉视频久久久 | 高颜值大长腿美女啪啪 | 日本一区二区三区不卡在线视频 | 丁香婷婷久久大综合 | 九色亚洲 | 午夜寂寞影院视频观看 | 天天干夜夜爽天天操夜夜爽视频 | 国产高清片 | 日本大黄在线观看 | 一级做a爱免费观看视频 | www.激情五月 | 欧美成人免费观看bbb | 91精品日本久久久久久牛牛 | 色综合久久久久久久久五月性色 | 色婷婷国产| 天天干天天干 | 亚洲 欧美 自拍 卡通 综合 | 性xxxxfreexxxxx国产| 97综合久久 | 在线视频免费视频网站 | 天堂电影在线观看免费入口 | h在线观看视频免费网站 | 精品三级国产精品经典三 | 日日做日日摸夜夜爽 | 美女国产视频 | 成人激情视频网 | 能在线观看的一区二区三区 | 青草悠悠视频在线观看 | se视频在线观看 | 伊人福利视频 | 美女一级一级毛片 | 一级片视频在线 | 国产精品资源在线 | 成 人在线观看视频网站 | 国产亚洲欧美日本一二三本道 | 欧美在线视频播放 | 日韩视频高清 |