有关 uvm_reg_hw_reset_seq 源码请看: uvm_reg_hw_reset_seq 源码 。
uvm_reg_bit_bash_seq 会对reg_model 中每个可以读写的寄存器域分别写入 0 、1,然后再读回,用于检查寄存器的每个bit的读写功能是否正常。
1.源码解析
1.先将reg_model 复位。
2.通过搜索 resource_db,判断哪些 reg_block 和 reg 不需要测试。然后对每个需要进行测试的reg 进行 single_bit_bash_seq 的测试。
3. single_bit_bash_seq 中,先遍历当前 reg 中的所有 map,获取每个map 下的所有寄存器域的访问属性。
4.
5.
2. 知识点补充
因为uvm_reg_bit_bash_seq需要向寄存器中写入再读出,那么一些特殊的寄存器在测试时,如写1清0,当写完1后,读出来是0 ,测试就会报错,显示读写不一致。所以,需要将这些特殊的寄存器排除在外,不进行这个测试,后续进行单独定向测试等。