37 new (
string name=
"axi_sequential_writes_seq");
67 if (!uvm_config_db <memory> ::get(null,
"",
"m_memory",
m_memory)) {
68 uvm_fatal(this.get_type_name,
69 "Unable to fetch m_memory from config db.")
88 write_item = axi_seq_item::type_id::create(
"write_item");
95 addr_hi = addr_lo+0x100;
97 start_item(write_item);
99 uvm_info(this.get_type_name(),
100 $sformatf(
"item %0d id:0x%0x addr_lo: 0x%0x addr_hi: 0x%0x",
101 xfer_cnt, xid, addr_lo,addr_hi),
105 assert( write_item.randomize() with {
107 burst_size <= local::max_burst_size;
109 addr >= local::addr_lo;
110 addr < local::addr_hi;
113 if (
valid.size() > 0) {
118 $sformatf(
"\n\n\nItem %0d: %s",
121 finish_item(write_item);
123 get_response(write_item);
126 .lower_addr (xfer_cnt*window_size),
127 .upper_addr ((xfer_cnt+1)*window_size))) {
128 uvm_info(
"MISCOMPARE",
"Miscompare error", UVM_INFO)
string convert2string()
Convert item's variable into one printable string.
task body()
Does all the work.
uvm_object_utils(axi_sequential_writes_seq) new(string name
bit seq_item_check(ref axi_seq_item item, input bit< ADDR_WIDTH-1:0 > lower_addr, input bit< ADDR_WIDTH-1:0 > upper_addr)
Compares an axi_seq_item's data and burst_type against expected matching memory contents.
virtual void write(input bit< ADDR_WIDTH-1:0 > addr, input bit< 7:0 > data)
Writes into memory.
Writes to memory over AXI, backdoor memory readback and verify.
new(string name="axi_seq")
Constructor.
Writes to memory over AXI, backdoor readback, then AXI readback.
contains all data and functions related to axi and usage