2008-08-06 16:52:39 +00:00
|
|
|
#!/usr/bin/perl
|
2008-09-23 14:02:31 +00:00
|
|
|
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
|
2008-08-06 16:52:39 +00:00
|
|
|
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
|
|
|
|
#
|
2009-05-04 21:07:57 +00:00
|
|
|
# Copyright 2003-2009 by Wilson Snyder. This program is free software; you can
|
2008-08-06 16:52:39 +00:00
|
|
|
# redistribute it and/or modify it under the terms of either the GNU
|
2009-05-04 21:07:57 +00:00
|
|
|
# Lesser General Public License Version 3 or the Perl Artistic License
|
|
|
|
# Version 2.0.
|
2008-08-06 16:52:39 +00:00
|
|
|
|
|
|
|
top_filename("t/t_assert_cover.v");
|
|
|
|
|
|
|
|
compile (
|
2014-11-24 03:18:07 +00:00
|
|
|
verilator_flags2 => ['--assert --cc --coverage-user'],
|
2008-11-25 02:38:45 +00:00
|
|
|
nc_flags2 => ["+nccovoverwrite +nccoverage+all +nccovtest+$Self->{name}"]
|
2008-08-06 16:52:39 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
execute (
|
|
|
|
check_finished=>1,
|
|
|
|
);
|
|
|
|
|
2008-11-25 02:38:45 +00:00
|
|
|
if ($Self->{nc}) {
|
|
|
|
my $name = $Self->{name};
|
|
|
|
my $cf = "$Self->{obj_dir}/${name}__nccover.cf";
|
2008-08-06 16:52:39 +00:00
|
|
|
{
|
|
|
|
my $fh = IO::File->new(">$cf") or die "%Error: $! writing $cf,";
|
|
|
|
$fh->printf("report_summary -module *\n");
|
2008-11-12 20:29:44 +00:00
|
|
|
$fh->printf("report_detail -both -instance *\n");
|
2008-11-25 02:38:45 +00:00
|
|
|
$fh->printf("report_html -both -instance * > $Self->{obj_dir}/${name}__nccover.html\n");
|
2008-08-06 16:52:39 +00:00
|
|
|
$fh->close;
|
|
|
|
}
|
2017-09-23 12:50:39 +00:00
|
|
|
$Self->run(logfile=>"$Self->{obj_dir}/${name}__nccover.log",
|
|
|
|
tee=>0,
|
|
|
|
cmd=>[($ENV{VERILATOR_ICCR}||'iccr'),
|
|
|
|
"-test ${name} ${cf}"]);
|
2008-08-06 16:52:39 +00:00
|
|
|
}
|
|
|
|
|
2008-11-25 02:38:45 +00:00
|
|
|
file_grep ($Self->{run_log_filename}, qr/COVER: Cyc==4/);
|
|
|
|
file_grep ($Self->{run_log_filename}, qr/COVER: Cyc==5/);
|
|
|
|
file_grep ($Self->{run_log_filename}, qr/COVER: Cyc==6/);
|
2008-11-12 20:29:44 +00:00
|
|
|
|
|
|
|
# Allow old Perl format dump, or new binary dump
|
2008-11-25 02:38:45 +00:00
|
|
|
file_grep ($Self->{coverage_filename}, qr/(cyc_eq_5.*,c=>[^0]|cyc_eq_5.* [1-9][0-9]*\n)/);
|
2008-08-06 16:52:39 +00:00
|
|
|
|
|
|
|
ok(1);
|
|
|
|
1;
|