mirror of
https://github.com/verilator/verilator.git
synced 2025-01-07 23:27:48 +00:00
95c4ade718
This patch adds some abstract enums to pass to the trace decl* APIs, so the VCD/FST specific code can be kept in verilated_{vcd,fst}_*.cc, and removed from V3Emit*. It also reworks the generation of the trace init functions (those that call 'decl*' for the signals) such that the scope hierarchy is traversed precisely once during initialization, which simplifies the FST writer. This later change also has the side effect of fixing tracing of nested interfaces when traced via an interface reference - see the change in the expected t_interface_ref_trace - which previously were missed.
31 lines
933 B
Perl
Executable File
31 lines
933 B
Perl
Executable File
#!/usr/bin/env perl
|
|
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
|
|
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
|
|
#
|
|
# Copyright 2003-2009 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.
|
|
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
|
|
|
|
scenarios(simulator => 1);
|
|
|
|
top_filename("t/t_interface_ref_trace.v");
|
|
# Should be the same as the inlined version, but might have declarations
|
|
# in a different order. Sadly vcddiff can't check equivalence
|
|
# golden_filename("t/t_interface_ref_trace.out");
|
|
|
|
compile(
|
|
verilator_flags2 => ['-fno-inline --trace-structs --trace'],
|
|
);
|
|
|
|
execute(
|
|
check_finished => 1,
|
|
);
|
|
|
|
vcd_identical($Self->trace_filename,
|
|
$Self->{golden_filename});
|
|
|
|
ok(1);
|
|
1;
|