42 lines
1.3 KiB
Systemverilog
42 lines
1.3 KiB
Systemverilog
/****************************************************************************
|
|
+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+ +-+-+-+-+-+-+-+-+
|
|
|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 |