7.7 寄存器模型的高级用法

7.7.1 使用reg_predictor

        auto predictor功能:UVM寄存器模型的auto predictor功能只会更新driver实际写入的寄存器值。设置rm.default_map.set_auto_predict(1)

以下情况寄存器模型不会更新:

  • Driver没有写这个寄存器
  • 硬件内部自动更新的寄存器值
  • 只读寄存器的值变化

如果有多个master,那么需要用monitor来采有哪些寄存器操作,这个时候需要用reg_predictor,将reg_predictor和bus_agt的ap口连起来,并设置reg_predictor的adapter和map。

7.7.2 使用UVM_PREDICTOR_DIRECTR功能和mirror操作

predict--只更新寄存器模型的mirror值,同时不对dut进行操作

predict会更新期望值吗???

7.7.3寄存器模型的随机化和update

        在定义uvm_reg_block,uvm_reg,uvm_reg_field的时候都用rand修饰,但是用rand修饰并不能随机化,还要考虑以下几点:

        1 该field的configure被调用时,第八个参数设置为0

        2 该寄存器field是可以写的

7.7.4 扩展位宽

        寄存器在定义的时候用super.new,第二个参数是系统总线的位宽,默认最大是64,地址位宽默认最大也是64,这两个默认值都是根据宏来定义的,可以重新定义这两个宏

UVM_REG_DATA_WIDTH

UVM_REG_ADDR_WIDTH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值