When active the AXI Monitor will record transactions that are presented on the virtual interface. It does below functions: Monitors all 5 AXI channels: AW, AR, R, W, and B. Collects and re-orders R Channel beats and returns a completed transaction when the RLAST is accepted Collects and re-orders B Channel response and returns a completed transaction when the B channel is accepted Transaction based protocol checking.
xil_analysis_port #(axi_monitor_transaction) item_collected_port; provides methods for axi monitor transaction.
xil_analysis_port #(xil_axi_cmd_beat) axi_cmd_port; provides methods for axi command.
xil_analysis_port #(xil_axi_cmd_beat) axi_rd_cmd_port; provides methods for axi read command.
xil_analysis_port #(xil_axi_cmd_beat) axi_wr_cmd_port; provides methods for axi write command.
xil_analysis_port #(xil_axi_resp_beat) axi_bresp_port; provides methods for axi bresponse.
xil_analysis_port #(xil_axi_write_beat) axi_wr_beat_port; provides methods for axi write beat.
xil_analysis_port #(xil_axi_read_beat) axi_rd_beat_port; provides methods for axi read beat. axi_vif_mem_proxy `AXI_PARAM_ORDER vif_proxy; AXI VIF Proxy Class
By default, only item_collected_port is on. To turn on other ports.Use below codes
axi_cmd_port.set_enabled() to turn on axi_cmd_port,
axi_wr_cmd_port.set_enabled() to turn on axi_wr_cmd_port;
axi_rd_cmd_port.set_enabled() to turn on axi_rd_cmd_port;
axi_bresp_port.set_enabled() to turn on axi_bresp_port;
axi_wr_beat_port.set_enabled()to turn on axi_wr_beat_port;
axi_rd_beat_port.set_enabled() to turn on axi_rd_beat_port;
function new ( |
| ); |
Constructor to create a new monitor object. initalize the original settings and pass the input name as the montior instance name.
function void set_vif( |
| ); |
Assigns input virtual interface vif to the virtual interface of the monitor.
Returns the value of AXI version of the transaction of axi_monitor. please refer xil_axi_vif_axi_version_t for possible axi version.
Returns the enum string name of AXI version of the transaction of axi_monitor. please refer xil_axi_vif_axi_version_t for possible axi version
function void set_wr_transaction_depth( |
| ); |
Sets the maximum number of WRITE transactions which axi_monitor can accept. Usually user set this depth from the agent which will automatically set it's driver/monitor
Returns the maximum number of WRITE transactions that the Driver will have in flight at one time.
function void set_rd_transaction_depth( |
| ); |
Sets the maximum number of READ transactions which axi_monitor can accept. Usually user set this depth from the agent which will automatically set it's driver/monitor
Returns the maximum number of READ transactions that the Driver will have in flight at one time.
Turn on checker for comparison of current write/read transaction depth against maximum wr_transaction_depth/rd_transaction_depth of axi_monitor.
Turn off checker for comparison of current write/read transaction depth against maximum wr_transaction_depth/rd_transaction_depth of axi_monitor.
Returns transaction_depth_checks_enabled value of axi_monitor. If user is not sure whether transaction_depth_checks_enabled is on or off, This API can be called to serve this purpose.
Turn off current agent's exclusive transfer checks
Turn on current agent's exclusive transfer checks
Returns number of read transaction in flight
Returns number of write transaction in flight
Start control processes for operation
Stops all control processes.
virtual function axi_monitor_transaction create_transaction ( |
| ); |
Returns an AXI monitor transaction class that has been "newed"