今天,复习一下《UVM实战》一书中的 关于约束的重载 章节学习。
一 问题引导
文件:src/ch8/section8.1/8.1.2/rand_mode/my_transaction.sv4 class my_transaction extends uvm_sequence_item;
…17 constraint crc_err_cons{18 crc_err == 1'b0;19 }20 constraint sfd_err_cons{21 sfd_err == 1'b0;22 }23 constraint pre_err_cons{24 pre_err == 1'b0;25 }
…55 endclass
正常的测试用例中,我们可以不用过多关心,只需要创建 my_transaction 的实例,然后发送就好了。但是对于异常测试用例:
文件:src/ch8/section8.1/8.1.2/rand_mode/my_case0.sv10 virtual task body();
…14 m_trans = new();15 `uvm_info("sequence", "turn off constraint", UVM_MED