Systemverilog(綠皮書)第九章——功能覆蓋率(二)覆蓋組

//在類中定義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()相比,使用事件觸發的好處在於你能夠 藉助已有的 事件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章