uvm_reg_hw_reset_seq 源码分析


有关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) 排序和查找。如下:
“寄信”在这里插入图片描述
“取信”
在这里插入图片描述在这里插入图片描述


版权声明:本文为SummerXRT原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。