//data declaratins class dec_t;
//constants //localparam byte?? //specparm int?? //const logic
//lifetime //alias int st_i; //automatic int auto_i; rand bit [4:0] a; rand bit [3:0] b; rand bit c;
function new();
endfunction
function dec_t_f(int a,ref int c[4],const ref int d[5],output int b);
endfunction
endclass
covergroup CoverDec(dec_t v_dec); p_a : coverpoint v_dec.a { bins zero={0}; bins R1_N_1={[1:10]}; bins N={[11:$]}; }
p_b : coverpoint v_dec.b;
p_c : coverpoint v_dec.c;
p_cr : cross p_b,p_c;
endgroup
initial begin real m; int s_c=0; dec_t dec=new(); CoverDec cd=new(dec);
//for(int i=0;i<100;i++) begin
// dec.randomize();
// cd.sample();
//end
while(cd.get_inst_coverage() <100)
begin
s_c++;
dec.randomize();
cd.sample();
$display("time[%0d] cd coverage %f",s_c,cd.get_inst_coverage());
$display("time[%0d] cd coverage %f",s_c,cd.get_coverage());
$display("time[%0d] cd coverage.p_a %f",s_c,cd.p_a.get_coverage());
$display("time[%0d] cd coverage.p_cr %f",s_c,cd.p_cr.get_coverage());
if(s_c == 200) begin
break;
end
end
//$coverage_get();
end
仿真结果:
Compile of test.sv was successful with warnings.
run -all
hello world!
time[1] cd coverage 23.177083
time[1] cd coverage 23.177083
time[1] cd coverage.p_a 33.333333
time[1] cd coverage.p_cr 3.125000
time[2] cd coverage 46.354167
time[2] cd coverage 46.354167
time[2] cd coverage.p_a 66.666667
time[2] cd coverage.p_cr 6.250000
time[3] cd coverage 48.697917
time[3] cd coverage 48.697917
time[3] cd coverage.p_a 66.666667
time[3] cd coverage.p_cr 9.375000
time[4] cd coverage 51.041667
time[4] cd coverage 51.041667
time[4] cd coverage.p_a 66.666667
time[4] cd coverage.p_cr 12.500000
time[5] cd coverage 51.041667
time[5] cd coverage 51.041667
time[5] cd coverage.p_a 66.666667
time[5] cd coverage.p_cr 12.500000
time[6] cd coverage 51.041667
time[6] cd coverage 51.041667
time[6] cd coverage.p_a 66.666667
time[6] cd coverage.p_cr 12.500000
time[7] cd coverage 53.385417
time[7] cd coverage 53.385417
time[7] cd coverage.p_a 66.666667
time[7] cd coverage.p_cr 15.625000
time[8] cd coverage 54.166667
time[8] cd coverage 54.166667
time[8] cd coverage.p_a 66.666667
time[8] cd coverage.p_cr 18.750000
time[9] cd coverage 54.166667
time[9] cd coverage 54.166667
time[9] cd coverage.p_a 66.666667
time[9] cd coverage.p_cr 18.750000
time[10] cd coverage 64.843750
time[10] cd coverage 64.843750
time[10] cd coverage.p_a 100.000000
time[10] cd coverage.p_cr 21.875000
time[11] cd coverage 67.187500
time[11] cd coverage 67.187500
time[11] cd coverage.p_a 100.000000
time[11] cd coverage.p_cr 25.000000
time[12] cd coverage 69.531250
time[12] cd coverage 69.531250
time[12] cd coverage.p_a 100.000000
time[12] cd coverage.p_cr 28.125000
time[13] cd coverage 69.531250
time[13] cd coverage 69.531250
time[13] cd coverage.p_a 100.000000
time[13] cd coverage.p_cr 28.125000
time[14] cd coverage 71.875000
time[14] cd coverage 71.875000
time[14] cd coverage.p_a 100.000000
time[14] cd coverage.p_cr 31.250000
time[15] cd coverage 74.218750
time[15] cd coverage 74.218750
time[15] cd coverage.p_a 100.000000
time[15] cd coverage.p_cr 34.375000
time[16] cd coverage 74.218750
time[16] cd coverage 74.218750
time[16] cd coverage.p_a 100.000000
time[16] cd coverage.p_cr 34.375000
time[17] cd coverage 75.000000
time[17] cd coverage 75.000000
time[17] cd coverage.p_a 100.000000
time[17] cd coverage.p_cr 37.500000
time[18] cd coverage 75.000000
time[18] cd coverage 75.000000
time[18] cd coverage.p_a 100.000000
time[18] cd coverage.p_cr 37.500000
time[19] cd coverage 77.343750
time[19] cd coverage 77.343750
time[19] cd coverage.p_a 100.000000
time[19] cd coverage.p_cr 40.625000
time[20] cd coverage 79.687500
time[20] cd coverage 79.687500
time[20] cd coverage.p_a 100.000000
time[20] cd coverage.p_cr 43.750000
time[21] cd coverage 79.687500
time[21] cd coverage 79.687500
time[21] cd coverage.p_a 100.000000
time[21] cd coverage.p_cr 43.750000
time[22] cd coverage 80.468750
time[22] cd coverage 80.468750
time[22] cd coverage.p_a 100.000000
time[22] cd coverage.p_cr 46.875000
time[23] cd coverage 80.468750
time[23] cd coverage 80.468750
time[23] cd coverage.p_a 100.000000
time[23] cd coverage.p_cr 46.875000
time[24] cd coverage 80.468750
time[24] cd coverage 80.468750
time[24] cd coverage.p_a 100.000000
time[24] cd coverage.p_cr 46.875000
time[25] cd coverage 82.812500
time[25] cd coverage 82.812500
time[25] cd coverage.p_a 100.000000
time[25] cd coverage.p_cr 50.000000
time[26] cd coverage 85.156250
time[26] cd coverage 85.156250
time[26] cd coverage.p_a 100.000000
time[26] cd coverage.p_cr 53.125000
time[27] cd coverage 85.937500
time[27] cd coverage 85.937500
time[27] cd coverage.p_a 100.000000
time[27] cd coverage.p_cr 56.250000
time[28] cd coverage 86.718750
time[28] cd coverage 86.718750
time[28] cd coverage.p_a 100.000000
time[28] cd coverage.p_cr 59.375000
time[29] cd coverage 86.718750
time[29] cd coverage 86.718750
time[29] cd coverage.p_a 100.000000
time[29] cd coverage.p_cr 59.375000
time[30] cd coverage 86.718750
time[30] cd coverage 86.718750
time[30] cd coverage.p_a 100.000000
time[30] cd coverage.p_cr 59.375000
time[31] cd coverage 86.718750
time[31] cd coverage 86.718750
time[31] cd coverage.p_a 100.000000
time[31] cd coverage.p_cr 59.375000
time[32] cd coverage 86.718750
time[32] cd coverage 86.718750
time[32] cd coverage.p_a 100.000000
time[32] cd coverage.p_cr 59.375000
time[33] cd coverage 86.718750
time[33] cd coverage 86.718750
time[33] cd coverage.p_a 100.000000
time[33] cd coverage.p_cr 59.375000
time[34] cd coverage 86.718750
time[34] cd coverage 86.718750
time[34] cd coverage.p_a 100.000000
time[34] cd coverage.p_cr 59.375000
time[35] cd coverage 89.062500
time[35] cd coverage 89.062500
time[35] cd coverage.p_a 100.000000
time[35] cd coverage.p_cr 62.500000
time[36] cd coverage 89.843750
time[36] cd coverage 89.843750
time[36] cd coverage.p_a 100.000000
time[36] cd coverage.p_cr 65.625000
time[37] cd coverage 89.843750
time[37] cd coverage 89.843750
time[37] cd coverage.p_a 100.000000
time[37] cd coverage.p_cr 65.625000
time[38] cd coverage 89.843750
time[38] cd coverage 89.843750
time[38] cd coverage.p_a 100.000000
time[38] cd coverage.p_cr 65.625000
time[39] cd coverage 89.843750
time[39] cd coverage 89.843750
time[39] cd coverage.p_a 100.000000
time[39] cd coverage.p_cr 65.625000
time[40] cd coverage 89.843750
time[40] cd coverage 89.843750
time[40] cd coverage.p_a 100.000000
time[40] cd coverage.p_cr 65.625000
time[41] cd coverage 90.625000
time[41] cd coverage 90.625000
time[41] cd coverage.p_a 100.000000
time[41] cd coverage.p_cr 68.750000
time[42] cd coverage 92.968750
time[42] cd coverage 92.968750
time[42] cd coverage.p_a 100.000000
time[42] cd coverage.p_cr 71.875000
time[43] cd coverage 92.968750
time[43] cd coverage 92.968750
time[43] cd coverage.p_a 100.000000
time[43] cd coverage.p_cr 71.875000
time[44] cd coverage 92.968750
time[44] cd coverage 92.968750
time[44] cd coverage.p_a 100.000000
time[44] cd coverage.p_cr 71.875000
time[45] cd coverage 92.968750
time[45] cd coverage 92.968750
time[45] cd coverage.p_a 100.000000
time[45] cd coverage.p_cr 71.875000
time[46] cd coverage 92.968750
time[46] cd coverage 92.968750
time[46] cd coverage.p_a 100.000000
time[46] cd coverage.p_cr 71.875000
time[47] cd coverage 92.968750
time[47] cd coverage 92.968750
time[47] cd coverage.p_a 100.000000
time[47] cd coverage.p_cr 71.875000
time[48] cd coverage 92.968750
time[48] cd coverage 92.968750
time[48] cd coverage.p_a 100.000000
time[48] cd coverage.p_cr 71.875000
time[49] cd coverage 92.968750
time[49] cd coverage 92.968750
time[49] cd coverage.p_a 100.000000
time[49] cd coverage.p_cr 71.875000
time[50] cd coverage 92.968750
time[50] cd coverage 92.968750
time[50] cd coverage.p_a 100.000000
time[50] cd coverage.p_cr 71.875000
time[51] cd coverage 92.968750
time[51] cd coverage 92.968750
time[51] cd coverage.p_a 100.000000
time[51] cd coverage.p_cr 71.875000
time[52] cd coverage 92.968750
time[52] cd coverage 92.968750
time[52] cd coverage.p_a 100.000000
time[52] cd coverage.p_cr 71.875000
time[53] cd coverage 93.750000
time[53] cd coverage 93.750000
time[53] cd coverage.p_a 100.000000
time[53] cd coverage.p_cr 75.000000
time[54] cd coverage 93.750000
time[54] cd coverage 93.750000
time[54] cd coverage.p_a 100.000000
time[54] cd coverage.p_cr 75.000000
time[55] cd coverage 93.750000
time[55] cd coverage 93.750000
time[55] cd coverage.p_a 100.000000
time[55] cd coverage.p_cr 75.000000
time[56] cd coverage 93.750000
time[56] cd coverage 93.750000
time[56] cd coverage.p_a 100.000000
time[56] cd coverage.p_cr 75.000000
time[57] cd coverage 94.531250
time[57] cd coverage 94.531250
time[57] cd coverage.p_a 100.000000
time[57] cd coverage.p_cr 78.125000
time[58] cd coverage 94.531250
time[58] cd coverage 94.531250
time[58] cd coverage.p_a 100.000000
time[58] cd coverage.p_cr 78.125000
time[59] cd coverage 94.531250
time[59] cd coverage 94.531250
time[59] cd coverage.p_a 100.000000
time[59] cd coverage.p_cr 78.125000
time[60] cd coverage 94.531250
time[60] cd coverage 94.531250
time[60] cd coverage.p_a 100.000000
time[60] cd coverage.p_cr 78.125000
time[61] cd coverage 94.531250
time[61] cd coverage 94.531250
time[61] cd coverage.p_a 100.000000
time[61] cd coverage.p_cr 78.125000
time[62] cd coverage 94.531250
time[62] cd coverage 94.531250
time[62] cd coverage.p_a 100.000000
time[62] cd coverage.p_cr 78.125000
time[63] cd coverage 94.531250
time[63] cd coverage 94.531250
time[63] cd coverage.p_a 100.000000
time[63] cd coverage.p_cr 78.125000
time[64] cd coverage 94.531250
time[64] cd coverage 94.531250
time[64] cd coverage.p_a 100.000000
time[64] cd coverage.p_cr 78.125000
time[65] cd coverage 94.531250
time[65] cd coverage 94.531250
time[65] cd coverage.p_a 100.000000
time[65] cd coverage.p_cr 78.125000
time[66] cd coverage 94.531250
time[66] cd coverage 94.531250
time[66] cd coverage.p_a 100.000000
time[66] cd coverage.p_cr 78.125000
time[67] cd coverage 94.531250
time[67] cd coverage 94.531250
time[67] cd coverage.p_a 100.000000
time[67] cd coverage.p_cr 78.125000
time[68] cd coverage 94.531250
time[68] cd coverage 94.531250
time[68] cd coverage.p_a 100.000000
time[68] cd coverage.p_cr 78.125000
time[69] cd coverage 95.312500
time[69] cd coverage 95.312500
time[69] cd coverage.p_a 100.000000
time[69] cd coverage.p_cr 81.250000
time[70] cd coverage 95.312500
time[70] cd coverage 95.312500
time[70] cd coverage.p_a 100.000000
time[70] cd coverage.p_cr 81.250000
time[71] cd coverage 95.312500
time[71] cd coverage 95.312500
time[71] cd coverage.p_a 100.000000
time[71] cd coverage.p_cr 81.250000
time[72] cd coverage 95.312500
time[72] cd coverage 95.312500
time[72] cd coverage.p_a 100.000000
time[72] cd coverage.p_cr 81.250000
time[73] cd coverage 95.312500
time[73] cd coverage 95.312500
time[73] cd coverage.p_a 100.000000
time[73] cd coverage.p_cr 81.250000
time[74] cd coverage 95.312500
time[74] cd coverage 95.312500
time[74] cd coverage.p_a 100.000000
time[74] cd coverage.p_cr 81.250000
time[75] cd coverage 95.312500
time[75] cd coverage 95.312500
time[75] cd coverage.p_a 100.000000
time[75] cd coverage.p_cr 81.250000
time[76] cd coverage 95.312500
time[76] cd coverage 95.312500
time[76] cd coverage.p_a 100.000000
time[76] cd coverage.p_cr 81.250000
time[77] cd coverage 95.312500
time[77] cd coverage 95.312500
time[77] cd coverage.p_a 100.000000
time[77] cd coverage.p_cr 81.250000
time[78] cd coverage 96.093750
time[78] cd coverage 96.093750
time[78] cd coverage.p_a 100.000000
time[78] cd coverage.p_cr 84.375000
time[79] cd coverage 96.875000
time[79] cd coverage 96.875000
time[79] cd coverage.p_a 100.000000
time[79] cd coverage.p_cr 87.500000
time[80] cd coverage 96.875000
time[80] cd coverage 96.875000
time[80] cd coverage.p_a 100.000000
time[80] cd coverage.p_cr 87.500000
time[81] cd coverage 96.875000
time[81] cd coverage 96.875000
time[81] cd coverage.p_a 100.000000
time[81] cd coverage.p_cr 87.500000
time[82] cd coverage 96.875000
time[82] cd coverage 96.875000
time[82] cd coverage.p_a 100.000000
time[82] cd coverage.p_cr 87.500000
time[83] cd coverage 96.875000
time[83] cd coverage 96.875000
time[83] cd coverage.p_a 100.000000
time[83] cd coverage.p_cr 87.500000
time[84] cd coverage 96.875000
time[84] cd coverage 96.875000
time[84] cd coverage.p_a 100.000000
time[84] cd coverage.p_cr 87.500000
time[85] cd coverage 96.875000
time[85] cd coverage 96.875000
time[85] cd coverage.p_a 100.000000
time[85] cd coverage.p_cr 87.500000
time[86] cd coverage 97.656250
time[86] cd coverage 97.656250
time[86] cd coverage.p_a 100.000000
time[86] cd coverage.p_cr 90.625000
time[87] cd coverage 97.656250
time[87] cd coverage 97.656250
time[87] cd coverage.p_a 100.000000
time[87] cd coverage.p_cr 90.625000
time[88] cd coverage 97.656250
time[88] cd coverage 97.656250
time[88] cd coverage.p_a 100.000000
time[88] cd coverage.p_cr 90.625000
time[89] cd coverage 97.656250
time[89] cd coverage 97.656250
time[89] cd coverage.p_a 100.000000
time[89] cd coverage.p_cr 90.625000
time[90] cd coverage 98.437500
time[90] cd coverage 98.437500
time[90] cd coverage.p_a 100.000000
time[90] cd coverage.p_cr 93.750000
time[91] cd coverage 98.437500
time[91] cd coverage 98.437500
time[91] cd coverage.p_a 100.000000
time[91] cd coverage.p_cr 93.750000
time[92] cd coverage 98.437500
time[92] cd coverage 98.437500
time[92] cd coverage.p_a 100.000000
time[92] cd coverage.p_cr 93.750000
time[93] cd coverage 98.437500
time[93] cd coverage 98.437500
time[93] cd coverage.p_a 100.000000
time[93] cd coverage.p_cr 93.750000
time[94] cd coverage 98.437500
time[94] cd coverage 98.437500
time[94] cd coverage.p_a 100.000000
time[94] cd coverage.p_cr 93.750000
time[95] cd coverage 98.437500
time[95] cd coverage 98.437500
time[95] cd coverage.p_a 100.000000
time[95] cd coverage.p_cr 93.750000
time[96] cd coverage 98.437500
time[96] cd coverage 98.437500
time[96] cd coverage.p_a 100.000000
time[96] cd coverage.p_cr 93.750000
time[97] cd coverage 98.437500
time[97] cd coverage 98.437500
time[97] cd coverage.p_a 100.000000
time[97] cd coverage.p_cr 93.750000
time[98] cd coverage 98.437500
time[98] cd coverage 98.437500
time[98] cd coverage.p_a 100.000000
time[98] cd coverage.p_cr 93.750000
time[99] cd coverage 98.437500
time[99] cd coverage 98.437500
time[99] cd coverage.p_a 100.000000
time[99] cd coverage.p_cr 93.750000
time[100] cd coverage 98.437500
time[100] cd coverage 98.437500
time[100] cd coverage.p_a 100.000000
time[100] cd coverage.p_cr 93.750000
time[101] cd coverage 98.437500
time[101] cd coverage 98.437500
time[101] cd coverage.p_a 100.000000
time[101] cd coverage.p_cr 93.750000
time[102] cd coverage 98.437500
time[102] cd coverage 98.437500
time[102] cd coverage.p_a 100.000000
time[102] cd coverage.p_cr 93.750000
time[103] cd coverage 98.437500
time[103] cd coverage 98.437500
time[103] cd coverage.p_a 100.000000
time[103] cd coverage.p_cr 93.750000
time[104] cd coverage 98.437500
time[104] cd coverage 98.437500
time[104] cd coverage.p_a 100.000000
time[104] cd coverage.p_cr 93.750000
time[105] cd coverage 98.437500
time[105] cd coverage 98.437500
time[105] cd coverage.p_a 100.000000
time[105] cd coverage.p_cr 93.750000
time[106] cd coverage 99.218750
time[106] cd coverage 99.218750
time[106] cd coverage.p_a 100.000000
time[106] cd coverage.p_cr 96.875000
time[107] cd coverage 99.218750
time[107] cd coverage 99.218750
time[107] cd coverage.p_a 100.000000
time[107] cd coverage.p_cr 96.875000
time[108] cd coverage 99.218750
time[108] cd coverage 99.218750
time[108] cd coverage.p_a 100.000000
time[108] cd coverage.p_cr 96.875000
time[109] cd coverage 99.218750
time[109] cd coverage 99.218750
time[109] cd coverage.p_a 100.000000
time[109] cd coverage.p_cr 96.875000
time[110] cd coverage 99.218750
time[110] cd coverage 99.218750
time[110] cd coverage.p_a 100.000000
time[110] cd coverage.p_cr 96.875000
time[111] cd coverage 99.218750
time[111] cd coverage 99.218750
time[111] cd coverage.p_a 100.000000
time[111] cd coverage.p_cr 96.875000
time[112] cd coverage 99.218750
time[112] cd coverage 99.218750
time[112] cd coverage.p_a 100.000000
time[112] cd coverage.p_cr 96.875000
time[113] cd coverage 99.218750
time[113] cd coverage 99.218750
time[113] cd coverage.p_a 100.000000
time[113] cd coverage.p_cr 96.875000
time[114] cd coverage 99.218750
time[114] cd coverage 99.218750
time[114] cd coverage.p_a 100.000000
time[114] cd coverage.p_cr 96.875000
time[115] cd coverage 99.218750
time[115] cd coverage 99.218750
time[115] cd coverage.p_a 100.000000
time[115] cd coverage.p_cr 96.875000
time[116] cd coverage 99.218750
time[116] cd coverage 99.218750
time[116] cd coverage.p_a 100.000000
time[116] cd coverage.p_cr 96.875000
time[117] cd coverage 99.218750
time[117] cd coverage 99.218750
time[117] cd coverage.p_a 100.000000
time[117] cd coverage.p_cr 96.875000
time[118] cd coverage 99.218750
time[118] cd coverage 99.218750
time[118] cd coverage.p_a 100.000000
time[118] cd coverage.p_cr 96.875000
time[119] cd coverage 99.218750
time[119] cd coverage 99.218750
time[119] cd coverage.p_a 100.000000
time[119] cd coverage.p_cr 96.875000
time[120] cd coverage 99.218750
time[120] cd coverage 99.218750
time[120] cd coverage.p_a 100.000000
time[120] cd coverage.p_cr 96.875000
time[121] cd coverage 99.218750
time[121] cd coverage 99.218750
time[121] cd coverage.p_a 100.000000
time[121] cd coverage.p_cr 96.875000
time[122] cd coverage 99.218750
time[122] cd coverage 99.218750
time[122] cd coverage.p_a 100.000000
time[122] cd coverage.p_cr 96.875000
time[123] cd coverage 99.218750
time[123] cd coverage 99.218750
time[123] cd coverage.p_a 100.000000
time[123] cd coverage.p_cr 96.875000
time[124] cd coverage 99.218750
time[124] cd coverage 99.218750
time[124] cd coverage.p_a 100.000000
time[124] cd coverage.p_cr 96.875000
time[125] cd coverage 99.218750
time[125] cd coverage 99.218750
time[125] cd coverage.p_a 100.000000
time[125] cd coverage.p_cr 96.875000
time[126] cd coverage 99.218750
time[126] cd coverage 99.218750
time[126] cd coverage.p_a 100.000000
time[126] cd coverage.p_cr 96.875000
time[127] cd coverage 99.218750
time[127] cd coverage 99.218750
time[127] cd coverage.p_a 100.000000
time[127] cd coverage.p_cr 96.875000
time[128] cd coverage 99.218750
time[128] cd coverage 99.218750
time[128] cd coverage.p_a 100.000000
time[128] cd coverage.p_cr 96.875000
time[129] cd coverage 100.000000
time[129] cd coverage 100.000000
time[129] cd coverage.p_a 100.000000
time[129] cd coverage.p_cr 100.000000