forked from github/verilator
045ff25f80
Add very basic support for vpiModule. Basically it allows to traverse the module tree to find a variable etc. It does not support more than vpi_iterate and vpi_scan for vpiModule along basic operations like vpi_get_str on vpiModule. The support is added non-intrusively to non-VPI verilator runs. It essentially: - Tracks the creation of cell instances and keeps them alive until the emit phase. They are there converted to scopes if modules. - Emits empty (don't add anything during construction) VerilatedScopes for all inlined modules, only for those inlined modules that are on the hierarchical path to public variables. - Adds VerilatedHierarchy as abstraction to structure of the scopes. It is only created for VPI designs. It allows to traverse the hierarchy from the top (NULL). Signed-off-by: Stefan Wallentowitz <stefan@wallentowitz.de> Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
31 lines
861 B
Perl
Executable File
31 lines
861 B
Perl
Executable File
#!/usr/bin/perl
|
|
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
|
|
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
|
|
#
|
|
# Copyright 2010 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(simulator => 1);
|
|
|
|
skip("Known compiler limitation")
|
|
if $Self->cxx_version =~ /\(GCC\) 4.4/;
|
|
|
|
compile(
|
|
make_top_shell => 0,
|
|
make_main => 0,
|
|
make_pli => 1,
|
|
iv_flags2 => ["-g2005-sv -D USE_VPI_NOT_DPI"],
|
|
v_flags2 => ["+define+USE_VPI_NOT_DPI"],
|
|
verilator_flags2 => ["-CFLAGS '-DVL_DEBUG -ggdb' --exe --vpi --no-l2name $Self->{t_dir}/t_vpi_module.cpp"],
|
|
);
|
|
|
|
execute(
|
|
iv_pli => 1,
|
|
check_finished => 1
|
|
);
|
|
|
|
ok(1);
|
|
1;
|