|
AXI muckbucket
|
#include "uvm_macros.svh"#include "axi_seq_item.svh"#include "memory.svh"#include "axi_agent_config.svh"#include "axi_sequencer.svh"#include "axi_seq.svh"#include "axi_responder_seq.svh"#include "axi_sequential_writes_seq.svh"#include "axi_pipelined_writes_seq.svh"#include "axi_sequential_reads_seq.svh"#include "axi_pipelined_reads_seq.svh"#include "axi_driver.svh"#include "axi_responder.svh"#include "axi_monitor.svh"#include "axi_scoreboard.svh"#include "axi_coveragecollector.svh"#include "axi_agent.svh"#include "axi_env_config.svh"#include "axi_env.svh"#include "axi_base_test.svh"#include "axi_sequential_writes_test.svh"#include "axi_pipelined_writes_test.svh"#include "axi_sequential_reads_test.svh"#include "axi_pipelined_reads_test.svh"

Go to the source code of this file.
Namespaces | |
| axi_uvm_pkg | |
| Systemverilog package for AXI UVM environment. | |
Enumerations | |
| enum | axi_protocol_version_t { e_AXI3 =0, e_AXI4 =1 } |
| Version 3 or Version 4. More... | |
| enum | cmd_t { e_WRITE = 0, e_READ = 1, e_READ_DATA = 2, e_WRITE_DATA, e_WRITE_RESPONSE, e_SETAWREADYTOGGLEPATTERN, e_SETWREADYTOGGLEPATTERN, e_SETARREADYTOGGLEPATTERN, e_SET_MIN_CLKS_BETWEEN_AW_TRANSFERS, e_SET_MAX_CLKS_BETWEEN_W_TRANSFERS } |
| Command type - what is the purpose of this packet? More... | |
| enum | driver_type_t { e_DRIVER, e_RESPONDER } |
| Config variable that tells axi_driver whether it is a master driver or slave driver(responder) More... | |
Variables | |
| localparam | ADDR_WIDTH = params_pkg::AXI_ADDR_WIDTH |
| localparam | ID_WIDTH = params_pkg::AXI_ID_WIDTH |
| localparam | LEN_WIDTH = params_pkg::AXI_LEN_WIDTH |
Version 3 or Version 4.
A few differences:
| Enumerator | |
|---|---|
| e_AXI3 | |
| e_AXI4 | |
Definition at line 52 of file axi_uvm_pkg.sv.
| enum cmd_t |
Command type - what is the purpose of this packet?
Definition at line 57 of file axi_uvm_pkg.sv.
| enum driver_type_t |
Config variable that tells axi_driver whether it is a master driver or slave driver(responder)
| Enumerator | |
|---|---|
| e_DRIVER |
Agent is a master |
| e_RESPONDER |
Agent is a slave/responder |
Definition at line 77 of file axi_uvm_pkg.sv.
| automatic void ar_from_class | ( | ref axi_seq_item | t, |
| output axi_seq_item_ar_vector_s | v | ||
| ) |
take values from an axi_seq_item and stuff into a axi_seq_item_ar_vector_s
This funcion returns a ready-to-be used struct so arlen and araddr are calcuated in this function.
| t | - The axi_seq_item is passed by reference |
Definition at line 193 of file axi_uvm_pkg.sv.
References axi_seq_item_ar_vector_s::araddr, axi_seq_item_ar_vector_s::arburst, axi_seq_item_ar_vector_s::arcache, axi_seq_item_ar_vector_s::arid, axi_seq_item_ar_vector_s::arlen, axi_seq_item_ar_vector_s::arlock, axi_seq_item_ar_vector_s::arprot, axi_seq_item_ar_vector_s::arqos, axi_seq_item_ar_vector_s::arsize, calculate_axlen(), and calculate_burst_aligned_address().
Referenced by axi_driver::read_address().


| automatic void ar_to_class | ( | ref axi_seq_item | t, |
| input axi_seq_item_ar_vector_s | v | ||
| ) |
Pull values out of a axi_seq_item_ar_vector_s and stuffs them into an axi_seq_item.
t.len is converted from arlen into a byte len. It uses burst_size (bytes per beat) * beats_per_burst to give a maximum byte length.
| t | - an axi_seq_item |
Definition at line 229 of file axi_uvm_pkg.sv.
References axi_seq_item_ar_vector_s::araddr, axi_seq_item_ar_vector_s::arburst, axi_seq_item_ar_vector_s::arcache, axi_seq_item_ar_vector_s::arid, axi_seq_item_ar_vector_s::arlen, axi_seq_item_ar_vector_s::arlock, axi_seq_item_ar_vector_s::arprot, axi_seq_item_ar_vector_s::arqos, and axi_seq_item_ar_vector_s::arsize.
Referenced by axi_monitor::read_address().

