apb_seq_item

class apb_seq_item extends uvm_sequence_item

Base APB transaction.

The transaction is used by both apb_driver and apb_monitor.  For the driver, the transaction type works for request and response.

Implements the basic transaction attributes (address, data, read/write control).  More advanced attributes (e.g. error injection, byte enables, etc.) are not supported.

Summary
apb_seq_itemBase APB transaction.
Variables
addrBus address.
dataRead/write data.
weRead/write (=0/1) transaction type.
delayNumber of APB clock cycles since the apb_driver received the transaction to the actual start of the transaction on the APB bus.
errorIndicates a failure to drive the item on the bus.
Functions
newConventional UVM object constructor.
do_copyImplements a class specific deep copy.
do_compareImplements a class specific comparison.
convert2stringImplements a class specific string conversion.
do_printImplements a class specific printing.
do_recordImplements a class specific recording.

Variables

addr

rand logic[31:0] addr

Bus address.

data

rand logic[31:0] data

Read/write data.

we

rand logic we

Read/write (=0/1) transaction type.

delay

rand int delay

Number of APB clock cycles since the apb_driver received the transaction to the actual start of the transaction on the APB bus.

error

bit error

Indicates a failure to drive the item on the bus.

Functions

new

extern function new(string name =  "apb_seq_item")

Conventional UVM object constructor.

do_copy

extern function void do_copy(uvm_object rhs)

Implements a class specific deep copy.

do_compare

extern function bit do_compare(uvm_object rhs,
uvm_comparer comparer)

Implements a class specific comparison.

convert2string

extern function string convert2string()

Implements a class specific string conversion.

do_print

extern function void do_print(uvm_printer printer)

Implements a class specific printing.

do_record

extern function void do_record(uvm_recorder recorder)

Implements a class specific recording.

class apb_seq_item extends uvm_sequence_item
Base APB transaction.
rand logic[31:0] addr
Bus address.
rand logic[31:0] data
Read/write data.
rand logic we
Read/write (=0/1) transaction type.
rand int delay
Number of APB clock cycles since the apb_driver received the transaction to the actual start of the transaction on the APB bus.
bit error
Indicates a failure to drive the item on the bus.
extern function new(string name =  "apb_seq_item")
Conventional UVM object constructor.
extern function void do_copy(uvm_object rhs)
Implements a class specific deep copy.
extern function bit do_compare(uvm_object rhs,
uvm_comparer comparer)
Implements a class specific comparison.
extern function string convert2string()
Implements a class specific string conversion.
extern function void do_print(uvm_printer printer)
Implements a class specific printing.
extern function void do_record(uvm_recorder recorder)
Implements a class specific recording.
class apb_driver extends uvm_driver #(apb_seq_item,
apb_seq_item)
Implements an APB bus master acting as the driver of an APB agent.
class apb_monitor extends uvm_component
Implements an APB bus transaction monitor.