diff --git a/axi_test.sv b/axi_test.sv new file mode 100644 index 0000000..5a01121 --- /dev/null +++ b/axi_test.sv @@ -0,0 +1,49 @@ +// **************************************************************************************** +// Directed Test Cases +// **************************************************************************************** + +class burst_test extends uvm_test; + `uvm_component_utils(burst_test) + burst_env env_h; + axi_fixed_sequence fixed_xtn; + axi_incr_sequence incr_xtn; + axi_wrap_sequence wrap_xtn; + virtual apb_if vif; + + function new(string name="burst_test",uvm_component parent); + super.new(name,parent); + endfunction + + + function void build_phase(uvm_phase phase); + super.build_phase(phase); + env_h=burst_env::type_id::create("env_h",this); + if (!uvm_config_db#(virtual apb_if)::get(this, "", "vif", vif)) begin + `uvm_fatal("build_phase", "No virtual interface specified for this test instance") + end + uvm_config_db#(virtual apb_if)::set( this, "*", "vif", vif); + // `uvm_error("build_phase","top virtual interface failed") + + endfunction + + function void end_of_elaboration_phase(uvm_phase phase); + uvm_top.print_topology(); + endfunction + + task run_phase(uvm_phase phase); + begin + seq_h=apb_seq::type_id::create("seq_h"); + phase.raise_objection(this); + fork + fixed_seq_h.start(env_h.agent_h.seqr_h); + #100 + incr_seq_h.start(env_h.agent_h.seqr_h); + #200 + wrap_seq_h.start(env_h.agent_h.seqr_h); + join + phase.drop_objection(this); + end + endtask + + +endclass