Я не могу получить отчет о покрытии для групп покрытия, которые я определил в своем классе в SystemVerilog, используя QuestaSim.
Моя тестовая программа приведена ниже:
testfcov.sv
program automatic testfcov(busif.TB bus);
class Transaction;
rand bit [5:0] dst;
rand bit [3:0] src;
endclass
Transaction tr;
covergroup CoverDst;
coverpoint tr.dst;
endgroup
initial begin
CoverDst cd;
cd = new();
repeat(4) begin
tr = new();
assert(tr.randomize());
@bus.cb;
bus.cb.dst <= tr.dst;
bus.cb.src <= tr.src;
cd.sample();
end
$stop;
end
endprogram
busif.sv
interface busif(input clk);
logic [5:0] dst;
logic [3:0] src;
clocking cb @(posedge clk);
output dst;
output src;
endclocking
modport TB(clocking cb);
endinterface
tb_coverage.sv
`include "testfcov.sv"
module tb_coverage;
reg clk;
initial begin
clk = 0;
forever #10 clk = ~clk;
end
busif bif(clk);
testfcov tf(bif);
endmodule
Я использовал следующий скрипт для компиляции и моделирования.
quit -sim
vlog -work work -novopt -sv -stats=none {testfcov.sv}
vlog -work work -novopt -sv -stats=none {busif.sv}
vlog -work work -novopt -sv -stats=none {tb_coverage.sv}
vopt tb_coverage -o opttop +cover
vsim -coverage opttop -do "coverage save -onexit coverage.ucdb;"
run -all
I сформировали следующий отчет о выходе:
Coverage Report Summary Data by file
=================================================================================
=== File: busif.sv
=================================================================================
Enabled Coverage Active Hits Misses % Covered
---------------- ------ ---- ------ ---------
Stmts 1 1 0 100.0
Branches 0 0 0 100.0
FEC Condition Terms 0 0 0 100.0
FEC Expression Terms 0 0 0 100.0
FSMs 100.0
States 0 0 0 100.0
Transitions 0 0 0 100.0
Toggle Bins 20 11 9 55.0
=================================================================================
=== File: tb_coverage.sv
=================================================================================
Enabled Coverage Active Hits Misses % Covered
---------------- ------ ---- ------ ---------
Stmts 4 4 0 100.0
Branches 0 0 0 100.0
FEC Condition Terms 0 0 0 100.0
FEC Expression Terms 0 0 0 100.0
FSMs 100.0
States 0 0 0 100.0
Transitions 0 0 0 100.0
Toggle Bins 2 2 0 100.0
=================================================================================
=== File: testfcov.sv
=================================================================================
Enabled Coverage Active Hits Misses % Covered
---------------- ------ ---- ------ ---------
Stmts 8 8 0 100.0
Branches 0 0 0 100.0
FEC Condition Terms 0 0 0 100.0
FEC Expression Terms 0 0 0 100.0
FSMs 100.0
States 0 0 0 100.0
Transitions 0 0 0 100.0
Toggle Bins 0 0 0 100.0
TOTAL COVERGROUP COVERAGE: 6.2% COVERGROUP TYPES: 1
TOTAL ASSERTION COVERAGE: 100.0% ASSERTIONS: 1
Total Coverage By File (code coverage only, filtered view): 79.5%
Я не могу найти отчет, касающийся группы обложек CoverDst
, определенной в файле testfcov.sv
. Я произвольно выбираю tr
объект транзакции только четыре раза, поэтому невозможно, чтобы он имел 100% покрытие.
Кто-нибудь может подсказать мне, как мне найти отчет о покрытии, соответствующий моим группам покрытия, в отчете о покрытии QuestaSim?