Transaction driving and responding updates. Tracker updates
This commit is contained in:
@@ -5,6 +5,7 @@ class axi_transaction extends uvm_sequence_item;
|
||||
rand bit [`ADDR_WIDTH-1:0] addr; // Address
|
||||
rand bit [`DATA_WIDTH-1:0] data; // Data
|
||||
rand bit [`DATA_WIDTH_DIV_8-1:0] strb; // Byte enable
|
||||
rand bit [`BRESP_WIDTH-1:0] resp; // Response code
|
||||
rand bit [2:0] size; // Size
|
||||
rand bit [7:0] length; // Length
|
||||
|
||||
@@ -13,6 +14,7 @@ class axi_transaction extends uvm_sequence_item;
|
||||
`uvm_field_int(addr, UVM_DEFAULT)
|
||||
`uvm_field_int(data, UVM_DEFAULT)
|
||||
`uvm_field_int(strb, UVM_DEFAULT)
|
||||
`uvm_field_int(resp, UVM_DEFAULT)
|
||||
`uvm_field_int(size, UVM_DEFAULT)
|
||||
`uvm_field_int(length, UVM_DEFAULT)
|
||||
`uvm_object_utils_end
|
||||
@@ -58,6 +60,7 @@ class axi_transaction extends uvm_sequence_item;
|
||||
copy.addr = this.addr;
|
||||
copy.data = this.data;
|
||||
copy.strb = this.strb;
|
||||
copy.resp = this.resp;
|
||||
copy.size = this.size;
|
||||
copy.length = this.length;
|
||||
return copy;
|
||||
@@ -75,5 +78,17 @@ class axi_transaction extends uvm_sequence_item;
|
||||
(this.length == other.length);
|
||||
endfunction
|
||||
|
||||
// Tracker print line
|
||||
static function string tracker_line_hdr();
|
||||
return $sformatf("%7s %10s %16s %16s %4s %3s %3s",
|
||||
"TIME", "TYPE", "ADDR", "DATA", "STRB", "SZ", "LEN");
|
||||
endfunction
|
||||
|
||||
function string tracker_line();
|
||||
return $sformatf("%7t %10s %16h %16h %4h %3d %3d",
|
||||
$time, this.txn_type.name(), this.addr,
|
||||
this.data, this.strb, this.size, this.length);
|
||||
endfunction
|
||||
|
||||
endclass : axi_transaction
|
||||
|
||||
|
||||
Reference in New Issue
Block a user