|
@@ -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
|