Support FST tracing in hierarchical verilation (#3251)

* Rename t_hier_block_trace -> t_hier_block_trace_vcd

* Add t_hir_block_trace_fst test

* Support FST dump with hierarchical verilation
This commit is contained in:
Yutetsu TAKATSUKASA 2021-12-18 16:57:28 +09:00 committed by GitHub
parent 5e3016f34a
commit 30ccccdb67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 6830 additions and 3 deletions

View File

@ -410,9 +410,9 @@ private:
+ "_protectlib_trace(void* vhandlep__V, void* tfp, int levels, "
"int options) {\n");
castPtr(fl, txtp);
txtp->addText(
fl,
/**/ "handlep__V->trace(static_cast<VerilatedVcdC*>(tfp), levels, options);\n");
txtp->addText(fl,
/**/ "handlep__V->trace(static_cast<" + v3Global.opt.traceClassBase()
+ "C*>(tfp), levels, options);\n");
txtp->addText(fl, "}\n\n");
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
#!/usr/bin/perl
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2003 by Wilson Snyder. This program is free software; you can
# redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
scenarios(vlt_all => 1);
top_filename("t/t_hier_block.v");
# CI environment offers 2 VCPUs, 2 thread setting causes the following warning.
# %Warning-UNOPTTHREADS: Thread scheduler is unable to provide requested parallelism; consider asking for fewer threads.
# So use 6 threads here though it's not optimal in performace wise, but ok.
compile(
v_flags2 => ['t/t_hier_block.cpp'],
verilator_flags2 => [($Self->{vltmt} ? ' --threads 6' : ''),
'--hierarchical',
'--Wno-TIMESCALEMOD',
'--trace-fst',
'--no-trace-underscore', # To avoid handle mismatches
],
);
execute(
check_finished => 1,
);
fst_identical($Self->trace_filename, $Self->{golden_filename});
ok(1);
1;