//在類中定義covergroup
class Transactor;
Transaction tr;
mailbox mbx_in;
covergroup CovPort;
coverpoint tr.port; //定義的採樣數值
endgroup
function new(mailbox mbx_in);
CovPort = new(); //例化
this.mbx_in = mbx_in;
endfunction
task main;
forever begin
tr = mbx_in.get;
ifc.cb.port <= tr.port;
ifc.cb.data <= tr.data;
CovPort.sample(); //採樣的事件
end
endtask
endclass
event trans_ready;
covergroup CovPort @(trans_ready);
coverpoint ifc.cb.port;
endgroup
與直接 調用sample()相比,使用事件觸發的好處在於你能夠 藉助已有的 事件。