Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

50 lignes
1.5 KiB

  1. // ****************************************************************************************
  2. // Directed Test Cases
  3. // ****************************************************************************************
  4. class burst_test extends uvm_test;
  5. `uvm_component_utils(burst_test)
  6. burst_env env_h;
  7. axi_fixed_sequence fixed_xtn;
  8. axi_incr_sequence incr_xtn;
  9. axi_wrap_sequence wrap_xtn;
  10. virtual apb_if vif;
  11. function new(string name="burst_test",uvm_component parent);
  12. super.new(name,parent);
  13. endfunction
  14. function void build_phase(uvm_phase phase);
  15. super.build_phase(phase);
  16. env_h=burst_env::type_id::create("env_h",this);
  17. if (!uvm_config_db#(virtual apb_if)::get(this, "", "vif", vif)) begin
  18. `uvm_fatal("build_phase", "No virtual interface specified for this test instance")
  19. end
  20. uvm_config_db#(virtual apb_if)::set( this, "*", "vif", vif);
  21. // `uvm_error("build_phase","top virtual interface failed")
  22. endfunction
  23. function void end_of_elaboration_phase(uvm_phase phase);
  24. uvm_top.print_topology();
  25. endfunction
  26. task run_phase(uvm_phase phase);
  27. begin
  28. seq_h=apb_seq::type_id::create("seq_h");
  29. phase.raise_objection(this);
  30. fork
  31. fixed_seq_h.start(env_h.agent_h.seqr_h);
  32. #100
  33. incr_seq_h.start(env_h.agent_h.seqr_h);
  34. #200
  35. wrap_seq_h.start(env_h.agent_h.seqr_h);
  36. join
  37. phase.drop_objection(this);
  38. end
  39. endtask
  40. endclass