色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(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ī)的讀寫(xiě)傳輸事務(wù)。

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

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

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

multiple_write_transaction_full_rand ("single write",1);

定制化的寫(xiě)傳輸事務(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ī)化的寫(xiě)傳輸事務(wù)

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

我們常說(shuō),不想知道 API 函數(shù)之下發(fā)生了什么的程序員不是好程序員,IC 工程師同樣如是。以較簡(jiǎn)單的定制化寫(xiě)傳輸事務(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è)定寫(xiě)命令信息,設(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ī)寫(xiě)入的數(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)行修改,僅保留單次定制化的讀寫(xiě)傳輸事務(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)讀寫(xiě)傳輸事務(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)景中,寫(xiě)數(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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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

    文章

    7133

    瀏覽量

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

    關(guān)注

    13

    文章

    4347

    瀏覽量

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

    關(guān)注

    6

    文章

    957

    瀏覽量

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

    關(guān)注

    0

    文章

    66

    瀏覽量

    14295

原文標(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 ?1843次閱讀

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

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

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

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

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

    AXI VIP當(dāng)作master時(shí)如何使用。 ??新建Vivado工程,并新建block design,命名為:axi_demo 新建axi vip
    的頭像 發(fā)表于 07-27 09:19 ?1245次閱讀
    <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)行讀寫(xiě)。像它的前身一樣,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ā)生的讀寫(xiě)傳輸事務(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 ?2395次閱讀
    如何創(chuàng)建基本<b class='flag-5'>AXI</b>4-Lite Sniffer IP以對(duì)特定地址上正在發(fā)生的讀寫(xiě)<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 ?5535次閱讀

    一些高質(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 ?2004次閱讀

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

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

    調(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 ?530次閱讀
    調(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 ?1784次閱讀
    <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 ?1203次閱讀
    <b class='flag-5'>AXI</b><b class='flag-5'>傳輸</b>數(shù)據(jù)的過(guò)程
    主站蜘蛛池模板: 日本后进式猛烈xx00动态图| 999www成人免费视频| 亚洲欧美中文在线一区| 曰批视频免费40分钟不要钱| babesvideos欧美最新| 国产成人久久精品激情| 后式大肥臀国产在线| 男女爽爽无遮挡午夜视频在线观看 | 亚洲VA欧美VA天堂V国产综合| 伊人久在线| 俄罗斯14一18处交| 久久精品av| 日韩欧美一区二区中文字幕 | 十8禁用B站在线看漫画| 又亲又揉摸下面视频免费看 | 99re6久久热在线视频| 国产人妻人伦精品9| 女人18毛片| 亚洲精品在线不卡| porono日本xxx| 精品一区二区三区免费毛片 | 嫩草国产福利视频一区二区| 小草高清视频免费直播| 99久久国产宗和精品1上映| 国产一级做a爰片久久毛片男| 欧美成人无码A区在线观看免费| 亚洲成人欧美| yellow高清免费观看日本| 精品熟女少妇AV久久免费A片| 日本xxxx96| 最新快播网站| 国产在线aaa片一区二区99| 欧美人与动牲交A精品| 亚洲综合日韩在线2019| 嘟嘟嘟在线视频免费观看高清中文 | 朝鲜女人性猛交| 久久强奷乱码老熟女| 乌克兰16~18sex| japanesen女同| 久久免费看少妇级毛片蜜臀| 无限资源在线观看8|