[Pkg-electronics-commits] [verilator] 01/05: Imported Upstream version 3.855
أحمد المحمودي (Ahmed El-Mahmoudy)
aelmahmoudy at sabily.org
Wed Jan 29 15:57:12 UTC 2014
This is an automated email from the git hooks/post-receive script.
aelmahmoudy-guest pushed a commit to branch master
in repository verilator.
commit e127a7c0b4a9394c37451089dfa24fc8b9789aaf
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date: Mon Jan 27 10:42:05 2014 +0200
Imported Upstream version 3.855
---
Changes | 19 +-
Makefile.in | 2 +-
README | 2 +-
README.html | 2 +-
README.pdf | Bin 112233 -> 111871 bytes
TODO | 2 +-
bin/verilator | 16 +-
bin/verilator_difftree | 2 +-
bin/verilator_includer | 2 +-
bin/verilator_profcfunc | 2 +-
configure | 18 +-
configure.ac | 4 +-
include/verilated.cpp | 2 +-
include/verilated.h | 2 +-
include/verilated.mk.in | 2 +-
include/verilated.v | 2 +-
include/verilated_config.h | 4 +-
include/verilated_config.h.in | 2 +-
include/verilated_dpi.cpp | 2 +-
include/verilated_dpi.h | 2 +-
include/verilated_heavy.h | 2 +-
include/verilated_imp.h | 2 +-
include/verilated_save.cpp | 2 +-
include/verilated_save.h | 2 +-
include/verilated_sc.h | 2 +-
include/verilated_syms.h | 2 +-
include/verilated_vcd_c.cpp | 2 +-
include/verilated_vcd_c.h | 2 +-
include/verilated_vcd_sc.cpp | 2 +-
include/verilated_vcd_sc.h | 2 +-
include/verilated_vpi.cpp | 2 +-
include/verilated_vpi.h | 2 +-
include/verilatedos.h | 11 +-
internals.html | 2 +-
internals.pdf | Bin 195589 -> 195228 bytes
internals.pod | 2 +-
internals.txt | 2 +-
readme.pod | 2 +-
src/.gdbinit | 2 +-
src/Makefile.in | 2 +-
src/Makefile_obj.in | 2 +-
src/V3Active.cpp | 2 +-
src/V3Active.h | 2 +-
src/V3ActiveTop.cpp | 2 +-
src/V3ActiveTop.h | 2 +-
src/V3Assert.cpp | 2 +-
src/V3Assert.h | 2 +-
src/V3AssertPre.cpp | 2 +-
src/V3AssertPre.h | 2 +-
src/V3Ast.cpp | 2 +-
src/V3Ast.h | 2 +-
src/V3AstNodes.cpp | 9 +-
src/V3AstNodes.h | 79 ++++---
src/V3Begin.cpp | 2 +-
src/V3Begin.h | 2 +-
src/V3Branch.cpp | 2 +-
src/V3Branch.h | 2 +-
src/V3Broken.cpp | 2 +-
src/V3Broken.h | 2 +-
src/V3Case.cpp | 2 +-
src/V3Case.h | 2 +-
src/V3Cast.cpp | 2 +-
src/V3Cast.h | 2 +-
src/V3Cdc.cpp | 2 +-
src/V3Cdc.h | 2 +-
src/V3Changed.cpp | 2 +-
src/V3Changed.h | 2 +-
src/V3Clean.cpp | 2 +-
src/V3Clean.h | 2 +-
src/V3ClkGater.cpp | 2 +-
src/V3ClkGater.h | 2 +-
src/V3Clock.cpp | 2 +-
src/V3Clock.h | 2 +-
src/V3Combine.cpp | 2 +-
src/V3Combine.h | 2 +-
src/V3Config.cpp | 2 +-
src/V3Config.h | 2 +-
src/V3Const.cpp | 2 +-
src/V3Const.h | 2 +-
src/V3Coverage.cpp | 2 +-
src/V3Coverage.h | 2 +-
src/V3CoverageJoin.cpp | 2 +-
src/V3CoverageJoin.h | 2 +-
src/V3Dead.cpp | 6 +-
src/V3Dead.h | 2 +-
src/V3Delayed.cpp | 2 +-
src/V3Delayed.h | 2 +-
src/V3Depth.cpp | 2 +-
src/V3Depth.h | 2 +-
src/V3DepthBlock.cpp | 2 +-
src/V3DepthBlock.h | 2 +-
src/V3Descope.cpp | 2 +-
src/V3Descope.h | 2 +-
src/V3EmitC.cpp | 30 +--
src/V3EmitC.h | 2 +-
src/V3EmitCBase.h | 2 +-
src/V3EmitCInlines.cpp | 2 +-
src/V3EmitCSyms.cpp | 2 +-
src/V3EmitMk.cpp | 2 +-
src/V3EmitMk.h | 2 +-
src/V3EmitV.cpp | 2 +-
src/V3EmitV.h | 2 +-
src/V3EmitXml.cpp | 2 +-
src/V3EmitXml.h | 2 +-
src/V3Error.cpp | 2 +-
src/V3Error.h | 2 +-
src/V3Expand.cpp | 2 +-
src/V3Expand.h | 2 +-
src/V3File.cpp | 2 +-
src/V3File.h | 6 +-
src/V3Gate.cpp | 2 +-
src/V3Gate.h | 2 +-
src/V3GenClk.cpp | 2 +-
src/V3GenClk.h | 2 +-
src/V3Global.h | 2 +-
src/V3Graph.cpp | 2 +-
src/V3Graph.h | 2 +-
src/V3GraphAcyc.cpp | 2 +-
src/V3GraphAlg.cpp | 2 +-
src/V3GraphAlg.h | 2 +-
src/V3GraphDfa.cpp | 2 +-
src/V3GraphDfa.h | 2 +-
src/V3GraphTest.cpp | 2 +-
src/V3Hashed.cpp | 2 +-
src/V3Hashed.h | 2 +-
src/V3Inline.cpp | 2 +-
src/V3Inline.h | 2 +-
src/V3Inst.cpp | 2 +-
src/V3Inst.h | 2 +-
src/V3LangCode.h | 2 +-
src/V3LanguageWords.h | 2 +-
src/V3Life.cpp | 2 +-
src/V3Life.h | 2 +-
src/V3LifePost.cpp | 2 +-
src/V3LifePost.h | 2 +-
src/V3LinkCells.cpp | 3 +-
src/V3LinkCells.h | 2 +-
src/V3LinkDot.cpp | 31 ++-
src/V3LinkDot.h | 2 +-
src/V3LinkJump.cpp | 2 +-
src/V3LinkJump.h | 2 +-
src/V3LinkLValue.cpp | 2 +-
src/V3LinkLValue.h | 2 +-
src/V3LinkLevel.cpp | 2 +-
src/V3LinkLevel.h | 2 +-
src/V3LinkParse.cpp | 2 +-
src/V3LinkParse.h | 2 +-
src/V3LinkResolve.cpp | 2 +-
src/V3LinkResolve.h | 2 +-
src/V3List.h | 2 +-
src/V3Localize.cpp | 2 +-
src/V3Localize.h | 2 +-
src/V3Name.cpp | 2 +-
src/V3Name.h | 2 +-
src/V3Number.cpp | 2 +-
src/V3Number.h | 2 +-
src/V3Number_test.cpp | 2 +-
src/V3Options.cpp | 6 +-
src/V3Options.h | 4 +-
src/V3Order.cpp | 2 +-
src/V3Order.h | 2 +-
src/V3OrderGraph.h | 2 +-
src/V3Param.cpp | 2 +-
src/V3Param.h | 2 +-
src/V3Parse.h | 2 +-
src/V3ParseGrammar.cpp | 2 +-
src/V3ParseImp.cpp | 2 +-
src/V3ParseImp.h | 3 +-
src/V3ParseLex.cpp | 2 +-
src/V3ParseSym.h | 2 +-
src/V3PreLex.h | 2 +-
src/V3PreLex.l | 2 +-
src/V3PreProc.cpp | 2 +-
src/V3PreProc.h | 2 +-
src/V3PreShell.cpp | 2 +-
src/V3PreShell.h | 2 +-
src/V3Premit.cpp | 2 +-
src/V3Premit.h | 2 +-
src/V3Scope.cpp | 7 +-
src/V3Scope.h | 2 +-
src/V3SenTree.h | 2 +-
src/V3Simulate.h | 2 +-
src/V3Slice.cpp | 2 +-
src/V3Slice.h | 2 +-
src/V3Split.cpp | 2 +-
src/V3Split.h | 2 +-
src/V3SplitAs.cpp | 2 +-
src/V3SplitAs.h | 2 +-
src/V3Stats.cpp | 2 +-
src/V3Stats.h | 2 +-
src/V3StatsReport.cpp | 2 +-
src/V3String.cpp | 2 +-
src/V3String.h | 2 +-
src/V3Subst.cpp | 2 +-
src/V3Subst.h | 2 +-
src/V3SymTable.h | 2 +-
src/V3Table.cpp | 2 +-
src/V3Table.h | 2 +-
src/V3Task.cpp | 2 +-
src/V3Task.h | 2 +-
src/V3Trace.cpp | 2 +-
src/V3Trace.h | 2 +-
src/V3TraceDecl.cpp | 191 ++++++++++++---
src/V3TraceDecl.h | 2 +-
src/V3Tristate.cpp | 2 +-
src/V3Tristate.h | 2 +-
src/V3Undriven.cpp | 2 +-
src/V3Undriven.h | 2 +-
src/V3Unknown.cpp | 2 +-
src/V3Unknown.h | 2 +-
src/V3Unroll.cpp | 2 +-
src/V3Unroll.h | 2 +-
src/V3Width.cpp | 2 +-
src/V3Width.h | 2 +-
src/V3WidthCommit.h | 2 +-
src/V3WidthSel.cpp | 2 +-
src/Verilator.cpp | 2 +-
src/astgen | 2 +-
src/bisonpre | 2 +-
src/config_build.h | 4 +-
src/config_build.h.in | 2 +-
src/config_rev.h | 2 +-
src/config_rev.pl | 2 +-
src/flexfix | 2 +-
src/pod2latexfix | 2 +-
src/verilog.l | 2 +-
src/verilog.y | 26 ++-
test_c/Makefile | 2 +-
test_c/Makefile_obj | 2 +-
test_c/sim_main.cpp | 2 +-
test_regress/Makefile | 2 +-
test_regress/Makefile_obj | 2 +-
test_regress/driver.pl | 4 +-
test_regress/t/TestSimulator.h | 2 +-
test_regress/t/TestVpi.h | 2 +-
...ked_value_list.pl => t_array_pattern_packed.pl} | 6 +-
...acked_value_list.v => t_array_pattern_packed.v} | 28 +++
...d_value_list.pl => t_array_pattern_unpacked.pl} | 6 +-
test_regress/t/t_array_pattern_unpacked.v | 34 +++
...value_list.pl => t_interface1_modport_trace.pl} | 11 +-
...value_list.pl => t_interface_modport_export.pl} | 8 +-
test_regress/t/t_interface_modport_export.v | 74 ++++++
...value_list.pl => t_interface_modport_import.pl} | 8 +-
test_regress/t/t_interface_modport_import.v | 58 +++++
test_regress/t/t_lint_pindup_bad.pl | 4 +-
test_regress/t/t_mem_multiwire.v | 1 +
...packed_value_list.pl => t_struct_init_trace.pl} | 7 +-
test_regress/t/t_trace_complex.out | 148 ++++++++++++
test_regress/t/t_trace_complex.pl | 31 +++
test_regress/t/t_trace_complex.v | 67 ++++++
test_regress/t/t_trace_complex_structs.out | 260 +++++++++++++++++++++
test_regress/t/t_trace_complex_structs.pl | 33 +++
test_sc/Makefile | 2 +-
test_sc/Makefile_obj | 2 +-
test_sc/sc_main.cpp | 2 +-
test_sp/Makefile | 2 +-
test_sp/Makefile_obj | 2 +-
test_vcs/Makefile | 2 +-
test_verilated/sim_main.cpp | 2 +-
test_verilated/sim_main.v | 2 +-
test_verilated/vgen.pl | 2 +-
verilator.1 | 15 +-
verilator.html | 2 +-
verilator.pdf | Bin 389267 -> 388823 bytes
verilator.txt | 2 +-
265 files changed, 1347 insertions(+), 379 deletions(-)
diff --git a/Changes b/Changes
index 7e4abe5..0d4db6b 100644
--- a/Changes
+++ b/Changes
@@ -3,6 +3,23 @@ Revision history for Verilator
The contributors that suggested a given feature are shown in []. [by ...]
indicates the contributor was also the author of the fix; Thanks!
+* Verilator 3.855 2014-01-18
+
+*** Support modport import, bug696. [Jeremy Bennett]
+
+*** Add --trace-structs to show struct names, bug673. [Chris Randall]
+
+**** Fix tracing of packed structs, bug705. [Jie Xu]
+
+**** Fix --lint-only with MinGW, msg1283. [HyungKi Jeong]
+
+**** Fix some delayed assignments of typedefed unpacked arrays.
+
+**** Fix wire declarations with size and not range, bug466. [Alex Solomatnikov]
+
+**** Fix parameter pin vs. normal pin error, bug704. [Alex Solomatnikov]
+
+
* Verilator 3.854 2013-11-26
*** Add UNPACKED warning to convert unpacked structs. [Jeremy Bennett]
@@ -2303,7 +2320,7 @@ of input ports exists for tracing.
This uses outline mode in Emacs. See C-h m [M-x describe-mode].
-Copyright 2001-2013 by Wilson Snyder. This program is free software; you
+Copyright 2001-2014 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.
diff --git a/Makefile.in b/Makefile.in
index beac5c1..5f4f72a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -9,7 +9,7 @@
#
#*****************************************************************************
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/README b/README
index ab36570..d225e3e 100644
--- a/README
+++ b/README
@@ -4,7 +4,7 @@ NAME
DISTRIBUTION
- This package is Copyright 2003-2013 by Wilson Snyder. (Report bugs to
+ This package is Copyright 2003-2014 by Wilson Snyder. (Report bugs to
<http://www.veripool.org/>.)
Verilator is free software; you can redistribute it and/or modify it
diff --git a/README.html b/README.html
index c2ead5b..6e354fd 100644
--- a/README.html
+++ b/README.html
@@ -39,7 +39,7 @@
</p>
<hr />
<h1><a name="distribution">DISTRIBUTION</a></h1>
-<p>This package is Copyright 2003-2013 by Wilson Snyder. (Report bugs to
+<p>This package is Copyright 2003-2014 by Wilson Snyder. (Report bugs to
<a href="http://www.veripool.org/">http://www.veripool.org/</a>.)</p>
<p>Verilator 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
diff --git a/README.pdf b/README.pdf
index 2ca3927..f40b49f 100644
Binary files a/README.pdf and b/README.pdf differ
diff --git a/TODO b/TODO
old mode 100644
new mode 100755
index cd5bbdc..5a03225
--- a/TODO
+++ b/TODO
@@ -1,6 +1,6 @@
// DESCRIPTION: Verilator: List of To Do issues.
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/bin/verilator b/bin/verilator
index 2a607c0..a770e8a 100755
--- a/bin/verilator
+++ b/bin/verilator
@@ -3,7 +3,7 @@ eval 'exec perl -wS $0 ${1+"$@"}'
if 0;
######################################################################
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you
+# Copyright 2003-2014 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.
@@ -325,6 +325,7 @@ descriptions in the next sections for more information.
--trace-depth <levels> Depth of tracing
--trace-max-array <depth> Maximum bit width for tracing
--trace-max-width <width> Maximum array depth for tracing
+ --trace-structs Enable tracing structure names
--trace-underscore Enable tracing of _signals
-U<var> Undefine preprocessor define
--unroll-count <loops> Tune maximum loop iterations
@@ -754,7 +755,9 @@ to gcc -MP option.
=item --Mdir I<directory>
Specifies the name of the Make object directory. All generated files will
-be placed in this directory. If not specified, "obj_dir" is used.
+be placed in this directory. If not specified, "obj_dir" is used. The
+directory is created if it does not exist and the parent directories exist;
+otherwise manually create the Mdir before calling Verilator.
=item --mod-prefix I<topname>
@@ -1019,6 +1022,13 @@ Rarely needed. Specify the maximum bit width of a signal that may be
traced. Defaults to 256, as tracing large vectors may greatly slow traced
simulations.
+=item --trace-structs
+
+Enable tracing to show the name of packed structure, union, and packed
+array fields, rather than a simgle combined packed bus. Due to VCD file
+format constraints this may result in significantly slower trace times and
+larger trace files.
+
=item --trace-underscore
Enable tracing of signals that start with an underscore. Normally, these
@@ -3821,7 +3831,7 @@ Thanks to them, and all those we've missed including above.
The latest version is available from L<http://www.veripool.org/>.
-Copyright 2003-2013 by Wilson Snyder. Verilator is free software; you can
+Copyright 2003-2014 by Wilson Snyder. Verilator is free software; you can
redistribute it and/or modify the Verilator internals under the terms of
either the GNU Lesser General Public License Version 3 or the Perl Artistic
License Version 2.0.
diff --git a/bin/verilator_difftree b/bin/verilator_difftree
index ee16d0b..2b01169 100755
--- a/bin/verilator_difftree
+++ b/bin/verilator_difftree
@@ -235,7 +235,7 @@ Do not show differences in line numbering.
The latest version is available from L<http://www.veripool.org/verilator>.
-Copyright 2005-2013 by Wilson Snyder. This package is free software; you can
+Copyright 2005-2014 by Wilson Snyder. This package 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.
diff --git a/bin/verilator_includer b/bin/verilator_includer
index 038f4d4..28d50c8 100755
--- a/bin/verilator_includer
+++ b/bin/verilator_includer
@@ -3,7 +3,7 @@ eval 'exec perl -wS $0 ${1+"$@"}'
if 0;
# DESCRIPTION: Print include statements for each ARGV
#
-# Copyright 2003-2013 by Wilson Snyder. This package is free software; you can
+# Copyright 2003-2014 by Wilson Snyder. This package 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.
######################################################################
diff --git a/bin/verilator_profcfunc b/bin/verilator_profcfunc
index f68650f..46d253a 100755
--- a/bin/verilator_profcfunc
+++ b/bin/verilator_profcfunc
@@ -208,7 +208,7 @@ Displays this message and program version and exits.
The latest version is available from L<http://www.veripool.org/>.
-Copyright 2007-2013 by Wilson Snyder. Verilator is free software; you can
+Copyright 2007-2014 by Wilson Snyder. Verilator 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.
diff --git a/configure b/configure
index 31abbfd..51dca69 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for Verilator 3.854 2013-11-26.
+# Generated by GNU Autoconf 2.68 for Verilator 3.855 2014-01-18.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -557,8 +557,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Verilator'
PACKAGE_TARNAME='verilator'
-PACKAGE_VERSION='3.854 2013-11-26'
-PACKAGE_STRING='Verilator 3.854 2013-11-26'
+PACKAGE_VERSION='3.855 2014-01-18'
+PACKAGE_STRING='Verilator 3.855 2014-01-18'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1223,7 +1223,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Verilator 3.854 2013-11-26 to adapt to many kinds of systems.
+\`configure' configures Verilator 3.855 2014-01-18 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1284,7 +1284,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Verilator 3.854 2013-11-26:";;
+ short | recursive ) echo "Configuration of Verilator 3.855 2014-01-18:";;
esac
cat <<\_ACEOF
@@ -1376,7 +1376,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Verilator configure 3.854 2013-11-26
+Verilator configure 3.855 2014-01-18
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1633,7 +1633,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Verilator $as_me 3.854 2013-11-26, which was
+It was created by Verilator $as_me 3.855 2014-01-18, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -4565,7 +4565,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Verilator $as_me 3.854 2013-11-26, which was
+This file was extended by Verilator $as_me 3.855 2014-01-18, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -4627,7 +4627,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Verilator config.status 3.854 2013-11-26
+Verilator config.status 3.855 2014-01-18
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 02cc927..581368a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,12 +1,12 @@
# DESCRIPTION: Process this file with autoconf to produce a configure script.
#
-# Copyright 2003-2013 by Wilson Snyder. Verilator is free software; you can
+# Copyright 2003-2014 by Wilson Snyder. Verilator 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.
#AC_INIT([Verilator],[#.### YYYY-MM-DD])
#AC_INIT([Verilator],[#.### devel])
-AC_INIT([Verilator],[3.854 2013-11-26])
+AC_INIT([Verilator],[3.855 2014-01-18])
AC_CONFIG_HEADER(src/config_build.h)
AC_CONFIG_FILES(Makefile src/Makefile src/Makefile_obj include/verilated.mk include/verilated_config.h)
diff --git a/include/verilated.cpp b/include/verilated.cpp
index b2a098b..cb1ad54 100644
--- a/include/verilated.cpp
+++ b/include/verilated.cpp
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/include/verilated.h b/include/verilated.h
index 541457c..36237a4 100644
--- a/include/verilated.h
+++ b/include/verilated.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/include/verilated.mk.in b/include/verilated.mk.in
index 7278a2d..f609460 100644
--- a/include/verilated.mk.in
+++ b/include/verilated.mk.in
@@ -2,7 +2,7 @@
######################################################################
# DESCRIPTION: Makefile commands for all verilated target files
#
-# Copyright 2003-2013 by Wilson Snyder. Verilator is free software; you can
+# Copyright 2003-2014 by Wilson Snyder. Verilator 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.
######################################################################
diff --git a/include/verilated.v b/include/verilated.v
index ab2238e..5f6cc26 100644
--- a/include/verilated.v
+++ b/include/verilated.v
@@ -4,7 +4,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/include/verilated_config.h b/include/verilated_config.h
index 4952cf0..de487ee 100644
--- a/include/verilated_config.h
+++ b/include/verilated_config.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2003-2012 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -25,4 +25,4 @@
// Autoconf substitutes this with the strings from AC_INIT.
#define VERILATOR_PRODUCT "Verilator"
-#define VERILATOR_VERSION "3.854 2013-11-26"
+#define VERILATOR_VERSION "3.855 2014-01-18"
diff --git a/include/verilated_config.h.in b/include/verilated_config.h.in
index a9d63cc..0fa8a7f 100644
--- a/include/verilated_config.h.in
+++ b/include/verilated_config.h.in
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2003-2012 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/include/verilated_dpi.cpp b/include/verilated_dpi.cpp
index ba96500..bbac159 100644
--- a/include/verilated_dpi.cpp
+++ b/include/verilated_dpi.cpp
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2009-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2009-2014 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.
diff --git a/include/verilated_dpi.h b/include/verilated_dpi.h
index bf731d1..2fba964 100644
--- a/include/verilated_dpi.h
+++ b/include/verilated_dpi.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/include/verilated_heavy.h b/include/verilated_heavy.h
index ec86151..940c669 100644
--- a/include/verilated_heavy.h
+++ b/include/verilated_heavy.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2010-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2010-2014 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.
diff --git a/include/verilated_imp.h b/include/verilated_imp.h
index 8fe20e1..ed3f46e 100644
--- a/include/verilated_imp.h
+++ b/include/verilated_imp.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2009-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2009-2014 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.
diff --git a/include/verilated_save.cpp b/include/verilated_save.cpp
index 0694dca..b307ef4 100644
--- a/include/verilated_save.cpp
+++ b/include/verilated_save.cpp
@@ -3,7 +3,7 @@
//
// THIS MODULE IS PUBLICLY LICENSED
//
-// Copyright 2001-2013 by Wilson Snyder. This program is free software;
+// Copyright 2001-2014 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.
//
diff --git a/include/verilated_save.h b/include/verilated_save.h
index 72cf890..26c8e18 100644
--- a/include/verilated_save.h
+++ b/include/verilated_save.h
@@ -3,7 +3,7 @@
//
// THIS MODULE IS PUBLICLY LICENSED
//
-// Copyright 2012-2013 by Wilson Snyder. This program is free software;
+// Copyright 2012-2014 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.
//
diff --git a/include/verilated_sc.h b/include/verilated_sc.h
index 889e7e5..f27d29a 100644
--- a/include/verilated_sc.h
+++ b/include/verilated_sc.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2009-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2009-2014 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.
diff --git a/include/verilated_syms.h b/include/verilated_syms.h
index 81957b4..7284205 100644
--- a/include/verilated_syms.h
+++ b/include/verilated_syms.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/include/verilated_vcd_c.cpp b/include/verilated_vcd_c.cpp
index 469fecf..e03b608 100644
--- a/include/verilated_vcd_c.cpp
+++ b/include/verilated_vcd_c.cpp
@@ -3,7 +3,7 @@
//
// THIS MODULE IS PUBLICLY LICENSED
//
-// Copyright 2001-2013 by Wilson Snyder. This program is free software;
+// Copyright 2001-2014 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.
//
diff --git a/include/verilated_vcd_c.h b/include/verilated_vcd_c.h
index 03af5f2..f6c62ef 100644
--- a/include/verilated_vcd_c.h
+++ b/include/verilated_vcd_c.h
@@ -3,7 +3,7 @@
//
// THIS MODULE IS PUBLICLY LICENSED
//
-// Copyright 2001-2013 by Wilson Snyder. This program is free software;
+// Copyright 2001-2014 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.
//
diff --git a/include/verilated_vcd_sc.cpp b/include/verilated_vcd_sc.cpp
index 5fc3ad0..a6935c4 100644
--- a/include/verilated_vcd_sc.cpp
+++ b/include/verilated_vcd_sc.cpp
@@ -3,7 +3,7 @@
//
// THIS MODULE IS PUBLICLY LICENSED
//
-// Copyright 2001-2013 by Wilson Snyder. This program is free software;
+// Copyright 2001-2014 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.
//
diff --git a/include/verilated_vcd_sc.h b/include/verilated_vcd_sc.h
index 2778ac1..9ae96cd 100644
--- a/include/verilated_vcd_sc.h
+++ b/include/verilated_vcd_sc.h
@@ -3,7 +3,7 @@
//
// THIS MODULE IS PUBLICLY LICENSED
//
-// Copyright 2001-2013 by Wilson Snyder. This program is free software;
+// Copyright 2001-2014 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.
//
diff --git a/include/verilated_vpi.cpp b/include/verilated_vpi.cpp
index c5906e0..b35c0f8 100644
--- a/include/verilated_vpi.cpp
+++ b/include/verilated_vpi.cpp
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2009-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2009-2014 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.
diff --git a/include/verilated_vpi.h b/include/verilated_vpi.h
index a045d82..af01db3 100644
--- a/include/verilated_vpi.h
+++ b/include/verilated_vpi.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2009-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2009-2014 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.
diff --git a/include/verilatedos.h b/include/verilatedos.h
index e419cfc..f804ebf 100644
--- a/include/verilatedos.h
+++ b/include/verilatedos.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -190,6 +190,15 @@ typedef unsigned long long vluint64_t; ///< 64-bit unsigned type
#endif
//=========================================================================
+// File system functions
+
+#ifdef _WIN32
+# define VL_DEV_NULL "nul"
+#else // Linux or compliant Unix flavors
+# define VL_DEV_NULL "/dev/null"
+#endif
+
+//=========================================================================
// Integer size macros
#define VL_BYTESIZE 8 ///< Bits in a byte
diff --git a/internals.html b/internals.html
index 3cce03d..0e59b7c 100644
--- a/internals.html
+++ b/internals.html
@@ -730,7 +730,7 @@ in <code>src/Makefile_obj.in</code> and reconfigure.</p>
<hr />
<h1><a name="distribution">DISTRIBUTION</a></h1>
<p>The latest version is available from <a href="http://www.veripool.org/">http://www.veripool.org/</a>.</p>
-<p>Copyright 2008-2013 by Wilson Snyder. Verilator is free software; you can
+<p>Copyright 2008-2014 by Wilson Snyder. Verilator 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.</p>
diff --git a/internals.pdf b/internals.pdf
index 4c9e757..7303416 100644
Binary files a/internals.pdf and b/internals.pdf differ
diff --git a/internals.pod b/internals.pod
index db71ec6..5402595 100644
--- a/internals.pod
+++ b/internals.pod
@@ -748,7 +748,7 @@ in C<src/Makefile_obj.in> and reconfigure.
The latest version is available from L<http://www.veripool.org/>.
-Copyright 2008-2013 by Wilson Snyder. Verilator is free software; you can
+Copyright 2008-2014 by Wilson Snyder. Verilator 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.
diff --git a/internals.txt b/internals.txt
index 55ef43c..a47cbf0 100644
--- a/internals.txt
+++ b/internals.txt
@@ -684,7 +684,7 @@ DISTRIBUTION
The latest version is available from <http://www.veripool.org/>.
- Copyright 2008-2013 by Wilson Snyder. Verilator is free software; you
+ Copyright 2008-2014 by Wilson Snyder. Verilator 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.
diff --git a/readme.pod b/readme.pod
index beef0a0..d4340f0 100644
--- a/readme.pod
+++ b/readme.pod
@@ -9,7 +9,7 @@ This is the Verilator Package README file.
=head1 DISTRIBUTION
-This package is Copyright 2003-2013 by Wilson Snyder. (Report bugs to
+This package is Copyright 2003-2014 by Wilson Snyder. (Report bugs to
L<http://www.veripool.org/>.)
Verilator is free software; you can redistribute it and/or modify it under
diff --git a/src/.gdbinit b/src/.gdbinit
index de59c94..b866d98 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -1,6 +1,6 @@
# DESCRIPTION: Verilator: GDB startup file with useful defines
#
-# Copyright 2012-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2012-2014 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.
diff --git a/src/Makefile.in b/src/Makefile.in
index 86fc05f..efdd7b4 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -7,7 +7,7 @@
#
#*****************************************************************************
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/src/Makefile_obj.in b/src/Makefile_obj.in
index aadc2dc..57685d9 100644
--- a/src/Makefile_obj.in
+++ b/src/Makefile_obj.in
@@ -7,7 +7,7 @@
#
#*****************************************************************************
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/src/V3Active.cpp b/src/V3Active.cpp
index f221cf4..8488b51 100644
--- a/src/V3Active.cpp
+++ b/src/V3Active.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Active.h b/src/V3Active.h
index 17883e4..6104fde 100644
--- a/src/V3Active.h
+++ b/src/V3Active.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3ActiveTop.cpp b/src/V3ActiveTop.cpp
index 075941e..9509875 100644
--- a/src/V3ActiveTop.cpp
+++ b/src/V3ActiveTop.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3ActiveTop.h b/src/V3ActiveTop.h
index 5836c34..2382aa9 100644
--- a/src/V3ActiveTop.h
+++ b/src/V3ActiveTop.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Assert.cpp b/src/V3Assert.cpp
index f42e24c..c202bcc 100644
--- a/src/V3Assert.cpp
+++ b/src/V3Assert.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3Assert.h b/src/V3Assert.h
index a0e22cd..5dfab72 100644
--- a/src/V3Assert.h
+++ b/src/V3Assert.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3AssertPre.cpp b/src/V3AssertPre.cpp
index 534764b..f80775b 100644
--- a/src/V3AssertPre.cpp
+++ b/src/V3AssertPre.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3AssertPre.h b/src/V3AssertPre.h
index 68c780c..f9cd0d4 100644
--- a/src/V3AssertPre.h
+++ b/src/V3AssertPre.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3Ast.cpp b/src/V3Ast.cpp
index 300c7f0..16a52b0 100644
--- a/src/V3Ast.cpp
+++ b/src/V3Ast.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Ast.h b/src/V3Ast.h
index 4fa3924..d796062 100644
--- a/src/V3Ast.h
+++ b/src/V3Ast.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3AstNodes.cpp b/src/V3AstNodes.cpp
index 178d8ff..ac3ec93 100644
--- a/src/V3AstNodes.cpp
+++ b/src/V3AstNodes.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -753,6 +753,13 @@ void AstJumpGo::dump(ostream& str) {
if (labelp()) { labelp()->dump(str); }
else { str<<"%Error:UNLINKED"; }
}
+void AstModportFTaskRef::dump(ostream& str) {
+ this->AstNode::dump(str);
+ if (isExport()) str<<" EXPORT";
+ if (isImport()) str<<" IMPORT";
+ if (ftaskp()) { str<<" -> "; ftaskp()->dump(str); }
+ else { str<<" -> UNLINKED"; }
+}
void AstModportVarRef::dump(ostream& str) {
this->AstNode::dump(str);
str<<" "<<varType();
diff --git a/src/V3AstNodes.h b/src/V3AstNodes.h
index 147501b..b6552fd 100644
--- a/src/V3AstNodes.h
+++ b/src/V3AstNodes.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -685,9 +685,9 @@ private:
unsigned m_start;
unsigned m_length;
void init(AstNode* fromp) {
- if (fromp && fromp->dtypep()->castNodeArrayDType()) {
+ if (fromp && fromp->dtypep()->skipRefp()->castNodeArrayDType()) {
// Strip off array to find what array references
- dtypeFrom(fromp->dtypep()->castNodeArrayDType()->subDTypep());
+ dtypeFrom(fromp->dtypep()->skipRefp()->castNodeArrayDType()->subDTypep());
}
}
public:
@@ -1273,17 +1273,18 @@ private:
int m_pinNum; // Pin number
string m_name; // Pin name, or "" for number based interconnect
AstVar* m_modVarp; // Input/output this pin connects to on submodule.
+ bool m_param; // Pin connects to parameter
bool m_svImplicit; // Pin is SystemVerilog .name'ed
public:
AstPin(FileLine* fl, int pinNum, const string& name, AstNode* exprp)
:AstNode(fl)
- ,m_name(name), m_svImplicit(false) {
+ ,m_name(name), m_param(false), m_svImplicit(false) {
m_pinNum = pinNum;
m_modVarp = NULL;
setNOp1p(exprp);
}
AstPin(FileLine* fl, int pinNum, AstVarRef* varname, AstNode* exprp)
- :AstNode(fl), m_svImplicit(false) {
+ :AstNode(fl), m_param(false), m_svImplicit(false) {
m_name = varname->name();
m_pinNum = pinNum;
m_modVarp = NULL;
@@ -1300,7 +1301,9 @@ public:
AstNode* exprp() const { return op1p()->castNode(); } // op1 = Expression connected to pin, NULL if unconnected
AstVar* modVarp() const { return m_modVarp; } // [After Link] Pointer to variable
void modVarp(AstVar* varp) { m_modVarp=varp; }
- bool svImplicit() const { return m_svImplicit; }
+ bool param() const { return m_param; }
+ void param(bool flag) { m_param=flag; }
+ bool svImplicit() const { return m_svImplicit; }
void svImplicit(bool flag) { m_svImplicit=flag; }
};
@@ -1381,10 +1384,32 @@ struct AstIface : public AstNodeModule {
ASTNODE_NODE_FUNCS(Iface, IFACE)
};
+struct AstModportFTaskRef : public AstNode {
+ // An import/export referenced under a modport
+ // The storage for the function itself is inside the interface/instantiator, thus this is a reference
+ // PARENT: AstModport
+private:
+ string m_name; // Name of the variable referenced
+ bool m_export; // Type of the function (import/export)
+ AstNodeFTask* m_ftaskp; // Link to the function
+public:
+ AstModportFTaskRef(FileLine* fl, const string& name, bool isExport)
+ : AstNode(fl), m_name(name), m_export(isExport), m_ftaskp(NULL) { }
+ ASTNODE_NODE_FUNCS(ModportFTaskRef, MODPORTFTASKREF)
+ virtual const char* broken() const { BROKEN_RTN(m_ftaskp && !m_ftaskp->brokeExists()); return NULL; }
+ virtual void dump(ostream& str);
+ virtual string name() const { return m_name; }
+ virtual void cloneRelink() { if (m_ftaskp && m_ftaskp->clonep()) m_ftaskp = m_ftaskp->clonep()->castNodeFTask(); }
+ bool isImport() const { return !m_export; }
+ bool isExport() const { return m_export; }
+ AstNodeFTask* ftaskp() const { return m_ftaskp; } // [After Link] Pointer to variable
+ void ftaskp(AstNodeFTask* ftaskp) { m_ftaskp=ftaskp; }
+};
+
struct AstModportVarRef : public AstNode {
// A input/output/etc variable referenced under a modport
// The storage for the variable itself is inside the interface, thus this is a reference
- // PARENT: AstIface
+ // PARENT: AstModport
private:
string m_name; // Name of the variable referenced
AstVarType m_type; // Type of the variable (in/out)
@@ -1395,8 +1420,9 @@ public:
ASTNODE_NODE_FUNCS(ModportVarRef, MODPORTVARREF)
virtual const char* broken() const { BROKEN_RTN(m_varp && !m_varp->brokeExists()); return NULL; }
virtual void dump(ostream& str);
- AstVarType varType() const { return m_type; } // * = Type of variable
+ virtual void cloneRelink() { if (m_varp && m_varp->clonep()) m_varp = m_varp->clonep()->castVar(); }
virtual string name() const { return m_name; }
+ AstVarType varType() const { return m_type; } // * = Type of variable
bool isInput() const { return (varType()==AstVarType::INPUT || varType()==AstVarType::INOUT); }
bool isOutput() const { return (varType()==AstVarType::OUTPUT || varType()==AstVarType::INOUT); }
AstVar* varp() const { return m_varp; } // [After Link] Pointer to variable
@@ -1408,13 +1434,13 @@ struct AstModport : public AstNode {
private:
string m_name; // Name of the modport
public:
- AstModport(FileLine* fl, const string& name, AstModportVarRef* varsp)
+ AstModport(FileLine* fl, const string& name, AstNode* varsp)
: AstNode(fl), m_name(name) {
addNOp1p(varsp); }
virtual string name() const { return m_name; }
virtual bool maybePointedTo() const { return true; }
ASTNODE_NODE_FUNCS(Modport, MODPORT)
- AstModportVarRef* varsp() const { return op1p()->castModportVarRef(); } // op1 = List of Vars
+ AstNode* varsp() const { return op1p(); } // op1 = List of Vars
};
struct AstCell : public AstNode {
@@ -2796,28 +2822,18 @@ struct AstTraceDecl : public AstNodeStmt {
private:
string m_showname; // Name of variable
uint32_t m_code; // Trace identifier code; converted to ASCII by trace routines
- int m_right; // Property of var the trace details
- int m_left; // Property of var the trace details
- uint32_t m_arrayLsb; // Property of var the trace details
- uint32_t m_arrayMsb; // Property of var the trace details
+ VNumRange m_bitRange; // Property of var the trace details
+ VNumRange m_arrayRange; // Property of var the trace details
uint32_t m_codeInc; // Code increment
public:
- AstTraceDecl(FileLine* fl, const string& showname, AstVar* varp)
+ AstTraceDecl(FileLine* fl, const string& showname, AstNode* valuep,
+ const VNumRange& bitRange, const VNumRange& arrayRange)
: AstNodeStmt(fl)
- , m_showname(showname) {
- dtypeFrom(varp);
+ , m_showname(showname), m_bitRange(bitRange), m_arrayRange(arrayRange) {
+ dtypeFrom(valuep);
m_code = 0;
- m_codeInc = varp->dtypep()->arrayUnpackedElements() * varp->dtypep()->widthWords();
- AstBasicDType* bdtypep = varp->basicp();
- m_left = bdtypep ? bdtypep->left() : 0;
- m_right = bdtypep ? bdtypep->right() : 0;
- if (AstUnpackArrayDType* adtypep = varp->dtypeSkipRefp()->castUnpackArrayDType()) {
- m_arrayLsb = adtypep->lsb();
- m_arrayMsb = adtypep->msb();
- } else {
- m_arrayLsb = 0;
- m_arrayMsb = 0;
- }
+ m_codeInc = ((arrayRange.ranged() ? arrayRange.elements() : 1)
+ * valuep->dtypep()->widthWords());
}
virtual int instrCount() const { return 100; } // Large...
ASTNODE_NODE_FUNCS(TraceDecl, TRACEDECL)
@@ -2830,11 +2846,8 @@ public:
uint32_t code() const { return m_code; }
void code(uint32_t code) { m_code=code; }
uint32_t codeInc() const { return m_codeInc; }
- int left() const { return m_left; } // Note msb maybe < lsb if little endian
- int right() const { return m_right; }
- uint32_t arrayMsb() const { return m_arrayMsb; }
- uint32_t arrayLsb() const { return m_arrayLsb; }
- uint32_t arrayWidth() const { if (!arrayMsb()) return 0; return arrayMsb()-arrayLsb()+1; }
+ const VNumRange& bitRange() const { return m_bitRange; }
+ const VNumRange& arrayRange() const { return m_arrayRange; }
};
struct AstTraceInc : public AstNodeStmt {
diff --git a/src/V3Begin.cpp b/src/V3Begin.cpp
index c239352..ef87498 100644
--- a/src/V3Begin.cpp
+++ b/src/V3Begin.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Begin.h b/src/V3Begin.h
index 9b1e368..34bde9a 100644
--- a/src/V3Begin.h
+++ b/src/V3Begin.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Branch.cpp b/src/V3Branch.cpp
index cd5f384..37521c8 100644
--- a/src/V3Branch.cpp
+++ b/src/V3Branch.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Branch.h b/src/V3Branch.h
index 1387752..65e97a8 100644
--- a/src/V3Branch.h
+++ b/src/V3Branch.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Broken.cpp b/src/V3Broken.cpp
index ff72870..54a4641 100644
--- a/src/V3Broken.cpp
+++ b/src/V3Broken.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Broken.h b/src/V3Broken.h
index 2689d64..9c557aa 100644
--- a/src/V3Broken.h
+++ b/src/V3Broken.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Case.cpp b/src/V3Case.cpp
index c6858d7..582f377 100644
--- a/src/V3Case.cpp
+++ b/src/V3Case.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Case.h b/src/V3Case.h
index 48c4e3e..e28377c 100644
--- a/src/V3Case.h
+++ b/src/V3Case.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Cast.cpp b/src/V3Cast.cpp
index 32cd382..700bbfd 100644
--- a/src/V3Cast.cpp
+++ b/src/V3Cast.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3Cast.h b/src/V3Cast.h
index 58dad09..0fb90ec 100644
--- a/src/V3Cast.h
+++ b/src/V3Cast.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3Cdc.cpp b/src/V3Cdc.cpp
index 25501d5..4d26abc 100644
--- a/src/V3Cdc.cpp
+++ b/src/V3Cdc.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Cdc.h b/src/V3Cdc.h
index ca17ac4..d84a271 100644
--- a/src/V3Cdc.h
+++ b/src/V3Cdc.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Changed.cpp b/src/V3Changed.cpp
index 525f9d5..a5eabfc 100644
--- a/src/V3Changed.cpp
+++ b/src/V3Changed.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Changed.h b/src/V3Changed.h
index 8e627bc..7dd7f76 100644
--- a/src/V3Changed.h
+++ b/src/V3Changed.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Clean.cpp b/src/V3Clean.cpp
index b04cea8..4091e37 100644
--- a/src/V3Clean.cpp
+++ b/src/V3Clean.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Clean.h b/src/V3Clean.h
index 06bee77..2268422 100644
--- a/src/V3Clean.h
+++ b/src/V3Clean.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3ClkGater.cpp b/src/V3ClkGater.cpp
index ea0819e..97a9d93 100644
--- a/src/V3ClkGater.cpp
+++ b/src/V3ClkGater.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2008-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2008-2014 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.
diff --git a/src/V3ClkGater.h b/src/V3ClkGater.h
index 93908b0..4d55f3a 100644
--- a/src/V3ClkGater.h
+++ b/src/V3ClkGater.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Clock.cpp b/src/V3Clock.cpp
index f0f3925..75ca9ec 100644
--- a/src/V3Clock.cpp
+++ b/src/V3Clock.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Clock.h b/src/V3Clock.h
index c44b06f..6a43ba8 100644
--- a/src/V3Clock.h
+++ b/src/V3Clock.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Combine.cpp b/src/V3Combine.cpp
index ed6e963..ec5c33d 100644
--- a/src/V3Combine.cpp
+++ b/src/V3Combine.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Combine.h b/src/V3Combine.h
index 4bb0545..b3e3c73 100644
--- a/src/V3Combine.h
+++ b/src/V3Combine.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Config.cpp b/src/V3Config.cpp
index e054bd5..a881515 100644
--- a/src/V3Config.cpp
+++ b/src/V3Config.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2010-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2010-2014 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.
diff --git a/src/V3Config.h b/src/V3Config.h
index 3e2f31e..d9098fc 100644
--- a/src/V3Config.h
+++ b/src/V3Config.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2010-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2010-2014 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.
diff --git a/src/V3Const.cpp b/src/V3Const.cpp
index fbc4a21..8a3397a 100644
--- a/src/V3Const.cpp
+++ b/src/V3Const.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Const.h b/src/V3Const.h
index c8ff510..f8dc7df 100644
--- a/src/V3Const.h
+++ b/src/V3Const.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Coverage.cpp b/src/V3Coverage.cpp
index b5af0e1..4fc5246 100644
--- a/src/V3Coverage.cpp
+++ b/src/V3Coverage.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Coverage.h b/src/V3Coverage.h
index 83735d7..42921d3 100644
--- a/src/V3Coverage.h
+++ b/src/V3Coverage.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3CoverageJoin.cpp b/src/V3CoverageJoin.cpp
index 41ba611..67fc0cc 100644
--- a/src/V3CoverageJoin.cpp
+++ b/src/V3CoverageJoin.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3CoverageJoin.h b/src/V3CoverageJoin.h
index e76ed01..72d4cea 100644
--- a/src/V3CoverageJoin.h
+++ b/src/V3CoverageJoin.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Dead.cpp b/src/V3Dead.cpp
index ba7c08a..f3dabbd 100644
--- a/src/V3Dead.cpp
+++ b/src/V3Dead.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -103,7 +103,9 @@ private:
}
void checkDType(AstNodeDType* nodep) {
if (!nodep->generic() // Don't remove generic types
- && m_elimDTypes) { // dtypes stick around until post-widthing
+ && m_elimDTypes // dtypes stick around until post-widthing
+ && !nodep->castMemberDType() // Keep member names iff upper type exists
+ ) {
m_varEtcsp.push_back(nodep);
}
if (AstNode* subnodep = nodep->virtRefDTypep()) subnodep->user1Inc();
diff --git a/src/V3Dead.h b/src/V3Dead.h
index 3c05a77..fbab621 100644
--- a/src/V3Dead.h
+++ b/src/V3Dead.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Delayed.cpp b/src/V3Delayed.cpp
index 7b7c650..8a31188 100644
--- a/src/V3Delayed.cpp
+++ b/src/V3Delayed.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Delayed.h b/src/V3Delayed.h
index f171682..484a624 100644
--- a/src/V3Delayed.h
+++ b/src/V3Delayed.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Depth.cpp b/src/V3Depth.cpp
index dac9808..44349c0 100644
--- a/src/V3Depth.cpp
+++ b/src/V3Depth.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Depth.h b/src/V3Depth.h
index f19317b..0ef0f66 100644
--- a/src/V3Depth.h
+++ b/src/V3Depth.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3DepthBlock.cpp b/src/V3DepthBlock.cpp
index 3f20df0..f0d4630 100644
--- a/src/V3DepthBlock.cpp
+++ b/src/V3DepthBlock.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3DepthBlock.h b/src/V3DepthBlock.h
index afd264a..4a94957 100644
--- a/src/V3DepthBlock.h
+++ b/src/V3DepthBlock.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Descope.cpp b/src/V3Descope.cpp
index 0900e25..2723333 100644
--- a/src/V3Descope.cpp
+++ b/src/V3Descope.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Descope.h b/src/V3Descope.h
index b7c4002..fb95b72 100644
--- a/src/V3Descope.h
+++ b/src/V3Descope.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3EmitC.cpp b/src/V3EmitC.cpp
index 6a12064..c4d8234 100644
--- a/src/V3EmitC.cpp
+++ b/src/V3EmitC.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -706,7 +706,7 @@ class EmitCImp : EmitCStmts {
if (v3Global.opt.lintOnly()) {
// Unfortunately we have some lint checks here, so we can't just skip processing.
// We should move them to a different stage.
- string filename = "/dev/null";
+ string filename = VL_DEV_NULL;
newCFile(filename, slow, source);
ofp = new V3OutSpFile (filename);
}
@@ -2190,23 +2190,23 @@ class EmitCTrace : EmitCStmts {
puts("vcdp->declArray");
} else if (nodep->isQuad()) {
puts("vcdp->declQuad ");
- } else if (nodep->left() || nodep->right()) {
+ } else if (nodep->bitRange().ranged()) {
puts("vcdp->declBus ");
} else {
puts("vcdp->declBit ");
}
puts("(c+"+cvtToStr(nodep->code()));
- if (nodep->arrayWidth()) puts("+i*"+cvtToStr(nodep->widthWords()));
+ if (nodep->arrayRange().ranged()) puts("+i*"+cvtToStr(nodep->widthWords()));
puts(",");
putsQuoted(nodep->showname());
- if (nodep->arrayWidth()) {
- puts(",(i+"+cvtToStr(nodep->arrayLsb())+")");
+ if (nodep->arrayRange().ranged()) {
+ puts(",(i+"+cvtToStr(nodep->arrayRange().lo())+")");
} else {
puts(",-1");
}
if (!nodep->isDouble() // When float/double no longer have widths this can go
- && (nodep->left() || nodep->right())) {
- puts(","+cvtToStr(nodep->left())+","+cvtToStr(nodep->right()));
+ && nodep->bitRange().ranged()) {
+ puts(","+cvtToStr(nodep->bitRange().left())+","+cvtToStr(nodep->bitRange().right()));
}
puts(");");
}
@@ -2222,7 +2222,7 @@ class EmitCTrace : EmitCStmts {
puts("vcdp->"+full+"Array");
} else if (nodep->isQuad()) {
puts("vcdp->"+full+"Quad ");
- } else if (nodep->declp()->left() || nodep->declp()->right()) {
+ } else if (nodep->declp()->bitRange().ranged()) {
puts("vcdp->"+full+"Bus ");
} else {
puts("vcdp->"+full+"Bit ");
@@ -2232,7 +2232,7 @@ class EmitCTrace : EmitCStmts {
puts(",");
emitTraceValue(nodep, arrayindex);
if (!nodep->isDouble() // When float/double no longer have widths this can go
- && (nodep->declp()->left() || nodep->declp()->right() || emitTraceIsScBv(nodep) || emitTraceIsScBigUint(nodep))) {
+ && (nodep->declp()->bitRange().ranged() || emitTraceIsScBv(nodep) || emitTraceIsScBigUint(nodep))) {
puts(","+cvtToStr(nodep->declp()->widthMin()));
}
puts(");\n");
@@ -2246,7 +2246,7 @@ class EmitCTrace : EmitCStmts {
else if (emitTraceIsScBv(nodep)) puts("VL_SC_BV_DATAP(");
varrefp->iterate(*this); // Put var name out
// Tracing only supports 1D arrays
- if (varp->dtypeSkipRefp()->castUnpackArrayDType()) {
+ if (nodep->declp()->arrayRange().ranged()) {
if (arrayindex==-2) puts("[i]");
else if (arrayindex==-1) puts("[0]");
else puts("["+cvtToStr(arrayindex)+"]");
@@ -2319,8 +2319,8 @@ class EmitCTrace : EmitCStmts {
m_funcp = NULL;
}
virtual void visit(AstTraceDecl* nodep, AstNUser*) {
- if (nodep->arrayWidth()) {
- puts("{int i; for (i=0; i<"+cvtToStr(nodep->arrayWidth())+"; i++) {\n");
+ if (nodep->arrayRange().ranged()) {
+ puts("{int i; for (i=0; i<"+cvtToStr(nodep->arrayRange().elements())+"; i++) {\n");
emitTraceInitOne(nodep);
puts("}}\n");
} else {
@@ -2329,9 +2329,9 @@ class EmitCTrace : EmitCStmts {
}
}
virtual void visit(AstTraceInc* nodep, AstNUser*) {
- if (nodep->declp()->arrayWidth()) {
+ if (nodep->declp()->arrayRange().ranged()) {
// It traces faster if we unroll the loop
- for (unsigned i=0; i<nodep->declp()->arrayWidth(); i++) {
+ for (int i=0; i<nodep->declp()->arrayRange().elements(); i++) {
emitTraceChangeOne(nodep, i);
}
} else {
diff --git a/src/V3EmitC.h b/src/V3EmitC.h
index d7f2cf2..ed8d6fa 100644
--- a/src/V3EmitC.h
+++ b/src/V3EmitC.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3EmitCBase.h b/src/V3EmitCBase.h
index 578d4bd..61d6e2c 100644
--- a/src/V3EmitCBase.h
+++ b/src/V3EmitCBase.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3EmitCInlines.cpp b/src/V3EmitCInlines.cpp
index 70c1330..ce45bf1 100644
--- a/src/V3EmitCInlines.cpp
+++ b/src/V3EmitCInlines.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3EmitCSyms.cpp b/src/V3EmitCSyms.cpp
index fc7f77e..a621277 100644
--- a/src/V3EmitCSyms.cpp
+++ b/src/V3EmitCSyms.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3EmitMk.cpp b/src/V3EmitMk.cpp
index a1602a8..20afad1 100644
--- a/src/V3EmitMk.cpp
+++ b/src/V3EmitMk.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3EmitMk.h b/src/V3EmitMk.h
index 1f3acef..131ec44 100644
--- a/src/V3EmitMk.h
+++ b/src/V3EmitMk.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3EmitV.cpp b/src/V3EmitV.cpp
index 78eed17..b9f4a87 100644
--- a/src/V3EmitV.cpp
+++ b/src/V3EmitV.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3EmitV.h b/src/V3EmitV.h
index 8c97506..d9a35d8 100644
--- a/src/V3EmitV.h
+++ b/src/V3EmitV.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3EmitXml.cpp b/src/V3EmitXml.cpp
index cdf5583..851bd26 100644
--- a/src/V3EmitXml.cpp
+++ b/src/V3EmitXml.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3EmitXml.h b/src/V3EmitXml.h
index 70350cb..9401dab 100644
--- a/src/V3EmitXml.h
+++ b/src/V3EmitXml.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Error.cpp b/src/V3Error.cpp
index 67f5f0f..d1e041d 100644
--- a/src/V3Error.cpp
+++ b/src/V3Error.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Error.h b/src/V3Error.h
index 51a3913..7ed23a3 100644
--- a/src/V3Error.h
+++ b/src/V3Error.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Expand.cpp b/src/V3Expand.cpp
index fede67d..bb7293e 100644
--- a/src/V3Expand.cpp
+++ b/src/V3Expand.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3Expand.h b/src/V3Expand.h
index 267161c..88d67bf 100644
--- a/src/V3Expand.h
+++ b/src/V3Expand.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3File.cpp b/src/V3File.cpp
index 11cdeb9..dc14d7a 100644
--- a/src/V3File.cpp
+++ b/src/V3File.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3File.h b/src/V3File.h
index 31275fe..b41364c 100644
--- a/src/V3File.h
+++ b/src/V3File.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -46,7 +46,7 @@ public:
return new_ofstream_nodepend (filename, append);
}
static ofstream* new_ofstream_nodepend(const string& filename, bool append=false) {
- if (filename != "/dev/null") createMakeDir();
+ if (filename != VL_DEV_NULL) createMakeDir();
if (append) {
return new ofstream(filename.c_str(), ios::app);
} else {
@@ -54,7 +54,7 @@ public:
}
}
static FILE* new_fopen_w(const string& filename) {
- if (filename != "/dev/null") createMakeDir();
+ if (filename != VL_DEV_NULL) createMakeDir();
addTgtDepend(filename);
return fopen(filename.c_str(),"w");
}
diff --git a/src/V3Gate.cpp b/src/V3Gate.cpp
index e05dcbf..409c501 100644
--- a/src/V3Gate.cpp
+++ b/src/V3Gate.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Gate.h b/src/V3Gate.h
index cafb351..012ce0f 100644
--- a/src/V3Gate.h
+++ b/src/V3Gate.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3GenClk.cpp b/src/V3GenClk.cpp
index a03c1e0..2aa5b13 100644
--- a/src/V3GenClk.cpp
+++ b/src/V3GenClk.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3GenClk.h b/src/V3GenClk.h
index 71a2767..24ab296 100644
--- a/src/V3GenClk.h
+++ b/src/V3GenClk.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Global.h b/src/V3Global.h
index 6b38502..29c2f7a 100644
--- a/src/V3Global.h
+++ b/src/V3Global.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Graph.cpp b/src/V3Graph.cpp
index f67f82e..d80969c 100644
--- a/src/V3Graph.cpp
+++ b/src/V3Graph.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Graph.h b/src/V3Graph.h
index bbf332d..452f542 100644
--- a/src/V3Graph.h
+++ b/src/V3Graph.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3GraphAcyc.cpp b/src/V3GraphAcyc.cpp
index 54c9e52..169f6d2 100644
--- a/src/V3GraphAcyc.cpp
+++ b/src/V3GraphAcyc.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3GraphAlg.cpp b/src/V3GraphAlg.cpp
index dba224a..f562d56 100644
--- a/src/V3GraphAlg.cpp
+++ b/src/V3GraphAlg.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3GraphAlg.h b/src/V3GraphAlg.h
index 4abf19d..4b44c3b 100644
--- a/src/V3GraphAlg.h
+++ b/src/V3GraphAlg.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3GraphDfa.cpp b/src/V3GraphDfa.cpp
index 08a2995..1e99429 100644
--- a/src/V3GraphDfa.cpp
+++ b/src/V3GraphDfa.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3GraphDfa.h b/src/V3GraphDfa.h
index 80023f3..c53c1e9 100644
--- a/src/V3GraphDfa.h
+++ b/src/V3GraphDfa.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3GraphTest.cpp b/src/V3GraphTest.cpp
index 2312d9f..ae305c0 100644
--- a/src/V3GraphTest.cpp
+++ b/src/V3GraphTest.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Hashed.cpp b/src/V3Hashed.cpp
index fe22002..9587a25 100644
--- a/src/V3Hashed.cpp
+++ b/src/V3Hashed.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Hashed.h b/src/V3Hashed.h
index 2d460f0..c6195b7 100644
--- a/src/V3Hashed.h
+++ b/src/V3Hashed.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3Inline.cpp b/src/V3Inline.cpp
index 99ce87a..8b33fa4 100644
--- a/src/V3Inline.cpp
+++ b/src/V3Inline.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Inline.h b/src/V3Inline.h
index d9d5261..4cee17f 100644
--- a/src/V3Inline.h
+++ b/src/V3Inline.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Inst.cpp b/src/V3Inst.cpp
index c0a7b6f..7982b73 100644
--- a/src/V3Inst.cpp
+++ b/src/V3Inst.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Inst.h b/src/V3Inst.h
index 50d7914..1438d20 100644
--- a/src/V3Inst.h
+++ b/src/V3Inst.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LangCode.h b/src/V3LangCode.h
index 94bf488..d3bf50b 100644
--- a/src/V3LangCode.h
+++ b/src/V3LangCode.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LanguageWords.h b/src/V3LanguageWords.h
index 8e9b469..1ea70af 100644
--- a/src/V3LanguageWords.h
+++ b/src/V3LanguageWords.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3Life.cpp b/src/V3Life.cpp
index a3ed84b..2c50fa3 100644
--- a/src/V3Life.cpp
+++ b/src/V3Life.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Life.h b/src/V3Life.h
index 627afd3..15c340f 100644
--- a/src/V3Life.h
+++ b/src/V3Life.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LifePost.cpp b/src/V3LifePost.cpp
index 9cfe20d..e1f2ab4 100644
--- a/src/V3LifePost.cpp
+++ b/src/V3LifePost.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LifePost.h b/src/V3LifePost.h
index 3f26112..dc02642 100644
--- a/src/V3LifePost.h
+++ b/src/V3LifePost.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkCells.cpp b/src/V3LinkCells.cpp
index 127cc19..8d507da 100644
--- a/src/V3LinkCells.cpp
+++ b/src/V3LinkCells.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -300,6 +300,7 @@ private:
if (pinp->name()=="") pinp->name("__pinNumber"+cvtToStr(pinp->pinNum()));
}
for (AstPin* pinp = nodep->paramsp(); pinp; pinp=pinp->nextp()->castPin()) {
+ pinp->param(true);
if (pinp->name()=="") pinp->name("__paramNumber"+cvtToStr(pinp->pinNum()));
}
if (nodep->modp()) {
diff --git a/src/V3LinkCells.h b/src/V3LinkCells.h
index 9e06108..60785be 100644
--- a/src/V3LinkCells.h
+++ b/src/V3LinkCells.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkDot.cpp b/src/V3LinkDot.cpp
index c98be54..056156f 100644
--- a/src/V3LinkDot.cpp
+++ b/src/V3LinkDot.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -1202,6 +1202,26 @@ class LinkDotIfaceVisitor : public AstNVisitor {
}
m_curSymp = oldCurSymp;
}
+ virtual void visit(AstModportFTaskRef* nodep, AstNUser*) {
+ UINFO(5," fif: "<<nodep<<endl);
+ nodep->iterateChildren(*this);
+ if (nodep->isExport()) nodep->v3error("Unsupported: modport export");
+ VSymEnt* symp = m_curSymp->findIdFallback(nodep->name());
+ if (!symp) {
+ nodep->v3error("Modport item not found: "<<nodep->prettyName());
+ } else if (AstNodeFTask* ftaskp = symp->nodep()->castNodeFTask()) {
+ // Make symbol under modport that points at the _interface_'s var, not the modport.
+ nodep->ftaskp(ftaskp);
+ m_statep->insertSym(m_curSymp, nodep->name(), ftaskp, NULL/*package*/);
+ } else {
+ nodep->v3error("Modport item is not a function/task: "<<nodep->prettyName());
+ }
+ if (m_statep->forScopeCreation()) {
+ // Done with AstModportFTaskRef.
+ // Delete to prevent problems if we dead-delete pointed to ftask
+ nodep->unlinkFrBack(); pushDeletep(nodep); nodep=NULL;
+ }
+ }
virtual void visit(AstModportVarRef* nodep, AstNUser*) {
UINFO(5," fiv: "<<nodep<<endl);
nodep->iterateChildren(*this);
@@ -1419,21 +1439,22 @@ private:
if (!m_pinSymp) nodep->v3fatalSrc("Pin not under cell?\n");
VSymEnt* foundp = m_pinSymp->findIdFlat(nodep->name());
AstVar* refp = foundp->nodep()->castVar();
+ const char* whatp = nodep->param() ? "parameter pin" : "pin";
if (!refp) {
if (nodep->name() == "__paramNumber1" && m_cellp->modp()->castPrimitive()) {
// Primitive parameter is really a delay we can just ignore
nodep->unlinkFrBack()->deleteTree(); nodep=NULL;
return;
}
- nodep->v3error("Pin not found: "<<nodep->prettyName());
+ nodep->v3error(LinkDotState::ucfirst(whatp)<<" not found: "<<nodep->prettyName());
} else if (!refp->isIO() && !refp->isParam() && !refp->isIfaceRef()) {
- nodep->v3error("Pin is not an in/out/inout/param/interface: "<<nodep->prettyName());
+ nodep->v3error(LinkDotState::ucfirst(whatp)<<" is not an in/out/inout/param/interface: "<<nodep->prettyName());
} else {
nodep->modVarp(refp);
if (refp->user5p() && refp->user5p()->castNode()!=nodep) {
- nodep->v3error("Duplicate pin connection: "<<nodep->prettyName()<<endl
+ nodep->v3error("Duplicate "<<whatp<<" connection: "<<nodep->prettyName()<<endl
<<refp->user5p()->castNode()->warnMore()
- <<"... Location of original pin connection");
+ <<"... Location of original "<<whatp<<" connection");
} else {
refp->user5p(nodep);
}
diff --git a/src/V3LinkDot.h b/src/V3LinkDot.h
index e72137e..b8a2cab 100644
--- a/src/V3LinkDot.h
+++ b/src/V3LinkDot.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkJump.cpp b/src/V3LinkJump.cpp
index 979ca58..f1a107e 100644
--- a/src/V3LinkJump.cpp
+++ b/src/V3LinkJump.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkJump.h b/src/V3LinkJump.h
index b4aff7d..4e7eb73 100644
--- a/src/V3LinkJump.h
+++ b/src/V3LinkJump.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkLValue.cpp b/src/V3LinkLValue.cpp
index e21b605..5565ff6 100644
--- a/src/V3LinkLValue.cpp
+++ b/src/V3LinkLValue.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkLValue.h b/src/V3LinkLValue.h
index 475664a..11a1df7 100644
--- a/src/V3LinkLValue.h
+++ b/src/V3LinkLValue.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkLevel.cpp b/src/V3LinkLevel.cpp
index 235820f..3b924c7 100644
--- a/src/V3LinkLevel.cpp
+++ b/src/V3LinkLevel.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkLevel.h b/src/V3LinkLevel.h
index 8fbdf15..f5081cb 100644
--- a/src/V3LinkLevel.h
+++ b/src/V3LinkLevel.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkParse.cpp b/src/V3LinkParse.cpp
index 16c3ad0..89cb19c 100644
--- a/src/V3LinkParse.cpp
+++ b/src/V3LinkParse.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkParse.h b/src/V3LinkParse.h
index 1853acb..aa662d5 100644
--- a/src/V3LinkParse.h
+++ b/src/V3LinkParse.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkResolve.cpp b/src/V3LinkResolve.cpp
index b6eca8f..3ce090b 100644
--- a/src/V3LinkResolve.cpp
+++ b/src/V3LinkResolve.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3LinkResolve.h b/src/V3LinkResolve.h
index 5bc35f8..7202f45 100644
--- a/src/V3LinkResolve.h
+++ b/src/V3LinkResolve.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3List.h b/src/V3List.h
index 6744725..ed6b9e9 100644
--- a/src/V3List.h
+++ b/src/V3List.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Localize.cpp b/src/V3Localize.cpp
index 7b33d17..065e33d 100644
--- a/src/V3Localize.cpp
+++ b/src/V3Localize.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Localize.h b/src/V3Localize.h
index 29c4743..7fa44b8 100644
--- a/src/V3Localize.h
+++ b/src/V3Localize.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Name.cpp b/src/V3Name.cpp
index 0fdc2b4..b3eb524 100644
--- a/src/V3Name.cpp
+++ b/src/V3Name.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Name.h b/src/V3Name.h
index 5a93103..efae442 100644
--- a/src/V3Name.h
+++ b/src/V3Name.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Number.cpp b/src/V3Number.cpp
index 5a089a6..0ee2ba9 100644
--- a/src/V3Number.cpp
+++ b/src/V3Number.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Number.h b/src/V3Number.h
index 8437b55..610a151 100644
--- a/src/V3Number.h
+++ b/src/V3Number.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Number_test.cpp b/src/V3Number_test.cpp
index 4eab749..fe3321d 100644
--- a/src/V3Number_test.cpp
+++ b/src/V3Number_test.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Options.cpp b/src/V3Options.cpp
index 444f6bf..f34d661 100644
--- a/src/V3Options.cpp
+++ b/src/V3Options.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -756,6 +756,7 @@ void V3Options::parseOptsList(FileLine* fl, const string& optdir, int argc, char
else if ( !strcmp (sw, "-sv") ) { m_defaultLanguage = V3LangCode::L1800_2005; }
else if ( onoff (sw, "-trace", flag/*ref*/) ) { m_trace = flag; }
else if ( onoff (sw, "-trace-dups", flag/*ref*/) ) { m_traceDups = flag; }
+ else if ( onoff (sw, "-trace-structs", flag/*ref*/) ) { m_traceStructs = flag; }
else if ( onoff (sw, "-trace-underscore", flag/*ref*/) ) { m_traceUnderscore = flag; }
else if ( onoff (sw, "-underline-zero", flag/*ref*/) ) { m_underlineZero = flag; } // Undocumented, old Verilator-2
else if ( onoff (sw, "-x-initial-edge", flag/*ref*/) ) { m_xInitialEdge = flag; }
@@ -1158,7 +1159,7 @@ void V3Options::showVersion(bool verbose) {
if (!verbose) return;
cout <<endl;
- cout << "Copyright 2003-2013 by Wilson Snyder. Verilator is free software; you can\n";
+ cout << "Copyright 2003-2014 by Wilson Snyder. Verilator is free software; you can\n";
cout << "redistribute it and/or modify the Verilator internals under the terms of\n";
cout << "either the GNU Lesser General Public License Version 3 or the Perl Artistic\n";
cout << "License Version 2.0.\n";
@@ -1222,6 +1223,7 @@ V3Options::V3Options() {
m_systemPerl = false;
m_trace = false;
m_traceDups = false;
+ m_traceStructs = false;
m_traceUnderscore = false;
m_underlineZero = false;
m_reportUnoptflat = false;
diff --git a/src/V3Options.h b/src/V3Options.h
index 695d552..ae86372 100644
--- a/src/V3Options.h
+++ b/src/V3Options.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -90,6 +90,7 @@ class V3Options {
bool m_stats; // main switch: --stats
bool m_trace; // main switch: --trace
bool m_traceDups; // main switch: --trace-dups
+ bool m_traceStructs; // main switch: --trace-structs
bool m_traceUnderscore;// main switch: --trace-underscore
bool m_underlineZero;// main switch: --underline-zero; undocumented old Verilator 2
bool m_reportUnoptflat; // main switch: --report-unoptflat
@@ -214,6 +215,7 @@ class V3Options {
bool exe() const { return m_exe; }
bool trace() const { return m_trace; }
bool traceDups() const { return m_traceDups; }
+ bool traceStructs() const { return m_traceStructs; }
bool traceUnderscore() const { return m_traceUnderscore; }
bool orderClockDly() const { return m_orderClockDly; }
bool outFormatOk() const { return m_outFormatOk; }
diff --git a/src/V3Order.cpp b/src/V3Order.cpp
index 5cdc0f3..f960cc4 100644
--- a/src/V3Order.cpp
+++ b/src/V3Order.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Order.h b/src/V3Order.h
index 7935230..7b90d84 100644
--- a/src/V3Order.h
+++ b/src/V3Order.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3OrderGraph.h b/src/V3OrderGraph.h
index bbd876e..6dcb0c0 100644
--- a/src/V3OrderGraph.h
+++ b/src/V3OrderGraph.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Param.cpp b/src/V3Param.cpp
index 52ce09a..de98071 100644
--- a/src/V3Param.cpp
+++ b/src/V3Param.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Param.h b/src/V3Param.h
index ff06685..b3d1df0 100644
--- a/src/V3Param.h
+++ b/src/V3Param.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Parse.h b/src/V3Parse.h
index 5df4c51..a655f3f 100644
--- a/src/V3Parse.h
+++ b/src/V3Parse.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3ParseGrammar.cpp b/src/V3ParseGrammar.cpp
index d645694..f44d993 100644
--- a/src/V3ParseGrammar.cpp
+++ b/src/V3ParseGrammar.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3ParseImp.cpp b/src/V3ParseImp.cpp
index 3d7660c..1161bb3 100644
--- a/src/V3ParseImp.cpp
+++ b/src/V3ParseImp.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3ParseImp.h b/src/V3ParseImp.h
index 479ed4f..648435d 100644
--- a/src/V3ParseImp.h
+++ b/src/V3ParseImp.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2009-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2009-2014 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.
@@ -66,7 +66,6 @@ struct V3ParseBisonYYSType {
AstCell* cellp;
AstConst* constp;
AstMemberDType* memberp;
- AstModportVarRef* modportvarrefp;
AstNodeModule* modulep;
AstNodeClassDType* classp;
AstNodeDType* dtypep;
diff --git a/src/V3ParseLex.cpp b/src/V3ParseLex.cpp
index 1834bb9..75ff5a8 100644
--- a/src/V3ParseLex.cpp
+++ b/src/V3ParseLex.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3ParseSym.h b/src/V3ParseSym.h
index 12bcdb0..cb7d507 100644
--- a/src/V3ParseSym.h
+++ b/src/V3ParseSym.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2009-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2009-2014 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.
diff --git a/src/V3PreLex.h b/src/V3PreLex.h
index 7e19af1..17e20e6 100644
--- a/src/V3PreLex.h
+++ b/src/V3PreLex.h
@@ -8,7 +8,7 @@
//
//*************************************************************************
//
-// Copyright 2000-2013 by Wilson Snyder. This program is free software;
+// Copyright 2000-2014 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.
diff --git a/src/V3PreLex.l b/src/V3PreLex.l
index 73c37b0..d22cbec 100644
--- a/src/V3PreLex.l
+++ b/src/V3PreLex.l
@@ -10,7 +10,7 @@
*
**************************************************************************
*
- * Copyright 2003-2013 by Wilson Snyder. This program is free software;
+ * Copyright 2003-2014 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.
diff --git a/src/V3PreProc.cpp b/src/V3PreProc.cpp
index 35b0b24..49c55c5 100644
--- a/src/V3PreProc.cpp
+++ b/src/V3PreProc.cpp
@@ -8,7 +8,7 @@
//
//*************************************************************************
//
-// Copyright 2000-2013 by Wilson Snyder. This program is free software;
+// Copyright 2000-2014 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.
diff --git a/src/V3PreProc.h b/src/V3PreProc.h
index 9ecbce4..b9678d5 100644
--- a/src/V3PreProc.h
+++ b/src/V3PreProc.h
@@ -8,7 +8,7 @@
//
//*************************************************************************
//
-// Copyright 2000-2013 by Wilson Snyder. This program is free software;
+// Copyright 2000-2014 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.
diff --git a/src/V3PreShell.cpp b/src/V3PreShell.cpp
index 49e7b9e..89cd720 100644
--- a/src/V3PreShell.cpp
+++ b/src/V3PreShell.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3PreShell.h b/src/V3PreShell.h
index a477b3c..42cbfd9 100644
--- a/src/V3PreShell.h
+++ b/src/V3PreShell.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3Premit.cpp b/src/V3Premit.cpp
index e3d16c4..5d7ddda 100644
--- a/src/V3Premit.cpp
+++ b/src/V3Premit.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Premit.h b/src/V3Premit.h
index 91fe613..799d496 100644
--- a/src/V3Premit.h
+++ b/src/V3Premit.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Scope.cpp b/src/V3Scope.cpp
index 3385f98..2b4b27d 100644
--- a/src/V3Scope.cpp
+++ b/src/V3Scope.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -353,6 +353,11 @@ private:
}
nodep->iterateChildren(*this);
}
+ virtual void visit(AstModportFTaskRef* nodep, AstNUser*) {
+ // The crossrefs are dealt with in V3LinkDot
+ nodep->ftaskp(NULL);
+ nodep->iterateChildren(*this);
+ }
//--------------------
// Default
diff --git a/src/V3Scope.h b/src/V3Scope.h
index 267a306..c433019 100644
--- a/src/V3Scope.h
+++ b/src/V3Scope.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3SenTree.h b/src/V3SenTree.h
index d1894ed..c9298d6 100644
--- a/src/V3SenTree.h
+++ b/src/V3SenTree.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Simulate.h b/src/V3Simulate.h
index fd4c07d..b3b3da6 100644
--- a/src/V3Simulate.h
+++ b/src/V3Simulate.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Slice.cpp b/src/V3Slice.cpp
index 35f36a6..b02ae3b 100644
--- a/src/V3Slice.cpp
+++ b/src/V3Slice.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Slice.h b/src/V3Slice.h
index 5fd3eab..af8045e 100644
--- a/src/V3Slice.h
+++ b/src/V3Slice.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Split.cpp b/src/V3Split.cpp
index e0b27a6..a70dfd6 100644
--- a/src/V3Split.cpp
+++ b/src/V3Split.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Split.h b/src/V3Split.h
index 1e0e6c3..4d1262d 100644
--- a/src/V3Split.h
+++ b/src/V3Split.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3SplitAs.cpp b/src/V3SplitAs.cpp
index 5a44ed5..d495458 100644
--- a/src/V3SplitAs.cpp
+++ b/src/V3SplitAs.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3SplitAs.h b/src/V3SplitAs.h
index c296211..0481369 100644
--- a/src/V3SplitAs.h
+++ b/src/V3SplitAs.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Stats.cpp b/src/V3Stats.cpp
index 94591c9..bfebe4d 100644
--- a/src/V3Stats.cpp
+++ b/src/V3Stats.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3Stats.h b/src/V3Stats.h
index 3f7bea8..59fe5a8 100644
--- a/src/V3Stats.h
+++ b/src/V3Stats.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3StatsReport.cpp b/src/V3StatsReport.cpp
index 6f6371c..afcb21f 100644
--- a/src/V3StatsReport.cpp
+++ b/src/V3StatsReport.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2005-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2005-2014 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.
diff --git a/src/V3String.cpp b/src/V3String.cpp
index 10a58ef..07c008d 100644
--- a/src/V3String.cpp
+++ b/src/V3String.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3String.h b/src/V3String.h
index 5a16d0c..f3c3920 100644
--- a/src/V3String.h
+++ b/src/V3String.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Subst.cpp b/src/V3Subst.cpp
index 32ee178..150e6f4 100644
--- a/src/V3Subst.cpp
+++ b/src/V3Subst.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3Subst.h b/src/V3Subst.h
index e94aefd..247ef46 100644
--- a/src/V3Subst.h
+++ b/src/V3Subst.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3SymTable.h b/src/V3SymTable.h
index cef0ba1..51402ab 100644
--- a/src/V3SymTable.h
+++ b/src/V3SymTable.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Table.cpp b/src/V3Table.cpp
index c5f8b98..e6e7054 100644
--- a/src/V3Table.cpp
+++ b/src/V3Table.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Table.h b/src/V3Table.h
index 3d9ea3f..d242aa9 100644
--- a/src/V3Table.h
+++ b/src/V3Table.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Task.cpp b/src/V3Task.cpp
index 7d487f7..4ec6a6f 100644
--- a/src/V3Task.cpp
+++ b/src/V3Task.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Task.h b/src/V3Task.h
index 33aafed..41d94a2 100644
--- a/src/V3Task.h
+++ b/src/V3Task.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Trace.cpp b/src/V3Trace.cpp
index 1fa4800..c87890b 100644
--- a/src/V3Trace.cpp
+++ b/src/V3Trace.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Trace.h b/src/V3Trace.h
index e6a8e38..609a818 100644
--- a/src/V3Trace.h
+++ b/src/V3Trace.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3TraceDecl.cpp b/src/V3TraceDecl.cpp
index 5c348cf..2251b74 100644
--- a/src/V3TraceDecl.cpp
+++ b/src/V3TraceDecl.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -51,6 +51,9 @@ private:
AstCFunc* m_fullFuncp; // Trace function being built
AstCFunc* m_chgFuncp; // Trace function being built
int m_funcNum; // Function number being built
+ AstVarScope* m_traVscp; // Signal being trace constructed
+ AstNode* m_traValuep; // Signal being traced's value to trace in it
+ string m_traShowname; // Signal being traced's component name
V3Double0 m_statSigs; // Statistic tracking
V3Double0 m_statIgnSigs; // Statistic tracking
@@ -66,22 +69,15 @@ private:
// Return true if this shouldn't be traced
// See also similar rule in V3Coverage::varIgnoreToggle
string prettyName = nodep->prettyName();
- if (!nodep->isTrace())
+ if (!nodep->isTrace()) {
return "Verilator trace_off";
- if (!v3Global.opt.traceUnderscore()) {
+ }
+ else if (!v3Global.opt.traceUnderscore()) {
if (prettyName.c_str()[0] == '_')
return "Leading underscore";
if (prettyName.find("._") != string::npos)
return "Inlined leading underscore";
}
- if ((int)nodep->width() > v3Global.opt.traceMaxWidth()) return "Wide bus > --trace-max-width bits";
- if ((int)nodep->dtypep()->arrayUnpackedElements() > v3Global.opt.traceMaxArray()) return "Wide memory > --trace-max-array ents";
- if (!(nodep->dtypeSkipRefp()->castBasicDType()
- || (nodep->dtypeSkipRefp()->castUnpackArrayDType()
- && (nodep->dtypeSkipRefp()->castUnpackArrayDType()->subDTypep()
- ->skipRefp()->castBasicDType())))) {
- return "Unsupported: Multi-dimensional array";
- }
return NULL;
}
@@ -109,9 +105,33 @@ private:
basep->addStmtsp(callp);
return funcp;
}
- void addCFuncStmt(AstCFunc* basep, AstNode* nodep) {
+ void addCFuncStmt(AstCFunc* basep, AstNode* nodep, VNumRange arrayRange) {
basep->addStmtsp(nodep);
}
+ void addTraceDecl(const VNumRange& arrayRange) {
+ VNumRange bitRange;
+ AstBasicDType* bdtypep = m_traValuep->dtypep()->basicp();
+ if (bdtypep) bitRange = bdtypep->nrange();
+ AstTraceDecl* declp = new AstTraceDecl(m_traVscp->fileline(), m_traShowname, m_traValuep,
+ bitRange, arrayRange);
+
+ if (m_initSubStmts && v3Global.opt.outputSplitCTrace()
+ && m_initSubStmts > v3Global.opt.outputSplitCTrace()) {
+ m_initSubFuncp = newCFuncSub(m_initFuncp);
+ m_initSubStmts = 0;
+ }
+
+ m_initSubFuncp->addStmtsp(declp);
+ m_initSubStmts += EmitCBaseCounterVisitor(declp).count();
+
+ m_chgFuncp->addStmtsp(new AstTraceInc(m_traVscp->fileline(), declp, m_traValuep->cloneTree(true)));
+ // The full version will get constructed in V3Trace
+ }
+ void addIgnore(const char* why) {
+ ++m_statIgnSigs;
+ m_initSubFuncp->addStmtsp(
+ new AstComment(m_traVscp->fileline(), "Tracing: "+m_traShowname+" // Ignored: "+why));
+ }
// VISITORS
virtual void visit(AstTopScope* nodep, AstNUser*) {
@@ -134,35 +154,140 @@ private:
// Compute show name
// This code assumes SPTRACEVCDC_VERSION >= 1330;
// it uses spaces to separate hierarchy components.
- string showname = AstNode::vcdName(scopep->name() + " " + varp->name());
- if (showname.substr(0,4) == "TOP ") showname.replace(0,4,"");
+ m_traShowname = AstNode::vcdName(scopep->name() + " " + varp->name());
+ if (m_traShowname.substr(0,4) == "TOP ") m_traShowname.replace(0,4,"");
if (!m_initSubFuncp) nodep->v3fatalSrc("NULL");
+
+ m_traVscp = nodep;
+ m_traValuep = NULL;
if (varIgnoreTrace(varp)) {
- ++m_statIgnSigs;
- m_initSubFuncp->addStmtsp(
- new AstComment(nodep->fileline(),
- "Tracing: "+showname+" // Ignored: "+varIgnoreTrace(varp)));
+ addIgnore(varIgnoreTrace(varp));
} else {
++m_statSigs;
- AstNode* valuep = NULL;
- if (nodep->valuep()) valuep=nodep->valuep()->cloneTree(true);
- else valuep = new AstVarRef(nodep->fileline(), nodep, false);
- AstTraceDecl* declp = new AstTraceDecl(nodep->fileline(), showname, varp);
-
- if (m_initSubStmts && v3Global.opt.outputSplitCTrace()
- && m_initSubStmts > v3Global.opt.outputSplitCTrace()) {
- m_initSubFuncp = newCFuncSub(m_initFuncp);
- m_initSubStmts = 0;
+ if (nodep->valuep()) m_traValuep = nodep->valuep()->cloneTree(true);
+ else m_traValuep = new AstVarRef(nodep->fileline(), nodep, false);
+ {
+ // Recurse into data type of the signal; the visitors will call addTraceDecl()
+ varp->dtypeSkipRefp()->accept(*this);
}
+ // Cleanup
+ if (m_traValuep) { m_traValuep->deleteTree(); m_traValuep=NULL; }
+ }
+ m_traVscp = NULL;
+ m_traValuep = NULL;
+ m_traShowname = "";
+ }
+ }
+ // VISITORS - Data types when tracing
+ virtual void visit(AstConstDType* nodep, AstNUser*) {
+ if (m_traVscp) {
+ nodep->subDTypep()->skipRefp()->accept(*this);
+ }
+ }
+ virtual void visit(AstRefDType* nodep, AstNUser*) {
+ if (m_traVscp) {
+ nodep->subDTypep()->skipRefp()->accept(*this);
+ }
+ }
+ virtual void visit(AstUnpackArrayDType* nodep, AstNUser*) {
+ // Note more specific dtypes above
+ if (m_traVscp) {
+ if ((int)nodep->arrayUnpackedElements() > v3Global.opt.traceMaxArray()) {
+ addIgnore("Wide memory > --trace-max-array ents");
+ } else if (nodep->subDTypep()->skipRefp()->castBasicDType() // Nothing lower than this array
+ && m_traVscp->dtypep()->skipRefp() == nodep) { // Nothing above this array
+ // Simple 1-D array, use exising V3EmitC runtime loop rather than unrolling
+ // This will put "(index)" at end of signal name for us
+ addTraceDecl(nodep->declRange());
+ } else {
+ // Unroll now, as have no other method to get right signal names
+ AstNodeDType* subtypep = nodep->subDTypep()->skipRefp();
+ for (int i=nodep->lsb(); i<=nodep->msb(); ++i) {
+ string oldShowname = m_traShowname;
+ AstNode* oldValuep = m_traValuep;
+ {
+ m_traShowname += string("(")+cvtToStr(i)+string(")");
+ m_traValuep = new AstArraySel(nodep->fileline(), m_traValuep->cloneTree(true),
+ i - nodep->lsb());
- m_initSubFuncp->addStmtsp(declp);
- m_initSubStmts += EmitCBaseCounterVisitor(declp).count();
-
- m_chgFuncp->addStmtsp(new AstTraceInc(nodep->fileline(), declp, valuep));
- // The full version will get constructed in V3Trace
+ subtypep->accept(*this);
+ m_traValuep->deleteTree(); m_traValuep = NULL;
+ }
+ m_traShowname = oldShowname;
+ m_traValuep = oldValuep;
+ }
+ }
+ }
+ }
+ virtual void visit(AstPackArrayDType* nodep, AstNUser*) {
+ if (m_traVscp) {
+ if (!v3Global.opt.traceStructs()) {
+ // Everything downstream is packed, so deal with as one trace unit
+ // This may not be the nicest for user presentation, but is a much faster way to trace
+ addTraceDecl(VNumRange());
+ } else {
+ AstNodeDType* subtypep = nodep->subDTypep()->skipRefp();
+ for (int i=nodep->lsb(); i<=nodep->msb(); ++i) {
+ string oldShowname = m_traShowname;
+ AstNode* oldValuep = m_traValuep;
+ {
+ m_traShowname += string("(")+cvtToStr(i)+string(")");
+ m_traValuep = new AstSel(nodep->fileline(), m_traValuep->cloneTree(true),
+ (i - nodep->lsb())*subtypep->width(),
+ subtypep->width());
+ subtypep->accept(*this);
+ m_traValuep->deleteTree(); m_traValuep = NULL;
+ }
+ m_traShowname = oldShowname;
+ m_traValuep = oldValuep;
+ }
+ }
+ }
+ }
+ virtual void visit(AstNodeClassDType* nodep, AstNUser*) {
+ if (m_traVscp) {
+ if (nodep->packed() && !v3Global.opt.traceStructs()) {
+ // Everything downstream is packed, so deal with as one trace unit
+ // This may not be the nicest for user presentation, but is a much faster way to trace
+ addTraceDecl(VNumRange());
+ } else {
+ if (!nodep->packed()) {
+ addIgnore("Unsupported: Unpacked struct/union");
+ } else {
+ for (AstMemberDType* itemp = nodep->membersp(); itemp; itemp=itemp->nextp()->castMemberDType()) {
+ AstNodeDType* subtypep = itemp->subDTypep()->skipRefp();
+ string oldShowname = m_traShowname;
+ AstNode* oldValuep = m_traValuep;
+ {
+ m_traShowname += string(" ")+itemp->prettyName();
+ m_traValuep->dumpTree(cout, "-tv: ");
+ if (nodep->castStructDType()) {
+ m_traValuep = new AstSel(nodep->fileline(), m_traValuep->cloneTree(true),
+ itemp->lsb(), subtypep->width());
+ subtypep->accept(*this);
+ m_traValuep->deleteTree(); m_traValuep = NULL;
+ } else { // Else union, replicate fields
+ subtypep->accept(*this);
+ }
+ }
+ m_traShowname = oldShowname;
+ m_traValuep = oldValuep;
+ }
+ }
}
}
}
+ virtual void visit(AstBasicDType* nodep, AstNUser*) {
+ if (m_traVscp) {
+ addTraceDecl(VNumRange());
+ }
+ }
+ virtual void visit(AstNodeDType* nodep, AstNUser*) {
+ // Note more specific dtypes above
+ if (!m_traVscp) return;
+ addIgnore("Unsupported: data type");
+ }
+
//--------------------
virtual void visit(AstNode* nodep, AstNUser*) {
nodep->iterateChildren(*this);
@@ -178,6 +303,8 @@ public:
m_fullFuncp = NULL;
m_chgFuncp = NULL;
m_funcNum = 0;
+ m_traVscp = NULL;
+ m_traValuep = NULL;
nodep->accept(*this);
}
virtual ~TraceDeclVisitor() {
diff --git a/src/V3TraceDecl.h b/src/V3TraceDecl.h
index 070410b..d96a9f4 100644
--- a/src/V3TraceDecl.h
+++ b/src/V3TraceDecl.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Tristate.cpp b/src/V3Tristate.cpp
index 8631f6e..882548c 100644
--- a/src/V3Tristate.cpp
+++ b/src/V3Tristate.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Tristate.h b/src/V3Tristate.h
index 05bff4b..a033bff 100644
--- a/src/V3Tristate.h
+++ b/src/V3Tristate.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Undriven.cpp b/src/V3Undriven.cpp
index 0d1d028..36320fb 100644
--- a/src/V3Undriven.cpp
+++ b/src/V3Undriven.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2004-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2004-2014 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.
diff --git a/src/V3Undriven.h b/src/V3Undriven.h
index 628167e..48c3713 100644
--- a/src/V3Undriven.h
+++ b/src/V3Undriven.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Unknown.cpp b/src/V3Unknown.cpp
index f68cbe6..d00cd36 100644
--- a/src/V3Unknown.cpp
+++ b/src/V3Unknown.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Unknown.h b/src/V3Unknown.h
index 847726e..7821b58 100644
--- a/src/V3Unknown.h
+++ b/src/V3Unknown.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Unroll.cpp b/src/V3Unroll.cpp
index ceeee18..e549715 100644
--- a/src/V3Unroll.cpp
+++ b/src/V3Unroll.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Unroll.h b/src/V3Unroll.h
index b478ea5..62e28fe 100644
--- a/src/V3Unroll.h
+++ b/src/V3Unroll.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Width.cpp b/src/V3Width.cpp
index d5e49de..03f500f 100644
--- a/src/V3Width.cpp
+++ b/src/V3Width.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3Width.h b/src/V3Width.h
index 39d3d2c..c535301 100644
--- a/src/V3Width.h
+++ b/src/V3Width.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3WidthCommit.h b/src/V3WidthCommit.h
index 3befd8e..3af43d7 100644
--- a/src/V3WidthCommit.h
+++ b/src/V3WidthCommit.h
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/V3WidthSel.cpp b/src/V3WidthSel.cpp
index 4f5357f..3f5b6a4 100644
--- a/src/V3WidthSel.cpp
+++ b/src/V3WidthSel.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/Verilator.cpp b/src/Verilator.cpp
index 2de7a6b..863dbb1 100644
--- a/src/Verilator.cpp
+++ b/src/Verilator.cpp
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/astgen b/src/astgen
index 699bce0..8352b1d 100755
--- a/src/astgen
+++ b/src/astgen
@@ -645,7 +645,7 @@ Makes a report report.
=head1 DISTRIBUTION
-Copyright 2002-2013 by Wilson Snyder. Verilator is free software; you can
+Copyright 2002-2014 by Wilson Snyder. Verilator 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.
diff --git a/src/bisonpre b/src/bisonpre
index df1fdd8..f75b9d4 100755
--- a/src/bisonpre
+++ b/src/bisonpre
@@ -570,7 +570,7 @@ This is part of the L<http://www.veripool.org/> free Verilog EDA software
tool suite. The latest version is available from CPAN and from
L<http://www.veripool.org/>.
-Copyright 2008-2013 by Wilson Snyder. This package is free software; you
+Copyright 2008-2014 by Wilson Snyder. This package 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.
diff --git a/src/config_build.h b/src/config_build.h
index d5755b8..fc917dc 100644
--- a/src/config_build.h
+++ b/src/config_build.h
@@ -11,7 +11,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -27,7 +27,7 @@
//**** Version and host name
// Autoconf substitutes this with the strings from AC_INIT.
-#define PACKAGE_STRING "Verilator 3.854 2013-11-26"
+#define PACKAGE_STRING "Verilator 3.855 2014-01-18"
#define DTVERSION PACKAGE_STRING
diff --git a/src/config_build.h.in b/src/config_build.h.in
index f2023d8..144932c 100644
--- a/src/config_build.h.in
+++ b/src/config_build.h.in
@@ -10,7 +10,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/src/config_rev.h b/src/config_rev.h
index 1680fa2..0cd50c1 100644
--- a/src/config_rev.h
+++ b/src/config_rev.h
@@ -1 +1 @@
-static const char* DTVERSION_rev = "verilator_3_853-19-g0e1fcd3";
+static const char* DTVERSION_rev = "verilator_3_854-13-g470f12f";
diff --git a/src/config_rev.pl b/src/config_rev.pl
index de04f72..34a0c84 100755
--- a/src/config_rev.pl
+++ b/src/config_rev.pl
@@ -1,7 +1,7 @@
#!/usr/bin/perl -w
######################################################################
#
-# Copyright 2005-2013 by Wilson Snyder. Verilator is free software; you
+# Copyright 2005-2014 by Wilson Snyder. Verilator 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.
diff --git a/src/flexfix b/src/flexfix
index 9825b60..d3b8cf8 100755
--- a/src/flexfix
+++ b/src/flexfix
@@ -1,7 +1,7 @@
#!/usr/bin/perl -w
######################################################################
#
-# Copyright 2002-2013 by Wilson Snyder. Verilator is free software; you
+# Copyright 2002-2014 by Wilson Snyder. Verilator 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.
diff --git a/src/pod2latexfix b/src/pod2latexfix
index 0913f48..a10a4db 100755
--- a/src/pod2latexfix
+++ b/src/pod2latexfix
@@ -1,7 +1,7 @@
#!/usr/bin/perl -w
######################################################################
#
-# Copyright 2002-2013 by Wilson Snyder. Verilator is free software; you
+# Copyright 2002-2014 by Wilson Snyder. Verilator 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.
diff --git a/src/verilog.l b/src/verilog.l
index ac58f77..035b384 100644
--- a/src/verilog.l
+++ b/src/verilog.l
@@ -6,7 +6,7 @@
*
**************************************************************************
*
- * Copyright 2003-2013 by Wilson Snyder. Verilator is free software;
+ * Copyright 2003-2014 by Wilson Snyder. Verilator 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.
diff --git a/src/verilog.y b/src/verilog.y
index 3663ee0..6d2bc5d 100644
--- a/src/verilog.y
+++ b/src/verilog.y
@@ -6,7 +6,7 @@
//
//*************************************************************************
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
@@ -1058,22 +1058,27 @@ modport_item<nodep>: // ==IEEE: modport_item
id/*new-modport*/ '(' modportPortsDeclList ')' { $$ = new AstModport($2,*$1,$3); }
;
-modportPortsDeclList<modportvarrefp>:
+modportPortsDeclList<nodep>:
modportPortsDecl { $$ = $1; }
- | modportPortsDeclList ',' modportPortsDecl { $$ = $1->addNextNull($3)->castModportVarRef(); }
+ | modportPortsDeclList ',' modportPortsDecl { $$ = $1->addNextNull($3); }
;
// IEEE: modport_ports_declaration + modport_simple_ports_declaration
// + (modport_tf_ports_declaration+import_export) + modport_clocking_declaration
// We've expanded the lists each take to instead just have standalone ID ports.
// We track the type as with the V2k series of defines, then create as each ID is seen.
-modportPortsDecl<modportvarrefp>:
+modportPortsDecl<nodep>:
// // IEEE: modport_simple_ports_declaration
port_direction modportSimplePort { $$ = new AstModportVarRef($<fl>1,*$2,GRAMMARP->m_varIO); }
// // IEEE: modport_clocking_declaration
- //UNSUP yCLOCKING idAny/*clocking_identifier*/ { }
- //UNSUP yIMPORT modport_tf_port { }
- //UNSUP yEXPORT modport_tf_port { }
+ | yCLOCKING idAny/*clocking_identifier*/ { $1->v3error("Unsupported: Modport clocking"); }
+ // // IEEE: yIMPORT modport_tf_port
+ // // IEEE: yEXPORT modport_tf_port
+ // // modport_tf_port expanded here
+ | yIMPORT id/*tf_identifier*/ { $$ = new AstModportFTaskRef($<fl>1,*$2,false); }
+ | yEXPORT id/*tf_identifier*/ { $$ = new AstModportFTaskRef($<fl>1,*$2,true); }
+ | yIMPORT method_prototype { $1->v3error("Unsupported: Modport import with prototype"); }
+ | yEXPORT method_prototype { $1->v3error("Unsupported: Modport export with prototype"); }
// Continuations of above after a comma.
// // IEEE: modport_simple_ports_declaration
| modportSimplePort { $$ = new AstModportVarRef($<fl>1,*$1,AstVarType::INOUT); }
@@ -1879,7 +1884,7 @@ netSigList<varp>: // IEEE: list_of_port_identifiers
netSig<varp>: // IEEE: net_decl_assignment - one element from list_of_port_identifiers
netId sigAttrListE { $$ = VARDONEA($<fl>1,*$1, NULL, $2); }
| netId sigAttrListE '=' expr { $$ = VARDONEA($<fl>1,*$1, NULL, $2); $$->addNext(new AstAssignW($3,new AstVarRef($3,$$->name(),true),$4)); }
- | netId rangeList sigAttrListE { $$ = VARDONEA($<fl>1,*$1, $2, $3); }
+ | netId variable_dimensionList sigAttrListE { $$ = VARDONEA($<fl>1,*$1, $2, $3); }
;
netId<strp>:
@@ -2632,6 +2637,11 @@ funcIsolateE<cint>:
| yVL_ISOLATE_ASSIGNMENTS { $$ = 1; }
;
+method_prototype:
+ task_prototype { }
+ | function_prototype { }
+ ;
+
lifetimeE: // IEEE: [lifetime]
/* empty */ { }
| lifetime { }
diff --git a/test_c/Makefile b/test_c/Makefile
index 1a3e617..65cfc0f 100644
--- a/test_c/Makefile
+++ b/test_c/Makefile
@@ -5,7 +5,7 @@
# This calls the object directory makefile. That allows the objects to
# be placed in the "current directory" which simplifies the Makefile.
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_c/Makefile_obj b/test_c/Makefile_obj
index f615ab6..1d544ef 100644
--- a/test_c/Makefile_obj
+++ b/test_c/Makefile_obj
@@ -5,7 +5,7 @@
#
# This is executed in the object directory, and called by ../Makefile
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_c/sim_main.cpp b/test_c/sim_main.cpp
index 99cb25d..263c97a 100644
--- a/test_c/sim_main.cpp
+++ b/test_c/sim_main.cpp
@@ -1,6 +1,6 @@
// DESCRIPTION: Verilator Example: Top level main for invoking model
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/test_regress/Makefile b/test_regress/Makefile
index 7b67286..6d87ca4 100644
--- a/test_regress/Makefile
+++ b/test_regress/Makefile
@@ -5,7 +5,7 @@
# This calls the object directory makefile. That allows the objects to
# be placed in the "current directory" which simplifies the Makefile.
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_regress/Makefile_obj b/test_regress/Makefile_obj
index 1e42484..0a487eb 100644
--- a/test_regress/Makefile_obj
+++ b/test_regress/Makefile_obj
@@ -5,7 +5,7 @@
#
# This is executed in the object directory, and called by ../Makefile
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_regress/driver.pl b/test_regress/driver.pl
index d47684e..fd7fe53 100755
--- a/test_regress/driver.pl
+++ b/test_regress/driver.pl
@@ -226,7 +226,7 @@ sub parameter {
push @Opt_Driver_Verilator_Flags, $param;
$_Parameter_Next_Level = $param;
}
- elsif ($param =~ /^-?-W/) {
+ elsif ($param =~ /^-?(-W||-debug-check)/) {
push @Opt_Driver_Verilator_Flags, $param;
}
else {
@@ -1896,7 +1896,7 @@ Command to use to invoke VCS.
The latest version is available from L<http://www.veripool.org/>.
-Copyright 2003-2013 by Wilson Snyder. Verilator is free software; you can
+Copyright 2003-2014 by Wilson Snyder. Verilator 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.
diff --git a/test_regress/t/TestSimulator.h b/test_regress/t/TestSimulator.h
index 4a875e6..849fe1d 100644
--- a/test_regress/t/TestSimulator.h
+++ b/test_regress/t/TestSimulator.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2013-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2013-2014 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.
diff --git a/test_regress/t/TestVpi.h b/test_regress/t/TestVpi.h
index 642c378..acf2093 100644
--- a/test_regress/t/TestVpi.h
+++ b/test_regress/t/TestVpi.h
@@ -1,7 +1,7 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//*************************************************************************
//
-// Copyright 2013-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2013-2014 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.
diff --git a/test_regress/t/t_array_packed_value_list.pl b/test_regress/t/t_array_pattern_packed.pl
similarity index 93%
copy from test_regress/t/t_array_packed_value_list.pl
copy to test_regress/t/t_array_pattern_packed.pl
index 8b65103..690264b 100755
--- a/test_regress/t/t_array_packed_value_list.pl
+++ b/test_regress/t/t_array_pattern_packed.pl
@@ -10,11 +10,11 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di
$Self->{vlt} and $Self->unsupported("Verilator unsupported, bug355");
compile (
- );
+ );
execute (
- check_finished=>1,
- );
+ check_finished=>1,
+ );
ok(1);
1;
diff --git a/test_regress/t/t_array_packed_value_list.v b/test_regress/t/t_array_pattern_packed.v
similarity index 85%
rename from test_regress/t/t_array_packed_value_list.v
rename to test_regress/t/t_array_pattern_packed.v
index b296c15..8f743d2 100644
--- a/test_regress/t/t_array_packed_value_list.v
+++ b/test_regress/t/t_array_pattern_packed.v
@@ -10,6 +10,34 @@ module t (/*AUTOARG*/
input clk;
+ logic [1:0] [3:0] [3:0] array_simp; // big endian array
+
+ initial begin
+ array_simp[0] = '{ 4'd3, 4'd2, 4'd1, 4'd0};
+ if (array_simp[0] !== 16'h3210) $stop;
+
+ // verilator lint_off WIDTH
+ array_simp[0] = '{ 3 ,2 ,1, 0 };
+ // verilator lint_on WIDTH
+ if (array_simp[0] !== 16'h3210) $stop;
+
+ // Doesn't seem to work for unpacked arrays in other simulators
+ //if (array_simp[0] !== 16'h3210) $stop;
+ //array_simp[0] = '{ 1:4'd3, default:13};
+ //if (array_simp[0] !== 16'hDD3D) $stop;
+
+ array_simp = '{ '{ 4'd3, 4'd2, 4'd1, 4'd0 }, '{ 4'd1, 4'd2, 4'd3, 4'd4 }};
+ if (array_simp !== 32'h3210_1234) $stop;
+
+ // Doesn't seem to work for unpacked arrays in other simulators
+ //array_simp <= '{2 { '{4 { 4'd3, 4'd2, 4'd1, 4'd0 }} } };
+
+ $write("*-* All Finished *-*\n");
+ $finish;
+ end
+
+ //====================
+
// parameters for array sizes
localparam WA = 4; // address dimension size
localparam WB = 4; // bit dimension size
diff --git a/test_regress/t/t_array_packed_value_list.pl b/test_regress/t/t_array_pattern_unpacked.pl
similarity index 93%
copy from test_regress/t/t_array_packed_value_list.pl
copy to test_regress/t/t_array_pattern_unpacked.pl
index 8b65103..690264b 100755
--- a/test_regress/t/t_array_packed_value_list.pl
+++ b/test_regress/t/t_array_pattern_unpacked.pl
@@ -10,11 +10,11 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di
$Self->{vlt} and $Self->unsupported("Verilator unsupported, bug355");
compile (
- );
+ );
execute (
- check_finished=>1,
- );
+ check_finished=>1,
+ );
ok(1);
1;
diff --git a/test_regress/t/t_array_pattern_unpacked.v b/test_regress/t/t_array_pattern_unpacked.v
new file mode 100644
index 0000000..bc63cdf
--- /dev/null
+++ b/test_regress/t/t_array_pattern_unpacked.v
@@ -0,0 +1,34 @@
+// DESCRIPTION: Verilator: Verilog Test module
+//
+// This file ONLY is placed into the Public Domain, for any use,
+// without warranty, 2009 by Iztok Jeras.
+
+module t (/*AUTOARG*/);
+
+ logic [3:0] array_simp [1:0] [3:0]; // big endian array
+
+ initial begin
+ array_simp[0] = '{ 4'd3, 4'd2, 4'd1, 4'd0};
+ if ({array_simp[0][3],array_simp[0][2],array_simp[0][1],array_simp[0][0]} !== 16'h3210) $stop;
+
+ // verilator lint_off WIDTH
+ array_simp[0] = '{ 3 ,2 ,1, 0 };
+ // verilator lint_on WIDTH
+ if ({array_simp[0][3],array_simp[0][2],array_simp[0][1],array_simp[0][0]} !== 16'h3210) $stop;
+
+ // Doesn't seem to work for unpacked arrays in other simulators
+ //array_simp[0] = '{ 1:4'd3, default:13 };
+ //if ({array_simp[0][3],array_simp[0][2],array_simp[0][1],array_simp[0][0]} !== 16'hDD3D) $stop;
+
+ array_simp = '{ '{ 4'd3, 4'd2, 4'd1, 4'd0 }, '{ 4'd1, 4'd2, 4'd3, 4'd4 }};
+ if ({array_simp[1][3],array_simp[1][2],array_simp[1][1],array_simp[1][0],
+ array_simp[0][3],array_simp[0][2],array_simp[0][1],array_simp[0][0]} !== 32'h3210_1234) $stop;
+
+ // Doesn't seem to work for unpacked arrays in other simulators
+ //array_simp <= '{2{ '{4{ 4'd3, 4'd2, 4'd1, 4'd0 }} }};
+
+ $write("*-* All Finished *-*\n");
+ $finish;
+ end
+
+endmodule
diff --git a/test_regress/t/t_array_packed_value_list.pl b/test_regress/t/t_interface1_modport_trace.pl
similarity index 64%
copy from test_regress/t/t_array_packed_value_list.pl
copy to test_regress/t/t_interface1_modport_trace.pl
index 8b65103..103690b 100755
--- a/test_regress/t/t_array_packed_value_list.pl
+++ b/test_regress/t/t_interface1_modport_trace.pl
@@ -2,19 +2,20 @@
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
+# 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.
-$Self->{vlt} and $Self->unsupported("Verilator unsupported, bug355");
+top_filename("t/t_interface1_modport.v");
compile (
- );
+ verilator_flags2 => ['--trace'],
+ );
execute (
- check_finished=>1,
- );
+ check_finished=>1,
+ );
ok(1);
1;
diff --git a/test_regress/t/t_array_packed_value_list.pl b/test_regress/t/t_interface_modport_export.pl
similarity index 80%
copy from test_regress/t/t_array_packed_value_list.pl
copy to test_regress/t/t_interface_modport_export.pl
index 8b65103..4bd751b 100755
--- a/test_regress/t/t_array_packed_value_list.pl
+++ b/test_regress/t/t_interface_modport_export.pl
@@ -7,14 +7,14 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
-$Self->{vlt} and $Self->unsupported("Verilator unsupported, bug355");
+$Self->{vlt} and $Self->unsupported("Verilator unsupported, bug696");
compile (
- );
+ );
execute (
- check_finished=>1,
- );
+ check_finished=>1,
+ );
ok(1);
1;
diff --git a/test_regress/t/t_interface_modport_export.v b/test_regress/t/t_interface_modport_export.v
new file mode 100644
index 0000000..11a59f1
--- /dev/null
+++ b/test_regress/t/t_interface_modport_export.v
@@ -0,0 +1,74 @@
+// DESCRIPTION: Verilator: Verilog Test module
+//
+// A test of the export parameter used with modport
+//
+// This file ONLY is placed into the Public Domain, for any use,
+// without warranty, 2013 by Jeremy Bennett.
+
+interface test_if;
+
+ // Pre-declare function
+ extern function myfunc (input logic val);
+
+ // Interface variable
+ logic data;
+
+ // Modport
+ modport mp_e(
+ export myfunc,
+ output data
+ );
+
+ // Modport
+ modport mp_i(
+ import myfunc,
+ output data
+ );
+
+endinterface // test_if
+
+
+module t (/*AUTOARG*/
+ // Inputs
+ clk
+ );
+ input clk;
+
+ test_if i ();
+
+ testmod_callee testmod_callee_i (.ie (i.mp_e));
+ testmod_caller testmod_caller_i (.clk (clk),
+ .ii (i.mp_i));
+endmodule
+
+
+module testmod_callee
+ (
+ test_if.mp_e ie
+ );
+
+ function automatic logic ie.myfunc (input logic val);
+ begin
+ myfunc = (val == 1'b0);
+ end
+ endfunction
+endmodule // testmod_caller
+
+
+module testmod_caller
+ (
+ input clk,
+ test_if.mp_i ii
+ );
+
+ always @(posedge clk) begin
+ ii.data = 1'b0;
+ if (ii.myfunc (1'b0)) begin
+ $write("*-* All Finished *-*\n");
+ $finish;
+ end
+ else begin
+ $stop;
+ end
+ end
+endmodule
diff --git a/test_regress/t/t_array_packed_value_list.pl b/test_regress/t/t_interface_modport_import.pl
similarity index 80%
copy from test_regress/t/t_array_packed_value_list.pl
copy to test_regress/t/t_interface_modport_import.pl
index 8b65103..f912897 100755
--- a/test_regress/t/t_array_packed_value_list.pl
+++ b/test_regress/t/t_interface_modport_import.pl
@@ -7,14 +7,12 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
-$Self->{vlt} and $Self->unsupported("Verilator unsupported, bug355");
-
compile (
- );
+ );
execute (
- check_finished=>1,
- );
+ check_finished=>1,
+ );
ok(1);
1;
diff --git a/test_regress/t/t_interface_modport_import.v b/test_regress/t/t_interface_modport_import.v
new file mode 100644
index 0000000..c963fbf
--- /dev/null
+++ b/test_regress/t/t_interface_modport_import.v
@@ -0,0 +1,58 @@
+// DESCRIPTION: Verilator: Verilog Test module
+//
+// A test of the import parameter used with modport
+//
+// This file ONLY is placed into the Public Domain, for any use,
+// without warranty, 2013 by Jeremy Bennett.
+
+interface test_if;
+
+ // Interface variable
+ logic data;
+
+ // Modport
+ modport mp(
+ import myfunc,
+ output data
+ );
+
+ function automatic logic myfunc (input logic val);
+ begin
+ myfunc = (val == 1'b0);
+ end
+ endfunction
+
+endinterface // test_if
+
+
+module t (/*AUTOARG*/
+ // Inputs
+ clk
+ );
+ input clk;
+
+ test_if i ();
+
+ testmod testmod_i (.clk (clk),
+ .i (i.mp));
+
+endmodule
+
+
+module testmod
+ (
+ input clk,
+ test_if.mp i
+ );
+
+ always @(posedge clk) begin
+ i.data = 1'b0;
+ if (i.myfunc (1'b0)) begin
+ $write("*-* All Finished *-*\n");
+ $finish;
+ end
+ else begin
+ $stop;
+ end
+ end
+endmodule
diff --git a/test_regress/t/t_lint_pindup_bad.pl b/test_regress/t/t_lint_pindup_bad.pl
index 2549b7a..3cde707 100755
--- a/test_regress/t/t_lint_pindup_bad.pl
+++ b/test_regress/t/t_lint_pindup_bad.pl
@@ -19,8 +19,8 @@ compile (
'%Error: t/t_lint_pindup_bad.v:\d+: Duplicate pin connection: i
%Error: t/t_lint_pindup_bad.v:\d+: ... Location of original pin connection
%Error: t/t_lint_pindup_bad.v:\d+: Pin not found: __pinNumber4
-%Error: t/t_lint_pindup_bad.v:\d+: Duplicate pin connection: P
-%Error: t/t_lint_pindup_bad.v:\d+: ... Location of original pin connection
+%Error: t/t_lint_pindup_bad.v:\d+: Duplicate parameter pin connection: P
+%Error: t/t_lint_pindup_bad.v:\d+: ... Location of original parameter pin connection
%Error: Exiting due to.*',
);
diff --git a/test_regress/t/t_mem_multiwire.v b/test_regress/t/t_mem_multiwire.v
index 89b3660..016b141 100644
--- a/test_regress/t/t_mem_multiwire.v
+++ b/test_regress/t/t_mem_multiwire.v
@@ -12,6 +12,7 @@ module t (/*AUTOARG*/
// verilator lint_off LITENDIAN
wire [7:0] array [2:0][1:3];
+ wire [7:0] arrayNoColon [2][3];
// verilator lint_on LITENDIAN
integer cyc; initial cyc=0;
diff --git a/test_regress/t/t_array_packed_value_list.pl b/test_regress/t/t_struct_init_trace.pl
similarity index 70%
rename from test_regress/t/t_array_packed_value_list.pl
rename to test_regress/t/t_struct_init_trace.pl
index 8b65103..d3c5875 100755
--- a/test_regress/t/t_array_packed_value_list.pl
+++ b/test_regress/t/t_struct_init_trace.pl
@@ -2,19 +2,20 @@
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
+# 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.
-$Self->{vlt} and $Self->unsupported("Verilator unsupported, bug355");
+top_filename("t/t_struct_init.v");
compile (
+ verilator_flags2 => ['--cc --trace'],
);
execute (
check_finished=>1,
- );
+ );
ok(1);
1;
diff --git a/test_regress/t/t_trace_complex.out b/test_regress/t/t_trace_complex.out
new file mode 100644
index 0000000..ce04826
--- /dev/null
+++ b/test_regress/t/t_trace_complex.out
@@ -0,0 +1,148 @@
+$version Generated by VerilatedVcd $end
+$date Sat Dec 14 19:07:34 2013
+ $end
+$timescale 1ns $end
+
+ $scope module top $end
+ $var wire 1 0 clk $end
+ $scope module v $end
+ $var wire 1 0 clk $end
+ $var wire 32 # cyc [31:0] $end
+ $var wire 2 ' v_arrp [2:1] $end
+ $var wire 2 ( v_arrp_arrp [2:1] $end
+ $var wire 2 ) v_arrp_strp [1:0] $end
+ $var wire 1 1 v_arru(1) $end
+ $var wire 1 2 v_arru(2) $end
+ $var wire 2 * v_arru_arrp(3) [2:1] $end
+ $var wire 2 + v_arru_arrp(4) [2:1] $end
+ $var wire 1 3 v_arru_arru(3)(1) $end
+ $var wire 1 4 v_arru_arru(3)(2) $end
+ $var wire 1 5 v_arru_arru(4)(1) $end
+ $var wire 1 6 v_arru_arru(4)(2) $end
+ $var wire 2 , v_arru_strp(3) [1:0] $end
+ $var wire 2 - v_arru_strp(4) [1:0] $end
+ $var wire 2 $ v_strp [1:0] $end
+ $var wire 4 % v_strp_strp [3:0] $end
+ $var wire 2 & v_unip_strp [1:0] $end
+ $scope module unnamedblk1 $end
+ $var wire 32 . b [31:0] $end
+ $scope module unnamedblk2 $end
+ $var wire 32 / a [31:0] $end
+ $upscope $end
+ $upscope $end
+ $upscope $end
+ $upscope $end
+$enddefinitions $end
+
+
+#0
+b00000000000000000000000000000000 #
+b00 $
+b0000 %
+b00 &
+b00 '
+b0000 (
+b0000 )
+b00 *
+b00 +
+b00 ,
+b00 -
+b00000000000000000000000000000000 .
+b00000000000000000000000000000000 /
+00
+01
+02
+03
+04
+05
+06
+#10
+b00000000000000000000000000000001 #
+b11 $
+b1111 %
+b11 &
+b11 '
+b1111 (
+b1111 )
+b11 *
+b11 +
+b11 ,
+b11 -
+b00000000000000000000000000000101 .
+b00000000000000000000000000000101 /
+10
+#15
+00
+#20
+b00000000000000000000000000000010 #
+b00 $
+b0000 %
+b00 &
+b00 '
+b0000 (
+b0000 )
+b00 *
+b00 +
+b00 ,
+b00 -
+10
+#25
+00
+#30
+b00000000000000000000000000000011 #
+b11 $
+b1111 %
+b11 &
+b11 '
+b1111 (
+b1111 )
+b11 *
+b11 +
+b11 ,
+b11 -
+10
+#35
+00
+#40
+b00000000000000000000000000000100 #
+b00 $
+b0000 %
+b00 &
+b00 '
+b0000 (
+b0000 )
+b00 *
+b00 +
+b00 ,
+b00 -
+10
+#45
+00
+#50
+b00000000000000000000000000000101 #
+b11 $
+b1111 %
+b11 &
+b11 '
+b1111 (
+b1111 )
+b11 *
+b11 +
+b11 ,
+b11 -
+10
+#55
+00
+#60
+b00000000000000000000000000000110 #
+b00 $
+b0000 %
+b00 &
+b00 '
+b0000 (
+b0000 )
+b00 *
+b00 +
+b00 ,
+b00 -
+10
diff --git a/test_regress/t/t_trace_complex.pl b/test_regress/t/t_trace_complex.pl
new file mode 100755
index 0000000..1e6cacc
--- /dev/null
+++ b/test_regress/t/t_trace_complex.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/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.
+
+compile (
+ verilator_flags2 => ['--cc --trace'],
+ );
+
+execute (
+ check_finished=>1,
+ );
+
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_strp /);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_strp_strp /);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arrp /);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arrp_arrp /);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arrp_strp /);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arru\(/);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arru_arru\(/);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arru_arrp\(/);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arru_strp\(/);
+
+vcd_identical ("$Self->{obj_dir}/simx.vcd", "t/$Self->{name}.out");
+
+ok(1);
+1;
diff --git a/test_regress/t/t_trace_complex.v b/test_regress/t/t_trace_complex.v
new file mode 100644
index 0000000..03e331e
--- /dev/null
+++ b/test_regress/t/t_trace_complex.v
@@ -0,0 +1,67 @@
+// DESCRIPTION: Verilator: Verilog Test module
+//
+// This file ONLY is placed into the Public Domain, for any use,
+// without warranty, 2009 by Wilson Snyder.
+
+module t (clk);
+ input clk;
+ integer cyc=0;
+
+ typedef struct packed {
+ bit b1;
+ bit b0;
+ } strp_t;
+
+ typedef struct packed {
+ strp_t x1;
+ strp_t x0;
+ } strp_strp_t;
+
+ typedef union packed {
+ strp_t x1;
+ strp_t x0;
+ } unip_strp_t;
+
+ typedef bit [2:1] arrp_t;
+ typedef arrp_t [4:3] arrp_arrp_t;
+
+ typedef strp_t [4:3] arrp_strp_t;
+
+ typedef bit arru_t [2:1];
+ typedef arru_t arru_arru_t [4:3];
+ typedef arrp_t arru_arrp_t [4:3];
+ typedef strp_t arru_strp_t [4:3];
+
+ strp_t v_strp;
+ strp_strp_t v_strp_strp;
+ unip_strp_t v_unip_strp;
+ arrp_t v_arrp;
+ arrp_arrp_t v_arrp_arrp;
+ arrp_strp_t v_arrp_strp;
+ arru_t v_arru;
+ arru_arru_t v_arru_arru;
+ arru_arrp_t v_arru_arrp;
+ arru_strp_t v_arru_strp;
+
+ always @ (posedge clk) begin
+ cyc <= cyc + 1;
+ v_strp <= ~v_strp;
+ v_strp_strp <= ~v_strp_strp;
+ v_unip_strp <= ~v_unip_strp;
+ v_arrp_strp <= ~v_arrp_strp;
+ v_arrp <= ~v_arrp;
+ v_arrp_arrp <= ~v_arrp_arrp;
+ for (integer b=3; b<=4; b++) begin
+ v_arru[b] <= ~v_arru[b];
+ v_arru_strp[b] <= ~v_arru_strp[b];
+ v_arru_arrp[b] <= ~v_arru_arrp[b];
+ for (integer a=3; a<=4; a++) begin
+ v_arru_arru[a][b] = ~v_arru_arru[a][b];
+ end
+ end
+ if (cyc == 5) begin
+ $write("*-* All Finished *-*\n");
+ $finish;
+ end
+ end
+endmodule
diff --git a/test_regress/t/t_trace_complex_structs.out b/test_regress/t/t_trace_complex_structs.out
new file mode 100644
index 0000000..fc168e5
--- /dev/null
+++ b/test_regress/t/t_trace_complex_structs.out
@@ -0,0 +1,260 @@
+$version Generated by VerilatedVcd $end
+$date Sat Dec 14 18:56:47 2013
+ $end
+$timescale 1ns $end
+
+ $scope module top $end
+ $var wire 1 ; clk $end
+ $scope module v $end
+ $var wire 1 ; clk $end
+ $var wire 32 # cyc [31:0] $end
+ $var wire 2 , v_arrp [2:1] $end
+ $var wire 2 - v_arrp_arrp(3) [1:0] $end
+ $var wire 2 . v_arrp_arrp(4) [1:0] $end
+ $var wire 1 < v_arru(1) $end
+ $var wire 1 = v_arru(2) $end
+ $var wire 2 3 v_arru_arrp(3) [2:1] $end
+ $var wire 2 4 v_arru_arrp(4) [2:1] $end
+ $var wire 1 > v_arru_arru(3)(1) $end
+ $var wire 1 ? v_arru_arru(3)(2) $end
+ $var wire 1 @ v_arru_arru(4)(1) $end
+ $var wire 1 A v_arru_arru(4)(2) $end
+ $scope module unnamedblk1 $end
+ $var wire 32 9 b [31:0] $end
+ $scope module unnamedblk2 $end
+ $var wire 32 : a [31:0] $end
+ $upscope $end
+ $upscope $end
+ $scope module v_arrp_strp(3) $end
+ $var wire 1 0 b0 $end
+ $var wire 1 / b1 $end
+ $upscope $end
+ $scope module v_arrp_strp(4) $end
+ $var wire 1 2 b0 $end
+ $var wire 1 1 b1 $end
+ $upscope $end
+ $scope module v_arru_strp(3) $end
+ $var wire 1 6 b0 $end
+ $var wire 1 5 b1 $end
+ $upscope $end
+ $scope module v_arru_strp(4) $end
+ $var wire 1 8 b0 $end
+ $var wire 1 7 b1 $end
+ $upscope $end
+ $scope module v_strp $end
+ $var wire 1 % b0 $end
+ $var wire 1 $ b1 $end
+ $upscope $end
+ $scope module v_strp_strp $end
+ $scope module x0 $end
+ $var wire 1 ) b0 $end
+ $var wire 1 ( b1 $end
+ $upscope $end
+ $scope module x1 $end
+ $var wire 1 ' b0 $end
+ $var wire 1 & b1 $end
+ $upscope $end
+ $upscope $end
+ $scope module v_unip_strp $end
+ $scope module x0 $end
+ $var wire 1 + b0 $end
+ $var wire 1 * b1 $end
+ $upscope $end
+ $scope module x1 $end
+ $var wire 1 + b0 $end
+ $var wire 1 * b1 $end
+ $upscope $end
+ $upscope $end
+ $upscope $end
+ $upscope $end
+$enddefinitions $end
+
+
+#0
+b00000000000000000000000000000000 #
+0$
+0%
+0&
+0'
+0(
+0)
+0*
+0+
+b00 ,
+b00 -
+b00 .
+0/
+00
+01
+02
+b00 3
+b00 4
+05
+06
+07
+08
+b00000000000000000000000000000000 9
+b00000000000000000000000000000000 :
+0;
+0<
+0=
+0>
+0?
+0@
+0A
+#10
+b00000000000000000000000000000001 #
+1$
+1%
+1&
+1'
+1(
+1)
+1*
+1+
+b11 ,
+b11 -
+b11 .
+1/
+10
+11
+12
+b11 3
+b11 4
+15
+16
+17
+18
+b00000000000000000000000000000101 9
+b00000000000000000000000000000101 :
+1;
+#15
+0;
+#20
+b00000000000000000000000000000010 #
+0$
+0%
+0&
+0'
+0(
+0)
+0*
+0+
+b00 ,
+b00 -
+b00 .
+0/
+00
+01
+02
+b00 3
+b00 4
+05
+06
+07
+08
+1;
+#25
+0;
+#30
+b00000000000000000000000000000011 #
+1$
+1%
+1&
+1'
+1(
+1)
+1*
+1+
+b11 ,
+b11 -
+b11 .
+1/
+10
+11
+12
+b11 3
+b11 4
+15
+16
+17
+18
+1;
+#35
+0;
+#40
+b00000000000000000000000000000100 #
+0$
+0%
+0&
+0'
+0(
+0)
+0*
+0+
+b00 ,
+b00 -
+b00 .
+0/
+00
+01
+02
+b00 3
+b00 4
+05
+06
+07
+08
+1;
+#45
+0;
+#50
+b00000000000000000000000000000101 #
+1$
+1%
+1&
+1'
+1(
+1)
+1*
+1+
+b11 ,
+b11 -
+b11 .
+1/
+10
+11
+12
+b11 3
+b11 4
+15
+16
+17
+18
+1;
+#55
+0;
+#60
+b00000000000000000000000000000110 #
+0$
+0%
+0&
+0'
+0(
+0)
+0*
+0+
+b00 ,
+b00 -
+b00 .
+0/
+00
+01
+02
+b00 3
+b00 4
+05
+06
+07
+08
+1;
diff --git a/test_regress/t/t_trace_complex_structs.pl b/test_regress/t/t_trace_complex_structs.pl
new file mode 100755
index 0000000..1d37480
--- /dev/null
+++ b/test_regress/t/t_trace_complex_structs.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/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.
+
+top_filename("t_trace_complex.v");
+
+compile (
+ verilator_flags2 => ['--cc --trace --trace-structs'],
+ );
+
+execute (
+ check_finished=>1,
+ );
+
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_strp /);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_strp_strp /);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arrp /);
+file_grep_not ("$Self->{obj_dir}/simx.vcd", qr/ v_arrp_arrp /);
+file_grep_not ("$Self->{obj_dir}/simx.vcd", qr/ v_arrp_strp /);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arru\(/);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arru_arru\(/);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arru_arrp\(/);
+file_grep ("$Self->{obj_dir}/simx.vcd", qr/ v_arru_strp\(/);
+
+vcd_identical ("$Self->{obj_dir}/simx.vcd", "t/$Self->{name}.out");
+
+ok(1);
+1;
diff --git a/test_sc/Makefile b/test_sc/Makefile
index 550deab..60a850b 100644
--- a/test_sc/Makefile
+++ b/test_sc/Makefile
@@ -5,7 +5,7 @@
# This calls the object directory makefile. That allows the objects to
# be placed in the "current directory" which simplifies the Makefile.
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_sc/Makefile_obj b/test_sc/Makefile_obj
index 41ed9c7..492d917 100644
--- a/test_sc/Makefile_obj
+++ b/test_sc/Makefile_obj
@@ -5,7 +5,7 @@
#
# This is executed in the object directory, and called by ../Makefile
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_sc/sc_main.cpp b/test_sc/sc_main.cpp
index 6a5db64..ba6be6a 100644
--- a/test_sc/sc_main.cpp
+++ b/test_sc/sc_main.cpp
@@ -1,7 +1,7 @@
// -*- SystemC -*-
// DESCRIPTION: Verilator Example: Top level main for invoking SystemC model
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/test_sp/Makefile b/test_sp/Makefile
index 81dd00a..78dbffb 100644
--- a/test_sp/Makefile
+++ b/test_sp/Makefile
@@ -5,7 +5,7 @@
# This calls the object directory makefile. That allows the objects to
# be placed in the "current directory" which simplifies the Makefile.
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_sp/Makefile_obj b/test_sp/Makefile_obj
index d08039a..9386bb5 100644
--- a/test_sp/Makefile_obj
+++ b/test_sp/Makefile_obj
@@ -5,7 +5,7 @@
#
# This is executed in the object directory, and called by ../Makefile
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_vcs/Makefile b/test_vcs/Makefile
index 5ce3c4e..1619183 100644
--- a/test_vcs/Makefile
+++ b/test_vcs/Makefile
@@ -5,7 +5,7 @@
# This calls the object directory makefile. That allows the objects to
# be placed in the "current directory" which simplifies the Makefile.
#
-# Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+# Copyright 2003-2014 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.
diff --git a/test_verilated/sim_main.cpp b/test_verilated/sim_main.cpp
index cd57d74..e2a86a9 100644
--- a/test_verilated/sim_main.cpp
+++ b/test_verilated/sim_main.cpp
@@ -1,6 +1,6 @@
// DESCRIPTION: Verilator Test: Top level main for invoking model
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/test_verilated/sim_main.v b/test_verilated/sim_main.v
index 40d8a82..6871af5 100644
--- a/test_verilated/sim_main.v
+++ b/test_verilated/sim_main.v
@@ -1,6 +1,6 @@
// DESCRIPTION: Verilator Test: Top level main for invoking model
//
-// Copyright 2003-2013 by Wilson Snyder. This program is free software; you can
+// Copyright 2003-2014 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.
diff --git a/test_verilated/vgen.pl b/test_verilated/vgen.pl
index a38b113..fa4465b 100755
--- a/test_verilated/vgen.pl
+++ b/test_verilated/vgen.pl
@@ -1133,7 +1133,7 @@ Include some signed arithmetic in the generated code. Experimental.
=head1 DISTRIBUTION
-Copyright 2001-2013 by Wilson Snyder. Verilator is free software; you can
+Copyright 2001-2014 by Wilson Snyder. Verilator 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.
diff --git a/verilator.1 b/verilator.1
index c5511e3..f25592b 100644
--- a/verilator.1
+++ b/verilator.1
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "VERILATOR 1"
-.TH VERILATOR 1 "2013-11-26" "perl v5.14.2" "User Contributed Perl Documentation"
+.TH VERILATOR 1 "2013-12-21" "perl v5.14.2" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -258,6 +258,7 @@ descriptions in the next sections for more information.
\& \-\-trace\-depth <levels> Depth of tracing
\& \-\-trace\-max\-array <depth> Maximum bit width for tracing
\& \-\-trace\-max\-width <width> Maximum array depth for tracing
+\& \-\-trace\-structs Enable tracing structure names
\& \-\-trace\-underscore Enable tracing of _signals
\& \-U<var> Undefine preprocessor define
\& \-\-unroll\-count <loops> Tune maximum loop iterations
@@ -643,7 +644,9 @@ to gcc \-MP option.
.IP "\-\-Mdir \fIdirectory\fR" 4
.IX Item "--Mdir directory"
Specifies the name of the Make object directory. All generated files will
-be placed in this directory. If not specified, \*(L"obj_dir\*(R" is used.
+be placed in this directory. If not specified, \*(L"obj_dir\*(R" is used. The
+directory is created if it does not exist and the parent directories exist;
+otherwise manually create the Mdir before calling Verilator.
.IP "\-\-mod\-prefix \fItopname\fR" 4
.IX Item "--mod-prefix topname"
Specifies the name to prepend to all lower level classes. Defaults to
@@ -876,6 +879,12 @@ simulations.
Rarely needed. Specify the maximum bit width of a signal that may be
traced. Defaults to 256, as tracing large vectors may greatly slow traced
simulations.
+.IP "\-\-trace\-structs" 4
+.IX Item "--trace-structs"
+Enable tracing to show the name of packed structure, union, and packed
+array fields, rather than a simgle combined packed bus. Due to \s-1VCD\s0 file
+format constraints this may result in significantly slower trace times and
+larger trace files.
.IP "\-\-trace\-underscore" 4
.IX Item "--trace-underscore"
Enable tracing of signals that start with an underscore. Normally, these
@@ -3583,7 +3592,7 @@ Thanks to them, and all those we've missed including above.
.IX Header "DISTRIBUTION"
The latest version is available from <http://www.veripool.org/>.
.PP
-Copyright 2003\-2013 by Wilson Snyder. Verilator is free software; you can
+Copyright 2003\-2014 by Wilson Snyder. Verilator is free software; you can
redistribute it and/or modify the Verilator internals under the terms of
either the \s-1GNU\s0 Lesser General Public License Version 3 or the Perl Artistic
License Version 2.0.
diff --git a/verilator.html b/verilator.html
index b25e0f2..d238a25 100644
--- a/verilator.html
+++ b/verilator.html
@@ -3707,7 +3707,7 @@ Williams, Jeff Winston, Joshua Wise, Johan Wouters, and Ding Xiaoliang.</p>
<hr />
<h1><a name="distribution">DISTRIBUTION</a></h1>
<p>The latest version is available from <a href="http://www.veripool.org/">http://www.veripool.org/</a>.</p>
-<p>Copyright 2003-2013 by Wilson Snyder. Verilator is free software; you can
+<p>Copyright 2003-2014 by Wilson Snyder. Verilator is free software; you can
redistribute it and/or modify the Verilator internals under the terms of
either the GNU Lesser General Public License Version 3 or the Perl Artistic
License Version 2.0.</p>
diff --git a/verilator.pdf b/verilator.pdf
index 3c25a4a..429d00c 100644
Binary files a/verilator.pdf and b/verilator.pdf differ
diff --git a/verilator.txt b/verilator.txt
index e59cb25..abfd2a0 100644
--- a/verilator.txt
+++ b/verilator.txt
@@ -3381,7 +3381,7 @@ CONTRIBUTORS
DISTRIBUTION
The latest version is available from <http://www.veripool.org/>.
- Copyright 2003-2013 by Wilson Snyder. Verilator is free software; you
+ Copyright 2003-2014 by Wilson Snyder. Verilator is free software; you
can redistribute it and/or modify the Verilator internals under the
terms of either the GNU Lesser General Public License Version 3 or the
Perl Artistic License Version 2.0.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-electronics/verilator.git
More information about the Pkg-electronics-commits
mailing list