Transaction driving and responding updates. Tracker updates

This commit is contained in:
2025-12-28 18:08:21 -08:00
parent 90dbd81844
commit e1b0143830
8 changed files with 196 additions and 59 deletions

View File

@@ -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