/**************************************************************************** +-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+ +-+-+-+-+-+-+-+-+ |F|u|n|c|t|i|o|n|a|l| |V|e|r|i|f|i|c|a|t|i|o|n| |o|f| |H|a|r|d|w|a|r|e| +-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+ +-+-+-+-+-+-+-+-+ FILE reset_transaction.sv DESCRIPTION reset sequence item ****************************************************************************/ `ifndef RESET_TRANSACTION_SV `define RESET_TRANSACTION_SV /** * Class: reset_transaction */ class reset_transaction extends uvm_sequence_item; // delay before asserting reset (#clk cycles) rand int unsigned transmit_delay; // duration of reset (#clk cycles) rand int unsigned duration; // constraints constraint c_transmit_delay { transmit_delay <= 10; } constraint c_duration { duration inside {[0:5]}; } // UVM factory registration `uvm_object_utils_begin(reset_transaction) `uvm_field_int(transmit_delay, UVM_DEFAULT) `uvm_field_int(duration, UVM_DEFAULT) `uvm_object_utils_end // new - constructor function new (string name = "reset_transaction"); super.new(name); endfunction : new endclass : reset_transaction `endif