diff --git a/Changes b/Changes index 215f5493a..90710cf90 100644 --- a/Changes +++ b/Changes @@ -5,6 +5,9 @@ indicates the contributor was also the author of the fix; Thanks! * Verilator 3.6*** +** SystemC uint64_t pins are now the default instead of sc_bv<64>. + Use --no-pins64 for backward compatibility. + *** Support SystemVerilog "cover property" statements. *** When warnings are disabled on signals that are flattened out, disable diff --git a/bin/verilator b/bin/verilator index 314cfd21e..851768555 100755 --- a/bin/verilator +++ b/bin/verilator @@ -202,13 +202,13 @@ descriptions in the next sections for more information. --MP Create phony dependency targets --Mdir Name of output object directory --mod-prefix Name to prepend to lower classes + --no-pins64 Don't use uint64_t's for 33-64 bit sigs --no-skip-identical Disable skipping identical output -O0 Disable optimizations -O3 High performance optimizations -O Selectable optimizations --output-split Split .cpp files into pieces --output-split-cfuncs Split .ccp functions - --pins64 Use uint64_t's for 33-64 bit sigs --prefix Name of top level class --profile-cfuncs Name functions for profiling --private Debugging; see docs @@ -413,6 +413,12 @@ be placed in this directory. If not specified, "obj_dir" is used. Specifies the name to prepend to all lower level classes. Defaults to the same as --prefix. +=item --no-pins64 + +Specifies SystemC outputs of 33-64 bits wide should use sc_bv's instead of +uint64_t's. Uint64's are faster, but sc_bvs were the default until +Verilator 3.671. + =item --no-skip-identical Rarely needed. Disables skipping execution of Verilator if all source @@ -454,11 +460,6 @@ operations, a new function will be created. With --output-split, this will enable GCC to compile faster, at a small loss in performance that increases with smaller statement values. -=item --pins64 - -Specifies SystemC outputs of 33-64 bits wide should use uint64_t instead of -the backward-compatible default of sc_bv's. - =item --prefix I Specifies the name of the top level class and makefile. Defaults to V @@ -977,7 +978,7 @@ following type conversions: Pins of a single bit become bool, unless they are marked with `systemc_clock, in which case they become sc_clock's (for SystemC 1.2, not needed in SystemC 2.0). Pins 2-32 bits wide become uint32_t's. Pins 33-64 bits wide become sc_bv's or uint64_t's depending on -the -pins64 switch. Wider pins become sc_bv's. +the --no-pins64 switch. Wider pins become sc_bv's. Lower modules are not pure SystemC code. This is a feature, as using the SystemC pin interconnect scheme everywhere would reduce performance by an diff --git a/src/V3Options.cpp b/src/V3Options.cpp index 981a903a0..51bfea67a 100644 --- a/src/V3Options.cpp +++ b/src/V3Options.cpp @@ -833,7 +833,7 @@ V3Options::V3Options() { m_makeDepend = true; m_makePhony = false; m_outFormatOk = false; - m_pins64 = false; + m_pins64 = true; m_profileCFuncs = false; m_preprocOnly = false; m_psl = false; diff --git a/test_sp/sc_main.cpp b/test_sp/sc_main.cpp index 1ecfdb578..fe8b81901 100644 --- a/test_sp/sc_main.cpp +++ b/test_sp/sc_main.cpp @@ -51,10 +51,10 @@ int sc_main(int argc, char* argv[]) { sc_signal reset_l; sc_signal passed; sc_signal in_small; - sc_signal > in_quad; + sc_signal in_quad; sc_signal > in_wide; sc_signal out_small; - sc_signal > out_quad; + sc_signal out_quad; sc_signal > out_wide; //==========