今天,復習一下《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