有关uvm_reg_bit_bash_seq 的源码请看 : uvm_reg_bit_bash_seq 的源码。
uvm_reg_hw_reset_seq用于初期检查DUT中的寄存器硬件值是否与reg_model 中的复位值一致,防止设计在实现时弄错复位值。
1.代码解析
1.先reset reg_modle 。将reg_modle中的镜像值和期望值复位。
2.判断是否在外部设置了哪些 reg_block 不需要进行 reset 测试 。后面补充知识中会介绍怎么设置reg不测试。
3.判断是否有哪些 reg 不需要测试。
4.对所有需要进行测试的 reg 通过前门的方式读回DUT的硬件值,再与 reg_model 的 mirror 值进行对比,如果不一致,证明DUT的硬件复位值与reg_modle 的寄存器复位值不一致。
2.知识点补充
设置reg不测试
这里要想设置那些 reg 不需要测试,可以通过如下的方式
关于resource_db
uvm_resource_db 的使用类似于 uvm_config_db(uvm_config_db 继承于 uvm_resource_db),也是通过寄信、取信的方,将”信息“存放在uvm_resource_pool 中。uvm_resource_pool 中有个两个联合数组,分别根据 类型(type) 和 名字(name) 排序和查找。如下:
“寄信”:
“取信”: