uvm monitor与dut的连接

uvm_monitor搭建的思路。

1.建立个monitor model连到dut上(在top.sv中例化的方式接成1个或者n个),建立个interface。 在model中例化此interface,并assign好和model相关联的signals。

在model中initial begin end 块里面set此virtual interface。在test中get 这个virtual interface。

2. 为了方便monitor管理建立了monitor cfg。monitor的信息字段放在monitor transaction里面。

3.写monitor。

  monitor cfg管理monitor的状态。

  monitor的transaction通过port传进来monitor。

 monitor的vif控制着开始monitor的时间。

核心代码段

monitor_transaction tr = monitor_transaction::type_id::create("tr");

forever begin

     @(vif.cb iff(vif.cb.valid))begin

           tr.infor1 = vif.cb.info1;

           tr.infor2 = vif.cb.info2; 

           ap.write(tr); //这里提供了给scoreboard做比较的ap接口

     end

end

另外一种monitor连接dut的方式为bind。 从monitor连接到信息获得的flow为:

1.建立一个module 描述monitor的信号。对monitor的信息处理也在此地进行。将dut的signal在此module外面bind到module中。一般在top里面操作。

举例: bind test.dut monitor MONITOR(

           .clk (test_top.ref_clk),

          .reset(test_top.rst)

          。。。。。。

           )

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值