41 new (
string name=
"axi_sequential_reads_test", uvm_component parent=null) {
42 super.
new(name, parent);
47 axi_seq::type_id::set_type_override(axi_sequential_reads_seq::get_type(), 1);
49 driver_agent_config = axi_agent_config::type_id::create(
"driver_agent_config",
this);
52 assert(driver_agent_config.randomize() with {
58 min_clks_between_ar_transfers == 0;
59 max_clks_between_ar_transfers == 3;
60 min_clks_between_aw_transfers == 0;
61 max_clks_between_aw_transfers == 3;
62 min_clks_between_w_transfers == 0;
63 max_clks_between_w_transfers == 3;
66 driver_agent_config.m_active = UVM_ACTIVE;
70 uvm_config_db <axi_agent_config> ::set(null,
"*",
"m_axidriver_agent.m_config", driver_agent_config);
73 responder_agent_config = axi_agent_config::type_id::create(
"responder_agent_config",
this);
76 assert(responder_agent_config.randomize() with {
81 min_clks_between_r_transfers == 0;
82 max_clks_between_r_transfers == 3;
83 min_clks_between_b_transfers == 0;
84 max_clks_between_b_transfers == 3;
88 responder_agent_config.m_active = UVM_ACTIVE;
96 uvm_config_db <axi_agent_config> ::set(null,
"*",
"m_axiresponder_agent.m_config", responder_agent_config);
99 super.build_phase(phase);
107 phase.raise_objection(
this);
114 m_seq.start(m_env.m_driver_seqr);
117 phase.drop_objection(
this);
base test. AXI tests are to be extended from this test.
axi_responder_seq m_resp_seq
task run_phase(uvm_phase phase)
void build_phase(uvm_phase phase)
Sequential AXI reads. No pipelining.
axi_agent_config responder_agent_config
bit axi_incompatible_wvalid_toggling_mode
uvm_component_utils(axi_sequential_reads_test) axi_agent_config driver_agent_config
new(string name="axi_agent_config")
Constructor.
Configuration object for an axi_agent.