AXI muckbucket
Public Member Functions | Public Attributes | List of all members
axi_sequential_reads_seq Class Referenceabstract

Writes to memory over AXI, backdoor readback, then AXI readback. More...

Inheritance diagram for axi_sequential_reads_seq:
Inheritance graph
[legend]
Collaboration diagram for axi_sequential_reads_seq:
Collaboration graph
[legend]

Public Member Functions

 uvm_object_utils (axi_sequential_reads_seq) new(string name
 
task body ()
 Does all the work. More...
 
 uvm_object_utils (axi_seq) const int clearmemory=0
 
 new (string name="axi_seq")
 Constructor. More...
 
void set_transaction_count (int count)
 How many transactions? More...
 
bit compare_items (ref axi_seq_item write_item, ref axi_seq_item read_item)
 Compares the write-item with the corresponding read_item. More...
 

Public Attributes

const int window_size = 0x1_0000
 
int xfers_to_send = 1
 
bit valid []
 
bit< 2:0 > max_burst_size
 
int xfers_done =0
 
memory m_memory
 

Detailed Description

Writes to memory over AXI, backdoor readback, then AXI readback.

miscompares are flagged.

Definition at line 33 of file axi_sequential_reads_seq.svh.

Member Function Documentation

task axi_sequential_reads_seq::body ( )

Does all the work.

  1. Creates constrained random AXI write packet
  2. Sends it
  3. Backdoor read of memory to verify correctly written
  4. Creates constrained random AXI read packet with same len and address as write packet
  5. Sends it
  6. Verifies read back data with written data.

    two modes: Serial, Write_addr, then write, then resp. Repeat Parallel - Multiple write_adr, then multiple write_data, then multiple resp, repeat

Definition at line 64 of file axi_sequential_reads_seq.svh.

References axi_seq_item::addr, ADDR_WIDTH, axi_seq_item::burst_size, axi_seq_item::burst_type, calculate_axlen(), axi_seq_item::convert2string(), e_FIXED, e_INCR, e_READ, e_WRAP, ID_WIDTH, axi_seq_item::len, axi_seq::m_memory, memory::seq_item_check(), axi_seq::window_size, memory::write(), axi_seq::xfers_done, and axi_seq::xfers_to_send.

Here is the call graph for this function:

bit axi_seq::compare_items ( ref axi_seq_item  write_item,
ref axi_seq_item  read_item 
)
inherited

Compares the write-item with the corresponding read_item.

THis isn't the same as a do_compare() method in the axi_seq_item because the readback is depenent on which burst_type Although it could probably exist as aseperate method in the seqitem.

Parameters
write_item- the original item
read_item- the item after memory readback
Returns
True if no miscompares, false if miscompares

........................

Definition at line 115 of file axi_seq.svh.

References e_FIXED, e_INCR, e_WRAP, and axi_seq::max_burst_size.

axi_seq::new ( string  name = "axi_seq")
inherited

Constructor.

Doesn't actually do anything except call parent constructor

Definition at line 62 of file axi_seq.svh.

References axi_seq::max_burst_size.

void axi_seq::set_transaction_count ( int  count)
inherited

How many transactions?

This method sets how many transactions to send (Write Address, Write Data, Write Response) is one traction (Read Address, Read Data) is one transaction

Parameters
count- how many transactions to send

Definition at line 92 of file axi_seq.svh.

References axi_seq::xfers_to_send.

Referenced by axi_base_test::build_phase().

Here is the caller graph for this function:

axi_seq::uvm_object_utils ( axi_seq  ) const
pure virtualinherited
axi_sequential_reads_seq::uvm_object_utils ( axi_sequential_reads_seq  )
new

Member Data Documentation

memory axi_seq::m_memory
inherited
bit<2:0> axi_seq::max_burst_size
inherited

Definition at line 44 of file axi_seq.svh.

Referenced by axi_seq::compare_items(), and axi_seq::new().

bit axi_seq::valid[]
inherited
const int axi_seq::window_size = 0x1_0000
inherited
int axi_seq::xfers_done =0
inherited
int axi_seq::xfers_to_send = 1
inherited

The documentation for this class was generated from the following file: