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

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

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

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

開始使用AXI VIP,對UVM有一些基本的了解

星星科技指導(dǎo)員 ? 來源:synopsys ? 作者:synopsys ? 2023-05-25 14:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以下是用于集成 AXI VIP 以在簡單定向環(huán)境中開始驗(yàn)證 AXI 接口的步驟。這種定向測試方法也實(shí)現(xiàn)了良好的性能。

下面的測試平臺示例顯示了一個連接到 DUT 從機(jī)的 AXI 主 VIP。實(shí)際示例還使用 VIP 代替從屬 DUT 。

1) 導(dǎo)入并包含所需的 VIP 包/文件

Synopsys 的 VIP 以 SystemVerilog 包的形式提供。這些包為 VIP 定義唯一的命名空間,但為了使 VIP 更易于使用,可以將 VIP 命名空間導(dǎo)入到全局命名空間中。除了SystemVerilog軟件包之外,SVT VIP的某些方面(如SystemVerilog接口)作為全局文件交付,必須包含這些文件,因?yàn)樗鼈儽仨毻瑫r存在于設(shè)計和測試平臺域中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
`include "uvm_pkg.sv"
`include "svt_axi_if.svi"
/** Include the AXI SVT UVM package */
`include "svt_axi.uvm.pkg"
module test_top;
/** Import UVM Package */
import uvm_pkg::*;
/** Import the SVT UVM Package */
import svt_uvm_pkg::*;
/** Import the AXI VIP */
import svt_axi_uvm_pkg::*;
endmodule


2) 將 VIP 接口連接到 DUT 信號

VIP提供SystemVerilog接口,提供所需的信號連接。必須聲明這些接口的實(shí)例,并且來自這些接口的信號必須連接到 DUT。在這個例子中,主(vip)和從(vip)都是背靠背連接的。可以輕松地將所需的VIP模型替換為相應(yīng)的DUT模型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/** VIP Interface instance representing the AXI bus */
svt_axi_if axi_if();
assign axi_if.common_aclk = SystemClock;
/** Testbench reset */
logic tb_reset;
/**
* Assign the testbench reset to the reset pins of the VIP
* interface.
*/
assign axi_if.master_if[0].aresetn = tb_reset;
/* connection from master[0] to slave[0], connected back to back */
assign axi_if.slave_if[0].awvalid = axi_if.master_if[0].awvalid;
assign axi_if.slave_if[0].awaddr = axi_if.master_if[0].awaddr;
assign axi_if.master_if[0].arready = axi_if.slave_if[0].arready;
assign axi_if.master_if[0].rvalid = axi_if.slave_if[0].rvalid;
assign axi_if.master_if[0].rlast = axi_if.slave_if[0].rlast;
/** make rest of assignments (you can alternately choose the SystemVerilog bind approach
/** for that you can refer to “amba_svt/tb_axi_svt_uvm_intermediate_sys”
/** example from VIP installation

3) 為異議管理和 UVM 低執(zhí)行創(chuàng)建虛擬 UVM 測試

Directed_test是一個虛擬測試,可以擴(kuò)展uvm_test。這允許 UVM 階段機(jī)制執(zhí)行,并使用事件 (end_test) 同步管理在程序塊中編寫的定向測試的運(yùn)行階段的異議。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Directed_test extends uvm_test;
/** UVM Component Utility macro */
`uvm_component_utils(Directed_test)
/** Class Constructor */
function new(string name = "Directed_test", uvm_component parent=null);
super.new(name,parent);
endfunction: new
//Objection management co-ordinated by uvm_test
virtual task run_phase(uvm_phase phase);
super.run_phase(phase);
phase.raise_objection(this);
@end_test; //this event will be triggered by directed test from initial-begin-end block
phase.drop_objection(this);
endtask
endclass

4) 實(shí)例化 VIP 組件

