You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 regels
1.4 KiB

  1. class axi_wrap_sequence extends uvm_sequence #(axi_seq_item);
  2. `uvm_object_utills(axi_wrap_sequence)
  3. axi_wrap_sequence wrap_xtn;
  4. function new(string name ="axi_wrap_sequene")
  5. super.new(name);
  6. endfunction
  7. task body();
  8. repeat(10)
  9. begin
  10. wrap_xtn=axi_seq_item::type_id::create("wrap_xtn");
  11. start_item(wrap_xtn);
  12. assert(wrap_xtn.randomize() with {AWBURST==2;});
  13. wrap_xtn.write=1;
  14. finish_item(wrap_xtn);
  15. end
  16. end
  17. endclass
  18. class axi_incr_sequence extends uvm_sequence #(axi_seq_item);
  19. `uvm_object_utills(axi_incr_sequence)
  20. axi_seq_item incr_xtn;
  21. function new(string name ="axi_incr_sequene")
  22. super.new(name);
  23. endfunction
  24. task body();
  25. repeat(10)
  26. begin
  27. incr_xtn=axi_seq_item::type_id::create("incr_xtn");
  28. start_item(incr_xtn);
  29. assert(wrap_xtn.randomize() with {AWBURST==1;});
  30. incr_xtn.write=1;
  31. finish_item(incr_xtn);
  32. end
  33. end
  34. endclass
  35. class axi_fixed_sequence extends uvm_sequence #(axi_seq_item);
  36. `uvm_object_utills(axi_fixed_sequence)
  37. axi_seq_item fixed_xtn;
  38. function new(string name ="axi_fixed_sequene")
  39. super.new(name);
  40. endfunction
  41. task body();
  42. repeat(10)
  43. begin
  44. fixed_xtn=axi_seq_item::type_id::create("fixed_xtn");
  45. start_item(fixed_xtn);
  46. assert(fixed_xtn.randomize() with {AWBURST==0;});
  47. fixed_xtn.write=1;
  48. finish_item(fixed_xtn);
  49. end
  50. end
  51. endclass