急!大侠帮忙我啊!OVM验证怎样产生足够的bin?
时间:10-02
整理:3721RD
点击:
下面的覆盖报告,很多地址范围没有覆盖,可是增加run的时间也没有什么反应,是什么原因呢?十分困苦啊!大侠帮我啊!怎样做才能让这些bin覆盖各个地址范围呢?
Coverpoint cov_trans::trans_start_addr25.0%100 Uncovered
covered/total bins:416
bin auto[0:4095]01 ZERO
bin auto[4096:8191]01 ZERO
bin auto[8192:12287]01 ZERO
bin auto[12288:16383]01 ZERO
bin auto[16384:20479]41 Covered
bin auto[20480:24575]01 ZERO
bin auto[24576:28671]11 Covered
bin auto[28672:32767]01 ZERO
bin auto[32768:36863]01 ZERO
bin auto[36864:40959]01 ZERO
bin auto[40960:45055]01 ZERO
bin auto[45056:49151]01 ZERO
bin auto[49152:53247]11 Covered
bin auto[53248:57343]01 ZERO
bin auto[57344:61439]11 Covered
bin auto[61440:65535]01 ZERO
Coverpoint cov_trans::trans_start_addr25.0%100 Uncovered
covered/total bins:416
bin auto[0:4095]01 ZERO
bin auto[4096:8191]01 ZERO
bin auto[8192:12287]01 ZERO
bin auto[12288:16383]01 ZERO
bin auto[16384:20479]41 Covered
bin auto[20480:24575]01 ZERO
bin auto[24576:28671]11 Covered
bin auto[28672:32767]01 ZERO
bin auto[32768:36863]01 ZERO
bin auto[36864:40959]01 ZERO
bin auto[40960:45055]01 ZERO
bin auto[45056:49151]01 ZERO
bin auto[49152:53247]11 Covered
bin auto[53248:57343]01 ZERO
bin auto[57344:61439]11 Covered
bin auto[61440:65535]01 ZERO
对应的cover代码是:
covergroup cov_trans @cov_transaction;
option.per_instance = 1;
trans_start_addr : coverpoint trans_collected.addr {
option.auto_bin_max = 16; }
trans_dir : coverpoint trans_collected.read_write;
trans_size : coverpoint trans_collected.size {
bins sizes[] = {1, 2, 4, 8};
illegal_bins invalid_sizes = default; }
trans_addrXdir : cross trans_start_addr, trans_dir;
trans_dirXsize : cross trans_dir, trans_size;
endgroup : cov_trans
auto_bin_max = 16 所以你的bin分成了十六组。
没有覆盖到不是因为cover代码的原因,应该尝试从testbench出发提高覆盖率。