verification 提取差异点

提取出差异点

传统用例

项目A锁定的寄存器是regA,项目B的锁定功能的寄存器是regB,如果项目A用例中直接用

reg_model.regA.write();
reg_model.regA.read();

的方式来读写的话,在项目B中需要将这些地方都修改掉。

改进用例

如果项目A中识别掉这个变化点,将这些变化点封装成一个函数,编写如下函数

function uvm_reg get_lockReg();
    return reg_model.regA;
endfunction

在lock寄存器读写之前想获取一下寄存器

uvm_reg lock = get_lockReg();
lock.read();
lock.write();

这种方式来调用,那么在项目B中,只需要修改get_lockReg()这个函数,提高了用例的重用度。

function uvm_reg get_lockReg();
    return reg_model.regB;
endfunction

2020.9.16

posted @ 2021-12-09 23:48  下夕阳  阅读(44)  评论(0编辑  收藏  举报