25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

47 satır
1.0 KiB

  1. class axi_cov extends uvm_subscriber#(axi_tx);
  2. axi_tx tx;
  3. `uvm_component_utils(axi_cov)
  4. covergroup axi_cg;
  5. ADDR_CP : coverpoint tx.addr {
  6. option.auto_bin_max = 8;
  7. }
  8. WR_RD_CP : coverpoint tx.wr_rd{
  9. bins WR = {1'b1};
  10. bins RD = {1'b0};
  11. }
  12. BURST_TYPE_CP : coverpoint tx.burst_type {
  13. bins FIXED = {FIXED};
  14. bins WRAP = {WRAP};
  15. bins INCR = {INCR};
  16. }
  17. RESP_CP : coverpoint tx.resp {
  18. bins OKAY = {OKAY};
  19. bins EXOKAY = {EXOKAY};
  20. bins SLVERR = {SLVERR};
  21. bins DECERR = {DECERR};
  22. }
  23. ADDR_CP_X_WR_RD_CP : cross ADDR_CP, WR_RD_CP;
  24. ADDR_CP_X_BURST_TYPE_CP : cross ADDR_CP, BURST_TYPE_CP;
  25. ADDR_CP_X_RESP_CP : cross ADDR_CP, RESP_CP;
  26. WR_RD_CP_X_BURST_TYPE_CP : cross WR_RD_CP, BURST_TYPE_CP;
  27. WR_RD_CP_X_RESP_CP : cross WR_RD_CP, RESP_CP;
  28. BURST_TYPE_CP_X_RESP_CP : cross BURST_TYPE_CP, RESP_CP;
  29. endgroup
  30. function new(string name = "", uvm_component parent=null);
  31. super.new(name,parent);
  32. axi_cg = new();
  33. endfunction
  34. function void write(T t);
  35. $cast(tx, t);
  36. $display("time : %0t", $time);
  37. tx.print();
  38. axi_cg.sample();
  39. endfunction
  40. endclass