UVM:7.2.2 将寄存器模型集成到验证平台中

177 篇文章 139 订阅

1.前门如下:


1)无论读写,寄存器模型都会通过sequence 产生一个uvm_reg_bus_op 的变量:




此变量中的信息要经过一个adapter 转换后交给bus_sequencer,随后交给bus_driver,实现前门操作。


2.adapter:



1)定义好两个函数,reg2bus,寄存器模型通过sequence 发出的uvm_reg_bus_op 型的变量转换成bus_sequencer 能够接受的形式。

2)bus2reg:当监测到总线上有操作时,将收集的transaction 转换成寄存器模型能够接受的形式,以便寄存器模型能够更新相应的寄存器的值。

3)读操作是,bus_driver 能够获得要读取的值,将此值放入从bus_sequencer获得的bus_transaction中,那么bus_transaction就会有读取的值,经过adapter 的bus2reg传递,最终被寄存器模型获取。由于没有实际的transaction 传递,所以虚线。


3.在base中加入寄存器模型:



1)要使用寄存器模型,至少需要在base_test 中定义两个变量,reg_model 和reg_sqr_adapter。

2)调用configure:第一个是parent block,由于是最顶层的reg_block,因此写null;第二个是后面路径。

3)build:将所有寄存器例化。

4)local_model调用后,reg_model就不能再加入新的寄存器。

5)reset:如果不调用,默认都是0;调用后,都将变为复位值。

6)前门都是由uvm_reg_map完成,因此在connect_phase中,使用set_sequencer 将adapter 和bus_sequencer 告诉reg_model的 default_map。

7)将default_map 设置为自动预测状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值