Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

seq.sv 996 B

5 månader sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. class wr_seq extends uvm_sequence #(wrap_txn);
  2. `uvm_object_utils(wr_seq)
  3. wrap_txn txn;
  4. function new(string name = "wr_seq");
  5. super.new(name);
  6. endfunction
  7. task body();
  8. txn=wrap_txn::type_id::create("txn");
  9. start_item(txn);
  10. assert(txn.randomize() with {wr_rd == 1;});
  11. finish_item(txn);
  12. endtask
  13. endclass
  14. class rd_seq extends uvm_sequence #(wrap_txn);
  15. `uvm_object_utils(rd_seq)
  16. wrap_txn txn;
  17. function new(string name = "rd_seq");
  18. super.new(name);
  19. endfunction
  20. task body();
  21. txn=wrap_txn::type_id::create("txn");
  22. start_item(txn);
  23. assert(txn.randomize() with {wr_rd ==0;});
  24. finish_item(txn);
  25. endtask
  26. endclass
  27. class seq extends uvm_sequence#(wrap_txn);
  28. `uvm_object_utils(seq)
  29. wr_seq w_s;
  30. rd_seq r_s;
  31. function new(string name = "seq");
  32. super.new(name);
  33. endfunction
  34. task body();
  35. `uvm_do(w_s);
  36. `uvm_do(r_s);
  37. endtask
  38. endclass