必須構(gòu)造和配置主 VIP 代理類和從屬 VIP 代理類。初始化這些配置對象后,將使用 UVM 資源數(shù)據(jù)庫將它們發(fā)送到 UVM 層次結(jié)構(gòu)中的相應(yīng)代理實(shí)例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
initial begin
`uvm_info("Directed_test", "Entered...", UVM_MEDIUM)
master_0 = svt_axi_master_agent::type_id::create("master_0",null);
master_cfg0 = svt_axi_port_configuration::type_id::create("master_cfg0",null);
/** set required interface for agent instances */
master_cfg0.set_master_if(axi_if.master_if[0]);
/** Program agent configuration parameters */
master_cfg0.data_width = 256;
/**Pass master and slave configuration using resource database */
uvm_config_db#(svt_axi_port_configuration)::set(null, "*master_0", "cfg", master_cfg0);

5) 開始 UVM 執(zhí)行

UVM run_test() 方法啟動 UVM 執(zhí)行,并且它的參數(shù)用作要執(zhí)行的默認(rèn)測試。

1
2
3
4
/** Start the UVM execution */
fork
run_test("Directed_test");
join_none

6) 重置 DUT DUT
重置代碼必須在執(zhí)行任何事務(wù)之前調(diào)用/執(zhí)行。

1
2
3
4
5
6
7
8
/* Reset logic */
`uvm_info("reset_logic", "Entered...", UVM_LOW)
tb_reset = 1'b1;
repeat(10) @(posedge SystemClock);
tb_reset = 1'b0;
repeat(10) @(posedge SystemClock);
tb_reset = 1'b1;
`uvm_info("reset_logic", "Exiting...", UVM_LOW)

7) 從主站發(fā)起流量

現(xiàn)在,我們已準(zhǔn)備好開始從主節(jié)點(diǎn)創(chuàng)建事務(wù)。下面的示例創(chuàng)建一個 WRITE 事務(wù),設(shè)置所有必填字段,并使用 execute_item() 方法將其發(fā)送到 VIP 主驅(qū)動程序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Create and Send atomic transaction */
`uvm_info("atomic_transation", "Entered...", UVM_MEDIUM)
begin
svt_axi_master_transaction axi_trans;
axi_trans = new();
axi_trans.port_cfg = cfg.master_cfg[0];
axi_trans.xact_type = svt_axi_transaction::WRITE;
axi_trans.addr = 32'h0000_0000;
axi_trans.burst_type = svt_axi_transaction::INCR;
axi_trans.burst_size = svt_axi_transaction::BURST_SIZE_32BIT;
axi_trans.atomic_type = svt_axi_transaction::NORMAL;
axi_trans.burst_length = 16;
axi_trans.data = new[axi_trans.burst_length];
axi_trans.wstrb = new[axi_trans.burst_length];
/** Send the atomic write transaction */
master_0.sequencer.execute_item(axi_trans); //send axi transaction to driver
`uvm_info("atomic_transation", "Ended...", UVM_MEDIUM)
end

8 ) 觸發(fā)測試結(jié)束

end_test事件用于使 run_phase() 引發(fā)的異議能夠刪除。這表示運(yùn)行階段結(jié)束,其余的 UVM 階段將在運(yùn)行階段完成后執(zhí)行。這表示測試結(jié)束。

1
2
3
4
//Trigger uvm end of test
end_test;
`uvm_info("Directed_test", "Exited...", UVM_MEDIUM)
end

審核編輯:郭婷

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

    關(guān)注

    33

    文章

    9005

    瀏覽量

    153774
  • Synopsys
    +關(guān)注

    關(guān)注

    2

    文章

    160

    瀏覽量

    90747
  • DUT
    DUT
    +關(guān)注

    關(guān)注

    0

    文章

    191

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

    AXI 基礎(chǔ)第 2 講 文中,曾提到賽靈思 Verification IP (AXI VIP) 可用作為 AXI 協(xié)議檢查工具。在本次
    發(fā)表于 07-08 09:31 ?3639次閱讀

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

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

    如何下載Webpack版本并開始使用

    。技術(shù)支持電話號碼,是個笑話,因?yàn)樗皇呛唵蔚匾龑?dǎo)你回到wek站點(diǎn),我無法打開支持票...因?yàn)槲业膸魧?dǎo)致出口檢查失敗。在最后小時追逐我的尾巴。如何下載Webpack版本(我相信我資格使用)并
    發(fā)表于 05-27 14:19

    XPS中用“axi-pcie 1.08a”和其他一些露水創(chuàng)建項目不起作用的原因?

    大家好!對不起我的英語:)。我想開始使用PCIe。我kc705。我在XPS中用“axi-pcie 1.08a”和其他一些露水創(chuàng)建了個項目
    發(fā)表于 07-14 16:19

    了解MOSFET的一些原理

    電機(jī)的驅(qū)動,如下圖1所示,要做好驅(qū)動電路,必須得了解清楚MOSFET的一些原理,才不會出錯。圖1 H橋全橋驅(qū)
    發(fā)表于 09-13 08:14

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

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

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

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

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

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

    記錄最近Debug AMBA VIP的兩次經(jīng)歷

    最近在Debug? C家AMBA VIP的過程中遇到一些問題。兩個問題感覺值得記錄下,免得以后忘記了,或者其他朋友也可能遇到類似的情況,也許幫助自己的同時還能順便幫助到別人。第
    的頭像 發(fā)表于 12-10 16:15 ?2788次閱讀
    記錄最近Debug AMBA <b class='flag-5'>VIP</b>的兩次經(jīng)歷

    簡化UVM寄存器模型的使用教程

    當(dāng)我開始使用UVM RAL時,我無法理解UVM基類庫對更新Desired和Mirror 寄存器的解釋。覺得使用的術(shù)語并不能準(zhǔn)確地反映里面的真實(shí)的意思?;?b class='flag-5'>一些時間后,我想出了
    的頭像 發(fā)表于 01-30 15:25 ?2933次閱讀
    簡化<b class='flag-5'>UVM</b>寄存器模型的使用教程

    簡化UVM寄存器模型的使用

    當(dāng)我開始使用 UVM RAL 時,我無法理解 UVM 基類庫對更新所需值和鏡像值寄存器的值什么看法。我還認(rèn)為,所使用的術(shù)語沒有準(zhǔn)確反映其意圖?;?b class='flag-5'>
    的頭像 發(fā)表于 05-29 10:15 ?1818次閱讀
    簡化<b class='flag-5'>UVM</b>寄存器模型的使用

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

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

    我們?yōu)槭裁葱枰?b class='flag-5'>了解一些先進(jìn)封裝?

    我們?yōu)槭裁葱枰?b class='flag-5'>了解一些先進(jìn)封裝?
    的頭像 發(fā)表于 11-23 16:32 ?914次閱讀
    我們?yōu)槭裁葱枰?b class='flag-5'>了解</b><b class='flag-5'>一些</b>先進(jìn)封裝?