|
- class axi_cov extends uvm_subscriber#(axi_tx);
- axi_tx tx;
- `uvm_component_utils(axi_cov)
-
- covergroup axi_cg;
- ADDR_CP : coverpoint tx.addr {
- option.auto_bin_max = 8;
- }
- WR_RD_CP : coverpoint tx.wr_rd{
- bins WR = {1'b1};
- bins RD = {1'b0};
- }
- BURST_TYPE_CP : coverpoint tx.burst_type {
- bins FIXED = {FIXED};
- bins WRAP = {WRAP};
- bins INCR = {INCR};
- }
- RESP_CP : coverpoint tx.resp {
- bins OKAY = {OKAY};
- bins EXOKAY = {EXOKAY};
- bins SLVERR = {SLVERR};
- bins DECERR = {DECERR};
- }
- ADDR_CP_X_WR_RD_CP : cross ADDR_CP, WR_RD_CP;
- ADDR_CP_X_BURST_TYPE_CP : cross ADDR_CP, BURST_TYPE_CP;
- ADDR_CP_X_RESP_CP : cross ADDR_CP, RESP_CP;
- WR_RD_CP_X_BURST_TYPE_CP : cross WR_RD_CP, BURST_TYPE_CP;
- WR_RD_CP_X_RESP_CP : cross WR_RD_CP, RESP_CP;
- BURST_TYPE_CP_X_RESP_CP : cross BURST_TYPE_CP, RESP_CP;
- endgroup
-
- function new(string name = "", uvm_component parent=null);
- super.new(name,parent);
- axi_cg = new();
- endfunction
-
- function void write(T t);
- $cast(tx, t);
- $display("time : %0t", $time);
- tx.print();
- axi_cg.sample();
- endfunction
-
- endclass
-
|