【验证小bai】一个简单可make run的uvm demo环境

因为最近偶尔看了一些uvm的知识,因此搭了一个uvm环境用来做各种实验:

uvm_demo.tar

解压后在sim目录进行操作,可以通过:

make run seed=0 wave=on

来查看运行结果和波形。

具体的RTL行为就是个握手型输入输出均打拍的乘法器而已。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
好的,下面是一个简易的UVM验证环境: ```verilog `include "uvm_macros.svh" // 导入 UVM 宏定义文件 // 创建一个顶层 testbench 模块 module tb_top; // 导入 UVM 库 import uvm_pkg::*; // 创建 UVM 测试环境 class my_env extends uvm_env; // 在 UVM 测试环境中创建 UVM 组件 my_agent m_agent; my_driver m_driver; my_monitor m_monitor; my_scoreboard m_scoreboard; // 构造函数 function new(string name, uvm_component parent); super.new(name, parent); endfunction // connect_phase 中连接组件 virtual function void connect_phase(uvm_phase phase); super.connect_phase(phase); m_driver.seq_item_port.connect(m_monitor.seq_item_export); endfunction // build_phase 中创建组件 virtual function void build_phase(uvm_phase phase); super.build_phase(phase); // 创建 UVM 组件 m_agent = my_agent::type_id::create("m_agent", this); m_driver = my_driver::type_id::create("m_driver", this); m_monitor = my_monitor::type_id::create("m_monitor", this); m_scoreboard = my_scoreboard::type_id::create("m_scoreboard", this); endfunction // run_phase 中运行测试 virtual task run_phase(uvm_phase phase); super.run_phase(phase); // 创建和启动 UVM 序列 my_sequence my_seq = my_sequence::type_id::create("my_seq"); m_agent.start_item(my_seq); m_agent.finish_item(my_seq); // 等待测试完成并输出结果 m_scoreboard.wait_for_score(); `uvm_info(get_name(), $sformatf("Test Passed"), UVM_NONE); endtask endclass // 创建 UVM 测试套件 class my_test extends uvm_test; // 构造函数 function new(string name, uvm_component parent); super.new(name, parent); endfunction // create 中创建测试环境 virtual function void build_phase(uvm_phase phase); super.build_phase(phase); my_env env = my_env::type_id::create("env", this); endfunction // run_phase 中运行测试 virtual task run_phase(uvm_phase phase); super.run_phase(phase); endtask endclass // 创建 UVM 根节点并执行测试 initial begin uvm_root my_uvm_root; my_uvm_root = uvm_root::get(); run_test("my_test"); end endmodule ``` 这个简易的 UVM 验证环境包括了顶层 testbench 模块、UVM 测试环境UVM 测试套件和 UVM 组件。在 UVM 测试环境中,我们创建了四个 UVM 组件:my_agent、my_driver、my_monitor 和 my_scoreboard。在 build_phase 中,我们创建了这些组件并连接在一起。在 run_phase 中,我们创建了一个 UVM 序列并在 my_agent 中运行,等待测试完成后输出测试结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼德兰的喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值