1
0

Update TestDriver module to support FSDB

Add support for FSDB waveform dumping using existing API.  Feature is enabled using +define+FSDB.

Change has not been fully regressed (i.e., please don't pull blindly).  Impact on existing knobs is minimal, should not affect existing functionality.  Automated Travis builds should be sufficient to assess.

Alternatively could using +define+VCS.  Chose to introduce new define because multiple simulators support FSDB dumping.
This commit is contained in:
Edmond Cote 2018-01-09 09:54:34 -08:00 committed by GitHub
parent 7fc8337cdb
commit 42e5e92d43
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -18,6 +18,7 @@ module TestDriver;
reg [63:0] max_cycles = 0; reg [63:0] max_cycles = 0;
reg [63:0] dump_start = 0; reg [63:0] dump_start = 0;
reg [63:0] trace_count = 0; reg [63:0] trace_count = 0;
reg [1023:0] fsdbfile = 0;
reg [1023:0] vcdplusfile = 0; reg [1023:0] vcdplusfile = 0;
reg [1023:0] vcdfile = 0; reg [1023:0] vcdfile = 0;
int unsigned rand_value; int unsigned rand_value;
@ -55,12 +56,28 @@ module TestDriver;
`endif `endif
end end
if ($value$plusargs("fsdbfile=%s", fsdbfile))
begin
`ifdef FSDB
$fsdbDumpfile(fsdbfile);
$fsdbDumpvars("+all");
//$fsdbDumpSVA;
`else
$fdisplay(stderr, "Error: +fsdbfile is FSDB-only; use +vcdfile or +vcdplus instead");
$fatal;
`endif
end
if ($value$plusargs("vcdfile=%s", vcdfile)) if ($value$plusargs("vcdfile=%s", vcdfile))
begin begin
$dumpfile(vcdfile); $dumpfile(vcdfile);
$dumpvars(0, testHarness); $dumpvars(0, testHarness);
end end
`ifdef VCS
`ifdef FSDB
`define VCDPLUSON $fsdbDumpon;
`define VCDPLUSCLOSE $fsdbDumpoff;
`elsif VCS
`define VCDPLUSON $vcdpluson(0); $vcdplusmemon(0); `define VCDPLUSON $vcdpluson(0); $vcdplusmemon(0);
`define VCDPLUSCLOSE $vcdplusclose; $dumpoff; `define VCDPLUSCLOSE $vcdplusclose; $dumpoff;
`else `else
@ -72,9 +89,9 @@ module TestDriver;
`define VCDPLUSON `define VCDPLUSON
`define VCDPLUSCLOSE `define VCDPLUSCLOSE
if ($test$plusargs("vcdplusfile=") || $test$plusargs("vcdfile=")) if ($test$plusargs("vcdplusfile=") || $test$plusargs("vcdfile=") || $test$plusargs("fsdbfile="))
begin begin
$fdisplay(stderr, "Error: +vcdfile or +vcdplusfile requested but compile did not have +define+DEBUG enabled"); $fdisplay(stderr, "Error: +vcdfile, +vcdplusfile, or +fsdbfile requested but compile did not have +define+DEBUG enabled");
$fatal; $fatal;
end end