| automatic void aw_from_class | ( | ref axi_seq_item | t, |
| output axi_seq_item_aw_vector_s | v | ||
| ) |
Pull values out of axi_seq_item and stuff into a axi_seq_item_aw_vector_s.
This funcion returns a ready-to-be used struct so awlen and awaddr are calcuated in this function.
| t | an axi_seq_item |
Definition at line 94 of file axi_uvm_pkg.sv.
References axi_seq_item_aw_vector_s::awaddr, axi_seq_item_aw_vector_s::awburst, axi_seq_item_aw_vector_s::awcache, axi_seq_item_aw_vector_s::awid, axi_seq_item_aw_vector_s::awlen, axi_seq_item_aw_vector_s::awlock, axi_seq_item_aw_vector_s::awprot, axi_seq_item_aw_vector_s::awqos, axi_seq_item_aw_vector_s::awsize, calculate_axlen(), and calculate_burst_aligned_address().
Referenced by axi_driver::write_address().


| automatic void aw_to_class | ( | ref axi_seq_item | t, |
| input axi_seq_item_aw_vector_s | v | ||
| ) |
Pull values out of a axi_seq_item_aw_vector_s and stuffs them into an axi_seq_item.
t.len is converted from awlen into a byte len. It uses burst_size (bytes per beat) * beats_per_burst to give a maximum byte length.
| v | a packed struct of type axi_seq_item_aw_vector_s |
Definition at line 125 of file axi_uvm_pkg.sv.
References axi_seq_item_aw_vector_s::awaddr, axi_seq_item_aw_vector_s::awburst, axi_seq_item_aw_vector_s::awcache, axi_seq_item_aw_vector_s::awid, axi_seq_item_aw_vector_s::awlen, axi_seq_item_aw_vector_s::awlock, axi_seq_item_aw_vector_s::awprot, axi_seq_item_aw_vector_s::awqos, and axi_seq_item_aw_vector_s::awsize.
Referenced by axi_monitor::write_address().

| automatic void b_from_class | ( | inputbid | [ID_WIDTH-1:0], |
| inputbresp | [2], | ||
| output axi_seq_item_b_vector_s | v | ||
| ) |
take values from write response channel and stuff into a axi_seq_item_b_vector_s
| bid | - Write Response ID tag |
| bresp | - Write Response |
Definition at line 154 of file axi_uvm_pkg.sv.
References axi_seq_item_b_vector_s::bid, and axi_seq_item_b_vector_s::bresp.
| automatic void b_to_class | ( | ref axi_seq_item | t, |
| input axi_seq_item_b_vector_s | v | ||
| ) |
return values from a axi_seq_item_b_vector_s and return an axi_seq_item
| v | - packed struct of type axi_seq_item_b_vector_s |
Definition at line 172 of file axi_uvm_pkg.sv.
References axi_seq_item_b_vector_s::bid, and axi_seq_item_b_vector_s::bresp.
Referenced by axi_monitor::write_response().

| localparam ADDR_WIDTH = params_pkg::AXI_ADDR_WIDTH |
Definition at line 39 of file axi_uvm_pkg.sv.
Referenced by axi_sequential_reads_seq::body(), axi_sequential_writes_seq::body(), axi_pipelined_reads_seq::body(), axi_pipelined_writes_seq::body(), axi_driver::read_address(), axi_monitor::read_address(), axi_driver::read_data(), axi_pipelined_reads_seq::response_handler(), axi_pipelined_writes_seq::response_handler(), memory::seq_item_check(), axi_driver::write_address(), axi_monitor::write_data(), and axi_responder::write_response().
| localparam ID_WIDTH = params_pkg::AXI_ID_WIDTH |
Definition at line 40 of file axi_uvm_pkg.sv.
Referenced by axi_sequential_reads_seq::body(), axi_sequential_writes_seq::body(), axi_pipelined_reads_seq::body(), and axi_pipelined_writes_seq::body().
| localparam LEN_WIDTH = params_pkg::AXI_LEN_WIDTH |
Definition at line 41 of file axi_uvm_pkg.sv.
Referenced by axi_seq_item::protocol_c(), axi_coveragecollector::sample(), and axi_coveragecollector::uvm_component_utils().
1.8.11