50 uvm_analysis_port #(apb_seq_item)
ap;
61 extern function
new(string name = "apb_monitor", uvm_component parent = null);
79 super.
new(name, parent);
90 item = apb_seq_item::type_id::create("item");
95 if(APB.PREADY && APB.PSEL[apb_index])
98 item.addr =
APB.PADDR;
102 item.data =
APB.PWDATA;
106 item.data =
APB.PRDATA;
109 $cast(cloned_item, item.clone());
110 ap.write(cloned_item);
Implements an APB bus transaction monitor.
task run_phase(uvm_phase phase)
Forks off a forever loop that monitors APB transactions for slave selected by ::apb_index.
void report_phase(uvm_phase phase)
Presently a stub function.
void build_phase(uvm_phase phase)
Instantiates the analysis port.
new(string name="apb_monitor", uvm_component parent=null)
Conventional UVM component constructor.
int apb_index
Identifies which PSEL line is this monitor connected to.
interface apb_if(input PCLK, input PRESETn)
APB bus interface with very simple property checking.
virtual apb_if APB
Reference to the APB bus interface.
uvm_analysis_port< apb_seq_item > ap
Analysis port through which to broadcast observed APB transactions.
uvm_component_utils(apb_monitor)