diff --git a/.gitattributes b/.gitattributes index ead49ad4d..d1eb3d5f4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,5 @@ *.v linguist-language=SystemVerilog *.vh linguist-language=SystemVerilog *.sv linguist-language=SystemVerilog +Changes linguist-language=reStructuredText nodist linguist-detectable=false diff --git a/Changes b/Changes index a39db2e05..b19a62339 100644 --- a/Changes +++ b/Changes @@ -1,3967 +1,3588 @@ -Revision history for Verilator +******************************* +Revision History and Change Log +******************************* -The contributors that suggested a given feature are shown in []. Thanks! +The changes in each Verilator version are described below. The +contributors that suggested a given feature are shown in []. Thanks! -* Verilator 4.201 devel -**** Verilated signals now use VlWide and VlPacked in place of C arrays. +Verilator 4.201 devel +========================== -**** Fix class unpacked-array compile error (#2774). [Iru Cai] +**Minor:** -**** Fix exceeding command-line ar limit (#2834). [Yinan Xu] +* Verilated signals now use VlWide and VlPacked in place of C arrays. +* Fix class unpacked-array compile error (#2774). [Iru Cai] +* Fix exceeding command-line ar limit (#2834). [Yinan Xu] +* Fix false $dumpfile warning on model save (#2834). [Yinan Xu] -**** Fix false $dumpfile warning on model save (#2834). [Yinan Xu] +Verilator 4.200 2021-03-12 +========================== -* Verilator 4.200 2021-03-12 +**Announcement:** -** Add simulation context (VerilatedContext) to allow multiple fully independent - models to be in the same process. Please see the updated examples. (#2660) +* --inhibit-sim is planned for deprecation, file a bug if this is still being used. -** Add context->time() and context->timeInc() API calls, to set simulation time. - These now are recommended in place of the legacy sc_time_stamp(). +**Major:** -**** Converted Asciidoc documentation into reStructuredText (RST) format. +* Add simulation context (VerilatedContext) to allow multiple fully independent + models to be in the same process. Please see the updated examples. (#2660) +* Add context->time() and context->timeInc() API calls, to set simulation time. + These now are recommended in place of the legacy sc_time_stamp(). -**** --inhibit-sim is planned for deprecation, file a bug if this is still being used. +**Minor:** -**** Fix range inheritance on port without data type (#2753). [Embedded Go] +* Converted Asciidoc documentation into reStructuredText (RST) format. +* Fix range inheritance on port without data type (#2753). [Embedded Go] +* Fix slice-assign overflow (#2803) (#2811). [David Turner] +* Fix interface array connection ordering broken in v4.110 (#2827). [Don Owen] +* Fix or-reduction on different scopes broken in 4.110 (#2828). [Yinan Xu] +* Fix MSVC++ compile error. (#2831) (#2833) [Drew Taussig] -**** Fix slice-assign overflow (#2803) (#2811). [David Turner] -**** Fix interface array connection ordering broken in v4.110 (#2827). [Don Owen] +Verilator 4.110 2021-02-25 +========================== -**** Fix or-reduction on different scopes broken in 4.110 (#2828). [Yinan Xu] +**Major:** -**** Fix MSVC++ compile error. (#2831) (#2833) [Drew Taussig] +* Optimize bit operations and others (#2186) (#2632) (#2633) (#2751) (#2800) [Yutetsu TAKATSUKASA] +**Minor:** + +* Support concat selection (#2721). +* Support struct scopes when dumping structs to VCD (#2776) [Alex Torregrosa] +* Generate SELRANGE for potentially unreachable code (#2625) (#2754) [Pierre-Henri Horrein] +* For --flatten, override inlining of public and no_inline modules (#2761) [James Hanlon] +* Fix little endian interface pin swizzling (#2475). [Don Owen] +* Fix range inheritance on port without data type (#2753). [Embedded Go] +* Fix TIMESCALE warnings on primitives (#2763). [Xuanqi] +* Fix to exclude strings from toggle coverage (#2766) (#2767) [Paul Wright] +* Fix $fread extra semicolon inside statements. [Leendert van Doorn] +* Fix class extends with VM_PARALLEL_BUILDS (#2775). [Iru Cai] +* Fix shifts by > 32 bit values (#2785). [qrq992] +* Fix examples not flushing vcd (#2787). [Richard E George] +* Fix little endian packed array pattern assignment (#2795). [Alex Torregrosa] -* Verilator 4.110 2021-02-25 -*** Optimize bit operations and others (#2186) (#2632) (#2633) (#2751) (#2800) [Yutetsu TAKATSUKASA] +Verilator 4.108 2021-01-10 +========================== -**** Support concat selection (#2721). +**Major:** -**** Support struct scopes when dumping structs to VCD (#2776) [Alex Torregrosa] +* Many VPI changes for IEEE compatibility, which may alter behavior from previous releases. +* Support randomize() class method and rand (#2607). [Krzysztof Bieganski] -**** Generate SELRANGE for potentially unreachable code (#2625) (#2754) [Pierre-Henri Horrein] +**Minor:** -**** For --flatten, override inlining of public and no_inline modules (#2761) [James Hanlon] +* Support $cast and new CASTCONST warning. +* Add --top option as alias of --top-module. +* Add LATCH and NOLATCH warnings (#1609) (#2740). [Julien Margetts] +* Remove Unix::Processors internal test dependency. +* Report UNUSED on parameters, localparam and genvars (#2627). [Charles Eric LaForest] +* Add error on real to non-real output pins (#2690). [Peter Monsson] +* Support package imports before parameters in interfaces (#2714). [James Hanlon] +* Support --sanitize in internal tests (#2705). [Yutetsu TAKATSUKASA] +* Fix passing parameter type instantiations by position number. +* Fix DPI open array handling issues. +* Fix error when dotted refers to missing module (#2095). [Alexander Grobman] +* Fix little endian packed array counting (#2499). [phantom-killua] +* Fix showing reference locations for BLKANDNBLK (#2170). [Yuri Victorovich] +* Fix genblk naming to match IEEE (#2686). [tinshark] +* Fix VPI memory word indexing (#2695). [Marlon James] +* Fix vpiLeftRange on little-endian memories (#2696). [Marlon James] +* Fix VPI module tree (#2704). [Todd Strader] +* Fix vpi_release_handle to be called implicitly per IEEE (#2706). +* Fix to allow inheriting 'VerilatedVcdFile' class. (#2720) [HyungKi Jeong] +* Fix $urandom_range maximum value (#2723). [Nandu Raj] +* Fix tracing empty sc module (#2729). +* Fix generate for unrolling to be signed (#2730). [yanx21] +* Fix to emit timescale in hierarchical blocks (#2735). [Yutetsu TAKATSUKASA] +* Fix to ignore coverage on real ports (#2741) (#2745). [Paul Wright] -**** Fix little endian interface pin swizzling (#2475). [Don Owen] -**** Fix range inheritance on port without data type (#2753). [Embedded Go] -**** Fix TIMESCALE warnings on primitives (#2763). [Xuanqi] +Verilator 4.106 2020-12-02 +========================== -**** Fix to exclude strings from toggle coverage (#2766) (#2767) [Paul Wright] +**Major:** + +* Change -sv option to select 1800-2017 instead of 1800-2005. + +**Minor:** + +* Check for proper 'local' and 'protected' (#2228). +* Support $random and $urandom seeds. +* Support $monitor and $strobe. +* Support complex function arguments. +* Support 'super'. +* Support 'with item.index'. +* Fix the default GNU Make executable name on FreeBSD (#2553). [Yuri Victorovich] +* Fix trace signal names getting hashed (#2643). [Barbara Gigerl] +* Fix unpacked array parameters near functions (#2639). [Anderson Ignacio da Silva] +* Fix access to non-overridden base class variable (#2654). [Tobias Rosenkranz] + + +Verilator 4.104 2020-11-14 +========================== + +**Minor:** + +* Support queue and associative array 'with' statements (#2616). +* Support queue slicing (#2326). +* Support associative array pattern assignments and defaults. +* Support static methods and typedefs in classes (#2615). [Krzysztof Bieganski] +* Add error on typedef referencing self (#2539). [Cody Piersall] +* With --debug, turn off address space layout randomization. +* Fix iteration over mutating list bug in VPI (#2588). [Kaleb Barrett] +* Fix cast width propagation (#2597). [flex-liu] +* Fix return from callValueCbs (#2589) (#2605). [Marlon James] +* Fix WIDTH warnings on comparisons with nullptr (#2602). [Rupert Swarbrick] +* Fix fault when $fgets, $sscanf, etc used with string (#2604). [Yutetsu TAKATSUKASA] +* Fix WIFEXITED missing from MinGW/MSYS2 (#2609). [Jean Berniolles] +* Fix queue poping wrong value when otherwise unused (#2512). [nanduraj1] +* Fix arrays of modport interfaces (#2614). [Thierry Tambe] +* Fix split_var internal error (#2640) (#2641). [Yutetsu TAKATSUKASA] + + +Verilator 4.102 2020-10-15 +========================== + +**Minor:** + +* Support const object new() assignments. +* Support # as a comment in -f files (#2497). [phantom-killua] +* Support 'this' (#2585). [Rafal Kapuscik] +* Support defines for FST tracing (#2592). [Markus Krause] +* Support |=> inside properties (#1292). [Peter Monsson] +* Fix timescale with --hierarchical (#2554). [Yutetsu TAKATSUKASA] +* Fix cmake build with --hierarchical (#2560). [Yutetsu TAKATSUKASA] +* Fix -G dropping public indication (#2561). [Andrew Goessling] +* Fix $urandom_range passed variable (#2563). [nanduraj1] +* Fix method calls to package class functions (#2565). [Peter Monsson] +* Fix class wide member display (#2567). [Nandu Raj P] +* Fix hierarchical references inside function (#2267) (#2572). [James Pallister] +* Fix flushCall for backward compatibility (#2580). [chenguokai] +* Fix preprocessor stringify of undefined macro. [Martin Whitaker] + + +Verilator 4.100 2020-09-07 +========================== + +**Major:** + +* C++11 or newer compilers are now required. +* SystemC 2.3.0 or newer (SYSTEMC_VERSION >= 20111121) is now required. +* Support hierarchical Verilation (#2206). [Yutetsu TAKATSUKASA] + +**Minor:** + +* Support (with limitations) class extern, class extends, virtual class. +* Support $urandom, $urandom_range without stability. +* Support assume property. [Peter Monsson] +* Support |=> inside properties (#1292). [Peter Monsson] +* Fix false DECLFILENAME on black-boxed modules (#2430). [Philipp Wagner] +* Fix naming of "id : begin" blocks. +* Fix class constructor error on assignments to const. +* Fix splitting eval functions with --output-split-cfuncs (#2368). [Geza Lore] +* Fix queues as class members (#2525). [nanduraj1] + + +Verilator 4.040 2020-08-15 +========================== + +**Announcement:** + +* Version 4.040 is planned to be the final version that will support + pre-C++11 compilers. Please move to C++11 or newer compilers. + +**Minor:** + +* Fix arrayed interfaces, broke in 4.038 (#2468). [Josh Redford] +* Support $stable, $rose and $fell. (#2148) (#2501) [Peter Monsson] +* Support simple function localparams (#2461). [James Hanlon] +* Miscellaneous parsing error changes towards UVM support. +* Fix arrayed interfaces (#2469). [Josh Redford] +* Fix protect lib VCS warning. (#2479) [Julien Margetts] +* Fix combining different-width parameters (#2484). [abirkmanis] +* Fix protect-lib without sequential logic (#2492). [Yutetsu TAKATSUKASA] +* Fix V3Unknown from running with flat XML output (#2494). [James Hanlon] +* Fix non-32 bit conversion to float (#2495). [dsvf] +* Fix casting non-self-determined subexpressions (#2493). [phantom-killua] +* Fix SystemC net names (#2500). [Edgar E. Iglesias] +* Fix build with Bison 3.7 and newer (#2505). [Rupert Swarbrick] +* Fix slice of unpacked array (#2506) (#2507). [Yutetsu TAKATSUKASA] + + +Verilator 4.038 2020-07-11 +========================== + +**Announcement:** + +* Versions 4.038 and 4.040 are planned to be the final versions that will + support pre-C++11 compilers. Please move to C++11 or newer compilers. + +**Minor:** + +* Support VPI access to parameters and localparam. [Ludwig Rogiers] +* Support parsing (not elaboration, yet) of UVM. +* Add new UNSUPPORTED error code to replace most previous Unsupported: messages. +* With --bbox-unsup continue parsing on many (not all) UVM constructs. +* Support for-loop increments with commas. +* Support $swrite with arbitrary arguments. +* Support $writememb (#2450). [Fan Shupei] +* Fix OS X, Free BSD, and -m32 portability issues. [Geza Lore] +* Fix to flush FST trace on termination due to $stop or assertion failure. +* Fix part select error when multipling by power-of-two (#2413). [Conor McCullough] +* Fix division exception (#2460) [Kuoping Hsu] + + +Verilator 4.036 2020-06-06 +========================== + +**Major:** + +* OPT_FAST is now -Os by default. See the BENCHMARKING & OPTIMIZATION part + of the manual if you experience issues with compilation speed. +* --output-split is now on by default. VM_PARALLEL_BUILDS is set by default + iff the --output-split caused an actual file split to + occur. --output-split-cfuncs and --output-split-ctrace now default to + the value of --output-split. These changes should improve build times of + medium and large designs with default options. User makefiles may require + changes. + +**Minor:** + +* Configure now enables SystemC if it is installed as a system headers, + e.g. with 'apt-get install systemc-dev'. +* Add --waiver-output flag that writes a verilator config file (.vlt) with + waivers to the warnings emitted during a Verilator run. +* Support verilator_coverage --write-info for lcov HTML reports. +* Line Coverage now tracks all statement lines, not just branch lines. +* The run-time library is now compiled with -Os by default. (#2369, #2373) +* Support multi channel descriptor I/O (#2190) [Stephen Henry] +* Support $countbits. (#2287) [Yossi Nivin] +* Support $isunbounded and parameter $. (#2104) +* Support unpacked array .sum and .product. +* Support prefix/postfix increment/decrement. (#2223) [Maciej Sobkowski] +* Fix FST tracing of little bit endian signals. [Geza Lore] +* Fix +: and -: on unpacked arrays. (#2304) [engr248] +* Fix $isunknown with constant Z's. +* Fix queues and dynamic array wide ops. (#2352) [Vassilis Papaefstathiou] + + +Verilator 4.034 2020-05-03 +========================== + +**Major:** + +* Support simplistic classes with many restrictions, see manual. (#377) +* Support IEEE time units and time precisions. (#234) + Includes `timescale, $printtimescale, $timeformat. + VL_TIME_MULTIPLIER, VL_TIME_PRECISION, VL_TIME_UNIT have been removed + and the time precision must now match the SystemC time precision. To + get closer behavior to older versions, use e.g. --timescale-override + "1ps/1ps". +* Add --build to call make automatically. (#2249) [Yutetsu TAKATSUKASA] +* Configuring with ccache present now defaults to using it; see OBJCACHE. +* Fix DPI import/export to be standard compliant. (#2236) [Geza Lore] +* Add --trace-threads for general multithreaded tracing. (#2269) [Geza Lore] + +**Minor:** + +* Add --flatten for use with --xml-only. (#2270) [James Hanlon] +* Greatly improve FST/VCD dump performance (#2244) (#2246) (#2250) (#2257) [Geza Lore] +* Support $ferror, and $fflush without arguments. (#1638) +* Support event data type (with some restrictions). +* Support $root. (#2150) [Keyi Zhang] +* Add error if use SystemC 2.2 and earlier (pre-2011) as is deprecated. +* Fix build of fast path tracing code to use OPT_FAST. (#2245) [Geza Lore] +* Fix arrayed instances connecting to slices. (#2263) [Don/engr248] +* Fix error on unpacked connecting to packed. (#2288) [Joseph Shaker] +* Fix logical not optimization with empty begin. (#2291) [Baltazar Ortiz] +* Fix reduction OR on wide data, broke in v4.026. (#2300) [Jack Koenig] +* Fix clock enables with bit-extends. (#2299) [Marco Widmer] +* Fix MacOs Homebrew by removing default LIBS. (#2298) [Ryan Clarke] + + +Verilator 4.032 2020-04-04 +========================== + +**Minor:** + +* Add column numbers to errors and warnings. +* Add GCC 9-style line number prefix when showing source text for errors. +* Add setting VM_PARALLEL_BUILDS=1 when using --output-split. (#2185) +* Change --quiet-exit to also suppress 'Exiting due to N errors'. +* Suppress REALCVT for whole real numbers. +* Support split_var in vlt files. (#2219) [Marco Widmer] +* Fix parameter type redeclaring a type. (#2195) [hdzhangdoc] +* Fix VCD open with empty filename. (#2198) [Julius Baxter] +* Fix packages as enum base types. (#2202) [Driss Hafdi] +* Fix duplicate typedefs in generate for. (#2205) [hdzhangdoc] +* Fix MinW portability. (#2114) [Sean Cross] +* Fix assertions with unique case inside. (#2199) [hdzhangdoc] +* Fix implicit conversion of floats to wide integers. + + +Verilator 4.030 2020-03-08 +========================== + +**Major:** + +* Add split_var metacomment to assist UNOPTFLAT fixes. (#2066) [Yutetsu TAKATSUKASA] +* Support $dumpfile and $dumpvars. (#2126) [Alexander Grobman] +* Support dynamic arrays. (#379) + +**Minor:** + +* Add +verilator+noassert flag to disable assertion checking. [Tobias Wölfel] +* Add check for assertOn for asserts. (#2162) [Tobias Wölfel] +* Add --structs-packed for forward compatibility. +* Support $displayb/o/h, $writeb/o/h, etc. (#1637) +* Use gcc -Os in examples instead of -O2 for better average performance. +* Fix genblk naming with directly nested generate blocks. (#2176) [Alexander Grobman] +* Fix undeclared VL_SHIFTR_WWQ. (#2114) [Alex Solomatnikov] + + +Verilator 4.028 2020-02-08 +========================== + +**Major:** + +* Support attributes (public, isolate_assignments, etc.) in configuration files. +* Add -match to lint_off to waive warnings. [Philipp Wagner] + +**Minor:** + +* Link Verilator binary partially statically. (#2146) [Geza Lore] +* Verilation speed improvements (#2133) (#2138) [Geza Lore] +* Support libgoogle-perftools-dev's libtcmalloc if available. (#2137) [Geza Lore] +* Support $readmem/$writemem with assoc arrarys. (#2100) [agrobman] +* Support type(expression) operator and $typename. (#1650) +* Support left justified $display. (#2101) [Pieter Kapsenberg] +* Support string character access via indexing. +* Support enum.next(k) with constant k > 1. (#2125) [Tobias Rosenkranz] +* Support parameter access from arrays of interfaces. (#2155) [Todd Strader] +* Add parameter values in XML. #2110. [Pieter Kapsenberg] +* Add loc column location in XML (replaces fl). (#2122) [Pieter Kapsenberg] +* Add error on misused define. [Topa Tota] +* Add parameter to set maximum signal width. (#2082) [Øyvind Harboe] +* Add warning on genvar in normal for loop. (#2143) [yurivict] +* Fix VPI scope naming for public modules. [Nandu Raj] +* Fix FST tracing of enums inside structs. [fsiegle] +* Fix WIDTH warning on " in assertions. (#2069) [Peter Monsson] +* Support string compare, ato*, etc methods. (#1606) [Yutetsu TAKATSUKASA] +* Support immediate cover statements. +* Ignore `uselib to end-of-line. (#1634) [Frederic Antonin] +* Update FST trace API for better performance. +* Add vpiTimeUnit and allow to specify time as string. (#1636) [Stefan Wallentowitz] +* Add error when `resetall inside module (IEEE 2017-22.3). +* Add cleaner error on version control conflicts in sources. +* Fix little endian cell ranges. (#1631) [Julien Margetts] +* Fix queue issues (#1641) (#1643) [Peter Monsson, Stefan Wallentowitz] +* Fix strcasecmp for windows. (#1651) [Kuba Ober] +* Fix disable iff in assertions. Closes #1404. [Peter Monsson] +* Fix huge case statement performance. Closes #1644. [Julien Margetts] +* Fix tracing -1 index arrays. Closes #2090. [Yutetsu Takatsukasa] +* Fix expand optimization slowing --lint-only. Closes #2091. [Thomas Watts] +* Fix %{number}s with strings. #2093. [agrobman] +* Fix shebang breaking some shells. Closes #2067. [zdave] + + +Verilator 4.024 2019-12-08 +========================== + +**Major:** + +* Support associative arrays (excluding [*] and pattern assignments). (#544) +* Support queues (excluding {} notation and pattern assignments). (#545) + +**Minor:** + +* Add +verilator+error+limit to see more assertion errors. [Peter Monsson] +* Support string.toupper and string.tolower. +* Support $rewind and $ungetc. +* Support shortreal as real, with a SHORTREAL warning. +* Add -Wpedantic and -Wno-context for compliance testing. +* Add error on redefining preprocessor directives. [Piotr Binkowski] +* Support $value$plusargs float and shorts. (#1592) (#1619) [Garrett Smith] +* Fix gate lvalue optimization error. (#831) [Jonathon Donaldson, Driss Hafdi] +* Fix color assertion on empty if. (#1604) [Andrew Holme] +* Fix for loop missing initializer. (#1605) [Andrew Holme] +* Fix hang on concat error. (#1608) [Bogdan Vukobratovic] +* Fix VPI timed callbacks to be one-shot, pull5. [Matthew Ballance] +* Fix // in filenames. (#1610) [Peter Nelson] +* Fix $display("%p") to be closer to IEEE. +* Fix labels on functions with returns. (#1614) [Mitch Hayenga] +* Fix false unused message on __Vemumtab. (#2061) [Tobias Rosenkranz] +* Fix assertion on dotted parameter arrayed function. (#1620) [Rich Porter] +* Fix interface reference tracing. (#1595) [Todd Strader] +* Fix error on unpacked concatenations. (#1627) [Driss Hafdi] + + +Verilator 4.022 2019-11-10 +========================== + +**Major:** + +* Add --protect-lib. (#1490) [Todd Strader] +* Add cmake support. (#1363) [Patrick Stewart] + +**Minor:** + +* Examples have been renamed. +* Add --protect-ids to obscure information in objects. (#1521) [Todd Strader] +* Add --trace-coverage. +* Add --xml-output. +* Support multithreading on Windows. [Patrick Stewart] +* Suppress 'command failed' on normal errors. +* Support some unpacked arrays in parameters. (#1315) [Marshal Qiao] +* Add interface port visibility in traces. (#1594) [Todd Strader] +* Increase case duplicate/incomplete to 16 bit tables. (#1545) [Yossi Nivin] +* Support quoted arguments in -f files. (#1535) [Yves Mathieu] +* Optimize modulus by power-of-two constants, and masked conditionals. +* Fix detecting missing reg types. (#1570) [Jacko Dirks] +* Fix multithreaded yield behavior when no work. [Patrick Stewart] +* Fix bad-syntax crashes. (#1548, #1550-#1553, #1557-#1560, #1563, + #1573-#1577, #1579, #1582-#1591) [Eric Rippey] +* Fix false CMPCONST/UNSIGNED warnings on "inside". (#1581) [Mitch Hayenga] + + +Verilator 4.020 2019-10-06 +========================== + +**Minor:** + +* Add --public-flat-rw. (#1511) [Stefan Wallentowitz] +* Support $fseek, $ftell, $frewind. (#1496) [Howard Su] +* Support vpiModule. (#1469) [Stefan Wallentowitz] +* Make Syms file honor --output-split-cfuncs. (#1499) [Todd Strader] +* Fix make test with no VERILATOR_ROOT. (#1494) [Ahmed El-Mahmoudy] +* Fix error on multidimensional cells. (#1505) [Anderson Ignacio Da Silva] +* Fix config_rev revision detection on old versions. +* Fix false warning on backward indexing. (#1507) [Hao Shi] +* Fix vpiType accessor. (#1509) (#1510) [Stefan Wallentowitz] +* Fix ugly error on interface misuse. (#1525) [Bogdan Vukobratovic] +* Fix misc bad-syntax crashes. (#1529) (#1530) (#1531) (#1532) (#1533) [Eric Rippey] +* Fix case statements with strings. (#1536) [Philipp Wagner] +* Fix some coverage lost when multithreaded. (#2151) + + +Verilator 4.018 2019-08-29 +========================== + +**Major:** + +* When showing an error, show source code and offer suggestions of replacements. +* When showing an error, show the instance location. (#1305) [Todd Strader] + +**Minor:** + +* Add --rr. (#1481) [Todd Strader] +* Change MULTITOP to warning to help linting, see manual. +* Add XSim support to driver.pl. (#1493) [Todd Strader] +* Add --dpi-hdr-only. (#1491) [Todd Strader] +* Show included-from filenames in warnings. (#1439) [Todd Strader] +* Fix elaboration time errors. (#1429) [Udi Finkelstein] +* Fix not reporting some duplicate signals/ports. (#1462) [Peter Gerst] +* Fix not in array context on non-power-of-two slices. (#2027) [Yu Sheng Lin] +* Fix system compile flags injection. [Gianfranco Costamagna] +* Fix enum values not being sized based on parent. (#1442) [Dan Petrisko] +* Fix internal error on gate optimization of assign. (#1475) [Oyvind Harboe] + + + +Verilator 4.016 2019-06-16 +========================== + +**Minor:** + +* Add --quiet-exit. (#1436) [Todd Strader] +* Error continuation lines no longer have %Error prefix. +* Support logical equivalence operator <->. +* Support VerilatedFstC set_time_unit. (#1433) [Pieter Kapsenberg] +* Support deferred assertions. (#1449) [Charles Eddleston] +* Mark infrequently called functions with GCC cold attribute. +* Fix sign-compare warning in verilated.cpp. (#1437) [Sergey Kvachonok] +* Fix fault on $realtime with %t. (#1443) [Julien Margetts] +* Fix $display with string without %s. (#1441) [Denis Rystsov] +* Fix parameter function string returns. (#1441) [Denis Rystsov] +* Fix invalid XML output due to special chars. (#1444) [Kanad Kanhere] +* Fix performance when mulithreaded on 1 CPU. (#1455) [Stefan Wallentowitz] +* Fix type and real parameter issues (#1427) (#1456) (#1458) [Todd Strader] +* Fix build error on MinGW. (#1460) [Richard Myers] +* Fix not reporting some duplicate signals. (#1462) [Peter Gerst] +* Fix --savable invalid C++ on packed arrays. (#1465) [Alex Chadwick] +* Fix constant function return of function var. (#1467) [Roman Popov] + + +Verilator 4.014 2019-05-08 +========================== + +**Minor:** + +* Add --trace-fst-thread. +* Support '#' comments in $readmem. (#1411) [Frederick Requin] +* Support "'dx" constants. (#1423) [Udi Finkelstein] +* For FST tracing use LZ4 compression. [Tony Bybell] +* Add error when use parameters without value. (#1424) [Peter Gerst] +* Auto-extend and WIDTH warn on unsized X/Zs. (#1423) [Udi Finkelstein] +* Fix missing VL_SHIFTL_ errors. (#1412) (#1415) [Larry Lee] +* Fix MinGW GCC 6 printf formats. (#1413) [Sergey Kvachonok] +* Fix test problems when missing fst2vcd. (#1417) [Todd Strader] +* Fix GTKWave register warning. (#1421) [Pieter Kapsenberg] +* Fix FST enums not displaying. (#1426) [Danilo Ramos] +* Fix table compile error with multiinterfaces. (#1431) [Bogdan Vukobratovic] + + +Verilator 4.012 2019-03-23 +========================== + +**Minor:** + +* Add +verilator+seed. (#1396) [Stan Sokorac] +* Support $fread. [Leendert van Doorn] +* Support void' cast on functions called as tasks. (#1383) [Al Grant] +* Add IGNOREDRETURN warning. (#1383) +* Report PORTSHORT errors on concat constants. (#1400) [Will Korteland] +* Fix VERILATOR_GDB being ignored. (#2017) [Yu Sheng Lin] +* Fix $value$plus$args missing verilated_heavy.h. [Yi-Chung Chen] +* Fix MSVC compile error. (#1406) [Benjamin Gartner] +* Fix maintainer test when no Parallel::Forker. (#1977) [Enzo Chi] +* Fix +1364-1995ext flags applying too late. (#1384) [Al Grant] + + +Verilator 4.010 2019-01-27 +========================== + +**Minor:** + +* Removed --trace-lxt2, use --trace-fst instead. +* For --xml, add additional information. (#1372) [Jonathan Kimmitt] +* Add circular typedef error. (#1388) [Al Grant] +* Add unsupported for loops error. (#1986) [Yu Sheng Lin] +* Fix FST tracing of wide arrays. (#1376) [Aleksander Osman] +* Fix error when pattern assignment has too few elements. (#1378) [Viktor Tomov] +* Fix error when no modules in $unit. (#1381) [Al Grant] +* Fix missing too many digits warning. (#1380) [Jonathan Kimmitt] +* Fix uninitialized data in verFiles and unroller. (#1385) (#1386) [Al Grant] +* Fix internal error on xrefs into unrolled functions. (#1387) [Al Grant] +* Fix DPI export void compiler error. (#1391) [Stan Sokorac] + + +Verilator 4.008 2018-12-01 +========================== -**** Fix $fread extra semicolon inside statements. [Leendert van Doorn] +**Minor:** + +* Support "ref" and "const ref" pins and functions. (#1360) [Jake Longo] +* In --xml-only show the original unmodified names, and add module_files + and cells similar to Verilog-Perl, msg2719. [Kanad Kanhere] +* Add CONTASSREG error on continuous assignments to regs. (#1369) [Peter Gerst] +* Add PROCASSWIRE error on behavioral assignments to wires, msg2737. [Neil Turton] +* Add IMPORTSTAR warning on import::* inside $unit scope. +* Fix --trace-lxt2 compile error on MinGW. (#1990) [HyungKi Jeong] +* Fix hang on bad pattern keys. (#1364) [Matt Myers] +* Fix crash due to cygwin bug in getline. (#1349) [Affe Mao] +* Fix __Slow files getting compiled with OPT_FAST. (#1370) [Thomas Watts] -**** Fix class extends with VM_PARALLEL_BUILDS (#2775). [Iru Cai] -**** Fix shifts by > 32 bit values (#2785). [qrq992] +Verilator 4.006 2018-10-27 +========================== -**** Fix examples not flushing vcd (#2787). [Richard E George] +**Minor:** + +* Add --pp-comments. (#1988) [Robert Henry] +* Add --dump-defines. +* For --trace-fst, save enum decoding information. (#1358) [Sergi Granell] + (To visualize enumeration data you must use GTKwave 3.3.95 or newer.) +* For --trace-fst, instead of *.fst.hier, put data into *.fst. [Tony Bybell] +* Fix --trace-lxt2 compile error on MinGW, msg2667. [HyungKi Jeong] +* Fix Windows .exe not found. (#1361) [Patrick Stewart] -**** Fix little endian packed array pattern assignment (#2795). [Alex Torregrosa] +Verilator 4.004 2018-10-06 +========================== -* Verilator 4.108 2021-01-10 +**Major:** -** Many VPI changes for IEEE compatibility, which may alter behavior from previous releases. +* Add GTKWave FST native tracing. (#1356) [Sergi Granell] + (Verilator developers need to pull the latest vcddiff.) -** Support randomize() class method and rand (#2607). [Krzysztof Bieganski] +**Minor:** -*** Support $cast and new CASTCONST warning. +* Support $past. [Dan Gisselquist] +* Support restrict. (#1350) [Clifford Wolf] +* Rename include/lxt2 to include/gtkwave. +* Fix replication of 64-bit signal change detects. +* Fix Mac OSX 10.13.6 / LLVM 9.1 compile issues. (#1348) [Kevin Kiningham] +* Fix MinGW compile issues. (#1979) [HyungKi Jeong] -*** Add --top option as alias of --top-module. -*** Add LATCH and NOLATCH warnings (#1609) (#2740). [Julien Margetts] +Verilator 4.002 2018-09-16 +========================== -**** Remove Unix::Processors internal test dependency. +**Major:** -**** Report UNUSED on parameters, localparam and genvars (#2627). [Charles Eric LaForest] +* This is a major release. Any patches may require major rework to apply. + [Thanks everyone] +* Add multithreaded model generation. +* Add runtime arguments. +* Add GTKWave LXT2 native tracing. (#1333) [Yu Sheng Lin] +* Note $random has new algorithm; results may vary vs. previous versions. -**** Add error on real to non-real output pins (#2690). [Peter Monsson] +**Minor:** -**** Support package imports before parameters in interfaces (#2714). [James Hanlon] +* Better optimize large always block splitting. (#1244) [John Coiner] +* Add new reloop optimization for repetitive assignment compression. +* Support string.atoi and similar methods. (#1289) [Joel Holdsworth] +* Fix internals to be C++ null-pointer-check clean. +* Fix internals to avoid 'using namespace std'. +* Fix Verilation performance issues. (#1316) [John Coiner] +* Fix clocker attributes to not propagate on concats. [John Coiner] +* Fix first clock edge and --x-initial-edge. (#1327) [Rupert Swarbrick] +* Fix compile error on tracing of string arrays. (#1338) [Iztok Jeras] +* Fix number parsing with newline after radix. (#1340) [George Cuan] +* Fix string ?: conditional type resolution. (#1345) [Iztok Jeras] +* Fix duplicate symbol error on generate tri. (#1347) [Tomas Dzetkulic] -**** Support --sanitize in internal tests (#2705). [Yutetsu TAKATSUKASA] -**** Fix passing parameter type instantiations by position number. +Verilator 3.926 2018-08-22 +========================== -**** Fix DPI open array handling issues. +**Minor:** -**** Fix error when dotted refers to missing module (#2095). [Alexander Grobman] +* Add OBJCACHE envvar support to examples and generated Makefiles. +* Change MODDUP errors to warnings. (#1969) [Marshal Qiao] +* Fix define argument stringification (`"), broke since 3.914. [Joe DErrico] +* Fix to ignore Unicode UTF-8 BOM sequences. (#1967) [HyungKi Jeong] +* Fix std:: build error. (#1322) +* Fix function inlining inside certain while loops. (#1330) [Julien Margetts] -**** Fix little endian packed array counting (#2499). [phantom-killua] -**** Fix showing reference locations for BLKANDNBLK (#2170). [Yuri Victorovich] +Verilator 3.924 2018-06-12 +========================== -**** Fix genblk naming to match IEEE (#2686). [tinshark] +**Minor:** -**** Fix VPI memory word indexing (#2695). [Marlon James] +* Renamed --profile-cfuncs to --prof-cfuncs. +* Report interface ports connected to wrong interface. (#1294) [Todd Strader] +* When tracing, use scalars on single bit arrays to appease vcddiff. +* Fix parsing "output signed" in V2K port list, msg2540. [James Jung] +* Fix parsing error on bad missing #. (#1308) [Dan Kirkham] +* Fix $clog2 to be in verilog 2005. (#1319) [James Hutchinson] -**** Fix vpiLeftRange on little-endian memories (#2696). [Marlon James] -**** Fix VPI module tree (#2704). [Todd Strader] +Verilator 3.922 2018-03-17 +========================== -**** Fix vpi_release_handle to be called implicitly per IEEE (#2706). +**Major:** -**** Fix to allow inheriting 'VerilatedVcdFile' class. (#2720) [HyungKi Jeong] +* Support IEEE 1800-2017 as default language. -**** Fix $urandom_range maximum value (#2723). [Nandu Raj] +**Minor:** -**** Fix tracing empty sc module (#2729). +* Support trig functions ($sin() etc). (#1281) [Patrick Stewart] +* Support calling system functions as tasks. (#1285) [Joel Holdsworth] +* Support assert properties. (#785) (#1290) [John Coiner, et al] +* Support $writememh. [John Coiner] +* Add --no-debug-leak to reduce memory use under debug. [John Coiner] +* Fix severe runtime performance bug in certain foreach loops. [John Coiner] +* On convergence errors, show activity. [John Coiner] +* Fix GCC 8.0 issues. (#1273) +* Fix pullup/pulldowns on bit selects. (#1274) [Rob Stoddard] +* Fix verilator_coverage --annotate-min. (#1284) [Tymoteusz Blazejczyk] +* Fix quoting of quoted arguments. [John Coiner] -**** Fix generate for unrolling to be signed (#2730). [yanx21] -**** Fix to emit timescale in hierarchical blocks (#2735). [Yutetsu TAKATSUKASA] +Verilator 3.920 2018-02-01 +========================== -**** Fix to ignore coverage on real ports (#2741) (#2745). [Paul Wright] +**Announcement:** +* Moving forward, use the git "stable" branch to track the latest release, + and git "v#.###" tags for specific releases. +**Minor:** + +* Support 'assume' similar to 'assert'. (#1269) [Dan Gisselquist] +* Remove c++filt. (#1265) [Stefan Wallentowitz] +* Fix tracing example file output. (#1268) [Enzo Chi] +* Fix gate optimization out of memory, add --gate-stmts. (#1260) [Alex Solomatnikov] +* Fix compile error on public real parameters by suppressing. (#1261) [Alex Solomatnikov] +* Fix input-only tristate comparisons. (#1267) [Alexis G] +* Fix missing edge type in xml output. (#1955) [Alexis G] +* Fix compile error with --public and interface bind. (#1264) [Alexis G] -* Verilator 4.106 2020-12-02 -** Change -sv option to select 1800-2017 instead of 1800-2005. +Verilator 3.918 2018-01-02 +========================== -*** Check for proper 'local' and 'protected' (#2228). +**Minor:** -*** Support $random and $urandom seeds. +* Workaround GCC/clang bug with huge compile times. (#1248) +* Support DPI open arrays. (#909) (#1245) [David Pierce, Victor Besyakov] +* Add INFINITELOOP warning. (#1254) [Alex Solomatnikov] +* Support > 64 bit decimal $display. +* Support DPI time and svLogicVal. [Victor Besyakov] + Note older version incorrectly assumed svBitVal even for logicals. +* Support string len() method. [Victor Besyakov] +* Add error if always_comb has sensitivity list. [Arjen Roodselaar] +* Fix SystemC 2.3.2 compile error. (#1251) [Tymoteusz Blazejczyk] +* Fix modport outputs being treated as inputs. (#1246) [Jeff Bush] +* Fix false ALWCOMBORDER on interface references. (#1247) [Josh Redford] +* Fix constant propagation across DPI imports of inout strings. [Victor Besyakov] +* Fix resolving inline nested interface names. (#1250) [Arjen Roodselaar] +* Fix GCC false warning on array bounds. (#2386) -*** Support $monitor and $strobe. -*** Support complex function arguments. +Verilator 3.916 2017-11-25 +========================== -*** Support 'super'. +**Minor:** -*** Support 'with item.index'. +* Support self-recursive modules. (#659) [Sean Moore, et al] +* Support $error/$warning in elaboration time blocks. +* Support $size/$bits/etc on type references. +* Add error when driving input-only modport. (#1110) [Trevor Elbourne] +* Add BSSPACE and COLONPLUS lint warnings. +* Detect MSB overflow when under VL_DEBUG. (#1238) [Junyi Xi] +* Add data types to --xml. [Rui Terra] +* Fix partial slicing with pattern assignments. (#991) [Johan Bjork] +* Fix false unused warning on interfaces. (#1241) [Laurens van Dam] +* Fix error on "unique case" with no cases. +* Fix MacOS portability. (#1232) [Jeff Bush] -**** Fix the default GNU Make executable name on FreeBSD (#2553). [Yuri Victorovich] -**** Fix trace signal names getting hashed (#2643). [Barbara Gigerl] +Verilator 3.914 2017-10-14 +========================== -**** Fix unpacked array parameters near functions (#2639). [Anderson Ignacio da Silva] +**Major:** -**** Fix access to non-overridden base class variable (#2654). [Tobias Rosenkranz] +* Add new examples/ directory with appropriate examples. This replaces the + old test_c and test_sc directories. +**Minor:** -* Verilator 4.104 2020-11-14 +* Add --getenv option for simplifying Makefiles. +* Add --x-initial option for specifying initial value assignment behavior. +* Add --no-relative-cfuncs and related default optimization. (#1224) [John Coiner] +* Add /*verilator tag*/ for XML extraction applications. [Chris Randall] +* The internal test_verilated test directory is moved to be part of test_regress. +* The experimental VL_THREADED setting (only, not normal mode) now requires C++11. +* Fix over-aggressive inlining. (#1223) [John Coiner] +* Fix Ubuntu 17.10 issues. (#1223 partial). [John Coiner] +* Fix compiler warning when WIDTH warning ignored on large compare. +* Fix memory leak in VerilatedVcd dumps. (#1222 partial) [Shareef Jalloq] +* Fix unnecessary Vdly variables. (#1224 partial) [John Coiner] +* Fix conditional slices and add related optimizations. +* Fix \`\` expansion of `defines. (#1225) (#1227) (#1228) [Odd Magne Reitan] +* Fix -E duplicating output. (#1226) [Odd Magne Reitan] +* Fix float-conversion warning. (#1229) [Robert Henry] +* Fix MacOS portability. (#1230) (#1231) [Jeff Bush] -*** Support queue and associative array 'with' statements (#2616). -*** Support queue slicing (#2326). +Verilator 3.912 2017-09-23 +========================== -*** Support associative array pattern assignments and defaults. +**Major:** -*** Support static methods and typedefs in classes (#2615). [Krzysztof Bieganski] +* Verilated headers no longer "use namespace std;" + User's code without "std::" prefixes may need "use namespace std;" to compile. -**** Report error on typedef referencing self (#2539). [Cody Piersall] +**Minor:** -**** With --debug, turn off address space layout randomization. +* Support or/and/xor array intrinsic methods. (#1210) [Mike Popoloski] +* Support package export. (#1217) [Usuario Eda] +* Support module port parameters without defaults. (#1213) [Mike Popoloski] +* Add performance information to --stats file. +* Simplify VL_CONST_W macro generation for faster compiles. +* Optimize improvements for Shift-And, and replication constructs. +* Fix ordering of arrayed cell wide connections. (#1202 partial) [Mike Popoloski] +* Fix LITENDIAN warning on arrayed cells. (#1202) [Mike Popoloski] +* Fix enum ranges without colons. (#1204) [Mike Popoloski] +* Fix GCC noreturn compile error. (#1209) [Mike Popoloski] +* Fix constant function default parameters. (#1211) [Mike Popoloski] +* Fix non-colon array of interface modports. (#1212) [Mike Popoloski] +* Fix .name connections on interfaces. (#1214) [Mike Popoloski] +* Fix wide array indices causing compile error. -**** Fix iteration over mutating list bug in VPI (#2588). [Kaleb Barrett] -**** Fix cast width propagation (#2597). [flex-liu] +Verilator 3.910 2017-09-07 +========================== -**** Fix return from callValueCbs (#2589) (#2605). [Marlon James] +**Major:** -**** Fix WIDTH warnings on comparisons with nullptr (#2602). [Rupert Swarbrick] +* SystemPerl mode (-sp-deprecated) has been removed. -**** Fix fault when $fgets, $sscanf, etc used with string (#2604). [Yutetsu TAKATSUKASA] +**Minor:** -**** Fix WIFEXITED missing from MinGW/MSYS2 (#2609). [Jean Berniolles] +* Update keyword warnings to include C++11 and others. -**** Fix queue poping wrong value when otherwise unused (#2512). [nanduraj1] -**** Fix arrays of modport interfaces (#2614). [Thierry Tambe] +Verilator 3.908 2017-08-28 +========================== -**** Fix split_var internal error (#2640) (#2641). [Yutetsu TAKATSUKASA] +**Minor:** +* Support x in $readmem. (#1180) [Arthur Kahlich] +* Support packed struct DPI imports. (#1190) [Rob Stoddard] +* Fix GCC 6 warnings. +* Fix compile error on unused VL_VALUEPLUSARGS_IW. (#1181) [Thomas J Whatson] +* Fix undefined VL_POW_WWI. [Clifford Wolf] +* Fix internal error on unconnected inouts. (#1187) [Rob Stoddard] -* Verilator 4.102 2020-10-15 -**** Support const object new() assignments. +Verilator 3.906 2017-06-22 +========================== -**** Support # as a comment in -f files (#2497). [phantom-killua] +**Minor:** -**** Support 'this' (#2585). [Rafal Kapuscik] +* Support set_time_unit/set_time_precision in C traces. (#1937) +* Fix extract of packed array with non-zero LSB. (#1172) [James Pallister] +* Fix shifts by more than 32-bit numbers. (#1174) [Clifford Wolf] +* Fix power operator on wide constants. (#761) [Clifford Wolf] +* Fix .* on interface pins. (#1176) [Maciej Piechotka] -**** Support defines for FST tracing (#2592). [Markus Krause] -**** Support |=> inside properties (#1292). [Peter Monsson] +Verilator 3.904 2017-05-30 +========================== -**** Fix timescale with --hierarchical (#2554). [Yutetsu TAKATSUKASA] +**Minor:** -**** Fix cmake build with --hierarchical (#2560). [Yutetsu TAKATSUKASA] +* Fix non-cutable ordering loops on clock arrays. (#1009) [Todd Strader] +* Support ports of array of reals. (#1154) [J Briquet] +* Support arrayed parameter overrides. (#1153) [John Stevenson] +* Support $value$plusargs with variables. (#1165) [Wesley Terpstra] +* Support modport access to un-modport objects. (#1161) [Todd Strader] +* Add stack trace when can't optimize function. (#1158) [Todd Strader] +* Add warning on mis-sized literal. (#1156) [Todd Strader] +* Fix interface functions returning wrong parameters. (#996) [Todd Strader] +* Fix non-arrayed cells with interface arrays. (#1153) [John Stevenson] +* Fix --assert with complex case statements. (#1164) [Enzo Chi] -**** Fix -G dropping public indication (#2561). [Andrew Goessling] -**** Fix $urandom_range passed variable (#2563). [nanduraj1] +Verilator 3.902 2017-04-02 +========================== -**** Fix method calls to package class functions (#2565). [Peter Monsson] +**Major:** -**** Fix class wide member display (#2567). [Nandu Raj P] +* Add -FI option to force includes. (#1916) [Amir Gonnen] +* Add --relative-includes. [Rob Stoddard] -**** Fix hierarchical references inside function (#2267) (#2572). [James Pallister] +**Minor:** -**** Fix flushCall for backward compatibility (#2580). [chenguokai] +* Add error on duplicate pattern assignments. (#1145) [Johan Bjork] +* Fix error on improperly widthed default function. (#984) [Todd Strader] +* Fix 2009 localparam syntax, msg2139. [Galen Seitz] +* Fix ugly interface-to-non-interface errors. (#1112) [Johan Bjork] +* Fix LDFLAGS and CFLAGS not preserving order. (#1130) [Olof Kindgren] +* Fix internal error on initializing parameter array. (#1131) [Jie Xu] +* Fix internal error on interface arrays. (#1135) [John Stevenson] +* Fix calling sformatf to display, and elab $displays. (#1139) [Johan Bjork] +* Fix realpath compile issue on MSVC++. (#1141) [Miodrag Milanovic] +* Fix missing error on interface size mismatch. (#1143) [Johan Bjork] +* Fix error on parameters with dotted references. (#1146) [Johan Bjork] +* Fix wreal not handling continuous assign. (#1150) [J Briquet] +* Fix nested structure parameter selects. (#1150) [J Briquet] -**** Fix preprocessor stringify of undefined macro. [Martin Whitaker] +Verilator 3.900 2017-01-15 +========================== -* Verilator 4.100 2020-09-07 +**Major:** -** C++11 or newer compilers are now required. +* Internal code changes for improved compatibility and performance. -** SystemC 2.3.0 or newer (SYSTEMC_VERSION >= 20111121) is now required. +**Minor:** -** Support hierarchical Verilation (#2206). [Yutetsu TAKATSUKASA] +* Support old-style $display($time). (#467) [John Demme] +* With --bbox-unsup, suppress desassign and mixed edges. (#1120) [Galen Seitz] +* Fix parsing sensitivity with &&. (#934) [Luke Yang] +* Fix internal error on double-for loop unrolling. (#1044) [Jan Egil Ruud] +* Fix internal error on unique casez with --assert. (#1117) [Enzo Chi] +* Fix bad code when tracing array of structs. (#1122) [Andrew Bardsley] -**** Support (with limitations) class extern, class extends, virtual class. -**** Support $urandom, $urandom_range without stability. +Verilator 3.890 2016-11-25 +========================== -**** Fix false DECLFILENAME on black-boxed modules (#2430). [Philipp Wagner] +**Minor:** -**** Fix naming of "id : begin" blocks. +* Honor --output-split on coverage constructors. (#1098) [Johan Bjork] +* Fix various issues when making outside of the kit. +* Fix flex 2.6.2 bug. (#1103) [Sergey Kvachonok] +* Fix error on bad interface name. (#1097) [Todd Strader] +* Fix error on referencing variable in parent. (#1099) [Ian Thompson] +* Fix type parameters with low optimization. (#1101) [Stefan Wallentowitz] -**** Fix class constructor error on assignments to const. -**** Fix splitting eval functions with --output-split-cfuncs (#2368). [Geza Lore] +Verilator 3.888 2016-10-14 +========================== -**** Fix queues as class members (#2525). [nanduraj1] +**Major:** -**** Add support for assume property. [Peter Monsson] +* Support foreach. (#1078) [Xuan Guo] -**** Add support for |=> inside properties (#1292). [Peter Monsson] +**Minor:** +* Add --no-decoration to remove output comments, msg2015. [Frederic Requin] +* If VM_PARALLEL_BUILDS=1, use OPT_FAST and OPT_SLOW. [Frederic Requin] + Set VM_DEFAULT_RULES=0 for old behavior. +* Add error on DPI functions > 32 bits. (#1898) [Elliot Mednick] +* Improve Verilation performance on internal strings. (#1896) [Johan Bjork] +* Improve Verilation performance on trace duplicates. (#1090) [Johan Bjork] +* Fix SystemC compiles with VPI. (#1081) [Arthur Kahlich] +* Fix error on wide numbers that represent shifts, msg1991. (#1088) [Mandy Xu] -* Verilator 4.040 2020-08-15 -** Version 4.040 is planned to be the final version that will - support pre-C++11 compilers. Please move to C++11 or newer compilers. +Verilator 3.886 2016-07-30 +========================== -*** Fix arrayed interfaces, broke in 4.038 (#2468). [Josh Redford] +**Minor:** -**** Support $stable, $rose and $fell. (#2148) (#2501) [Peter Monsson] +* Fix enum values of 11-16 bits wide using .next/.prev. (#1062) [Brian Flachs] +* Fix false warnings on non-power-2 enums using .next/.prev. +* Fix comparison of unpacked arrays. (#1071) [Andrew Bardsley] +* Fix compiler warning in GCC 6. [David Horton] -**** Support simple function localparams (#2461). [James Hanlon] -**** Miscellaneous parsing error changes towards UVM support. +Verilator 3.884 2016-05-18 +========================== -**** Fix arrayed interfaces (#2469). [Josh Redford] +**Major:** -**** Fix protect lib VCS warning. (#2479) [Julien Margetts] +* Support parameter type. (#376) [Alan Hunter, et al] +* Support command-line -G/+pvalue param overrides. (#1045) [Stefan Wallentowitz] +* Add --l2-name option for controlling "v" naming. +* The default l2 scope name is now the same as the top-level module. (#1050) + Use "--l2-name v" for the historical behavior. -**** Fix combining different-width parameters (#2484). [abirkmanis] +**Minor:** -**** Fix protect-lib without sequential logic (#2492). [Yutetsu TAKATSUKASA] +* Fix --output-split of constructors. (#1035) [Johan Bjork] +* Fix removal of empty packages, modules and cells. (#1034) [Johan Bjork] +* Fix core dump on Arch Linux/GCC 6.1.1. (#1058) [Jannis Harder] +* Fix $value$plusargs to string. (#1880) [Frederic Requin] -**** Fix V3Unknown from running with flat XML output (#2494). [James Hanlon] -**** Fix non-32 bit conversion to float (#2495). [dsvf] +Verilator 3.882 2016-03-01 +========================== -**** Fix casting non-self-determined subexpressions (#2493). [phantom-killua] +**Minor:** + +* Internal Verilation-time performance enhancements. (#1021) [Johan Bjork] +* Support inlining interfaces. (#1018) [Johan Bjork] +* Support SV strings to readmemh. (#1040) [Stefan Wallentowitz] +* Fix unrolling complicated for-loop bounds. (#677) [Johan Bjork] +* Fix stats file containing multiple unroll entries. (#1020) [Johan Bjork] +* Fix using short parameter names on negative params. (#1022) [Duraid Madina] +* Fix read-after-free error. (#1031) [Johan Bjork] +* Fix elaboration-time display warnings. (#1032) [Johan Bjork] +* Fix crash on very deep function trees. (#1028) [Jonathan Kimmitt] +* Fix slicing mix of big and little-endian. (#1033) [Geoff Barrett] +* Fix pattern assignment width propagation. (#1037) [Johan Bjork] -**** Fix SystemC net names (#2500). [Edgar E. Iglesias] -**** Fix build with Bison 3.7 and newer (#2505). [Rupert Swarbrick] +Verilator 3.880 2015-12-19 +========================== -**** Fix slice of unpacked array (#2506) (#2507). [Yutetsu TAKATSUKASA] +**Minor:** +* Support display %u, %v, %p, %z. (#989) [Johan Bjork] +* Fix real parameters causing bad module names. (#992) [Johan Bjork] +* Fix size-changing cast on packed struct. (#993) [Johan Bjork] +* Fix function calls on arrayed interface. (#994) [Johan Bjork] +* Fix arrayed interfaces. (#879) (#1001) [Todd Strader] +* Fix constant function assigned to packed structs. (#997) [Johan Bjork] +* Fix interface inside generate. (#998) [Johan Bjork] +* Fix $signed casts under generates. (#999) [Clifford Wolf] +* Fix genvar constant propagation. (#1003) [Johan Bjork] +* Fix parameter constant propagation from package. (#1004) [Johan Bjork] +* Fix array slicing of non-const indexes. (#1006) [Johan Bjork] +* Fix dotted generated array error. (#1005) [Jeff Bush, Johan Bjork] +* Fix error instead of warning on large concat. (#1865) [Paul Rolfe] +* Fix $bitstoreal constant propagation. (#1012) [Jonathan Kimmitt] +* Fix model restore crash. (#1013) [Jason McMullan] +* Fix arrayed instances to unpacked of same size. (#1015) [Varun Koyyalagunta] +* Fix slices of unpacked arrays with non-zero LSBs. +* Fix ternary operation with unpacked array. (#1017) [Varun Koyyalagunta]. + + +Verilator 3.878 2015-11-01 +========================== + +**Major:** -* Verilator 4.038 2020-07-11 +* Add --vpi flag, and fix VPI linkage. (#969) [Arthur Kahlich] +* Support genvar indexes into arrayed cells. (#517) [Todd Strader] +* Support $sformatf. (#977) [Johan Bjork] +* Support elaboration assertions. (#973) [Johan Bjork] +* Support $display with non-format arguments. (#467) [Jamey Hicks] -** Versions 4.038 and 4.040 are planned to be the final versions that will - support pre-C++11 compilers. Please move to C++11 or newer compilers. +**Minor:** + +* Add VerilatedScopeNameMap for introspection. (#966) [Todd Strader] +* Ignore %l in $display. (#983) [Todd Strader] +* Fix very long module names. (#937) [Todd Strader] +* Fix internal error on dotted refs into generates. (#958) [Jie Xu] +* Fix structure parameter constant propagation. (#968) [Todd Strader] +* Fix enum constant propagation. (#970) [Todd Strader] +* Fix mis-optimizing public DPI functions. (#963) [Wei Song] +* Fix package:scope.scope variable references. +* Fix $fwrite to constant stderr/stdout. (#961) [Wei Song] +* Fix struct.enum.name method calls. (#855) [Jonathon Donaldson] +* Fix dot indexing into arrayed inferfaces. (#978) [Johan Bjork] +* Fix crash in commandArgsPlusMatch. (#987) [Jamie Iles] +* Fix error message on missing interface. (#985) [Todd Strader] + + +Verilator 3.876 2015-08-12 +========================== + +**Minor:** + +* Add tracing_on, etc to vlt files. (#932) [Frederic Requin] +* Support extraction of enum bits. (#951) [Jonathon Donaldson] +* Fix MinGW compiler error. (#927) (#929) [Hans Tichelaar] +* Fix .c files to be treated as .cpp. (#930) [Jonathon Donaldson] +* Fix string-to-int space conversion. (#931) [Fabrizio Ferrandi] +* Fix dpi imports inside generates. [Michael Tresidder] +* Fix rounding in trace $timescale. (#946) [Frederic Requin] +* Fix $fopen with SV string. (#947) [Sven Stucki] +* Fix hashed error with typedef inside block. (#948) [Sven Stucki] +* Fix makefile with --coverage. (#953) [Eivind Liland] +* Fix coverage documentation. (#954) [Thomas J Whatson] +* Fix parameters with function parameter arguments. (#952) [Jie Xu] +* Fix size casts as second argument of cast item. (#950) [Jonathon Donaldson] + + +Verilator 3.874 2015-06-06 +========================== + +**Minor:** + +* Add pkg-config .pc file. (#919) [Stefan Wallentowitz] +* Fix installing missing manpages. (#908) [Ahmed El-Mahmoudy] +* Fix sign extension in large localparams. (#910) [Mike Thyer] +* Fix core dump in sync-async warnings. (#911) [Sebastian Dressler] +* Fix truncation warning with -pins-bv. (#912) [Alfonso Martinez] +* Fix Cygwin uint32 compile. (#914) [Matthew Barr] +* Fix preprocessing stringified newline escapes. (#915) [Anton Rapp] +* Fix part-select in constant function. (#916) [Andrew Bardsley] +* Fix width extension on mis-width ports. (#918) [Patrick Maupin] +* Fix width propagation on sized casts. (#925) [Jonathon Donaldson] +* Fix MSVC++ compiler error. (#927) [Hans Tichelaar] + + +Verilator 3.872 2015-04-05 +========================== + +**Minor:** + +* Add VerilatedVcdFile to allow real-time waveforms. (#890) [HyungKi Jeong] +* Add --clk and related optimizations. (#1840) [Jie Xu] +* Fix order of C style arrays. [Duraid Madina] +* Add --dump-treei-. (#894) [Jie Xu] +* Fix comma-instantiations with parameters. (#884) [Franck Jullien] +* Fix SystemC arrayed bit vectors. (#886) [David Poole] +* Fix compile error on MinGW. (#887) [HyungKi Jeong] + + +Verilator 3.870 2015-02-12 +========================== + +**Minor:** + +* Suppress COMBDLY when inside always_latch. (#864) [Iztok Jeras] +* Support cast operator with expression size. (#865) [Iztok Jeras] +* Add warning on slice selection out of bounds. (#875) [Cong Van Nguyen]. +* Fix member select error broke in 3.868. (#867) [Iztok Jeras] +* Fix $sccanf from string. (#866) [David Pierce] +* Fix VM_PARALLEL_BUILDS broke in 3.868. (#870) [Hiroki Honda] +* Fix non-ANSI modport instantiations. (#868) [Kevin Thompson] +* Fix UNOPTFLAT change detect on multidim arrays. (#872) [Andrew Bardsley] +* Fix slice connections of arrays to ports. (#880) [Varun Koyyalagunta] +* Fix mis-optimizing gate assignments in unopt blocks. (#881) [Mike Thyer] +* Fix sign extension of pattern members. (#882) [Iztok Jeras] +* Fix clang compile warnings. + + +Verilator 3.868 2014-12-20 +========================== + +**Major:** + +* New verilator_coverage program added to replace SystemPerl's vcoverage. +* PSL support was removed, please use System Verilog assertions. +* SystemPerl mode is deprecated and now untested. + +**Minor:** + +* Support enum.first/name and similar methods. (#460) (#848) +* Add 'string' printing and comparisons. (#746) (#747) etc. +* Inline C functions that are used only once. (#1838) [Jie Xu] +* Fix tracing SystemC signals with structures. (#858) [Eivind Liland] + Note that SystemC traces will no longer show the signals + in the wrapper, they can be seen one level further down. +* Add --stats-vars. (#851) [Jeremy Bennett] +* Fix bare generates in interfaces. (#789) [Bob Newgard] +* Fix underscores in real literals. (#863) [Jonathon Donaldson] + + +Verilator 3.866 2014-11-15 +========================== + +**Minor:** + +* Fix +define+A+B to define A and B to match other simulators. (#847) [Adam Krolnik] +* Add optimization of wires from arrayed cells. (#1831) [Jie Xu] +* Add optimization of operators between concats. (#1831) [Jie Xu] +* Add public enums. (#833) [Jonathon Donaldson] +* Trace_off now operates on cells. (#826) [Lane Brooks] +* Fix public parameters in unused packages. (#804) [Jonathon Donaldson] +* Fix select when partially out-of-bound. (#823) [Cliffort Wolf] +* Fix generate unrolling with function call. (#830) [Steven Slatter] +* Fix cast-to-size context-determined sizing. (#828) [Geoff Barrett] +* Fix not tracing modules following primitives. (#837) [Jie Xu] +* Fix trace overflow on huge arrays. (#834) [Geoff Barrett] +* Fix quoted comment slashes in defines. (#845) [Adam Krolnik] + + +Verilator 3.864 2014-09-21 +========================== + +**Minor:** + +* Support power operator with real. (#809) [Jonathon Donaldson] +* Improve verilator_profcfunc time attributions. [Jonathon Donaldson] +* Fix duplicate anonymous structures in $root. (#788) [Bob Newgard] +* Fix mis-optimization of bit-swap in wide signal. (#800) [Jie Xu] +* Fix error when tracing public parameters. (#722) [Jonathon Donaldson] +* Fix dpiGetContext in dotted scopes. (#740) [Geoff Barrett] +* Fix over-shift structure optimization error. (#803) [Jeff Bush] +* Fix optional parameter keyword in module #(). (#810) [Iztok Jeras] +* Fix $warning/$error multi-argument ordering. (#816) [Jonathon Donaldson] +* Fix clang warnings. (#818) [Iztok Jeras] +* Fix string formats under deep expressions. (#820) [Iztok Jeras] + + +Verilator 3.862 2014-06-10 +========================== + +**Minor:** + +* Using command line -Wno-{WARNING} now overrides file-local lint_on. +* Add -P to suppress `line and blanks with preprocessing. (#781) [Derek Lockhart] +* Support SV 2012 package import before port list. +* Change SYMRSVDWORD to print as warning rather than error. +* Fix seg-fault with variable of parameterized interface. (#692) [Jie Xu] +* Fix false name conflict on cells in generate blocks. (#749) [Igor Lesik] +* Fix pattern assignment to basic types. (#767) [Jie Xu] +* Fix pattern assignment to conditionals. (#769) [Jie Xu] +* Fix shift corner-cases. (#765) (#766) (#768) (#772) (#774) (#776) [Clifford Wolf] +* Fix C compiler interpreting signing. (#773) [Clifford Wolf] +* Fix late constant division by zero giving X error. (#775) [Clifford Wolf] +* Fix gate primitives with arrays and non-arrayed pins. +* Fix DETECTARRAY error on packed arrays. (#770) [Jie Xu] +* Fix ENDLABEL warnings on escaped identifiers. +* Fix string corruption. (#780) [Derek Lockhart] + + +Verilator 3.860 2014-05-11 +========================== + +**Major:** + +* PSL is no longer supported, please use System Verilog assertions. +* Support '{} assignment pattern on arrays. (#355) +* Support streaming operators. (#649) [Glen Gibb] +* Fix expression problems with -Wno-WIDTH. (#729) (#736) (#737) (#759) + Where WIDTH warnings were ignored this might result in different + warning messages and results, though it should better match the spec. + [Clifford Wolf] + +**Minor:** + +* Add --no-trace-params. +* Add assertions on 'unique if'. (#725) [Jeff Bush] +* Add PINCONNECTEMPTY warning. [Holger Waechtler] +* Support parameter arrays. (#683) [Jeremy Bennett] +* Documentation fixes. (#723) [Glen Gibb] +* Support {} in always sensitivity lists. (#745) [Igor Lesik] +* Fix begin_keywords "1800+VAMS". (#1806) +* Fix tracing of package variables and real arrays. +* Fix tracing of packed arrays without --trace-structs. (#742) [Jie Xu] +* Fix missing coverage line on else-if. (#727) [Sharad Bagri] +* Fix modport function import not-found error. +* Fix power operator calculation. (#730) (#735) [Clifford Wolf] +* Fix reporting struct members as reserved words. (#741) [Chris Randall] +* Fix change detection error on unions. (#758) [Jie Xu] +* Fix -Wno-UNOPTFLAT change detection with 64-bits. (#762) [Clifford Wolf] +* Fix shift-right optimization. (#763) [Clifford Wolf] +* Fix Mac OS-X test issues. [Holger Waechtler] +* Fix C++-2011 warnings. -*** Support VPI access to parameters and localparam. [Ludwig Rogiers] -*** Support parsing (not elaboration, yet) of UVM. +Verilator 3.856 2014-03-11 +========================== -**** Add new UNSUPPORTED error code to replace most previous Unsupported: messages. +**Minor:** -**** With --bbox-unsup continue parsing on many (not all) UVM constructs. +* Support case inside. (#708) [Jan Egil Ruud] +* Add parameters into trace files. (#706) [Alex Solomatnikov] +* Fix parsing "#0 'b0". (#256) +* Fix array bound checks on real variables. +* Fix --skip-identical mis-detecting on OS-X. (#707) +* Fix missing VL_SHIFTRS_IQI with WIDTH warning. (#714) [Fabrizio Ferrandi] +* Fix signed shift right optimization. (#715) [Fabrizio Ferrandi] +* Fix internal error on "input x =" syntax error. (#716) [Lane Brooks] +* Fix slice extraction from packed array. (#717) [Jan Egil Ruud] +* Fix inside statement EQWILD error. (#718) [Jan Egil Ruud] -**** Support for-loop increments with commas. -**** Support $swrite with arbitrary arguments. +Verilator 3.855 2014-01-18 +========================== -**** Support $writememb (#2450). [Fan Shupei] +**Minor:** -**** Fix OS X, Free BSD, and -m32 portability issues. [Geza Lore] +* Support modport import. (#696) [Jeremy Bennett] +* Add --trace-structs to show struct names. (#673) [Chris Randall] +* Fix tracing of packed structs. (#705) [Jie Xu] +* Fix --lint-only with MinGW. (#1813) [HyungKi Jeong] +* Fix some delayed assignments of typedefed unpacked arrays. +* Fix wire declarations with size and not range. (#466) [Alex Solomatnikov] +* Fix parameter pin vs. normal pin error. (#704) [Alex Solomatnikov] -**** Fix to flush FST trace on termination due to $stop or assertion failure. -**** Fix part select error when multipling by power-of-two (#2413). [Conor McCullough] +Verilator 3.854 2013-11-26 +========================== -**** Fix division exception (#2460) [Kuoping Hsu] +**Minor:** +* Add UNPACKED warning to convert unpacked structs. [Jeremy Bennett] +* Add --compiler clang to work around compiler bug. (#694) [Stefan Ludwig] +* Support vpi_get of vpiSuppressVal. (#687) [Varun Koyyalagunta] +* Support vpi_get_time. (#688) [Varun Koyyalagunta] +* Fix evaluation of chained parameter functions. (#684) [Ted Campbell] +* Fix enum value extension of '1. +* Fix multiple VPI variable callbacks. (#679) [Rich Porter] +* Fix vpi_get of vpiSize. (#680) [Rich Porter] +* Fix vpi_remove_cb inside callback. (#689) [Varun Koyyalagunta] +* Fix crash with coverage of structures. (#691) [Eivind Liland] +* Fix array assignment from const var. (#693) [Jie Xu] -* Verilator 4.036 2020-06-06 -** OPT_FAST is now -Os by default. See the BENCHMARKING & OPTIMIZATION part - of the manual if you experience issues with compilation speed. +Verilator 3.853 2013-09-30 +========================== -*** Configure now enables SystemC if it is installed as a system headers, - e.g. with 'apt-get install systemc-dev'. +**Minor:** -*** Add --waiver-output flag that writes a verilator config file (.vlt) with - waivers to the warnings emitted during a Verilator run. +* Add --no-order-clock-delay to work around #613. [Charlie Brej] -*** Support verilator_coverage --write-info for lcov HTML reports. - Line Coverage now tracks all statement lines, not just branch lines. -*** --output-split is now on by default. VM_PARALLEL_BUILDS is set by - default iff the --output-split caused an actual file split to occur. - --output-split-cfuncs and --output-split-ctrace now default to the - value of --output-split. These changes should improve build times of - medium and large designs with default options. User makefiles may - require changes. +Verilator 3.852 2013-09-29 +========================== -*** The run-time library is now compiled with -Os by default. (#2369, #2373) +**Minor:** -**** Support multi channel descriptor I/O (#2190) [Stephen Henry] +* Support named function and task arguments. [Chris Randall] +* Report SELRANGE warning for non-generate if. (#675) [Roland Kruse] +* Fix ordering of $fgetc. (#1808) [Frederic Requin] +* Fix --output-split-cfunc to count internal functions. [Chris Randall] +* Fix crash on 32-bit Ubuntu. (#670) [Mark Jackson Pulver] -**** Support $countbits. (#2287) [Yossi Nivin] -**** Support $isunbounded and parameter $. (#2104) +Verilator 3.851 2013-08-15 +========================== -**** Support unpacked array .sum and .product. +**Minor:** -**** Support prefix/postfix increment/decrement. (#2223) [Maciej Sobkowski] +* Fix ordering of clock enables with delayed assigns. (#613) [Jeremy Bennett] +* Fix vpi_iterate on memory words. (#655) [Rich Porter] +* Fix final duplicate declarations when non-inlined. (#661) [Charlie Brej] +* Fix interface ports with comma lists. (#1779) [Ed Lander] +* Fix parameter real conversion from integer. +* Fix clang warnings. (#668) [Yutetsu Takatsukasa] -**** Fix FST tracing of little bit endian signals. [Geza Lore] -**** Fix +: and -: on unpacked arrays. (#2304) [engr248] +Verilator 3.850 2013-06-02 +========================== -**** Fix $isunknown with constant Z's. +**Major:** -**** Fix queues and dynamic array wide ops. (#2352) [Vassilis Papaefstathiou] +* Support interfaces and modports. (#102) [Byron Bradley, Jeremy Bennett] +**Minor:** -* Verilator 4.034 2020-05-03 +* Duplicate clock gate optimization on by default. (#621) +* Fix arrayed input compile error. (#645) [Krzysztof Jankowski] +* Fix GCC version runtime changes. (#651) [Jeremy Bennett] +* Fix packed array select internal error. (#652) [Krzysztof Jankowski] -** Add simplistic class support with many restrictions, see manual. (#377) -** Support IEEE time units and time precisions. (#234) - Includes `timescale, $printtimescale, $timeformat. - VL_TIME_MULTIPLIER, VL_TIME_PRECISION, VL_TIME_UNIT have been removed - and the time precision must now match the SystemC time precision. To - get closer behavior to older versions, use e.g. --timescale-override - "1ps/1ps". +Verilator 3.847 2013-05-11 +========================== -** Add --build to call make automatically. (#2249) [Yutetsu TAKATSUKASA] +**Minor:** -** Configuring with ccache present now defaults to using it; see OBJCACHE. +* Add ALWCOMBORDER warning. [KC Buckenmaier] +* Add --pins-sc-uint and --pins-sc-biguint. (#638) [Alex Hornung] +* Support "signal[vec]++". +* Fix simulation error when inputs and MULTIDRIVEN. (#634) [Ted Campbell] +* Fix module resolution with __. (#631) [Jason McMullan] +* Fix packed array non-zero right index select crash. (#642) [Krzysztof Jankowski] +* Fix nested union crash. (#643) [Krzysztof Jankowski] -** Fix DPI import/export to be standard compliant. (#2236) [Geza Lore] -** Add --trace-threads for general multithreaded tracing. (#2269) [Geza Lore] +Verilator 3.846 2013-03-09 +========================== -*** Add --flatten for use with --xml-only. (#2270) [James Hanlon] +**Major:** -**** Greatly improve FST/VCD dump performance (#2244) (#2246) (#2250) (#2257) [Geza Lore] +* IEEE 1800-2012 is now the default language. This adds 4 new keywords + and updates the svdpi.h and vpi_user.h header files. +* Add --report-unoptflat. (#611) [Jeremy Bennett] -**** Support $ferror, and $fflush without arguments. (#1638) +**Minor:** -**** Support event data type (with some restrictions). +* Add duplicate clock gate optimization. (#1772) [Varun Koyyalagunta] + Disabled unless -OD or -O3 used, please try it as may get some + significant speedups. +* Support pattern assignment features. (#616) (#617) (#618) [Ed Lander] +* Support bind in $unit. (#602) [Ed Lander] +* Support '() sized casts. (#628) [Ed Lander] +* Fix wrong dot resolution under inlining. [Art Stamness] +* Fix DETECTARRAY on packed structures. (#610) [Jeremy Bennett] +* Fix LITENDIAN on unpacked structures. (#614) [Wai Sum Mong] +* Fix 32-bit OS VPI scan issue. (#615) [Jeremy Bennett, Rich Porter] +* Fix opening a VerilatedVcdC file multiple times. (#1774) [Frederic Requin] +* Fix UNOPTFLAT circular array bounds crossing. (#630) [Jie Xu] -**** Support $root. (#2150) [Keyi Zhang] -**** Add error if use SystemC 2.2 and earlier (pre-2011) as is deprecated. +Verilator 3.845 2013-02-04 +========================== -**** Fix build of fast path tracing code to use OPT_FAST. (#2245) [Geza Lore] +**Minor:** -**** Fix arrayed instances connecting to slices. (#2263) [Don/engr248] +* Fix nested packed arrays and struct. (#600) [Jeremy Bennett] + Packed arrays are now represented as a single linear vector in + Verilated models. This may affect packed arrays that are public or + accessed via the VPI. +* Support wires with data types. (#608) [Ed Lander] +* Support bind, to module names only. (#602) [Ed Lander] +* Support VPI product info, warning calls, etc. (#588) [Rick Porter] +* Support $left, $right and related functions. (#448) [Iztok Jeras] +* Support inside expressions. +* Define SYSTEMVERILOG, SV_COV_START and other IEEE mandated predefines. +* Fix pin width mismatch error. (#595) [Alex Solomatnikov] +* Fix implicit one bit parameter selection. (#603) [Jeremy Bennett] +* Fix signed/unsigned parameter misconversion. (#606) [Jeremy Bennett] +* Fix segfault on multidimensional dotted arrays. (#607) [Jie Xu] +* Fix per-bit array output connection error. (#414) [Jan Egil Ruud] +* Fix package logic var compile error. +* Fix enums with X values. -**** Fix error on unpacked connecting to packed. (#2288) [Joseph Shaker] -**** Fix logical not optimization with empty begin. (#2291) [Baltazar Ortiz] +Verilator 3.844 2013-01-09 +========================== -**** Fix reduction OR on wide data, broke in v4.026. (#2300) [Jack Koenig] +**Minor:** -**** Fix clock enables with bit-extends. (#2299) [Marco Widmer] +* Support "unsigned int" DPI import functions. (#1770) [Alex Lee] +* Fix package resolution of parameters. (#586) [Jeremy Bennett] +* Fix non-integer vpi_get_value. (#587) [Rich Porter] +* Fix task inlining under $display and case. (#589) (#598) [Holger Waechtler] +* Fix package import of non-localparam parameter. (#474) (#591) [Jeremy Bennett] +* Fix package import of package imports, partial #592. [Jeremy Bennett] +* Fix package import preventing local var. (#599) [Jeremy Bennett] +* Fix array extraction of implicit vars. (#601) [Joe Eiler] -**** Fix MacOs Homebrew by removing default LIBS. (#2298) [Ryan Clarke] +Verilator 3.843 2012-12-01 +========================== -* Verilator 4.032 2020-04-04 +**Minor:** -*** Add column numbers to errors and warnings. +* Add +1364-1995ext and similar language options. (#532) [Jeremy Bennett] +* Fix mis-optimized identical submodule subtract. (#581) [Charlie Brej] +* Fix crash on dotted references into dead modules. (#583) [Jeremy Bennett] +* Fix compile issues on MSVCC. (#571) (#577) [Amir Gonnen] +* Fix --debug overriding preceding --dump-treei. (#580) [Jeremy Bennett] -*** Add GCC 9-style line number prefix when showing source text for errors. -*** Add setting VM_PARALLEL_BUILDS=1 when using --output-split. (#2185) +Verilator 3.842 2012-11-03 +========================== -*** Change --quiet-exit to also suppress 'Exiting due to N errors'. +**Minor:** -**** Suppress REALCVT for whole real numbers. +* Add -x-initial-edge. (#570) [Jeremy Bennett] +* Fix parameter pins interspersed with cells broke in 3.840. [Bernard Deadman] +* Fix large shift error on large shift constants. [David Welch] +* Fix $display mangling on GCC 4.7 and speed up. (#1765) (#373) (#574) [R Diez] +* Fix array of struct references giving false error. (#566) [Julius Baxter] +* Fix missing var access functions when no DPI. (#572) [Amir Gonnen] +* Fix name collision on unnamed blocks. (#567) [Chandan Egbert] +* Fix name collision on task inputs. (#569) [Chandan Egbert] + + +Verilator 3.841 2012-09-03 +========================== -**** Support split_var in vlt files. (#2219) [Marco Widmer] +**Major:** -**** Fix parameter type redeclaring a type. (#2195) [hdzhangdoc] +* Add --savable to support model save/restore. [Jeremy Bennett] -**** Fix VCD open with empty filename. (#2198) [Julius Baxter] +**Minor:** -**** Fix packages as enum base types. (#2202) [Driss Hafdi] +* Support '{} assignment pattern on structures, part of #355. +* Fix double-deep parameter cell WIDTHs. (#541) [Hiroki Honda] +* Fix imports under multiple instantiated cells. (#542) [Alex Solomatnikov] +* Fix defparam in generate broke in 3.840. (#543) [Alex Solomatnikov] +* Fix duplicate begin error broke in 3.840. (#548) [Alex Solomatnikov] +* Fix triangle symbol resolution error broke in 3.840. (#550) [Ted Campbell] -**** Fix duplicate typedefs in generate for. (#2205) [hdzhangdoc] -**** Fix MinW portability. (#2114) [Sean Cross] +Verilator 3.840 2012-07-31 Beta +=============================== + +**Major:** -**** Fix assertions with unique case inside. (#2199) [hdzhangdoc] +* Rewrote tristate handling; supports tri0, tri1, tristate bit selects, + concatenates and pullup/pulldowns. (#395) (#56) (#54) (#51) + [Alex Solomatnikov, Lane Brooks, et al] +* Support packed structures and unions. (#181) + Note this was a major internal change that may lead to some instability. -**** Fix implicit conversion of floats to wide integers. +**Minor:** +* Support tri0 and tri1. (#462) [Alex Solomatnikov] +* Support nmos and pmos. (#488) [Alex Solomatnikov] +* Add INITIALDLY warning on initial assignments. (#478) [Alex Solomatnikov] +* Add PINMISSING and PINNOCONNECT lint checks. +* Add --converge-limit option. +* Fix generate operators not short circuiting. (#413) [by Jeremy Bennett] +* Fix parameters not supported in constant functions. (#474) [Alex Solomatnikov] +* Fix duplicate warnings/errors. (#516) [Alex Solomatnikov] +* Fix signed extending biops with WIDTH warning off. (#511) [Junji Hashimoto] +* Fix ITOD internal error on real conversions. (#491) [Alex Solomatnikov] +* Fix input and real loosing real data type. (#501) [Alex Solomatnikov] +* Fix imports causing symbol table error. (#490) [Alex Solomatnikov] +* Fix newlines in radix values. (#507) [Walter Lavino] +* Fix loop error message to report line. (#513) [Jeremy Bennett] +* Fix false UNUSED warning on file system calls. +* Fix GCC 4.7.0 compile warnings. (#530) [Jeremy Bennett] +* Fix svdpi.h compile error on Apple OS. +* Fix compile error under git submodules. (#534) [Aurelien Francillon] -* Verilator 4.030 2020-03-08 -** Add split_var metacomment to assist UNOPTFLAT fixes. (#2066) [Yutetsu TAKATSUKASA] +Verilator 3.833 2012-04-15 +========================== -** Add support for $dumpfile and $dumpvars. (#2126) [Alexander Grobman] +**Minor:** -** Add support for dynamic arrays. (#379) +* Support += and -= in standard for loops. (#463) [Alex Solomatnikov] +* Fix processing unused parametrized modules. (#469) (#470) [Alex Solomatnikov] +* Add SELRANGE as warning instead of error. (#477) [Alex Solomatnikov] +* Add readme.pdf and internal.pdf and doxygen. (#483) [by Jeremy Bennett] +* Fix change detections on arrays. (#364) [John Stevenson, Alex Solomatnikov] +* Fix signed array warning. (#456) [Alex Solomatnikov] +* Fix genvar and begin under generate. (#461) [Alex Solomatnikov] +* Fix real constant parameter functions. (#475) [Alex Solomatnikov] +* Fix and document --gdb option. (#454) [Jeremy Bennett] +* Fix OpenSolaris compile error. [Sanjay Singh] -*** Add +verilator+noassert flag to disable assertion checking. [Tobias Wölfel] -*** Add check for assertOn for asserts. (#2162) [Tobias Wölfel] +Verilator 3.832 2012-03-07 +========================== -*** Add --structs-packed for forward compatibility. +**Minor:** -*** Fix genblk naming with directly nested generate blocks. (#2176) [Alexander Grobman] +* Fix memory delayed assignments from multiple clock domains. [Andrew Ling] +* Support arrayed SystemC I/O pins. [Christophe Joly] +* Report MULTIDRIVEN on memories set in multiple clock domains. +* Report ENDLABEL on mismatching end labels. (#450) [Iztok Jeras] +* Fix expansion of back-slashed escaped macros. (#441) [Alberto Del Rio] +* Fix inheriting real and signed type across untyped parameters. +* Fix core dump with over 100 deep UNOPTFLAT. (#432) [Joe Eiler] +* Fix false command not found warning in makefiles. [Ruben Diez] +* Fix hang when functions inside begin block. [David Welch] +* Fix hang on recursive substitution `defines. (#443) [Alex Solomatnikov] -**** Implement $displayb/o/h, $writeb/o/h, etc. (#1637) -**** Use gcc -Os in examples instead of -O2 for better average performance. +Verilator 3.831 2012-01-20 +========================== -**** Fix undeclared VL_SHIFTR_WWQ. (#2114) [Alex Solomatnikov] +**Major:** +* Support SystemC 2.3.0 prerelease. This requires setting the new + SYSTEMC_INCLUDE and SYSTEMC_LIBDIR variables in place of now + deprecated SYSTEMC and SYSTEMC_ARCH. [Iztok Jeras] -* Verilator 4.028 2020-02-08 +**Minor:** -** Support attributes (public, isolate_assignments, etc.) in configuration files. +* Suppress VARHIDDEN on dpi import arguments. [Ruben Diez] +* Support "generate for (genvar i=0; ...". [David Kravitz] +* Fix dpi exports with > 32 bit but < 64 bit args. (#423) [Chandan Egbert] +* Fix array of instantiations with sub-range output. (#414) [Jeremy Bennett] +* Fix BLKSEQ warnings on variables declared inside always. [Ruben Diez] -** Add -match to lint_off to waive warnings. [Philipp Wagner] -*** Link Verilator binary partially statically. (#2146) [Geza Lore] +Verilator 3.830 2011-11-27 +========================== -*** Verilation speed improvements (#2133) (#2138) [Geza Lore] +**Major:** -*** Support libgoogle-perftools-dev's libtcmalloc if available. (#2137) [Geza Lore] +* With "--language VAMS" support a touch of Verilog AMS. [Holger Waechtler] -*** Support $readmem/$writemem with assoc arrarys. (#2100) [agrobman] +**Minor:** -**** Support type(expression) operator and $typename. (#1650) +* Add sc_bv attribute to force bit vectors. (#402) [by Stefan Wallentowitz] +* Search for user -y paths before default current directory. [Ruben Diez] +* Support constants in sensitivity lists. (#412) [Jeremy Bennett] +* Support $system. [Ruben Diez] +* Support $sscanf with %g. [Holger Waechtler] +* Indicate 'exiting due to errors' if errors, not warnings. [Ruben Diez] +* Fix bad result with if-else-return optimization. (#420) [Alex Solomatnikov] +* Fix reporting not found modules if generate-off. (#403) [Jeremy Bennett] +* Fix $display with %d following %g. [Holger Waechtler] -**** Support left justified $display. (#2101) [Pieter Kapsenberg] -**** Support string character access via indexing. +Verilator 3.824 2011-10-25 +========================== -**** Support enum.next(k) with constant k > 1. (#2125) [Tobias Rosenkranz] +**Minor:** -**** Support parameter access from arrays of interfaces. (#2155) [Todd Strader] +* Fix "always @ (* )". (#403) (#404) [Walter Lavino] +* Add ASSIGNIN as suppressable error. [Jeremy Bennett] +* Fix 3.823 constructor core dump on Debian. (#401) [Ahmed El-Mahmoudy] -**** Add parameter values in XML. #2110. [Pieter Kapsenberg] -**** Add loc column location in XML (replaces fl). (#2122) [Pieter Kapsenberg] +Verilator 3.823 2011-10-20 +========================== -**** Add error on misused define. [Topa Tota] +**Minor:** -**** Add parameter to set maximum signal width. (#2082) [Øyvind Harboe] +* Support $ceil, $floor, etc. [Alex Solomatnikov] +* Add configure options for cc warnings and extended tests. [Ruben Diez] +* Add -Wall reporting ASSIGNDLY on assignment delays. [Ruben Diez] +* Fix UNDRIVEN warnings inside DPI import functions. [Ruben Diez] +* Fix --help output to go to stderr, not stdout. (#397) [Ruben Diez] +* Fix DPI import output of 64 bits. (#398) [Mike Denio] +* Fix DPI import false BLKSEQ warnings. [Alex Solomatnikov] +* Fix MSVC compile warning with trunc/round. (#394) [Amir Gonnen] +* Fix autoconf and Makefile warnings. (#396) [Ruben Diez] -**** Add warning on genvar in normal for loop. (#2143) [yurivict] -**** Fix VPI scope naming for public modules. [Nandu Raj] +Verilator 3.821 2011-09-14 +========================== -**** Fix FST tracing of enums inside structs. [fsiegle] +**Minor:** -**** Fix WIDTH warning on " in assertions. (#2069) [Peter Monsson] +**Minor:** -*** Support string compare, ato*, etc methods. (#1606) [Yutetsu TAKATSUKASA] +* Support bit vectors > 64 bits wide in DPI import and exports. +* Fix out of memory on slice syntax error. (#354) [Alex Solomatnikov] +* Fix error on enum references to other packages. (#339) [Alex Solomatnikov] +* Fix DPI undeclared svBitVecVal compile error. (#346) [Chandan Egbert] +* Fix DPI bit vector compile errors. (#347) (#359) [Chandan Egbert] +* Fix CDCRSTLOGIC report showing endpoint flops without resets. +* Fix compiler warnings on SPARC. (#288) [Ahmed El-Mahmoudy] -**** Support immediate cover statements. -**** Ignore `uselib to end-of-line. (#1634) [Frederic Antonin] +Verilator 3.812 2011-04-06 +========================== -**** Update FST trace API for better performance. +**Minor:** -**** Add vpiTimeUnit and allow to specify time as string. (#1636) [Stefan Wallentowitz] +* Add --trace-max-width and --trace-max-array. (#319) [Alex Solomatnikov] +* Add --Wno-fatal to turn off abort on warnings. [by Stefan Wallentowitz] +* Support ${...} and $(...) env vars in .vc files. [by Stefan Wallentowitz] +* Support $bits(data_type). (#327) [Alex Solomatnikov] +* Support loop unrolling on width mismatches. (#333) [Joe Eiler] +* Support simple cast operators. (#335) [Alex Solomatnikov] +* Accelerate bit-selected inversions. +* Add error on circular parameter definitions. (#329) [Alex Solomatnikov] +* Fix concatenates and vectored bufif1. (#326) [Iztok Jeras] -**** Add error when `resetall inside module (IEEE 2017-22.3). -**** Add cleaner error on version control conflicts in sources. +Verilator 3.811 2011-02-14 +========================== -**** Fix little endian cell ranges. (#1631) [Julien Margetts] +**Minor:** -**** Fix queue issues (#1641) (#1643) [Peter Monsson, Stefan Wallentowitz] +* Report error on duplicated or empty pins. (#321) [Christian Leber] +* Report error on function call output tied to constant. [Bernard Deadman] +* Throw UNUSED/UNDRIVEN only once per net in a parametrized module. +* Fix internal error on functions called as SV tasks. [Bernard Deadman] +* Fix internal error on non-inlined inout pins. [Jeff Winston] +* Fix false BLKSEQ on non-unrolled for loop indexes. [Jeff Winston] +* Fix block comment not separating identifiers. (#311) [Gene Sullivan] +* Fix warnings to point to lowest net usage, not upper level ports. +* Fix error on constants connected to outputs. (#323) [Christian Leber] -**** Fix strcasecmp for windows. (#1651) [Kuba Ober] -**** Fix disable iff in assertions. Closes #1404. [Peter Monsson] +Verilator 3.810 2011-01-03 +========================== -**** Fix huge case statement performance. Closes #1644. [Julien Margetts] +**Major:** -**** Fix tracing -1 index arrays. Closes #2090. [Yutetsu Takatsukasa] +* Add limited support for VPI access to public signals, see docs. +* Add -F option to read relative option files. (#297) [Neil Hamilton] +* Support ++,--,+= etc as standalone statements. [Alex Solomatnikov] +* Add -Wall, -Wwarn-style, -Wno-style to enable code style warnings + that have been added to this release, and disabled by default: +* With --Wall, add BLKSEQ warning on blocking assignments in seq blocks. +* With --Wall, add DECLFILENAME warning on modules not matching filename. +* With --Wall, add DEFPARAM warning on deprecated defparam statements. +* With --Wall, add IFDEPTH warning on deep if statements. +* With --Wall, add INCABSPATH warning on `include with absolute paths. +* With --Wall, add SYNCASYNCNET warning on mixed sync/async reset nets. +* With --Wall, add UNDRIVEN warning on undriven nets. +* With --Wall, add UNUSED warning on unused nets. -**** Fix expand optimization slowing --lint-only. Closes #2091. [Thomas Watts] +**Minor:** -**** Fix %{number}s with strings. #2093. [agrobman] +* When running with VERILATOR_ROOT, optionally find binaries under bin. +* Suppress WIDTH warnings when adding/subtracting 1'b1. +* The VARHIDDEN warning is now disabled by default, use -Wall to enable. -**** Fix shebang breaking some shells. Closes #2067. [zdave] +Verilator 3.805 2010-11-02 +========================== -* Verilator 4.024 2019-12-08 +**Minor:** -** Support associative arrays (excluding [*] and pattern assignments). (#544) +* Add warning when directory contains spaces. (#1705) [Salman Sheikh] +* Fix wrong filename on include file errors. (#289) [Brad Parker] +* Fix segfault on SystemVerilog "output wire foo=0". (#291) [Joshua Wise] +* Fix DPI export name not found. (#1703) [Terry Chen] -** Support queues (excluding {} notation and pattern assignments). (#545) -*** Add +verilator+error+limit to see more assertion errors. [Peter Monsson] +Verilator 3.804 2010-09-20 +========================== + +**Minor:** + +* Support tracing/coverage of underscore signals. (#280) [by Jason McMullan] +* Increase define recursions before error. [Paul Liu] +* On core dump, print debug suggestions. +* Fix preprocessor \`\` of existing base define. (#283) [Usha Priyadharshini] + + +Verilator 3.803 2010-07-10 +========================== -*** Support string.toupper and string.tolower. +**Minor:** -*** Support $rewind and $ungetc. +* Fix preprocessor preservation of newlines across macro substitutions. +* Fix preprocessor stringification of nested macros. +* Fix some constant parameter functions causing crash. (#253) [Nick Bowler] +* Fix do {...} while() not requiring final semicolon. + + +Verilator 3.802 2010-05-01 +========================== -*** Support shortreal as real, with a SHORTREAL warning. +**Minor:** -**** Add -Wpedantic and -Wno-context for compliance testing. +* Support runtime access to public signal names. +* Add /*verilator public_flat_rw*/ for timing-specific public access. +* Fix word size to match uint64_t on -m64 systems. (#238) [Joe Eiler] +* Improve error handling on slices of arrays. (#226) [by Byron Bradley] +* Report errors when extra underscores used in meta-comments. +* Fix bit reductions on multi-packed dimensions. (#227) [by Byron Bradley] +* Fix removing $fscanf if assigned to unused var. (#248) [Ashutosh Das] +* Fix "make install" with configure outside srcdir. [Stefan Wallentowitz] +* Fix loop unroller out of memory; change --unroll-stmts. [Ashutosh Das] +* Fix trace files with empty modules crashing some viewers. +* Fix parsing single files > 2GB. [Jeffrey Short] +* Fix installing data files as non-executable. (#168) [by Ahmed El-Mahmoudy] -**** Add error on redefining preprocessor directives. [Piotr Binkowski] -**** Support $value$plusargs float and shorts. (#1592) (#1619) [Garrett Smith] +Verilator 3.801 2010-03-17 +========================== -**** Fix gate lvalue optimization error. (#831) [Jonathon Donaldson, Driss Hafdi] +**Minor:** -**** Fix color assertion on empty if. (#1604) [Andrew Holme] +* Support "break", "continue", "return". +* Support "`default_nettype none|wire". [Dominic Plunkett] +* Skip SystemC tests if not installed. [Iztok Jeras] +* Fix clock-gates with non-AND complex logic. (#220) [Ashutosh Das] +* Fix flushing VCD buffers on $stop. [Ashutosh Das] +* Fix Mac OS-X compile issues. (#217) [Joshua Wise, Trevor Williams] +* Fix make uninstall. (#216) [Iztok Jeras] +* Fix parameterized defines with empty arguments. -**** Fix for loop missing initializer. (#1605) [Andrew Holme] -**** Fix hang on concat error. (#1608) [Bogdan Vukobratovic] +Verilator 3.800 2010-02-07 +========================== -**** Fix VPI timed callbacks to be one-shot, pull5. [Matthew Ballance] +**Major application visible changes:** -**** Fix // in filenames. (#1610) [Peter Nelson] +* SystemPerl is no longer required for tracing. + Applications must use VerilatedVcdC class in place of SpTraceVcdC. +* SystemVerilog 1800-2009 is now the default language. + Thus "global" etc are now keywords. See the --language option. -**** Fix $display("%p") to be closer to IEEE. +**Major new features:** -**** Fix labels on functions with returns. (#1614) [Mitch Hayenga] +* Support SystemVerilog types "byte", "chandle", "int", "longint", + "shortint", "time", "var" and "void" in variables and functions. +* Support "program", "package", "import" and $unit. +* Support typedef and enum. [by Donal Casey] +* Support direct programming interface (DPI) "import" and "export". + Includes an extension to map user $system PLI calls to the DPI. +* Support assignments of multidimensional slices. (#170) [by Byron Bradley] +* Support multidimensional inputs/outputs. (#171) [by Byron Bradley] +* Support "reg [1:0][1:0][1:0]" and "reg x [3][2]". (#176) [Byron Bradley] +* Support declarations in loop initializers. (#172) [by Byron Bradley] +* Support $test$plusargs and $value$plusargs, but see the docs! +* Support $sformat and $swrite. +* Support 1800-2009 define defaults and `undefineall. +* Add -CFLAGS, -LDFLAGS, .a, .o, and .so options. +* Speed compiles by avoiding including the STL iostream header. + Application programs may need to include it themselves to avoid errors. +* Add experimental clock domain crossing checks. +* Add experimental --pipe-filter to filter all Verilog input. +* Add experimental config files to filter warnings outside of the source. +* Add VARHIDDEN warning when signal name hides module name. +* Support optional cell parenthesis. (#179) [by Byron Bradley] +* Support for-loop i++, ++i, i--, --i. (#175) [by Byron Bradley] +* Support 1800-2009 /*comments*/ in define values. +* Add Makefile VM_GLOBAL_FAST, listing objects needed to link executables. +* Add --bbox-unsup option to black-box unsupported UDP tables. +* Add -Wno-MODDUP option to allow duplicate modules. -**** Fix false unused message on __Vemumtab. (#2061) [Tobias Rosenkranz] +**Bug fixes:** -**** Fix assertion on dotted parameter arrayed function. (#1620) [Rich Porter] +* Fix implicit variable issues. (#196) (#201) [Byron Bradley] +* Fix 'for' variable typing. (#205) [by Byron Bradley] +* Fix tracing with --pins-bv 1. (#195) [Michael S] +* Fix MSVC++ 2008 compile issues. (#209) [Amir Gonnen] +* Fix MinGW compilation. (#184) (#214) [by Shankar Giri, Amir Gonnen] +* Fix Cygwin 1.7.x compiler error with uint32_t. (#204) [Ivan Djordjevic] +* Fix `define argument mis-replacing system task of same name. (#191) +* Fix Verilator core dump on wide integer divides. (#178) [Byron Bradley] +* Fix lint_off/lint_on meta comments on same line as warning. -**** Fix interface reference tracing. (#1595) [Todd Strader] -**** Fix error on unpacked concatenations. (#1627) [Driss Hafdi] +Verilator 3.720 2009-10-26 +========================== +**Major:** -* Verilator 4.022 2019-11-10 +* Support little endian bit vectors ("reg [0:2] x;"). +* Support division and modulus of > 64 bit vectors. [Gary Thomas] -** Add --protect-lib. (#1490) [Todd Strader] +**Minor:** -** Add cmake support. (#1363) [Patrick Stewart] +* Fix writing to out-of-bounds arrays writing element 0. +* Fix core dump with SystemVerilog var declarations under unnamed begins. +* Fix VCD files showing internal flattened hierarchy, broke in 3.714. +* Fix cell port connection to unsized integer causing false width warning. +* Fix erroring on strings with backslashed newlines. (#168) [Pete Nixon] -*** Examples have been renamed. -*** Add --protect-ids to obscure information in objects. (#1521) [Todd Strader] +Verilator 3.714 2009-09-18 +========================== -*** Add --trace-coverage. +**Major:** -*** Add --xml-output. +* Add --bbox-sys option to blackbox $system calls. -*** Support multithreading on Windows. [Patrick Stewart] +**Minor:** -*** Suppress 'command failed' on normal errors. +* Support generate for var++, var--, ++var, --var. +* Improved warning when "do" used as identifier. +* Don't require SYSTEMPERL_INCLUDE if SYSTEMPERL/src exists. [Gary Thomas] +* Fix deep defines causing flex scanner overflows. [Brad Dobbie] +* Fix preprocessing commas in deep parameterized macros. [Brad Dobbie] +* Fix tracing escaped dotted identifiers. (#107) +* Fix $display with uppercase %M. +* Fix --error-limit option being ignored. -*** Support some unpacked arrays in parameters. (#1315) [Marshal Qiao] -*** Add interface port visibility in traces. (#1594) [Todd Strader] +Verilator 3.713 2009-08-04 +========================== -**** Increase case duplicate/incomplete to 16 bit tables. (#1545) [Yossi Nivin] +**Minor:** -**** Support quoted arguments in -f files. (#1535) [Yves Mathieu] +* Support constant function calls for parameters. [many!] +* Support SystemVerilog "logic". (#101) [by Alex Duller] +* Name SYMRSVDWORD error, and allow disabling it. (#103) [Gary Thomas] +* Fix escaped preprocessor identifiers. (#106) [Nimrod Gileadi] -**** Optimize modulus by power-of-two constants, and masked conditionals. -**** Fix detecting missing reg types. (#1570) [Jacko Dirks] +Verilator 3.712 2009-07-14 +========================== -**** Fix multithreaded yield behavior when no work. [Patrick Stewart] +**Major:** -**** Fix bad-syntax crashes. (#1548, #1550-#1553, #1557-#1560, #1563, - #1573-#1577, #1579, #1582-#1591) [Eric Rippey] +* Patching SystemC is no longer required to trace sc_bvs. -**** Fix false CMPCONST/UNSIGNED warnings on "inside". (#1581) [Mitch Hayenga] +**Minor:** +* Add verilator --pins-uint8 option to use sc_in. +* Add verilator -V option, to show verbose version. +* Add BLKLOOPINIT error code, and describe --unroll-count. [Jeff Winston] +* Support zero-width constants in concatenations. [Jeff Winston] +* On WIDTH warnings, show variable name causing error. [Jeff Winston] -* Verilator 4.020 2019-10-06 -*** Add --public-flat-rw. (#1511) [Stefan Wallentowitz] +Verilator 3.711 2009-06-23 +========================== -*** Support $fseek, $ftell, $frewind. (#1496) [Howard Su] +**Minor:** -*** Support vpiModule. (#1469) [Stefan Wallentowitz] +* Support decimal constants of arbitrary widths. [Mark Marshall] +* Fix error on case statement with all duplicate items. (#99) [Gary Thomas] +* Fix segfault on unrolling for's with bad inits. (#90) [Andreas Olofsson] +* Fix tristates causing "Assigned pin is neither...". [by Lane Brooks] +* Fix compiler errors under Fedora release candidate 11. [Chitlesh Goorah] -**** Make Syms file honor --output-split-cfuncs. (#1499) [Todd Strader] -**** Fix make test with no VERILATOR_ROOT. (#1494) [Ahmed El-Mahmoudy] +Verilator 3.710 2009-05-19 +========================== -**** Fix error on multidimensional cells. (#1505) [Anderson Ignacio Da Silva] +**Major:** -**** Fix config_rev revision detection on old versions. +* Verilator is now licensed under LGPL v3 and/or Artistic v2.0. -**** Fix false warning on backward indexing. (#1507) [Hao Shi] +**Minor:** -**** Fix vpiType accessor. (#1509) (#1510) [Stefan Wallentowitz] +* `__FILE__ now expands to a string, per draft SystemVerilog 2010(ish). +* The front end parser has been re-factored to enable more SV parsing. + Code should parse the same, but minor parsing bugs may pop up. +* Verilator_includer is no longer installed twice. (#48) [Lane Brooks] +* Fix escaped identifiers with '.' causing conflicts. (#83) [J Baxter] +* Fix define formal arguments that contain newlines. (#84) [David A] -**** Fix ugly error on interface misuse. (#1525) [Bogdan Vukobratovic] -**** Fix misc bad-syntax crashes. (#1529) (#1530) (#1531) (#1532) (#1533) [Eric Rippey] +Verilator 3.703 2009-05-02 +========================== -**** Fix case statements with strings. (#1536) [Philipp Wagner] +**Minor:** -**** Fix some coverage lost when multithreaded. (#2151) +* Fix $clog2 calculation error with powers-of-2. (#81) [Patricio Kaplan] +* Fix error with tasks that have output first. (#78) [Andrea Foletto] +* Fix "cloning" error with -y/--top-module. (#76) [Dimitris Nalbantis] +* Fix segfault with error on bad --top-module. (#79) [Dimitris Nalbantis] +* Fix "redefining I" error with complex includes. [Duraid Madina] +* Fix GCC 4.3.2 compile warnings. -* Verilator 4.018 2019-08-29 +Verilator 3.702 2009-03-28 +========================== -** When showing an error, show source code and offer suggestions of replacements. +**Minor:** -** When showing an error, show the instance location. (#1305) [Todd Strader] +* Add --pins-bv option to use sc_bv for all ports. [Brian Small] +* Add SYSTEMPERL_INCLUDE envvar to assist RPM builds. [Chitlesh Goorah] +* Report errors when duplicate labels are used. (#72) [Vasu Kandadi] +* Fix the SC_MODULE name() to not include __PVT__. [Bob Fredieu] -*** Add --rr. (#1481) [Todd Strader] -*** Change MULTITOP to warning to help linting, see manual. +Verilator 3.701 2009-02-26 +========================== -*** Add XSim support to driver.pl. (#1493) [Todd Strader] +**Minor:** -**** Show included-from filenames in warnings. (#1439) [Todd Strader] +* Support repeat and forever statements. [Jeremy Bennett] +* Add --debugi- option, for internal debugging. [Dennis Muhlestein] +* Fix compile issues with GCC 4.3. (#47) [Lane Brooks] +* Fix VL_RANDom to better randomize bits. [Art Stamness] +* Fix error messages to consistently go to stderr. [Jeremy Bennett] +* Fix left associativity for ?: operators. -**** Fix elaboration time errors. (#1429) [Udi Finkelstein] -**** Fix not reporting some duplicate signals/ports. (#1462) [Peter Gerst] +Verilator 3.700 2009-01-08 +========================== -**** Fix not in array context on non-power-of-two slices. (#2027) [Yu Sheng Lin] +**Major:** -**** Fix system compile flags injection. [Gianfranco Costamagna] +* Support limited tristate inouts. Written by Lane Brooks, + under support by Ubixum Inc. This allows common pad ring and + tristate-mux structures to be Verilated. See the documentation for + more information on supported constructs. +* Add --coverage_toggle for toggle coverage analysis. + Running coverage now requires SystemPerl 1.301 or newer. +* Add /*verilator coverage_on/_off */ to bracket coverage regions. -**** Fix enum values not being sized based on parent. (#1442) [Dan Petrisko] +**Minor:** -**** Fix internal error on gate optimization of assign. (#1475) [Oyvind Harboe] +* Support posedge of bit-selected signals. (#45) [Rodney Sinclair] +* Optimize two-level shift and and/or trees, +23% on one test. +* Line coverage now aggregates by hierarchy automatically. + Previously this would be done inside SystemPerl, which was slower. +* Minor performance improvements of Verilator compiler runtime. +* Coverage of each parametarized module is counted separately. [Bob Fredieu] +* Fix creating parameterized modules when no parameter values are changed. +* Fix certain generate-if cells causing "clone" error. [Stephane Laurent] +* Fix line coverage of public functions. [Soon Koh] +* Fix SystemC 2.2 deprecated warnings about sensitive() and sc_start(). +* Fix arrayed variables under function not compiling. (#44) [Ralf Karge] +* Fix --output-split-cfuncs to also split trace code. [Niranjan Prabhu] +* Fix 'bad select range' warning missing some cases. (#43) [Lane Brooks] +* Fix internal signal names containing control characters (broke in 3.680). +* Fix compile error on Ubuntu 8.10. [Christopher Boumenot] +* Fix internal error on "output x; reg x = y;". +* Fix wrong result for read of delayed FSM signal. (#46) [Rodney Sinclair] -**** Add --dpi-hdr-only. (#1491) [Todd Strader] +Verilator 3.681 2008-11-12 +========================== -* Verilator 4.016 2019-06-16 +**Minor:** -*** Add --quiet-exit. (#1436) [Todd Strader] +* Support SystemVerilog unique and priority case. +* Include Verilog file's directory name in coverage reports. +* Fix 'for' under 'generate-for' causing error. (#38) [Rafael Shirakawa] +* Fix coverage hierarchy being backwards with inlining. [Vasu Arasanipalai] +* Fix GCC 4.3 compile error. (#35) [Lane Brooks] +* Fix MSVC compile error. (#42) [John Stroebel] -**** Error continuation lines no longer have %Error prefix. -**** Support logical equivalence operator <->. +Verilator 3.680 2008-10-08 +========================== -**** Support VerilatedFstC set_time_unit. (#1433) [Pieter Kapsenberg] +**Major:** -**** Support deferred assertions. (#1449) [Charles Eddleston] +* Support negative bit indexes. [Stephane Laurent] + Tracing negative indexes requires latest Verilog-Perl and SystemPerl. -**** Mark infrequently called functions with GCC cold attribute. +**Minor:** -**** Fix sign-compare warning in verilated.cpp. (#1437) [Sergey Kvachonok] +* Suppress width warnings between constant strings and wider vectors. + [Rodney Sinclair] +* Ignore SystemVerilog timeunit and timeprecision. +* Expand environment variables in -f input files. [Lawrence Butcher] +* Report error if port declaration is missing. (#32) [Guy-Armand Kamendje] +* Fix genvars causing link error when using --public. [Chris Candler] -**** Fix fault on $realtime with %t. (#1443) [Julien Margetts] -**** Fix $display with string without %s. (#1441) [Denis Rystsov] +Verilator 3.671 2008-09-19 +========================== -**** Fix parameter function string returns. (#1441) [Denis Rystsov] +**Major:** -**** Fix invalid XML output due to special chars. (#1444) [Kanad Kanhere] +* SystemC uint64_t pins are now the default instead of sc_bv<64>. + Use --no-pins64 for backward compatibility. +* Support SystemVerilog "cover property" statements. -**** Fix performance when mulithreaded on 1 CPU. (#1455) [Stefan Wallentowitz] +**Minor:** -**** Fix type and real parameter issues (#1427) (#1456) (#1458) [Todd Strader] +* When warnings are disabled on signals that are flattened out, disable + the warnings on the signal(s) that replace it. +* Add by-design and by-module subtotals to verilator_profcfunc. +* Add IMPERFECTSCH warning, disabled by default. +* Support coverage under SystemPerl 1.285 and newer. +* Support arbitrary characters in identifiers. [Stephane Laurent] +* Fix extra evaluation of pure combo blocks in SystemC output. +* Fix stack overflow on large ? : trees. [John Sanguinetti] -**** Fix build error on MinGW. (#1460) [Richard Myers] -**** Fix not reporting some duplicate signals. (#1462) [Peter Gerst] +Verilator 3.670 2008-07-23 +========================== -**** Fix --savable invalid C++ on packed arrays. (#1465) [Alex Chadwick] +**Major:** -**** Fix constant function return of function var. (#1467) [Roman Popov] +* Add --x-assign=fast option, and make it the default. + This chooses performance over reset debugging. See the manual. +* Add --autoflush, for flushing streams after $display. [Steve Tong] +* Add CASEWITHX lint warning and if disabled fix handling of casez with Xs. +**Minor:** -* Verilator 4.014 2019-05-08 +* Add $feof, $fgetc, $fgets, $fflush, $fscanf, $sscanf. [Holger Waechtler] +* Add $stime. [Holger Waechtler] +* Add $random. +* Add --Wfuture-, for improving forward compatibility. +* Add WIDTH warning to $fopen etc file descriptors. +* Fix verilator_includer not being installed properly. [Holger Waechtler] +* Fix IMPURE errors due to X-assignment temporary variables. [Steve Tong] +* Fix "lvalue" errors with public functions. (#25) [CY Wang] -*** Add --trace-fst-thread. -**** Support '#' comments in $readmem. (#1411) [Frederick Requin] +Verilator 3.665 2008-06-25 +========================== -**** Support "'dx" constants. (#1423) [Udi Finkelstein] +**Minor:** -**** For FST tracing use LZ4 compression. [Tony Bybell] +* Ignore "// verilator" comments alone on endif lines. [Rodney Sinclair] +* "Make install" now installs verilator_includer and verilator_profcfunc. +* Fix tracing missing changes on undriven public wires. [Rodney Sinclair] +* Fix syntax error when "`include `defname" is ifdefed. [John Dickol] +* Fix error when macro call has commas in concatenate. [John Dickol] +* Fix compile errors under Fedora 9, GCC 4.3.0. [by Jeremy Bennett] +* Fix Makefile to find headers/libraries under prefix. [by Holger Waechtler] -**** Add error when use parameters without value. (#1424) [Peter Gerst] -**** Auto-extend and WIDTH warn on unsized X/Zs. (#1423) [Udi Finkelstein] +Verilator 3.664 2008-05-08 +========================== -**** Fix missing VL_SHIFTL_ errors. (#1412) (#1415) [Larry Lee] +**Minor:** -**** Fix MinGW GCC 6 printf formats. (#1413) [Sergey Kvachonok] +* Fix missing file in kit. -**** Fix test problems when missing fst2vcd. (#1417) [Todd Strader] -**** Fix GTKWave register warning. (#1421) [Pieter Kapsenberg] +Verilator 3.663 2008-05-07 +========================== -**** Fix FST enums not displaying. (#1426) [Danilo Ramos] +**Minor:** -**** Fix table compile error with multiinterfaces. (#1431) [Bogdan Vukobratovic] +* Add DESTDIR to Makefiles to assist RPM construction. [Gunter Dannoritzer] +* Fix compiler warnings under GCC 4.2.1. +* Fix preprocessor `else after series of `elsif. [Mark Nodine] +* Fix parameterized defines calling define with comma. [Joshua Wise] +* Fix comma separated list of primitives. [by Bryan Brady] -* Verilator 4.012 2019-03-23 +Verilator 3.662 2008-04-25 +========================== -*** Add +verilator+seed. (#1396) [Stan Sokorac] +**Minor:** -*** Support $fread. [Leendert van Doorn] +* Add Verilog 2005 $clog2() function. + This is useful in calculating bus-widths from parameters. +* Support /**/ comments in -f option files. [Stefan Thiede] +* Add error message when modules have duplicate names. [Stefan Thiede] +* Support defines terminated in EOF, though against spec. [Stefan Thiede] +* Support optional argument to $finish and $stop. [by Stefan Thiede] +* Support ranges on gate primitive instantiations. [Stefan Thiede] +* Ignore old standard(ish) Verilog-XL defines. [by Stefan Thiede] +* Fix "always @ ((a) or (b))" syntax error. [by Niranjan Prabhu] +* Fix "output reg name=expr;" syntax error. [Martin Scharrer] +* Fix multiple .v files being read in random order. [Stefan Thiede] +* Fix internal error when params get non-constants. [Johan Wouters] +* Fix bug introduced in 3.661 with parameterized defines. -*** Support void' cast on functions called as tasks. (#1383) [Al Grant] -*** Add IGNOREDRETURN warning. (#1383) +Verilator 3.661 2008-04-04 +========================== -**** Report PORTSHORT errors on concat constants. (#1400) [Will Korteland] +**Major:** -**** Fix VERILATOR_GDB being ignored. (#2017) [Yu Sheng Lin] +* The --enable-defenv configure option added in 3.660 is now the default. + This hard-codes a default for VERILATOR_ROOT etc in the executables. +* Add --language option for supporting older code. [Stefan Thiede] +* Add --top-module option to select between multiple tops. [Stefan Thiede] -**** Fix $value$plus$args missing verilated_heavy.h. [Yi-Chung Chen] +**Minor:** -**** Fix MSVC compile error. (#1406) [Benjamin Gartner] +* Unsized concatenates now give WIDTHCONCAT warnings. [Jonathan Kimmitt] + Previously they threw fatal errors, which in most cases is correct + according to spec, but can be incorrect in presence of parameter values. +* Support functions with "input integer". [Johan Wouters] +* Ignore delays attached to gate UDPs. [Stefan Thiede] +* Fix SystemVerilog parameterized defines with \`\` expansion, + and fix extra whitespace inserted on substitution. [Vladimir Matveyenko] +* Fix no-module include files on command line. [Stefan Thiede] +* Fix dropping of backslash quoted-quote at end of $display. +* Fix task output pin connected to non-variables. [Jonathan Kimmitt] +* Fix missing test_v in install datadir. [Holger Waechtler] +* Fix internal error after MSB < LSB error reported to user. [Stefan Thiede] -**** Fix maintainer test when no Parallel::Forker. (#1977) [Enzo Chi] -**** Fix +1364-1995ext flags applying too late. (#1384) [Al Grant] +Verilator 3.660 2008-03-23 +========================== +**Minor:** -* Verilator 4.010 2019-01-27 +* Support hard-coding VERILATOR_ROOT etc in the executables, + to enable easier use of Verilator RPMs. [Gunter Dannoritzer] +* Allow multiple .v files on command line. [Stefan Thiede] +* Convert re-defining macro error to warning. [Stefan Thiede] +* Add --error-limit option. [Stefan Thiede] +* Allow __ in cell names by quoting them in C. [Stefan Thiede] +* Fix genvar to be signed, so "< 0" works properly. [Niranjan Prabhu] +* Fix assignments to inputs inside functions/tasks. [Patricio Kaplan] +* Fix definitions in main file.v, referenced in library. [Stefan Thiede] +* Fix undefined assigns to be implicit warnings. [Stefan Thiede] -*** Removed --trace-lxt2, use --trace-fst instead. -**** For --xml, add additional information. (#1372) [Jonathan Kimmitt] +Verilator 3.658 2008-02-25 +========================== -**** Add circular typedef error. (#1388) [Al Grant] +**Minor:** -**** Add unsupported for loops error. (#1986) [Yu Sheng Lin] +* Fix unistd compile error in 3.657. [Patricio Kaplan, Jonathan Kimmitt] -**** Fix FST tracing of wide arrays. (#1376) [Aleksander Osman] -**** Fix error when pattern assignment has too few elements. (#1378) [Viktor Tomov] +Verilator 3.657 2008-02-20 +========================== -**** Fix error when no modules in $unit. (#1381) [Al Grant] +**Minor:** -**** Fix missing too many digits warning. (#1380) [Jonathan Kimmitt] +* Fix assignments of {a,b,c} = {c,b,a}. [Jonathan Kimmitt] +* Fix Perl warning with --lint-only. [by Ding Xiaoliang] +* Fix to avoid creating obj_dir with --lint-only. [Ding Xiaoliang] +* Fix parsing of always @(*). [Patricio Kaplan] -**** Fix uninitialized data in verFiles and unroller. (#1385) (#1386) [Al Grant] -**** Fix internal error on xrefs into unrolled functions. (#1387) [Al Grant] +Verilator 3.656 2008-01-18 +========================== -**** Fix DPI export void compiler error. (#1391) [Stan Sokorac] +**Minor:** +* Wide VL_CONST_W_#X functions are now made automatically. [Bernard Deadman] + In such cases, a new {prefix}__Inlines.h file will be built and included. +* Fix sign error when extracting from signed memory. [Peter Debacker] +* Fix tracing of SystemC w/o SystemPerl. [Bernard Deadman, Johan Wouters] -* Verilator 4.008 2018-12-01 -*** Support "ref" and "const ref" pins and functions. (#1360) [Jake Longo] +Verilator 3.655 2007-11-27 +========================== -*** In --xml-only show the original unmodified names, and add module_files - and cells similar to Verilog-Perl, msg2719. [Kanad Kanhere] +**Minor:** -**** Add CONTASSREG error on continuous assignments to regs. (#1369) [Peter Gerst] +* Support "#delay ;" with associated STMTDLY warning. +* Fix generate for loops with constant zero conditions. [Rodney Sinclair] +* Fix divide-by-zero errors in constant propagator. [Rodney Sinclair] +* Fix wrong result with obscure signed-shift underneath a "? :". +* Fix many internal memory leaks, and added leak detector. -**** Add PROCASSWIRE error on behavioral assignments to wires, msg2737. [Neil Turton] -**** Add IMPORTSTAR warning on import::* inside $unit scope. +Verilator 3.654 2007-10-18 +========================== -**** Fix --trace-lxt2 compile error on MinGW. (#1990) [HyungKi Jeong] +**Minor:** -**** Fix hang on bad pattern keys. (#1364) [Matt Myers] +* Don't exit early if many warnings but no errors are found. [Stan Mayer] +* Fix parsing module #(parameter x,y) declarations. [Oleg Rodionov] +* Fix parsing system functions with empty parens. [Oleg Rodionov] -**** Fix crash due to cygwin bug in getline. (#1349) [Affe Mao] -**** Fix __Slow files getting compiled with OPT_FAST. (#1370) [Thomas Watts] +Verilator 3.653 2007-08-01 +========================== +**Minor:** -* Verilator 4.006 2018-10-27 +* Support SystemVerilog ==? and !=? operators. +* Fix SC_LIBS missing from generated makefiles. [Ding Xiaoliang] -** Add --pp-comments. (#1988) [Robert Henry] -** Add --dump-defines. +Verilator 3.652 2007-06-21 +========================== -*** For --trace-fst, save enum decoding information. (#1358) [Sergi Granell] - (To visualize enumeration data you must use GTKwave 3.3.95 or newer.) +**Minor:** -*** For --trace-fst, instead of *.fst.hier, put data into *.fst. [Tony Bybell] +* Report as many warning types as possible before exiting. +* Support V2K portlists with "input a,b,...". [Mark Nodine] +* Support V2K function/task argument lists. +* Optimize constant $display arguments. +* Fix Preprocessor dropping some `line directives. [Mark Nodine] -**** Fix --trace-lxt2 compile error on MinGW, msg2667. [HyungKi Jeong] -**** Fix Windows .exe not found. (#1361) [Patrick Stewart] +Verilator 3.651 2007-05-22 +========================== +**Major:** -* Verilator 4.004 2018-10-06 +* Add verilator_profcfunc utility. [Gene Weber] -** Add GTKWave FST native tracing. (#1356) [Sergi Granell] - (Verilator developers need to pull the latest vcddiff.) +**Minor:** -*** Support $past. [Dan Gisselquist] +* Treat modules within `celldefine and `endcelldefine as if in library. +* Support functions which return integers. [Mark Nodine] +* Warn if flex is not installed. [Ralf Karge] +* Ignore `protect and `endprotect. +* Fix empty case/endcase blocks. -*** Support restrict. (#1350) [Clifford Wolf] -*** Rename include/lxt2 to include/gtkwave. +Verilator 3.650 2007-04-20 +========================== -**** Fix replication of 64-bit signal change detects. +**Major:** -**** Fix Mac OSX 10.13.6 / LLVM 9.1 compile issues. (#1348) [Kevin Kiningham] +* Add --compiler msvc option. This is now required when Verilated code + is to be run through MSVC++. This also enables fixing MSVC++ error + C1061, blocks nested too deeply. [Ralf Karge] +* Add --lint-only option, to lint without creating other output. -**** Fix MinGW compile issues. (#1979) [HyungKi Jeong] +**Minor:** +* Add /*verilator lint_save*/ and /*verilator lint_restore*/ to allow + friendly control over re-enabling lint messages. [Gerald Williams] +* Support SystemVerilog .name and .* interconnect. +* Support while and do-while loops. +* Use $(LINK) instead of $(CXX) for Makefile link rules. [Gerald Williams] +* Add USER_CPPFLAGS and USER_LDFLAGS to Makefiles. [Gerald Williams] +* Fix compile errors under Windows MINGW compiler. [Gerald Williams] +* Fix dotted bit reference to local memory. [Eugene Weber] +* Fix 3.640 `verilog forcing IEEE 1364-1995 only. [David Hewson] -* Verilator 4.002 2018-09-16 -** This is a major release. Any patches may require major rework to apply. - [Thanks everyone] +Verilator 3.640 2007-03-12 +========================== -** Add multithreaded model generation. +**Minor:** -** Add runtime arguments. +* Support Verilog 2005 `begin_keywords and `end_keywords. +* Updated list of SystemVerilog keywords to correspond to IEEE 1800-2005. +* Add /*verilator public_flat*/. [Eugene Weber] +* Try all +libext's in the exact order given. [Michael Shinkarovsky] +* Fix elimination of public signals assigned to constants. [Eugene Weber] +* Fix internal error when public for loop has empty body. [David Addison] +* Fix "Loops detected" assertion when model exceeds 4GB. [David Hewson] +* Fix display %m names inside named blocks. -** Add GTKWave LXT2 native tracing. (#1333) [Yu Sheng Lin] -** Note $random has new algorithm; results may vary vs. previous versions. +Verilator 3.633 2007-02-07 +========================== -*** Better optimize large always block splitting. (#1244) [John Coiner] +**Minor:** -*** Add new reloop optimization for repetitive assignment compression. +* Add --trace-depth option for minimizing VCD file size. [Emerson Suguimoto] +* With VL_DEBUG, show wires causing convergence errors. [Mike Shinkarovsky] +* Fix isolate_assignments when many signals per always. [Mike Shinkarovsky] +* Fix isolate_assignments across task/func temporaries. [Mike Shinkarovsky] +* Fix $display's with array select followed by wide AND. [David Hewson] -*** Support string.atoi and similar methods. (#1289) [Joel Holdsworth] -**** Fix internals to be C++ null-pointer-check clean. +Verilator 3.632 2007-01-17 +========================== -**** Fix internals to avoid 'using namespace std'. +**Minor:** -**** Fix Verilation performance issues. (#1316) [John Coiner] +* Add /*verilator isolate_assignments*/ attribute. [Mike Shinkarovsky] -**** Fix clocker attributes to not propagate on concats. [John Coiner] -**** Fix first clock edge and --x-initial-edge. (#1327) [Rupert Swarbrick] +Verilator 3.631 2007-01-02 +========================== -**** Fix compile error on tracing of string arrays. (#1338) [Iztok Jeras] +**Major:** -**** Fix number parsing with newline after radix. (#1340) [George Cuan] +* Support standard NAME[#] for cells created by arraying or generate for. + This replaces the non-standard name__# syntax used in earlier versions. -**** Fix string ?: conditional type resolution. (#1345) [Iztok Jeras] +**Minor:** -**** Fix duplicate symbol error on generate tri. (#1347) [Tomas Dzetkulic] +* Fix again dotted references into generate cells. [David Hewson] + Verilator no longer accepts duplicated variables inside unique + generate blocks as this is illegal according to the specification. +* Fix $readmem* with filenames < 8 characters. [Emerson Suguimoto] -* Verilator 3.926 2018-08-22 +Verilator 3.630 2006-12-19 +========================== -**** Add OBJCACHE envvar support to examples and generated Makefiles. +**Major:** -**** Change MODDUP errors to warnings. (#1969) [Marshal Qiao] +* Support $readmemb and $readmemh. [Eugene Weber, Arthur Kahlich] -**** Fix define argument stringification (`"), broke since 3.914. [Joe DErrico] +**Minor:** -**** Fix to ignore Unicode UTF-8 BOM sequences. (#1967) [HyungKi Jeong] +* When dotted signal lookup fails, help the user by showing known scopes. +* Fix to reduce depth of priority encoded case statements. [Eugene Weber] +* Fix configure and compiling under Solaris. [Bob Farrell] +* Fix dotted references inside generated cells. [David Hewson] +* Fix missed split optimization points underneath other re-split blocks. -**** Fix std:: build error. (#1322) -**** Fix function inlining inside certain while loops. (#1330) [Julien Margetts] +Verilator 3.623 2006-12-05 +========================== +**Major:** -* Verilator 3.924 2018-06-12 +* Add --output-split-cfuncs for accelerating GCC compile. [Eugene Weber] -*** Renamed --profile-cfuncs to --prof-cfuncs. +**Minor:** -**** Report interface ports connected to wrong interface. (#1294) [Todd Strader] +* Add M32 make variable to support -m32 compiles. [Eugene Weber] +* Fix $signed mis-extending when input has a WIDTH violation. [Eugene Weber] -**** When tracing, use scalars on single bit arrays to appease vcddiff. -**** Fix parsing "output signed" in V2K port list, msg2540. [James Jung] +Verilator 3.622 2006-10-17 Stable +================================= -**** Fix parsing error on bad missing #. (#1308) [Dan Kirkham] +**Minor:** -**** Fix $clog2 to be in verilog 2005. (#1319) [James Hutchinson] +* Fix --skip-identical without --debug, broken in 3.621. [Andy Meier] -* Verilator 3.922 2018-03-17 +Verilator 3.621 2006-10-11 Beta +=============================== -** Support IEEE 1800-2017 as default language. +**Major:** -*** Support trig functions ($sin() etc). (#1281) [Patrick Stewart] +* Add /*verilator no_inline_task*/ to prevent over-expansion. [Eugene Weber] -*** Support calling system functions as tasks. (#1285) [Joel Holdsworth] +**Minor:** -*** Support assert properties. (#785) (#1290) [John Coiner, et al] +* Public functions now allow > 64 bit arguments. +* Remove .vpp intermediate files when not under --debug. +* Fix link error when using --exe with --trace. [Eugene Weber] +* Fix mis-optimization of wide concats with constants. +* Fix core dump on printing error when not under --debug. [Allan Cochrane] -*** Support $writememh. [John Coiner] -*** Add --no-debug-leak to reduce memory use under debug. [John Coiner] +Verilator 3.620 2006-10-04 Stable +================================= -**** Fix severe runtime performance bug in certain foreach loops. [John Coiner] +**Minor:** -**** On convergence errors, show activity. [John Coiner] +* Support simple inout task ports. [Eugene Weber] +* Allow overriding Perl, Flex and Bison versions. [by Robert Farrell] +* Optimize variables set to constants within basic blocks for ~3%. +* Default make no longer makes the docs; if you edit the documentation. + sources, run "make info" to get them. +* Optimize additional boolean identities (a|a = a, etc.) +* Fix coredump when dotted cross-ref inside task call. [Eugene Weber] +* Fix dotted variables in always sensitivity lists. [Allan Cochrane] -**** Fix GCC 8.0 issues. (#1273) -**** Fix pullup/pulldowns on bit selects. (#1274) [Rob Stoddard] +Verilator 3.610 2006-09-20 Stable +================================= -**** Fix verilator_coverage --annotate-min. (#1284) [Tymoteusz Blazejczyk] +**Minor:** -**** Fix quoting of quoted arguments. [John Coiner] +* Verilator now works under DJGPP (Pentium GCC). [John Stroebel] +* Add default define for VL_PRINTF. [John Stroebel] +* Removed coverage request variable; see Coverage limitations in docs. +* Fix DOS carriage returns in multiline defines. [Ralf Karge] +* Fix printf format warnings on 64-bit linux. -* Verilator 3.920 2018-02-01 +Verilator 3.602 2006-09-11 Stable +================================= -** Moving forward, use the git "stable" branch to track the latest release, - and git "v#.###" tags for specific releases. +**Minor:** -*** Support 'assume' similar to 'assert'. (#1269) [Dan Gisselquist] +* Fix function references under top inlined module. [David Hewson] -**** Fix tracing example file output. (#1268) [Enzo Chi] -**** Fix gate optimization out of memory, add --gate-stmts. (#1260) [Alex Solomatnikov] +Verilator 3.601 2006-09-06 Beta +=============================== -**** Fix compile error on public real parameters by suppressing. (#1261) [Alex Solomatnikov] +**Major:** -**** Fix input-only tristate comparisons. (#1267) [Alexis G] +* Add --inhibit-sim flag for environments using old __Vm_inhibitSim. +* Add `systemc_dtor for destructor extensions. [Allan Cochrane] +* Add -MP to make phony dependencies, ala GCC's. -**** Fix missing edge type in xml output. (#1955) [Alexis G] +**Minor:** -**** Fix compile error with --public and interface bind. (#1264) [Alexis G] +* Changed how internal functions are invoked to reduce aliasing. + Useful when using GCC's -O2 or -fstrict-aliasing, to gain another ~4%. +* Declare optimized lookup tables as 'static', to reduce D-Cache miss rate. +* Fix memory leak when destroying modules. [John Stroebel] +* Fix coredump when unused modules have unused cells. [David Hewson] +* Fix 3.600 internal error with arrayed instances. [David Hewson] +* Fix 3.600 internal error with non-unrolled function loops. [David Hewson] +* Fix $display %m name not matching Verilog name inside SystemC modules. -**** Remove c++filt. (#1265) [Stefan Wallentowitz] +Verilator 3.600 2006-08-28 Beta +=============================== -* Verilator 3.918 2018-01-02 +**Major:** -*** Workaround GCC/clang bug with huge compile times. (#1248) +* Support dotted cross-hierarchy variable and task references. -*** Support DPI open arrays. (#909) (#1245) [David Pierce, Victor Besyakov] +**Minor:** -*** Add INFINITELOOP warning. (#1254) [Alex Solomatnikov] +* Lint for x's in generate case statements. +* Fix line numbers being off by one when first file starts with newline. +* Fix naming of generate for blocks to prevent non-inline name conflict. +* Fix redundant statements remaining after table optimization. -**** Support > 64 bit decimal $display. -**** Support DPI time and svLogicVal. [Victor Besyakov] - Note older version incorrectly assumed svBitVal even for logicals. +Verilator 3.542 2006-08-11 Stable +================================= -**** Support string len() method. [Victor Besyakov] +**Minor:** -**** Add error if always_comb has sensitivity list. [Arjen Roodselaar] +* vl_finish and vl_fatal now print via VL_PRINTF rather then cerr/cout. +* Fix extraneous UNSIGNED warning when comparing genvars. [David Hewson] +* Fix extra white space in $display %c. [by David Addison] +* Fix missing VL_CONST_W_24X macro. [Bernard Deadman] -**** Fix SystemC 2.3.2 compile error. (#1251) [Tymoteusz Blazejczyk] -**** Fix modport outputs being treated as inputs. (#1246) [Jeff Bush] +Verilator 3.541 2006-07-05 Beta +=============================== -**** Fix false ALWCOMBORDER on interface references. (#1247) [Josh Redford] +**Minor:** -**** Fix constant propagation across DPI imports of inout strings. [Victor Besyakov] +* Add warning on changeDetect to arrayed structures. [David Hewson] +* Fix "// verilator lint_on" not re-enabling warnings. [David Hewson] +* Fix 3.540's multiple memory assignments to same block. [David Hewson] +* Fix non-zero start number for arrayed instantiations. [Jae Hossell] +* Fix GCC 4.0 header file warnings. -**** Fix resolving inline nested interface names. (#1250) [Arjen Roodselaar] -**** Fix GCC false warning on array bounds. (#2386) +Verilator 3.540 2006-06-27 Beta +=============================== +**Minor:** -* Verilator 3.916 2017-11-25 +* Optimize combo assignments that are used only once, ~5-25% faster. +* Optimize delayed assignments to memories inside loops, ~0-5% faster. +* Fix mis-width warning on bit selects of memories. [David Hewson] +* Fix mis-width warning on dead generate-if branches. [Jae Hossell] -*** Support self-recursive modules. (#659) [Sean Moore, et al] -*** Support $error/$warning in elaboration time blocks. +Verilator 3.533 2006-06-05 Stable +================================= -*** Support $size/$bits/etc on type references. +**Minor:** -*** Add error when driving input-only modport. (#1110) [Trevor Elbourne] +* Add PDF user manual, verilator.pdf. +* Fix delayed bit-selected arrayed assignments. [David Hewson] +* Fix execution path to Perl. [Shanshan Xu] +* Fix Bison compile errors in verilog.y. [by Ben Jackson] -*** Add BSSPACE and COLONPLUS lint warnings. -**** Detect MSB overflow when under VL_DEBUG. (#1238) [Junyi Xi] +Verilator 3.531 2006-05-10 Stable +================================= -**** Add data types to --xml. [Rui Terra] +**Minor:** -**** Fix partial slicing with pattern assignments. (#991) [Johan Bjork] +* Support $c routines which return 64 bit values. +* Fix `include `DEFINE. +* Fix Verilator core dump when have empty public function. [David.Hewson] -**** Fix false unused warning on interfaces. (#1241) [Laurens van Dam] -**** Fix error on "unique case" with no cases. +Verilator 3.530 2006-04-24 Stable +================================= -**** Fix MacOS portability. (#1232) [Jeff Bush] +**Major:** +* $time is now 64 bits. The macro VL_TIME_I is now VL_TIME_Q, but calls + the same sc_time_stamp() function to get the current time. -* Verilator 3.914 2017-10-14 -** Added new examples/ directory with appropriate examples. This replaces the - old test_c and test_sc directories. +Verilator 3.523 2006-03-06 Stable +================================= -*** Add --getenv option for simplifying Makefiles. +**Minor:** -*** Add --x-initial option for specifying initial value assignment behavior. +* Fix error line numbers being off due to multi-line defines. [Mat Zeno] +* Fix GCC sign extending (uint64_t)(a>>, $signed, $unsigned. [MANY!] +* Support multi-dimensional arrays. [Eugen Fekete] +* Support very limited Property Specification Language + (aka PSL or Sugar). The format and keywords are now very limited, but will + grow with future releases. The --assert switch enables this feature. +* With --assert, generate assertions for synthesis parallel_case and full_case. -**** Update keyword warnings to include C++11 and others. +**Minor:** +* Fix generate if's with empty if/else blocks. [Mat Zeno] +* Fix generate for cell instantiations with same name. [Mat Zeno] -* Verilator 3.908 2017-08-28 -**** Support x in $readmem. (#1180) [Arthur Kahlich] +Verilator 3.481 2005-10-12 Stable +================================= -**** Support packed struct DPI imports. (#1190) [Rob Stoddard] +**Minor:** -**** Fix GCC 6 warnings. +* Add /*verilator tracing_on/off*/ for waveform control. +* Fix split optimization reordering $display statements. -**** Fix compile error on unused VL_VALUEPLUSARGS_IW. (#1181) [Thomas J Whatson] -**** Fix undefined VL_POW_WWI. [Clifford Wolf] +Verilator 3.480 2005-09-27 Beta +=============================== -**** Fix internal error on unconnected inouts. (#1187) [Rob Stoddard] +**Major:** +* Allow coverage of flattened modules, and multiple points per line. + Coverage analysis requires SystemPerl 1.230 or newer. -* Verilator 3.906 2017-06-22 +**Minor:** -*** Support set_time_unit/set_time_precision in C traces. (#1937) +* Add preprocessor changes to support meta-comments. +* Optimize sequential assignments of different bits of same bus; ~5% faster. +* Optimize away duplicate lookup tables. +* Optimize wide concatenates into individual words. [Ralf Karge] +* Optimize local variables from delayed array assignments. -*** Fix extract of packed array with non-zero LSB. (#1172) [James Pallister] -*** Fix shifts by more than 32-bit numbers. (#1174) [Clifford Wolf] +Verilator 3.470 2005-09-06 Stable +================================= -*** Fix power operator on wide constants. (#761) [Clifford Wolf] +**Minor:** -*** Fix .* on interface pins. (#1176) [Maciej Piechotka] +* Optimize staging flops under reset blocks. +* Add '-Werror-...' to upgrade specific warnings to errors. +* Add GCC branch prediction hints on generated if statements. +* Fix bad simulation when same function called twice in same expression. +* Fix preprocessor substitution of quoted parameterized defines. -* Verilator 3.904 2017-05-30 +Verilator 3.464 2005-08-24 Stable +================================= -*** Fix non-cutable ordering loops on clock arrays. (#1009) [Todd Strader] +**Major:** -*** Support ports of array of reals. (#1154) [J Briquet] +* Add `systemc_imp_header, for use when using --output-split. +* Add --stats option to dump design statistics. -*** Support arrayed parameter overrides. (#1153) [John Stevenson] +**Minor:** -*** Support $value$plusargs with variables. (#1165) [Wesley Terpstra] +* Fix core dump with clock inversion optimizations. -**** Support modport access to un-modport objects. (#1161) [Todd Strader] -**** Add stack trace when can't optimize function. (#1158) [Todd Strader] +Verilator 3.463 2005-08-05 Stable +================================= -**** Add warning on mis-sized literal. (#1156) [Todd Strader] +**Minor:** -**** Fix interface functions returning wrong parameters. (#996) [Todd Strader] +* Fix case defaults when not last statement in case list. [Wim Michiels] -**** Fix non-arrayed cells with interface arrays. (#1153) [John Stevenson] -**** Fix --assert with complex case statements. (#1164) [Enzo Chi] +Verilator 3.462 2005-08-03 Stable +================================= +**Minor:** -* Verilator 3.902 2017-04-02 +* Fix reordering of delayed assignments to same memory index. [Wim Michiels] +* Fix compile error with Flex 2.5.1. [Jens Arm] +* Fix multiply-instantiated public tasks generating non-compilable code. -** Add -FI option to force includes. (#1916) [Amir Gonnen] -** Add --relative-includes. [Rob Stoddard] +Verilator 3.461 2005-07-28 Beta +=============================== -*** Add error on duplicate pattern assignments. (#1145) [Johan Bjork] +**Minor:** -**** Fix error on improperly widthed default function. (#984) [Todd Strader] +* Fix compile error with older versions of bison. [Jeff Dutton] -**** Fix 2009 localparam syntax, msg2139. [Galen Seitz] -**** Fix ugly interface-to-non-interface errors. (#1112) [Johan Bjork] +Verilator 3.460 2005-07-27 Beta +=============================== -**** Fix LDFLAGS and CFLAGS not preserving order. (#1130) [Olof Kindgren] +**Major:** -**** Fix internal error on initializing parameter array. (#1131) [Jie Xu] +* Add -output-split option to enable faster parallel GCC compiles. + To support --output-split, the makefiles now split VM_CLASSES + into VM_CLASSES_FAST and VM_CLASSES_SLOW. This may require a + change to local makefiles. +* Support -v argument to read library files. -**** Fix internal error on interface arrays. (#1135) [John Stevenson] +**Minor:** -**** Fix calling sformatf to display, and elab $displays. (#1139) [Johan Bjork] +* When issuing unoptimizable warning, show an example path. +* Internal tree dumps now indicate edit number that changed the node. +* Fix false warning when a clock is constant. +* Fix X/Z in decimal numbers. [Wim Michiels] +* Fix genvar statements in non-named generate blocks. +* Fix core dump when missing newline in `define. [David van der bokke] -**** Fix realpath compile issue on MSVC++. (#1141) [Miodrag Milanovic] -**** Fix missing error on interface size mismatch. (#1143) [Johan Bjork] +Verilator 3.450 2005-07-12 +========================== -**** Fix error on parameters with dotted references. (#1146) [Johan Bjork] +**Major:** -**** Fix wreal not handling continuous assign. (#1150) [J Briquet] +* $finish will no longer exit, but set Verilated::gotFinish(). + This enables support for final statements, and for other cleanup code. + If this is undesired, redefine the vl_user_finish routine. Top level + loops should use Verilated::gotFinish() as a exit condition for their + loop, and then call top->final(). To prevent a infinite loop, a double + $finish will still exit; this may be removed in future releases. +* Support SystemVerilog keywords $bits, $countones, $isunknown, + $onehot, $onehot0, always_comb, always_ff, always_latch, finish. -**** Fix nested structure parameter selects. (#1150) [J Briquet] +**Minor:** +* Fix "=== 1'bx" to always be false, instead of random. -* Verilator 3.900 2017-01-15 -** Internal code changes for improved compatibility and performance. +Verilator 3.440 2005-06-28 Stable +================================= -*** Support old-style $display($time). (#467) [John Demme] +**Major:** -**** With --bbox-unsup, suppress desassign and mixed edges. (#1120) [Galen Seitz] +* Add Verilog 2001 generate for/if/case statements. -**** Fix parsing sensitivity with &&. (#934) [Luke Yang] -**** Fix internal error on double-for loop unrolling. (#1044) [Jan Egil Ruud] -**** Fix internal error on unique casez with --assert. (#1117) [Enzo Chi] +Verilator 3.431 2005-06-24 Stable +================================= -**** Fix bad code when tracing array of structs. (#1122) [Andrew Bardsley] +**Minor:** +* Fix selection bugs introduced in 3.430 beta. -* Verilator 3.890 2016-11-25 -*** Honor --output-split on coverage constructors. (#1098) [Johan Bjork] +Verilator 3.430 2005-06-22 Beta +=============================== -**** Fix various issues when making outside of the kit. +**Minor:** -**** Fix flex 2.6.2 bug. (#1103) [Sergey Kvachonok] +* Add Verilog 2001 variable part selects [n+:m] and [n-:m]. [Wim Michiels] -**** Fix error on bad interface name. (#1097) [Todd Strader] -**** Fix error on referencing variable in parent. (#1099) [Ian Thompson] +Verilator 3.422 2005-06-10 Stable +================================= -**** Fix type parameters with low optimization. (#1101) [Stefan Wallentowitz] +**Minor:** +* Add Verilog 2001 power (**) operator. [Danny Ding] +* Fix crash and added error message when assigning to inputs. [Ralf Karge] +* Fix tracing of modules with public functions. -* Verilator 3.888 2016-10-14 -** Support foreach. (#1078) [Xuan Guo] +Verilator 3.421 2005-06-02 Beta +=============================== -*** Add --no-decoration to remove output comments, msg2015. [Frederic Requin] +**Minor:** -*** If VM_PARALLEL_BUILDS=1, use OPT_FAST and OPT_SLOW. [Frederic Requin] - Set VM_DEFAULT_RULES=0 for old behavior. +* Fix error about reserved word on non-public signals. +* Fix missing initialization compile errors in 3.420 beta. [Ralf Karge] -**** Add error on DPI functions > 32 bits. (#1898) [Elliot Mednick] -**** Fix SystemC compiles with VPI. (#1081) [Arthur Kahlich] +Verilator 3.420 2005-06-02 Beta +=============================== -**** Fix error on wide numbers that represent shifts, msg1991. (#1088) [Mandy Xu] +**Minor:** -**** Improve Verilation performance on internal strings. (#1896) [Johan Bjork] +* Performance improvements worth ~20% +* Add -x-assign options; ~5% faster if use -x-assign=0. +* Add error message when multiple defaults in case statement. +* Optimize shifts out of conditionals and if statements. +* Optimize local 'short' wires. +* Fix case defaults when not last statement in case list. [Ralf Karge] +* Fix crash when wire self-assigns x=x. +* Fix gate optimization with top-flattened modules. [Mahesh Kumashikar] -**** Improve Verilation performance on trace duplicates. (#1090) [Johan Bjork] +Verilator 3.411 2005-05-30 Stable +================================= -* Verilator 3.886 2016-07-30 +**Minor:** -**** Fix enum values of 11-16 bits wide using .next/.prev. (#1062) [Brian Flachs] +* Fix compile error in GCC 2.96. [Jeff Dutton] -**** Fix false warnings on non-power-2 enums using .next/.prev. -**** Fix comparison of unpacked arrays. (#1071) [Andrew Bardsley] +Verilator 3.410 2005-05-25 Beta +=============================== -**** Fix compiler warning in GCC 6. [David Horton] +**Major:** +* Allow functions and tasks to be declared public. + They will become public C++ functions, with appropriate C++ types. + This allows users to make public accessor functions/tasks, instead + of having to use public variables and `systemc_header hacks. -* Verilator 3.884 2016-05-18 +**Minor:** -** Support parameter type. (#376) [Alan Hunter, et al] +* Skip producing output files if all inputs are identical + This uses timestamps, similar to make. Disable with --no-skip-identical. +* Improved compile performance with large case statements. +* Fix internal error in V3Table. [Jeff Dutton] +* Fix compile error in GCC 2.96, and with SystemC 1.2. [Jeff Dutton] -** Support command-line -G/+pvalue param overrides. (#1045) [Stefan Wallentowitz] -*** The default l2 scope name is now the same as the top-level module. (#1050) - Use "--l2-name v" for the historical behavior. +Verilator 3.400 2005-04-29 Beta +=============================== -*** Add --l2-name option for controlling "v" naming. +**Major:** -**** Fix --output-split of constructors. (#1035) [Johan Bjork] +* Internal changes to support future clocking features. +* Verilog-Perl and SystemPerl are no longer required for C++ or SystemC + output. If you want tracing or coverage analysis, they are still needed. +* Add --sc to create pure SystemC output not requiring SystemPerl. +* Add --pins64 to create 64 bit SystemC outputs instead of sc_bv<64>. +* The --exe flag is now required to produce executables inside the makefile. + This was previously the case any time .cpp files were passed on the + command line. +* Add -O3 and --inline-mult for performance tuning. [Ralf Karge] + One experiment regained 5% performance, at a cost of 300% in compile time. -**** Fix removal of empty packages, modules and cells. (#1034) [Johan Bjork] +**Minor:** -**** Fix core dump on Arch Linux/GCC 6.1.1. (#1058) [Jannis Harder] +* Improved performance of large case/always statements with low fanin + by converting to internal lookup tables (ROMs). +* Initialize SystemC port names. [S Shuba] +* Add Doxygen comments to Verilated includes. +* Fix -cc pins 8 bits wide and less to be uint8_t instead of uint16_t. +* Fix crash when Mdir has same name as .v file. [Gernot Koch] +* Fix crash with size mismatches on case items. [Gernot Koch] -**** Fix $value$plusargs to string. (#1880) [Frederic Requin] +Verilator 3.340 2005-02-18 Stable +================================= -* Verilator 3.882 2016-03-01 +**Minor:** -**** Internal Verilation-time performance enhancements. (#1021) [Johan Bjork] +* Report misconnected pins across all modules, instead of just first error. +* Improved large netlist compile times. +* Fix over-active inlining, resulting in compile slowness. -**** Support inlining interfaces. (#1018) [Johan Bjork] -**** Support SV strings to readmemh. (#1040) [Stefan Wallentowitz] +Verilator 3.332 2005-01-27 +========================== -**** Fix unrolling complicated for-loop bounds. (#677) [Johan Bjork] +**Major:** -**** Fix stats file containing multiple unroll entries. (#1020) [Johan Bjork] +* Add -E preprocess only flag, similar to GCC. +* Add CMPCONSTLR when comparison is constant due to > or < with all ones. -**** Fix using short parameter names on negative params. (#1022) [Duraid Madina] +**Minor:** -**** Fix read-after-free error. (#1031) [Johan Bjork] +* Fix loss of first -f file argument, introduced in 3.331. -**** Fix elaboration-time display warnings. (#1032) [Johan Bjork] -**** Fix crash on very deep function trees. (#1028) [Jonathan Kimmitt] +Verilator 3.331 2005-01-18 +========================== -**** Fix slicing mix of big and little-endian. (#1033) [Geoff Barrett] +**Major:** -**** Fix pattern assignment width propagation. (#1037) [Johan Bjork] +* The Verilog::Perl preprocessor is now C++ code inside of Verilator. + This improves performance, makes compilation easier, and enables + some future features. +**Minor:** -* Verilator 3.880 2015-12-19 +* Support arrays of instantiations (non-primitives only). [Wim Michiels] +* Fix unlinked error with defparam. [Shawn Wang] -*** Support display %u, %v, %p, %z. (#989) [Johan Bjork] -**** Fix real parameters causing bad module names. (#992) [Johan Bjork] +Verilator 3.320 2004-12-10 +========================== -**** Fix size-changing cast on packed struct. (#993) [Johan Bjork] +**Major:** -**** Fix function calls on arrayed interface. (#994) [Johan Bjork] +* NEWS is now renamed Changes, to support CPAN indexing. +* If Verilator is passed a C file, create a makefile link rule. + This saves several user steps when compiling small projects. -**** Fix arrayed interfaces. (#879) (#1001) [Todd Strader] +**Minor:** -**** Fix constant function assigned to packed structs. (#997) [Johan Bjork] +* Add new COMBDLY warning in place of fatal error. [Shawn Wang] +* Fix mis-simulation with wide-arrays under bit selects. [Ralf Karge] +* Add NC Verilog as alternative to VCS for reference tests. +* Support implicit wire declarations on input-only signals. + (Dangerous, as leads to wires without drivers, but allowed by spec.) +* Fix compile warnings on Suse 9.1 -**** Fix interface inside generate. (#998) [Johan Bjork] -**** Fix $signed casts under generates. (#999) [Clifford Wolf] +Verilator 3.311 2004-11-29 +========================== -**** Fix genvar constant propagation. (#1003) [Johan Bjork] +**Major:** -**** Fix parameter constant propagation from package. (#1004) [Johan Bjork] +* Support implicit wire declarations (as a warning). [Shawn Wang] -**** Fix array slicing of non-const indexes. (#1006) [Johan Bjork] +**Minor:** -**** Fix dotted generated array error. (#1005) [Jeff Bush, Johan Bjork] +* Fix over-shift difference in Verilog vs C++. [Ralf Karge] -**** Fix error instead of warning on large concat. (#1865) [Paul Rolfe] -**** Fix $bitstoreal constant propagation. (#1012) [Jonathan Kimmitt] +Verilator 3.310 2004-11-15 +========================== -**** Fix model restore crash. (#1013) [Jason McMullan] +**Major:** -**** Fix arrayed instances to unpacked of same size. (#1015) [Varun Koyyalagunta] +* Support defparam. +* Support gate primitives: buf, not, and, nand, or, nor, xor, xnor. -**** Fix slices of unpacked arrays with non-zero LSBs. +**Minor:** -**** Fix ternary operation with unpacked array. (#1017) [Varun Koyyalagunta]. +* Ignore all specify blocks. -* Verilator 3.878 2015-11-01 +Verilator 3.302 2004-11-12 +========================== -** Add --vpi flag, and fix VPI linkage. (#969) [Arthur Kahlich] +**Minor:** -** Support genvar indexes into arrayed cells. (#517) [Todd Strader] +* Support NAND and NOR operators. +* Better warnings when port widths don't match. +* Fix internal error due to some port width mismatches. [Ralf Karge] +* Fix WIDTH warnings on modules that are only used + parameterized, not in 'default' state. +* Fix selection of SystemC library on cygwin systems. [Shawn Wang] +* Fix runtime bit-selection of parameter constants. -** Support $sformatf. (#977) [Johan Bjork] -*** Support elaboration assertions. (#973) [Johan Bjork] +Verilator 3.301 2004-11-04 +========================== -*** Support $display with non-format arguments. (#467) [Jamey Hicks] +**Minor:** -**** Add VerilatedScopeNameMap for introspection. (#966) [Todd Strader] +* Fix 64 bit [31:0] = {#{}} mis-simulation. [Ralf Karge] +* Fix shifts greater then word width mis-simulation. [Ralf Karge] +* Fix to work around GCC 2.96 negation bug. -**** Ignore %l in $display. (#983) [Todd Strader] -**** Fix very long module names. (#937) [Todd Strader] +Verilator 3.300 2004-10-21 +========================== -**** Fix internal error on dotted refs into generates. (#958) [Jie Xu] +**Major:** -**** Fix structure parameter constant propagation. (#968) [Todd Strader] +* New backend that eliminates most VL_ macros. + Improves performance 20%-50%, depending on frequency of use of signals + over 64 bits. GCC compile times with -O2 shrink by a factor of 10. -**** Fix enum constant propagation. (#970) [Todd Strader] +**Minor:** -**** Fix mis-optimizing public DPI functions. (#963) [Wei Song] +* Fix "setting unsigned int from signed value" warning. -**** Fix package:scope.scope variable references. -**** Fix $fwrite to constant stderr/stdout. (#961) [Wei Song] +Verilator 3.271 2004-10-21 +========================== -**** Fix struct.enum.name method calls. (#855) [Jonathon Donaldson] +**Minor:** -**** Fix dot indexing into arrayed inferfaces. (#978) [Johan Bjork] +* Fix "loops detected" error with some negedge clocks. +* Fix some output code spacing issues. -**** Fix crash in commandArgsPlusMatch. (#987) [Jamie Iles] -**** Fix error message on missing interface. (#985) [Todd Strader] +Verilator 3.270 2004-10-15 +========================== +**Minor:** -* Verilator 3.876 2015-08-12 +* Support Verilog 2001 parameters in module headers. [Ralf Karge] +* Faster code to support compilers not inlining all Verilated functions. +* Fix numeric fault when dividing by zero. -*** Add tracing_on, etc to vlt files. (#932) [Frederic Requin] -**** Support extraction of enum bits. (#951) [Jonathon Donaldson] -**** Fix MinGW compiler error. (#927) (#929) [Hans Tichelaar] +Verilator 3.260 2004-10-07 +========================== -**** Fix .c files to be treated as .cpp. (#930) [Jonathon Donaldson] +**Major:** -**** Fix string-to-int space conversion. (#931) [Fabrizio Ferrandi] +* Support Verilog 2001 named parameter instantiation. [Ralf Karge] -**** Fix dpi imports inside generates. [Michael Tresidder] +**Minor:** -**** Fix rounding in trace $timescale. (#946) [Frederic Requin] +* Return 1's when one bit wide extract indexes outside array bounds. +* Fix compile warnings on 64-bit operating systems. +* Fix incorrect dependency in .d file when setting VERILATOR_BIN. -**** Fix $fopen with SV string. (#947) [Sven Stucki] -**** Fix hashed error with typedef inside block. (#948) [Sven Stucki] +Verilator 3.251 2004-09-09 +========================== -**** Fix makefile with --coverage. (#953) [Eivind Liland] +**Minor:** -**** Fix coverage documentation. (#954) [Thomas J Whatson] +* Fix parenthesis overflow in Microsoft Visual C++ [Renga Sundararajan] -**** Fix parameters with function parameter arguments. (#952) [Jie Xu] -**** Fix size casts as second argument of cast item. (#950) [Jonathon Donaldson] +Verilator 3.250 2004-08-30 +========================== +**Major:** -* Verilator 3.874 2015-06-06 +* Support Microsoft Visual C++ [Renga Sundararajan] -*** Add pkg-config .pc file. (#919) [Stefan Wallentowitz] +**Minor:** -**** Fix installing missing manpages. (#908) [Ahmed El-Mahmoudy] +* SystemPerl 1.161+ is required. -**** Fix sign extension in large localparams. (#910) [Mike Thyer] -**** Fix core dump in sync-async warnings. (#911) [Sebastian Dressler] +Verilator 3.241 2004-08-17 +========================== -**** Fix truncation warning with -pins-bv. (#912) [Alfonso Martinez] +**Minor:** -**** Fix Cygwin uint32 compile. (#914) [Matthew Barr] +* Support ,'s to separate multiple assignments. [Paul Nitza] +* Fix shift sign extension problem using non-GCC compilers. -**** Fix preprocessing stringified newline escapes. (#915) [Anton Rapp] -**** Fix part-select in constant function. (#916) [Andrew Bardsley] +Verilator 3.240 2004-08-13 +========================== -**** Fix width extension on mis-width ports. (#918) [Patrick Maupin] +**Major:** -**** Fix width propagation on sized casts. (#925) [Jonathon Donaldson] +* Verilator now uses 64 bit math where appropriate. + Inputs and outputs of 33-64 bits wide to the C++ Verilated model must + now be uint64_t's; SystemC has not changed, they will remain sc_bv's. + This increases performance by ~ 9% on x86 machines, varying with how + frequently 33-64 bit signals occur. Signals 9-16 bits wide are now + stored as 16 bit shorts instead of longs, this aids cache packing. -**** Fix MSVC++ compiler error. (#927) [Hans Tichelaar] +**Minor:** +* Fix SystemC compile error with feedthrus. [Paul Nitza] +* Fix concat value error introduced in 3.230. -* Verilator 3.872 2015-04-05 -*** Add VerilatedVcdFile to allow real-time waveforms. (#890) [HyungKi Jeong] +Verilator 3.230 2004-08-10 +========================== -*** Add --clk and related optimizations. (#1840) [Jie Xu] +**Minor:** -*** Fix order of C style arrays. [Duraid Madina] +* Add coverage output to test_sp example, SystemPerl 1.160+ is required. +* Fix time 0 value of signals. [Hans Van Antwerpen] + Earlier versions would not evaluate some combinatorial signals + until posedge/negedge blocks had been activated. +* Fix wide constant inputs to public submodules [Hans Van Antwerpen] +* Fix wide signal width extension bug. + Only applies when width mismatch warnings were overridden. -**** Add --dump-treei-. (#894) [Jie Xu] -**** Fix comma-instantiations with parameters. (#884) [Franck Jullien] +Verilator 3.220 2004-06-22 +========================== -**** Fix SystemC arrayed bit vectors. (#886) [David Poole] +**Major:** -**** Fix compile error on MinGW. (#887) [HyungKi Jeong] +* Many waveform tracing changes: +* Tracing is now supported on C++ standalone simulations. [John Brownlee] +**Minor:** -* Verilator 3.870 2015-02-12 +* When tracing, SystemPerl 1.150 or newer is required. +* When tracing, Verilator must be called with the --trace switch. +* Add SystemPerl example to documentation. [John Brownlee] +* Various Cygwin compilation fixes. [John Brownlee] -**** Suppress COMBDLY when inside always_latch. (#864) [Iztok Jeras] -**** Support cast operator with expression size. (#865) [Iztok Jeras] +Verilator 3.210 2004-04-01 +========================== -**** Add warning on slice selection out of bounds. (#875) [Cong Van Nguyen]. +**Major:** -**** Fix member select error broke in 3.868. (#867) [Iztok Jeras] +* Compiler optimization switches have changed + See the BENCHMARKING section of the documentation. +* With Verilog-Perl 2.3 or newer, Verilator supports SystemVerilog + preprocessor extensions. -**** Fix $sccanf from string. (#866) [David Pierce] +**Minor:** -**** Fix VM_PARALLEL_BUILDS broke in 3.868. (#870) [Hiroki Honda] +* Add localparam. [Thomas Hawkins] +* Add warnings for SystemVerilog reserved words. -**** Fix non-ANSI modport instantiations. (#868) [Kevin Thompson] -**** Fix UNOPTFLAT change detect on multidim arrays. (#872) [Andrew Bardsley] +Verilator 3.203 2004-03-10 +========================== -**** Fix slice connections of arrays to ports. (#880) [Varun Koyyalagunta] +**Minor:** -**** Fix mis-optimizing gate assignments in unopt blocks. (#881) [Mike Thyer] +* Notes and repairs for Solaris. [Fred Ma] -**** Fix sign extension of pattern members. (#882) [Iztok Jeras] -**** Fix clang compile warnings. +Verilator 3.202 2004-01-27 +========================== +**Major:** -* Verilator 3.868 2014-12-20 +* The beta version is now the primary release. See below for many changes. + If you have many problems, you may wish to try release 3.125. +* Verilated::traceEverOn(true) must be called at time 0 if you will ever + turn on tracing (waveform dumping) of signals. Future versions will + need this switch to disable trace incompatible optimizations. -** New verilator_coverage program added to replace SystemPerl's vcoverage. +**Minor:** -** PSL support was removed, please use System Verilog assertions. +* Optimize common replication operations. +* Fix several tracing bugs -** SystemPerl mode is deprecated and now untested. -*** Support enum.first/name and similar methods. (#460) (#848) +Verilator 3.201-beta 2003-12-10 +========================== -*** Add 'string' printing and comparisons. (#746) (#747) etc. +**Major:** -*** Inline C functions that are used only once. (#1838) [Jie Xu] +* BETA VERSION, USE 3.124 for stable release! +* Version 3.2XX includes a all new back-end. + This includes automatic inlining, flattening of signals between + hierarchy, and complete ordering of statements. This results in + 60-300% execution speedups, though less pretty C++ output. Even + better results are possible using GCC 3.2.2 (part of Redhat 9.1), as + GCC has fixed some optimization problems which Verilator exposes. -*** Fix tracing SystemC signals with structures. (#858) [Eivind Liland] - Note that SystemC traces will no longer show the signals - in the wrapper, they can be seen one level further down. + If you are using `systemc_ctor, beware pointers to submodules are now + initialized after the constructor is called for a module, to avoid + segfaults, move statements that reference subcells into initial + statements. +* C++ Constructor that creates a verilog module may take a char* name. + This name will be used to prefix any $display %m arguments, so users may + distinguish between multiple Verilated modules in a single executable. -**** Add --stats-vars. (#851) [Jeremy Bennett] -**** Fix bare generates in interfaces. (#789) [Bob Newgard] +Verilator 3.125 2004-01-27 +========================== -**** Fix underscores in real literals. (#863) [Jonathon Donaldson] +**Minor:** +* Optimize bit replications -* Verilator 3.866 2014-11-15 -*** Fix +define+A+B to define A and B to match other simulators. (#847) [Adam Krolnik] +Verilator 3.124 2003-12-05 +========================== -*** Add optimization of wires from arrayed cells. (#1831) [Jie Xu] +**Major:** -*** Add optimization of operators between concats. (#1831) [Jie Xu] +* A optimized executable will be made by default, in addition to a debug + executable. Invoking Verilator with --debug will pick the debug version. -*** Add public enums. (#833) [Jonathon Donaldson] +**Minor:** -*** Trace_off now operates on cells. (#826) [Lane Brooks] +* Many minor invisible changes to support the next version. -**** Fix public parameters in unused packages. (#804) [Jonathon Donaldson] -**** Fix select when partially out-of-bound. (#823) [Cliffort Wolf] +Verilator 3.123 2003-11-10 +========================== -**** Fix generate unrolling with function call. (#830) [Steven Slatter] +**Minor:** -**** Fix cast-to-size context-determined sizing. (#828) [Geoff Barrett] +* Wide bus performance enhancements. +* Fix function call bug when width warning suppressed. [Leon Wildman] +* Fix __DOT__ compile problem with funcs in last revision. [Leon Wildman] -**** Fix not tracing modules following primitives. (#837) [Jie Xu] -**** Fix trace overflow on huge arrays. (#834) [Geoff Barrett] +Verilator 3.122 2003-10-29 +========================== -**** Fix quoted comment slashes in defines. (#845) [Adam Krolnik] +**Major:** +* Modules which are accessed from external code now must be marked with + /*verilator public_module*/ unless they already contain public signals. + To enforce this, private cell names now have a string prepended. -* Verilator 3.864 2014-09-21 +**Minor:** -*** Support power operator with real. (#809) [Jonathon Donaldson] +* Fix replicated function calls in one statement. [Robert A. Clark] +* Fix function call bug when width warning suppressed. [Leon Wildman] -**** Improve verilator_profcfunc time attributions. [Jonathon Donaldson] -**** Fix duplicate anonymous structures in $root. (#788) [Bob Newgard] +Verilator 3.121 2003-09-29 +========================== -**** Fix mis-optimization of bit-swap in wide signal. (#800) [Jie Xu] +**Minor:** -**** Fix error when tracing public parameters. (#722) [Jonathon Donaldson] +* Support multiplication over 32 bits. [Chris Boumenot] + Also improved speed of addition and subtraction over 32 bits. +* Detect bit selection out of range errors. +* Detect integer width errors. +* Fix width problems on function arguments. [Robert A. Clark] -**** Fix dpiGetContext in dotted scopes. (#740) [Geoff Barrett] -**** Fix over-shift structure optimization error. (#803) [Jeff Bush] +Verilator 3.120 2003-09-24 +========================== -**** Fix optional parameter keyword in module #(). (#810) [Iztok Jeras] +**Minor:** -**** Fix $warning/$error multi-argument ordering. (#816) [Jonathon Donaldson] +* $finish now exits the model (via vl_finish function). +* Support inputs/outputs in tasks. +* Support V2K "integer int = {INITIAL_VALUE};" +* Ignore floating point delay values. [Robert A. Clark] +* Ignore `celldefine, `endcelldefine, etc. [Robert A. Clark] +* Optimize reduction operators. +* Fix converting "\ooo" into octal values. +* Fix $display("%x"); -**** Fix clang warnings. (#818) [Iztok Jeras] -**** Fix string formats under deep expressions. (#820) [Iztok Jeras] +Verilator 3.112 2003-09-16 +========================== +**Minor:** -* Verilator 3.862 2014-06-10 +* Fix functions in continuous assignments. [Robert A. Clark] +* Fix inlining of modules with 2-level deep outputs. -*** Using command line -Wno-{WARNING} now overrides file-local lint_on. -*** Add -P to suppress `line and blanks with preprocessing. (#781) [Derek Lockhart] +Verilator 3.111 2003-09-15 +========================== -*** Support SV 2012 package import before port list. +**Minor:** -**** Change SYMRSVDWORD to print as warning rather than error. +* Fix declaration of functions before using that module. [Robert A. Clark] +* Fix module inlining bug with outputs. -**** Fix seg-fault with variable of parameterized interface. (#692) [Jie Xu] -**** Fix false name conflict on cells in generate blocks. (#749) [Igor Lesik] +Verilator 3.110 2003-09-12 +========================== -**** Fix pattern assignment to basic types. (#767) [Jie Xu] +**Major:** -**** Fix pattern assignment to conditionals. (#769) [Jie Xu] +* Support Verilog 2001 style input/output declarations. [Robert A. Clark] +* Support local vars in headers of function/tasks. [Leon Wildman] -**** Fix shift corner-cases. (#765) (#766) (#768) (#772) (#774) (#776) [Clifford Wolf] -**** Fix C compiler interpreting signing. (#773) [Clifford Wolf] +Verilator 3.109 2003-08-28 +========================== -**** Fix late constant division by zero giving X error. (#775) [Clifford Wolf] +**Major:** -**** Fix gate primitives with arrays and non-arrayed pins. +* Support local variables in named begin blocks. [Leon Wildman] -**** Fix DETECTARRAY error on packed arrays. (#770) [Jie Xu] -**** Fix ENDLABEL warnings on escaped identifiers. +Verilator 3.108 2003-08-11 +========================== -**** Fix string corruption. (#780) [Derek Lockhart] +**Major:** +* Support functions. -* Verilator 3.860 2014-05-11 +**Minor:** -** PSL is no longer supported, please use System Verilog assertions. +* Signals 8 bits and shorter are now stored as chars + instead of uint32_t's. This improves Dcache packing and + improves performance by ~7%. +* $display now usually results in a single VL_PRINT rather then many. +* Optimize conditionals (?:) -** Support '{} assignment pattern on arrays. (#355) -** Support streaming operators. (#649) [Glen Gibb] +Verilator 3.107 2003-07-15 +========================== -** Fix expression problems with -Wno-WIDTH. (#729) (#736) (#737) (#759) - Where WIDTH warnings were ignored this might result in different - warning messages and results, though it should better match the spec. - [Clifford Wolf] +**Major:** -*** Add --no-trace-params. +* --private and --l2name are now the default, + as this enables additional optimizations. + Use --noprivate or --nol2name to get the older behavior. -*** Add assertions on 'unique if'. (#725) [Jeff Bush] +**Minor:** -*** Add PINCONNECTEMPTY warning. [Holger Waechtler] +* Now support $display of binary and wide format data. +* Add detection of incomplete case statements, + and added related optimizations worth ~4%. +* Work around flex bug in Redhat 8.0. [Eugene Weber] +* Add some additional C++ reserved words. +* Additional constant optimizations, ~5% speed improvement. -*** Support parameter arrays. (#683) [Jeremy Bennett] -*** Fix begin_keywords "1800+VAMS". (#1806) +Verilator 3.106 2003-06-17 +========================== -**** Documentation fixes. (#723) [Glen Gibb] +**Major:** -**** Support {} in always sensitivity lists. (#745) [Igor Lesik] +* $c can now take multiple expressions as arguments. + For example $c("foo","bar(",32+1,");") will insert "foobar(33);" + This makes it easier to pass the values of signals. +* Several changes to support future versions that may have + signal-eliminating optimizations. Users should try to use these switch + on designs, they will become the default in later versions. +* Add --private switch and /*verilator public*/ metacomment. + This renames all signals so that compile errors will result if any + signals referenced by C++ code are missing a /*verilator public*/ + metacomment. +* With --l2name, the second level cell C++ cell is now named "v". + Previously it was named based on the name of the verilog code. This + means to get to signals, scope to "{topcell} ->v ->{mysignal}" instead + of "{topcell} ->{verilogmod}. {mysignal}". This allows different + modules to be substituted for the cell without requiring source + changes. -**** Fix tracing of package variables and real arrays. +**Minor:** -**** Fix tracing of packed arrays without --trace-structs. (#742) [Jie Xu] +* Several cleanups for Redhat 8.0. -**** Fix missing coverage line on else-if. (#727) [Sharad Bagri] -**** Fix modport function import not-found error. +Verilator 3.105 2003-05-08 +========================== -**** Fix power operator calculation. (#730) (#735) [Clifford Wolf] +**Minor:** -**** Fix reporting struct members as reserved words. (#741) [Chris Randall] +* Fix more GCC 3.2 errors. [David Black] -**** Fix change detection error on unions. (#758) [Jie Xu] -**** Fix -Wno-UNOPTFLAT change detection with 64-bits. (#762) [Clifford Wolf] +Verilator 3.104 2003-04-30 +========================== -**** Fix shift-right optimization. (#763) [Clifford Wolf] +**Major:** -**** Fix Mac OS-X test issues. [Holger Waechtler] +* Indicate direction of ports with VL_IN and VL_OUT. +* Allow $c32, etc, to specify width of the $c statement for VCS. +* Numerous performance improvements, worth about 25% -**** Fix C++-2011 warnings. +**Minor:** +* Fix false "indent underflow" error inside `systemc_ctor sections. +* Fix missing ordering optimizations when outputs also used internally. +* Assign constant cell pins in initial blocks rather then every cycle. +* Promote subcell's combo logic to sequential evaluation when possible. +* Fix GCC 3.2 compile errors. [Narayan Bhagavatula] -* Verilator 3.856 2014-03-11 -*** Support case inside. (#708) [Jan Egil Ruud] +Verilator 3.103 2003-01-28 +========================== -*** Add parameters into trace files. (#706) [Alex Solomatnikov] +**Minor:** -**** Fix parsing "#0 'b0". (#256) +* Fix missing model evaluation when clock generated several levels of + hierarchy across from where it is used as a clock. [Richard Myers] +* Fix sign-extension bug introduced in 3.102. -**** Fix array bound checks on real variables. -**** Fix --skip-identical mis-detecting on OS-X. (#707) +Verilator 3.102 2003-01-24 +========================== -**** Fix missing VL_SHIFTRS_IQI with WIDTH warning. (#714) [Fabrizio Ferrandi] +**Minor:** -**** Fix signed shift right optimization. (#715) [Fabrizio Ferrandi] +* Fix sign-extension of X/Z's ("32'hx") -**** Fix internal error on "input x =" syntax error. (#716) [Lane Brooks] -**** Fix slice extraction from packed array. (#717) [Jan Egil Ruud] +Verilator 3.101 2003-01-13 +========================== -**** Fix inside statement EQWILD error. (#718) [Jan Egil Ruud] +**Minor:** +* Fix 'parameter FOO=#'bXXXX' [Richard Myers] +* Allow spaces inside numbers ("32'h 1234") [Sam Gladstone] -* Verilator 3.855 2014-01-18 -*** Support modport import. (#696) [Jeremy Bennett] +Verilator 3.100 2002-12-23 +========================== -*** Add --trace-structs to show struct names. (#673) [Chris Randall] +**Major:** -**** Fix tracing of packed structs. (#705) [Jie Xu] +* Support for simple tasks w/o vars or I/O. [Richard Myers] -**** Fix --lint-only with MinGW. (#1813) [HyungKi Jeong] +**Minor:** -**** Fix some delayed assignments of typedefed unpacked arrays. +* Ignore DOS carriage returns in Linux files. [Richard Myers] -**** Fix wire declarations with size and not range. (#466) [Alex Solomatnikov] -**** Fix parameter pin vs. normal pin error. (#704) [Alex Solomatnikov] +Verilator 3.012 2002-12-18 +========================== +**Minor:** -* Verilator 3.854 2013-11-26 +* Fix parsing bug with casex statements containing case items + with bit extracts of parameters. [Richard Myers] +* Fix bug which could cause writes of non-power-of-2 sized arrays to + corrupt memory beyond the size of the array. [Dan Lussier] +* Fix bug which did not detect UNOPT problems caused by + submodules. See the description in the verilator man page. [John Deroo] +* Fix compile with threaded Perl. [Ami Keren] -*** Add UNPACKED warning to convert unpacked structs. [Jeremy Bennett] -*** Add --compiler clang to work around compiler bug. (#694) [Stefan Ludwig] +Verilator 3.010 2002-11-03 +========================== -**** Support vpi_get of vpiSuppressVal. (#687) [Varun Koyyalagunta] +**Major:** -**** Support vpi_get_time. (#688) [Varun Koyyalagunta] +* Support SystemC 2.0.1. SystemPerl version 1.130 or newer is required. -**** Fix evaluation of chained parameter functions. (#684) [Ted Campbell] +**Minor:** -**** Fix enum value extension of '1. +* Fix bug with inlined modules under other inlined modules. [Scott Bleiweiss] -**** Fix multiple VPI variable callbacks. (#679) [Rich Porter] -**** Fix vpi_get of vpiSize. (#680) [Rich Porter] +Verilator 3.005 2002-10-21 +========================== -**** Fix vpi_remove_cb inside callback. (#689) [Varun Koyyalagunta] +**Minor:** -**** Fix crash with coverage of structures. (#691) [Eivind Liland] +* Fix X's in case (not casex/z) to constant propagate correctly. +* Fix missing include. [Kurachi] -**** Fix array assignment from const var. (#693) [Jie Xu] +Verilator 3.004 2002-10-10 +========================== -* Verilator 3.853 2013-09-30 +**Minor:** -**** Add --no-order-clock-delay to work around #613. [Charlie Brej] +* Add /* verilator module_inline */ and associated optimizations. +* Allow /* verilator coverage_block_off */ in place of `coverage_block_off. + This prevents problems with Emacs AUTORESET. [Ray Strouble] +* Fix `coverage_block_off also disabling subsequent blocks. +* Fix unrolling of loops with multiple simple statements. +* Fix compile warnings on newer GCC. [Kurachi] +* Additional concatenation optimizations. -* Verilator 3.852 2013-09-29 +Verilator 3.003 2002-09-13 +========================== -*** Support named function and task arguments. [Chris Randall] +**Minor:** -*** Report SELRANGE warning for non-generate if. (#675) [Roland Kruse] +* Now compiles on Windows 2000 with Cygwin. +* Fix bug with pin assignments to wide memories. +* Optimize wire assignments to constants. -**** Fix ordering of $fgetc. (#1808) [Frederic Requin] -**** Fix --output-split-cfunc to count internal functions. [Chris Randall] +Verilator 3.002 2002-08-19 +========================== -**** Fix crash on 32-bit Ubuntu. (#670) [Mark Jackson Pulver] +**Major:** +* First public release of version 3. -* Verilator 3.851 2013-08-15 -*** Fix ordering of clock enables with delayed assigns. (#613) [Jeremy Bennett] +Verilator 3.000 2002-08-03 +========================== -*** Fix vpi_iterate on memory words. (#655) [Rich Porter] +**Major:** -**** Fix final duplicate declarations when non-inlined. (#661) [Charlie Brej] +* All new code base. Many changes too numerous to mention. -**** Fix interface ports with comma lists. (#1779) [Ed Lander] +**Minor:** -**** Fix parameter real conversion from integer. +* Approximately 4 times faster then Verilator 2. +* Support initial statements +* Support correct blocking/nonblocking assignments +* Support `defines across multiple modules +* Optimize call ordering, constant propagation, and dead code elimination. -**** Fix clang warnings. (#668) [Yutetsu Takatsukasa] +Verilator 2.1.8 2002-04-03 +========================== -* Verilator 3.850 2013-06-02 +**Major:** -** Support interfaces and modports. (#102) [Byron Bradley, Jeremy Bennett] +* All applications must now link against include/verilated.cpp -*** Duplicate clock gate optimization on by default. (#621) +**Minor:** -**** Fix arrayed input compile error. (#645) [Krzysztof Jankowski] +* Paths specified to verilator_make should be absolute, or be formed + to allow for execution in the object directory (prepend ../ to each path.) + This allows relative filenames for makes which hash and cache dependencies. +* Add warning when parameter constants are too large. [John Deroo] +* Add warning when x/?'s used in non-casez statements. +* Add warning when blocking assignments used in posedge blocks. [Dan Lussier] +* Split evaluation function into clocked and non-clocked, 20% perf gain. -**** Fix GCC version runtime changes. (#651) [Jeremy Bennett] -**** Fix packed array select internal error. (#652) [Krzysztof Jankowski] +Verilator 2.1.5 2001-12-01 +========================== +**Major:** -* Verilator 3.847 2013-05-11 +* Add coverage analysis. In conjunction with SystemC provide line + coverage reports, without SystemC, provide a hook to user written + accumulation function. See --coverage option of verilator_make. -*** Add ALWCOMBORDER warning. [KC Buckenmaier] +**Minor:** -*** Add --pins-sc-uint and --pins-sc-biguint. (#638) [Alex Hornung] +* Relaxed multiply range checking +* Support for constants up to 128 bits +* Randomize values used when assigning to X's. +* Add -guard option of internal testing. +* Changed indentation in emitted code to be automatically generated. +* Fix corruption of assignments of signal over 32 bits with non-0 lsb. -**** Support "signal[vec]++". -**** Fix simulation error when inputs and MULTIDRIVEN. (#634) [Ted Campbell] +Verilator 2.1.4 2001-11-16 +========================== -**** Fix module resolution with __. (#631) [Jason McMullan] +**Major:** -**** Fix packed array non-zero right index select crash. (#642) [Krzysztof Jankowski] +* Add $c("c_commands();"); for embedding arbitrary C code in Verilog. -**** Fix nested union crash. (#643) [Krzysztof Jankowski] +Verilator 2.1.3 2001-11-03 +========================== -* Verilator 3.846 2013-03-09 +**Major:** -** IEEE 1800-2012 is now the default language. This adds 4 new keywords - and updates the svdpi.h and vpi_user.h header files. +* Support for parameters. -*** Add --report-unoptflat. (#611) [Jeremy Bennett] -*** Add duplicate clock gate optimization. (#1772) [Varun Koyyalagunta] - Disabled unless -OD or -O3 used, please try it as may get some - significant speedups. +Verilator 2.1.2 2001-10-25 +========================== -*** Fix wrong dot resolution under inlining. [Art Stamness] +**Major:** -**** Support pattern assignment features. (#616) (#617) (#618) [Ed Lander] +* Verilog Errors now reference the .v file rather then the .vpp file. -**** Support bind in $unit. (#602) [Ed Lander] +**Minor:** -**** Support '() sized casts. (#628) [Ed Lander] +* Support strings in assignments: reg [31:0] foo = "STRG"; +* Support %m in format strings. Ripped out old $info support, use + Verilog-Perl's vpm program instead. +* Convert $stop to call of v_stop() which user can define. +* Fix bug where a==b==c would have wrong precedence rule. +* Fix bug where XNOR on odd-bit-widths (~^ or ^~) had bad value. -**** Fix DETECTARRAY on packed structures. (#610) [Jeremy Bennett] -**** Fix LITENDIAN on unpacked structures. (#614) [Wai Sum Mong] +Verilator 2.1.1 2001-05-17 +========================== -**** Fix 32-bit OS VPI scan issue. (#615) [Jeremy Bennett, Rich Porter] +**Major:** -**** Fix opening a VerilatedVcdC file multiple times. (#1774) [Frederic Requin] +* New test_sp directory for System-Perl (SystemC) top level instantiation + of the Verilated code, lower modules are still C++ code. (Experimental). +* New test_spp directory for Pure System-Perl (SystemC) where every module + is true SystemC code. (Experimental) -**** Fix UNOPTFLAT circular array bounds crossing. (#630) [Jie Xu] +**Minor:** +* Input ports are now loaded by pointer reference into the sub-cell. + This is faster on I-386 machines, as the stack must be used when there are + a large number of parameters. Also, this simplifies debugging as the value + of input ports exists for tracing. +* Many code cleanups towards standard C++ style conventions. -* Verilator 3.845 2013-02-04 -*** Fix nested packed arrays and struct. (#600) [Jeremy Bennett] - Packed arrays are now represented as a single linear vector in - Verilated models. This may affect packed arrays that are public or - accessed via the VPI. +Verilator 2.1.0 2001-05-08 +========================== -*** Support wires with data types. (#608) [Ed Lander] +**Minor:** -*** Support bind, to module names only. (#602) [Ed Lander] +* Many code cleanups towards standard C++ style conventions. -*** Support VPI product info, warning calls, etc. (#588) [Rick Porter] -*** Support $left, $right and related functions. (#448) [Iztok Jeras] +Version history lost +==================== -*** Support inside expressions. -*** Define SYSTEMVERILOG, SV_COV_START and other IEEE mandated predefines. +Verilator 1.8 1996-07-08 +======================== -**** Fix pin width mismatch error. (#595) [Alex Solomatnikov] +[Versions 0 to 1.8 were by Paul Wasson] +* Fix single bit in concat from instance output incorrect offset bug. -**** Fix implicit one bit parameter selection. (#603) [Jeremy Bennett] -**** Fix signed/unsigned parameter misconversion. (#606) [Jeremy Bennett] +Verilator 1.7 1996-05-20 +======================== -**** Fix segfault on multidimensional dotted arrays. (#607) [Jie Xu] +* Mask unused bits of DONTCAREs. -**** Fix per-bit array output connection error. (#414) [Jan Egil Ruud] -**** Fix package logic var compile error. +Verilator 1.6 1996-05-13 +======================== -**** Fix enums with X values. +* Add fasttrace script -* Verilator 3.844 2013-01-09 +Verilator 1.5 1996-01-09 +======================== -*** Support "unsigned int" DPI import functions. (#1770) [Alex Lee] +* Pass structure pointer into translated code, so multiple instances can use same functions. +* Fix static value concat on casex items. -*** Fix package resolution of parameters. (#586) [Jeremy Bennett] -**** Fix non-integer vpi_get_value. (#587) [Rich Porter] +Verilator 1.1 1995-03-30 +======================== -**** Fix task inlining under $display and case. (#589) (#598) [Holger Waechtler] +* Bug fixes, added verimake_partial script, performance improvements. -**** Fix package import of non-localparam parameter. (#474) (#591) [Jeremy Bennett] -**** Fix package import of package imports, partial #592. [Jeremy Bennett] +Verilator 1.0c 1994-09-30 +========================= -**** Fix package import preventing local var. (#599) [Jeremy Bennett] +* Initial release of Verilator -**** Fix array extraction of implicit vars. (#601) [Joe Eiler] +Verilator 0.0 1994-07-08 +======================== -* Verilator 3.843 2012-12-01 +* First code written. -*** Add +1364-1995ext and similar language options. (#532) [Jeremy Bennett] +.. ---------------------------------------------------------------------- -**** Fix mis-optimized identical submodule subtract. (#581) [Charlie Brej] - -**** Fix crash on dotted references into dead modules. (#583) [Jeremy Bennett] - -**** Fix compile issues on MSVCC. (#571) (#577) [Amir Gonnen] - -**** Fix --debug overriding preceding --dump-treei. (#580) [Jeremy Bennett] - - -* Verilator 3.842 2012-11-03 - -**** Add -x-initial-edge. (#570) [Jeremy Bennett] - -**** Fix parameter pins interspersed with cells broke in 3.840. [Bernard Deadman] - -**** Fix large shift error on large shift constants. [David Welch] - -**** Fix $display mangling on GCC 4.7 and speed up. (#1765) (#373) (#574) [R Diez] - -**** Fix array of struct references giving false error. (#566) [Julius Baxter] - -**** Fix missing var access functions when no DPI. (#572) [Amir Gonnen] - -**** Fix name collision on unnamed blocks. (#567) [Chandan Egbert] - -**** Fix name collision on task inputs. (#569) [Chandan Egbert] - - -* Verilator 3.841 2012-09-03 - -*** Add --savable to support model save/restore. [Jeremy Bennett] - -*** Support '{} assignment pattern on structures, part of #355. - -**** Fix double-deep parameter cell WIDTHs. (#541) [Hiroki Honda] - -**** Fix imports under multiple instantiated cells. (#542) [Alex Solomatnikov] - -**** Fix defparam in generate broke in 3.840. (#543) [Alex Solomatnikov] - -**** Fix duplicate begin error broke in 3.840. (#548) [Alex Solomatnikov] - -**** Fix triangle symbol resolution error broke in 3.840. (#550) [Ted Campbell] - - -* Verilator 3.840 2012-07-31 Beta - -** Rewrote tristate handling; supports tri0, tri1, tristate bit selects, - concatenates and pullup/pulldowns. (#395) (#56) (#54) (#51) - [Alex Solomatnikov, Lane Brooks, et al] - -** Support packed structures and unions. (#181) - Note this was a major internal change that may lead to some instability. - -*** Support tri0 and tri1. (#462) [Alex Solomatnikov] - -*** Support nmos and pmos. (#488) [Alex Solomatnikov] - -*** Add INITIALDLY warning on initial assignments. (#478) [Alex Solomatnikov] - -*** Add PINMISSING and PINNOCONNECT lint checks. - -*** Add --converge-limit option. - -*** Fix generate operators not short circuiting. (#413) [by Jeremy Bennett] - -*** Fix parameters not supported in constant functions. (#474) [Alex Solomatnikov] - -**** Fix duplicate warnings/errors. (#516) [Alex Solomatnikov] - -**** Fix signed extending biops with WIDTH warning off. (#511) [Junji Hashimoto] - -**** Fix ITOD internal error on real conversions. (#491) [Alex Solomatnikov] - -**** Fix input and real loosing real data type. (#501) [Alex Solomatnikov] - -**** Fix imports causing symbol table error. (#490) [Alex Solomatnikov] - -**** Fix newlines in radix values. (#507) [Walter Lavino] - -**** Fix loop error message to report line. (#513) [Jeremy Bennett] - -**** Fix false UNUSED warning on file system calls. - -**** Fix GCC 4.7.0 compile warnings. (#530) [Jeremy Bennett] - -**** Fix svdpi.h compile error on Apple OS. - -**** Fix compile error under git submodules. (#534) [Aurelien Francillon] - - -* Verilator 3.833 2012-04-15 - -*** Support += and -= in standard for loops. (#463) [Alex Solomatnikov] - -*** Fix processing unused parametrized modules. (#469) (#470) [Alex Solomatnikov] - -**** Add SELRANGE as warning instead of error. (#477) [Alex Solomatnikov] - -**** Add readme.pdf and internal.pdf and doxygen. (#483) [by Jeremy Bennett] - -**** Fix change detections on arrays. (#364) [John Stevenson, Alex Solomatnikov] - -**** Fix signed array warning. (#456) [Alex Solomatnikov] - -**** Fix genvar and begin under generate. (#461) [Alex Solomatnikov] - -**** Fix real constant parameter functions. (#475) [Alex Solomatnikov] - -**** Fix and document --gdb option. (#454) [Jeremy Bennett] - -**** Fix OpenSolaris compile error. [Sanjay Singh] - - -* Verilator 3.832 2012-03-07 - -*** Fix memory delayed assignments from multiple clock domains. [Andrew Ling] - -*** Support arrayed SystemC I/O pins. [Christophe Joly] - -*** Report MULTIDRIVEN on memories set in multiple clock domains. - -*** Report ENDLABEL on mismatching end labels. (#450) [Iztok Jeras] - -**** Fix expansion of back-slashed escaped macros. (#441) [Alberto Del Rio] - -**** Fix inheriting real and signed type across untyped parameters. - -**** Fix core dump with over 100 deep UNOPTFLAT. (#432) [Joe Eiler] - -**** Fix false command not found warning in makefiles. [Ruben Diez] - -**** Fix hang when functions inside begin block. [David Welch] - -**** Fix hang on recursive substitution `defines. (#443) [Alex Solomatnikov] - - -* Verilator 3.831 2012-01-20 - -** Support SystemC 2.3.0 prerelease. This requires setting the new - SYSTEMC_INCLUDE and SYSTEMC_LIBDIR variables in place of now - deprecated SYSTEMC and SYSTEMC_ARCH. [Iztok Jeras] - -**** Suppress VARHIDDEN on dpi import arguments. [Ruben Diez] - -**** Support "generate for (genvar i=0; ...". [David Kravitz] - -**** Fix dpi exports with > 32 bit but < 64 bit args. (#423) [Chandan Egbert] - -**** Fix array of instantiations with sub-range output. (#414) [Jeremy Bennett] - -**** Fix BLKSEQ warnings on variables declared inside always. [Ruben Diez] - - -* Verilator 3.830 2011-11-27 - -** With "--language VAMS" support a touch of Verilog AMS. [Holger Waechtler] - -*** Add sc_bv attribute to force bit vectors. (#402) [by Stefan Wallentowitz] - -**** Search for user -y paths before default current directory. [Ruben Diez] - -**** Support constants in sensitivity lists. (#412) [Jeremy Bennett] - -**** Support $system. [Ruben Diez] - -**** Support $sscanf with %g. [Holger Waechtler] - -**** Indicate 'exiting due to errors' if errors, not warnings. [Ruben Diez] - -**** Fix bad result with if-else-return optimization. (#420) [Alex Solomatnikov] - -**** Fix reporting not found modules if generate-off. (#403) [Jeremy Bennett] - -**** Fix $display with %d following %g. [Holger Waechtler] - - -* Verilator 3.824 2011-10-25 - -*** Fix "always @ (* )". (#403) (#404) [Walter Lavino] - -*** Add ASSIGNIN as suppressable error. [Jeremy Bennett] - -**** Fix 3.823 constructor core dump on Debian. (#401) [Ahmed El-Mahmoudy] - - -* Verilator 3.823 2011-10-20 - -*** Support $ceil, $floor, etc. [Alex Solomatnikov] - -*** Add configure options for cc warnings and extended tests. [Ruben Diez] - -*** Add -Wall reporting ASSIGNDLY on assignment delays. [Ruben Diez] - -*** Fix UNDRIVEN warnings inside DPI import functions. [Ruben Diez] - -*** Fix --help output to go to stderr, not stdout. (#397) [Ruben Diez] - -**** Fix DPI import output of 64 bits. (#398) [Mike Denio] - -**** Fix DPI import false BLKSEQ warnings. [Alex Solomatnikov] - -**** Fix MSVC compile warning with trunc/round. (#394) [Amir Gonnen] - -**** Fix autoconf and Makefile warnings. (#396) [Ruben Diez] - - -* Verilator 3.821 2011-09-14 - -**** Fix PowerPC runtime error. (#288) [Ahmed El-Mahmoudy] - -**** Fix internal error on integer casts. (#374) [Chandan Egbert] - - -* Verilator 3.820 2011-07-28 - -** Support 'real' numbers and related functions. - -*** Support 'const' variables in limited cases; similar to enums. [Alex Solomatnikov] - -*** Support disable for loop escapes. - -*** Support $fopen and I/O with integer instead of `verilator_file_descriptor. - -*** Support coverage in -cc and -sc output modes. [John Li] - Note this requires SystemPerl 1.338 or newer. - -**** Fix vpi_register_cb using bad s_cb_data. (#370) [by Thomas Watts] - -**** Fix $display missing leading zeros in %0d. (#367) [Alex Solomatnikov] - -**** Use 'vluint64_t' for SystemC instead of (same sized) 'uint64' for MSVC++. - - -* Verilator 3.813 2011-06-28 - -*** Support bit vectors > 64 bits wide in DPI import and exports. - -*** Fix out of memory on slice syntax error. (#354) [Alex Solomatnikov] - -**** Fix error on enum references to other packages. (#339) [Alex Solomatnikov] - -**** Fix DPI undeclared svBitVecVal compile error. (#346) [Chandan Egbert] - -**** Fix DPI bit vector compile errors. (#347) (#359) [Chandan Egbert] - -**** Fix CDCRSTLOGIC report showing endpoint flops without resets. - -**** Fix compiler warnings on SPARC. (#288) [Ahmed El-Mahmoudy] - - -* Verilator 3.812 2011-04-06 - -*** Add --trace-max-width and --trace-max-array. (#319) [Alex Solomatnikov] - -*** Add --Wno-fatal to turn off abort on warnings. [by Stefan Wallentowitz] - -**** Support ${...} and $(...) env vars in .vc files. [by Stefan Wallentowitz] - -**** Support $bits(data_type). (#327) [Alex Solomatnikov] - -**** Support loop unrolling on width mismatches. (#333) [Joe Eiler] - -**** Support simple cast operators. (#335) [Alex Solomatnikov] - -**** Accelerate bit-selected inversions. - -**** Add error on circular parameter definitions. (#329) [Alex Solomatnikov] - -**** Fix concatenates and vectored bufif1. (#326) [Iztok Jeras] - - -* Verilator 3.811 2011-02-14 - -**** Report errors on duplicated or empty pins. (#321) [Christian Leber] - -**** Report error on function call output tied to constant. [Bernard Deadman] - -**** Throw UNUSED/UNDRIVEN only once per net in a parametrized module. - -**** Fix internal error on functions called as SV tasks. [Bernard Deadman] - -**** Fix internal error on non-inlined inout pins. [Jeff Winston] - -**** Fix false BLKSEQ on non-unrolled for loop indexes. [Jeff Winston] - -**** Fix block comment not separating identifiers. (#311) [Gene Sullivan] - -**** Fix warnings to point to lowest net usage, not upper level ports. - -**** Fix error on constants connected to outputs. (#323) [Christian Leber] - - -* Verilator 3.810 2011-01-03 - -** Add limited support for VPI access to public signals, see docs. - -*** Add -F option to read relative option files. (#297) [Neil Hamilton] - -*** Support ++,--,+= etc as standalone statements. [Alex Solomatnikov] - -**** When running with VERILATOR_ROOT, optionally find binaries under bin. - -**** Suppress WIDTH warnings when adding/subtracting 1'b1. - -** Add -Wall, -Wwarn-style, -Wno-style to enable code style warnings - that have been added to this release, and disabled by default: - -*** With --Wall, add BLKSEQ warning on blocking assignments in seq blocks. - -*** With --Wall, add DECLFILENAME warning on modules not matching filename. - -*** With --Wall, add DEFPARAM warning on deprecated defparam statements. - -*** With --Wall, add IFDEPTH warning on deep if statements. - -*** With --Wall, add INCABSPATH warning on `include with absolute paths. - -*** With --Wall, add SYNCASYNCNET warning on mixed sync/async reset nets. - -*** With --Wall, add UNDRIVEN warning on undriven nets. - -*** With --Wall, add UNUSED warning on unused nets. - -*** The VARHIDDEN warning is now disabled by default, use -Wall to enable. - - -* Verilator 3.805 2010-11-02 - -**** Add warning when directory contains spaces. (#1705) [Salman Sheikh] - -**** Fix wrong filename on include file errors. (#289) [Brad Parker] - -**** Fix segfault on SystemVerilog "output wire foo=0". (#291) [Joshua Wise] - -**** Fix DPI export name not found. (#1703) [Terry Chen] - - -* Verilator 3.804 2010-09-20 - -*** Support tracing/coverage of underscore signals. (#280) [by Jason McMullan] - -**** Fix preprocessor `` of existing base define. (#283) [Usha Priyadharshini] - -**** Increase define recursions before error. [Paul Liu] - -**** On core dump, print debug suggestions. - - -* Verilator 3.803 2010-07-10 - -*** Fix preprocessor preservation of newlines across macro substitutions. - -**** Fix preprocessor stringification of nested macros. - -**** Fix some constant parameter functions causing crash. (#253) [Nick Bowler] - -**** Fix do {...} while() not requiring final semicolon. - - -* Verilator 3.802 2010-05-01 - -*** Support runtime access to public signal names. - -*** Add /*verilator public_flat_rw*/ for timing-specific public access. - -*** Fix word size to match uint64_t on -m64 systems. (#238) [Joe Eiler] - -**** Improve error handling on slices of arrays. (#226) [by Byron Bradley] - -**** Report errors when extra underscores used in meta-comments. - -**** Fix bit reductions on multi-packed dimensions. (#227) [by Byron Bradley] - -**** Fix removing $fscanf if assigned to unused var. (#248) [Ashutosh Das] - -**** Fix "make install" with configure outside srcdir. [Stefan Wallentowitz] - -**** Fix loop unroller out of memory; change --unroll-stmts. [Ashutosh Das] - -**** Fix trace files with empty modules crashing some viewers. - -**** Fix parsing single files > 2GB. [Jeffrey Short] - -**** Fix installing data files as non-executable. (#168) [by Ahmed El-Mahmoudy] - - -* Verilator 3.801 2010-03-17 - -*** Support "break", "continue", "return". - -*** Support "`default_nettype none|wire". [Dominic Plunkett] - -**** Skip SystemC tests if not installed. [Iztok Jeras] - -**** Fix clock-gates with non-AND complex logic. (#220) [Ashutosh Das] - -**** Fix flushing VCD buffers on $stop. [Ashutosh Das] - -**** Fix Mac OS-X compile issues. (#217) [Joshua Wise, Trevor Williams] - -**** Fix make uninstall. (#216) [Iztok Jeras] - -**** Fix parametrized defines with empty arguments. - - -* Verilator 3.800 2010-02-07 - -Application visible changes: - -** SystemPerl is no longer required for tracing. - Applications must use VerilatedVcdC class in place of SpTraceVcdC. - -** SystemVerilog 1800-2009 is now the default language. - Thus "global" etc are now keywords. See the --language option. - -New features: - -** Support SystemVerilog types "byte", "chandle", "int", "longint", - "shortint", "time", "var" and "void" in variables and functions. - -** Support "program", "package", "import" and $unit. - -** Support typedef and enum. [by Donal Casey] - -** Support direct programming interface (DPI) "import" and "export". - Includes an extension to map user $system PLI calls to the DPI. - -*** Support assignments of multidimensional slices. (#170) [by Byron Bradley] - -*** Support multidimensional inputs/outputs. (#171) [by Byron Bradley] - -*** Support "reg [1:0][1:0][1:0]" and "reg x [3][2]". (#176) [Byron Bradley] - -*** Support declarations in loop initializers. (#172) [by Byron Bradley] - -*** Support $test$plusargs and $value$plusargs, but see the docs! - -*** Support $sformat and $swrite. - -*** Support 1800-2009 define defaults and `undefineall. - -*** Add -CFLAGS, -LDFLAGS, .a, .o, and .so options. - -*** Speed compiles by avoiding including the STL iostream header. - Application programs may need to include it themselves to avoid errors. - -*** Add experimental clock domain crossing checks. - -*** Add experimental --pipe-filter to filter all Verilog input. - -*** Add experimental config files to filter warnings outside of the source. - -*** Add VARHIDDEN warning when signal name hides module name. - -**** Support optional cell parenthesis. (#179) [by Byron Bradley] - -**** Support for loop i++, ++i, i--, --i. (#175) [by Byron Bradley] - -**** Support 1800-2009 /*comments*/ in define values. - -**** Add Makefile VM_GLOBAL_FAST, listing objects needed to link executables. - -**** Add --bbox-unsup option to black-box unsupported UDP tables. - -**** Add -Wno-MODDUP option to allow duplicate modules. - -Bug fixes: - -**** Fix implicit variable issues. (#196) (#201) [Byron Bradley] - -**** Fix 'for' variable typing. (#205) [by Byron Bradley] - -**** Fix tracing with --pins-bv 1. (#195) [Michael S] - -**** Fix MSVC++ 2008 compile issues. (#209) [Amir Gonnen] - -**** Fix MinGW compilation. (#184) (#214) [by Shankar Giri, Amir Gonnen] - -**** Fix Cygwin 1.7.x compiler error with uint32_t. (#204) [Ivan Djordjevic] - -**** Fix `define argument mis-replacing system task of same name. (#191) - -**** Fix Verilator core dump on wide integer divides. (#178) [Byron Bradley] - -**** Fix lint_off/lint_on meta comments on same line as warning. - - -* Verilator 3.720 2009-10-26 - -** Support little endian bit vectors ("reg [0:2] x;"). - -** Support division and modulus of > 64 bit vectors. [Gary Thomas] - -*** Fix writing to out-of-bounds arrays writing element 0. - -**** Fix core dump with SystemVerilog var declarations under unnamed begins. - -**** Fix VCD files showing internal flattened hierarchy, broke in 3.714. - -**** Fix cell port connection to unsized integer causing false width warning. - -**** Fix erroring on strings with backslashed newlines. (#168) [Pete Nixon] - - -* Verilator 3.714 2009-09-18 - -** Add --bbox-sys option to blackbox $system calls. - -** Support generate for var++, var--, ++var, --var. - -*** Improved warning when "do" used as identifier. - -**** Don't require SYSTEMPERL_INCLUDE if SYSTEMPERL/src exists. [Gary Thomas] - -**** Fix deep defines causing flex scanner overflows. [Brad Dobbie] - -**** Fix preprocessing commas in deep parameterized macros. [Brad Dobbie] - -**** Fix tracing escaped dotted identifiers. (#107) - -**** Fix $display with uppercase %M. - -**** Fix --error-limit option being ignored. - - -* Verilator 3.713 2009-08-04 - -** Support constant function calls for parameters. [many!] - -*** Support SystemVerilog "logic". (#101) [by Alex Duller] - -*** Name SYMRSVDWORD error, and allow disabling it. (#103) [Gary Thomas] - -**** Fix escaped preprocessor identifiers. (#106) [Nimrod Gileadi] - - -* Verilator 3.712 2009-07-14 - -** Patching SystemC is no longer required to trace sc_bvs. - -*** Support zero-width constants in concatenations. [Jeff Winston] - -*** Add verilator --pins-uint8 option to use sc_in. - -*** Add verilator -V option, to show verbose version. - -*** On WIDTH warnings, show variable name causing error. [Jeff Winston] - -**** Add BLKLOOPINIT error code, and describe --unroll-count. [Jeff Winston] - - -* Verilator 3.711 2009-06-23 - -**** Support decimal constants of arbitrary widths. [Mark Marshall] - -**** Fix error on case statement with all duplicate items. (#99) [Gary Thomas] - -**** Fix segfault on unrolling for's with bad inits. (#90) [Andreas Olofsson] - -**** Fix tristates causing "Assigned pin is neither...". [by Lane Brooks] - -**** Fix compiler errors under Fedora release candidate 11. [Chitlesh Goorah] - - -* Verilator 3.710 2009-05-19 - -** Verilator is now licensed under LGPL v3 and/or Artistic v2.0. - -*** `__FILE__ now expands to a string, per draft SystemVerilog 2010(ish). - -**** The front end parser has been re-factored to enable more SV parsing. - Code should parse the same, but minor parsing bugs may pop up. - -**** Verilator_includer is no longer installed twice. (#48) [Lane Brooks] - -**** Fix escaped identifiers with '.' causing conflicts. (#83) [J Baxter] - -**** Fix define formal arguments that contain newlines. (#84) [David A] - - -* Verilator 3.703 2009-05-02 - -*** Fix $clog2 calculation error with powers-of-2. (#81) [Patricio Kaplan] - -**** Fix error with tasks that have output first. (#78) [Andrea Foletto] - -**** Fix "cloning" error with -y/--top-module. (#76) [Dimitris Nalbantis] - -**** Fix segfault with error on bad --top-module. (#79) [Dimitris Nalbantis] - -**** Fix "redefining I" error with complex includes. [Duraid Madina] - -**** Fix GCC 4.3.2 compile warnings. - - -* Verilator 3.702 2009-03-28 - -*** Add --pins-bv option to use sc_bv for all ports. [Brian Small] - -*** Add SYSTEMPERL_INCLUDE envvar to assist RPM builds. [Chitlesh Goorah] - -**** Report errors when duplicate labels are used. (#72) [Vasu Kandadi] - -**** Fix the SC_MODULE name() to not include __PVT__. [Bob Fredieu] - - -* Verilator 3.701 2009-02-26 - -** Support repeat and forever statements. [Jeremy Bennett] - -*** Add --debugi- option, for internal debugging. [Dennis Muhlestein] - -**** Fix compile issues with GCC 4.3. (#47) [Lane Brooks] - -**** Fix VL_RANDom to better randomize bits. [Art Stamness] - -**** Fix error messages to consistently go to stderr. [Jeremy Bennett] - -**** Fix left associativity for ?: operators. - - -* Verilator 3.700 2009-01-08 - -** Add limited support for tristate inouts. Written by Lane Brooks, - under support by Ubixum Inc. This allows common pad ring and - tristate-mux structures to be Verilated. See the documentation for - more information on supported constructs. - -** Add --coverage_toggle for toggle coverage analysis. - Running coverage now requires SystemPerl 1.301 or newer. - -*** Add /*verilator coverage_on/_off */ to bracket coverage regions. - -*** Optimize two-level shift and and/or trees, +23% on one test. - -*** Support posedge of bit-selected signals. (#45) [Rodney Sinclair] - -*** Line coverage now aggregates by hierarchy automatically. - Previously this would be done inside SystemPerl, which was slower. - -**** Minor performance improvements of Verilator compiler runtime. - -**** Coverage of each parametarized module is counted separately. [Bob Fredieu] - -**** Fix creating parameterized modules when no parameter values are changed. - -**** Fix certain generate-if cells causing "clone" error. [Stephane Laurent] - -**** Fix line coverage of public functions. [Soon Koh] - -**** Fix SystemC 2.2 deprecated warnings about sensitive() and sc_start(). - -**** Fix arrayed variables under function not compiling. (#44) [Ralf Karge] - -**** Fix --output-split-cfuncs to also split trace code. [Niranjan Prabhu] - -**** Fix 'bad select range' warning missing some cases. (#43) [Lane Brooks] - -**** Fix internal signal names containing control characters (broke in 3.680). - -**** Fix compile error on Ubuntu 8.10. [Christopher Boumenot] - -**** Fix internal error on "output x; reg x = y;". - -**** Fix wrong result for read of delayed FSM signal. (#46) [Rodney Sinclair] - - -* Verilator 3.681 2008-11-12 - -*** Add SystemVerilog unique and priority case. - -**** Include Verilog file's directory name in coverage reports. - -**** Fix 'for' under 'generate-for' causing error. (#38) [Rafael Shirakawa] - -**** Fix coverage hierarchy being backwards with inlining. [Vasu Arasanipalai] - -**** Fix GCC 4.3 compile error. (#35) [Lane Brooks] - -**** Fix MSVC compile error. (#42) [John Stroebel] - - -* Verilator 3.680 2008-10-08 - -** Support negative bit indexes. [Stephane Laurent] - Tracing negative indexes requires latest Verilog-Perl and SystemPerl. - -*** Suppress width warnings between constant strings and wider vectors. - [Rodney Sinclair] - -**** Ignore SystemVerilog timeunit and timeprecision. - -**** Expand environment variables in -f input files. [Lawrence Butcher] - -**** Report error if port declaration is missing. (#32) [Guy-Armand Kamendje] - -**** Fix genvars causing link error when using --public. [Chris Candler] - - -* Verilator 3.671 2008-09-19 - -** 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 - the warnings on the signal(s) that replace it. - -*** Add by-design and by-module subtotals to verilator_profcfunc. - -*** Fix extra evaluation of pure combo blocks in SystemC output. - -**** Add IMPERFECTSCH warning, disabled by default. - -**** Support coverage under SystemPerl 1.285 and newer. - -**** Fix stack overflow on large ? : trees. [John Sanguinetti] - -**** Support arbitrary characters in identifiers. [Stephane Laurent] - - -* Verilator 3.670 2008-07-23 - -** Add --x-assign=fast option, and make it the default. - This chooses performance over reset debugging. See the manual. - -** Add --autoflush, for flushing streams after $display. [Steve Tong] - -** Add CASEWITHX lint warning and if disabled fix handling of casez with Xs. - -*** Add $feof, $fgetc, $fgets, $fflush, $fscanf, $sscanf. [Holger Waechtler] - -*** Add $stime. [Holger Waechtler] - -*** Add $random. - -*** Add --Wfuture-, for improving forward compatibility. - -**** Fix verilator_includer not being installed properly. [Holger Waechtler] - -**** Fix IMPURE errors due to X-assignment temporary variables. [Steve Tong] - -**** Fix "lvalue" errors with public functions. (#25) [CY Wang] - -**** Add WIDTH warning to $fopen etc file descriptors. - -**** Internal changes to how $displays get compiled and executed. - - -* Verilator 3.665 2008-06-25 - -**** Ignore "// verilator" comments alone on endif lines. [Rodney Sinclair] - -**** "Make install" now installs verilator_includer and verilator_profcfunc. - -**** Fix tracing missing changes on undriven public wires. [Rodney Sinclair] - -**** Fix syntax error when "`include `defname" is ifdefed. [John Dickol] - -**** Fix error when macro call has commas in concatenate. [John Dickol] - -**** Fix compile errors under Fedora 9, GCC 4.3.0. [by Jeremy Bennett] - -**** Fix Makefile to find headers/libraries under prefix. [by Holger Waechtler] - - -* Verilator 3.664 2008-05-08 - -**** Fix missing file in kit. - - -* Verilator 3.663 2008-05-07 - -**** Add DESTDIR to Makefiles to assist RPM construction. [Gunter Dannoritzer] - -**** Fix compiler warnings under GCC 4.2.1. - -**** Fix preprocessor `else after series of `elsif. [Mark Nodine] - -**** Fix parametrized defines calling define with comma. [Joshua Wise] - -**** Fix comma separated list of primitives. [by Bryan Brady] - - -* Verilator 3.662 2008-04-25 - -*** Add Verilog 2005 $clog2() function. - This is useful in calculating bus-widths from parameters. - -*** Support /**/ comments in -f option files. [Stefan Thiede] - -**** Add error message when modules have duplicate names. [Stefan Thiede] - -**** Support defines terminated in EOF, though against spec. [Stefan Thiede] - -**** Support optional argument to $finish and $stop. [by Stefan Thiede] - -**** Support ranges on gate primitive instantiations. [Stefan Thiede] - -**** Ignore old standard(ish) Verilog-XL defines. [by Stefan Thiede] - -**** Fix "always @ ((a) or (b))" syntax error. [by Niranjan Prabhu] - -**** Fix "output reg name=expr;" syntax error. [Martin Scharrer] - -**** Fix multiple .v files being read in random order. [Stefan Thiede] - -**** Fix internal error when params get non-constants. [Johan Wouters] - -**** Fix bug introduced in 3.661 with parametrized defines. - - -* Verilator 3.661 2008-04-04 - -*** The --enable-defenv configure option added in 3.660 is now the default. - This hard-codes a default for VERILATOR_ROOT etc in the executables. - -*** Add --language option for supporting older code. [Stefan Thiede] - -*** Add --top-module option to select between multiple tops. [Stefan Thiede] - -*** Unsized concatenates now give WIDTHCONCAT warnings. [Jonathan Kimmitt] - Previously they threw fatal errors, which in most cases is correct - according to spec, but can be incorrect in presence of parameter values. - -**** Support functions with "input integer". [Johan Wouters] - -**** Ignore delays attached to gate UDPs. [Stefan Thiede] - -**** Fix SystemVerilog parameterized defines with `` expansion, - and fix extra whitespace inserted on substitution. [Vladimir Matveyenko] - -**** Fix no-module include files on command line. [Stefan Thiede] - -**** Fix dropping of backslash quoted-quote at end of $display. - -**** Fix task output pin connected to non-variables. [Jonathan Kimmitt] - -**** Fix missing test_v in install datadir. [Holger Waechtler] - -**** Fix internal error after MSB < LSB error reported to user. [Stefan Thiede] - - -* Verilator 3.660 2008-03-23 - -*** Add support for hard-coding VERILATOR_ROOT etc in the executables, - to enable easier use of Verilator RPMs. [Gunter Dannoritzer] - -*** Allow multiple .v files on command line. [Stefan Thiede] - -*** Convert re-defining macro error to warning. [Stefan Thiede] - -*** Add --error-limit option. [Stefan Thiede] - -*** Allow __ in cell names by quoting them in C. [Stefan Thiede] - -**** Fix genvar to be signed, so "< 0" works properly. [Niranjan Prabhu] - -**** Fix assignments to inputs inside functions/tasks. [Patricio Kaplan] - -**** Fix definitions in main file.v, referenced in library. [Stefan Thiede] - -**** Fix undefined assigns to be implicit warnings. [Stefan Thiede] - - -* Verilator 3.658 2008-02-25 - -**** Fix unistd compile error in 3.657. [Patricio Kaplan, Jonathan Kimmitt] - - -* Verilator 3.657 2008-02-20 - -**** Fix assignments of {a,b,c} = {c,b,a}. [Jonathan Kimmitt] - -**** Fix Perl warning with --lint-only. [by Ding Xiaoliang] - -**** Avoid creating obj_dir with --lint-only. [Ding Xiaoliang] - -**** Fix parsing of always @(*). [Patricio Kaplan] - - -* Verilator 3.656 2008-01-18 - -**** Wide VL_CONST_W_#X functions are now made automatically. [Bernard Deadman] - In such cases, a new {prefix}__Inlines.h file will be built and included. - -**** Fixed sign error when extracting from signed memory. [Peter Debacker] - -**** Fixed tracing of SystemC w/o SystemPerl. [Bernard Deadman, Johan Wouters] - - -* Verilator 3.655 2007-11-27 - -*** Support "#delay ;" with associated STMTDLY warning. - -**** Fixed generate for loops with constant zero conditions. [Rodney Sinclair] - -**** Fixed divide-by-zero errors in constant propagator. [Rodney Sinclair] - -**** Fixed wrong result with obscure signed-shift underneath a "? :". - -**** Fixed many internal memory leaks, and added leak detector. - - -* Verilator 3.654 2007-10-18 - -**** Don't exit early if many warnings but no errors are found. [Stan Mayer] - -**** Fixed parsing module #(parameter x,y) declarations. [Oleg Rodionov] - -**** Fixed parsing system functions with empty parens. [Oleg Rodionov] - - -* Verilator 3.653 2007-08-01 - -**** Support SystemVerilog ==? and !=? operators. - -**** Fixed SC_LIBS missing from generated makefiles. [Ding Xiaoliang] - - -* Verilator 3.652 2007-06-21 - -**** Report as many warning types as possible before exiting. - -**** Support V2K portlists with "input a,b,...". [Mark Nodine] - -**** Support V2K function/task argument lists. - -**** Optimize constant $display arguments. - -**** Fixed Preprocessor dropping some `line directives. [Mark Nodine] - - -* Verilator 3.651 2007-05-22 - -*** Added verilator_profcfunc utility. [Gene Weber] - -*** Treat modules within `celldefine and `endcelldefine as if in library. - -*** Support functions which return integers. [Mark Nodine] - -**** Warn if flex is not installed. [Ralf Karge] - -**** Ignore `protect and `endprotect. - -**** Allow empty case/endcase blocks. - - -* Verilator 3.650 2007-04-20 - -** Add --compiler msvc option. This is now required when Verilated code - is to be run through MSVC++. This also enables fixing MSVC++ error - C1061, blocks nested too deeply. [Ralf Karge] - -** Add --lint-only option, to lint without creating other output. - -*** Add /*verilator lint_save*/ and /*verilator lint_restore*/ to allow - friendly control over re-enabling lint messages. [Gerald Williams] - -*** Support SystemVerilog .name and .* interconnect. - -*** Support while and do-while loops. - -*** Use $(LINK) instead of $(CXX) for Makefile link rules. [Gerald Williams] - -*** Add USER_CPPFLAGS and USER_LDFLAGS to Makefiles. [Gerald Williams] - -**** Fixed compile errors under Windows MINGW compiler. [Gerald Williams] - -**** Fixed dotted bit reference to local memory. [Eugene Weber] - -**** Fixed 3.640 `verilog forcing IEEE 1364-1995 only. [David Hewson] - - -* Verilator 3.640 2007-03-12 - -*** Support Verilog 2005 `begin_keywords and `end_keywords. - -*** Updated list of SystemVerilog keywords to correspond to IEEE 1800-2005. - -*** Add /*verilator public_flat*/. [Eugene Weber] - -**** Try all +libext's in the exact order given. [Michael Shinkarovsky] - -**** Fixed elimination of public signals assigned to constants. [Eugene Weber] - -**** Fixed internal error when public for loop has empty body. [David Addison] - -**** Fixed "Loops detected" assertion when model exceeds 4GB. [David Hewson] - -**** Fixed display %m names inside named blocks. - - -* Verilator 3.633 2007-02-07 - -*** Add --trace-depth option for minimizing VCD file size. [Emerson Suguimoto] - -*** With VL_DEBUG, show wires causing convergence errors. [Mike Shinkarovsky] - -**** Fixed isolate_assignments when many signals per always. [Mike Shinkarovsky] - -**** Fixed isolate_assignments across task/func temporaries. [Mike Shinkarovsky] - -**** Fixed $display's with array select followed by wide AND. [David Hewson] - - -* Verilator 3.632 2007-01-17 - -*** Add /*verilator isolate_assignments*/ attribute. [Mike Shinkarovsky] - - -* Verilator 3.631 2007-01-02 - -** Support standard NAME[#] for cells created by arraying or generate for. - This replaces the non-standard name__# syntax used in earlier versions. - -**** Fixed again dotted references into generate cells. [David Hewson] - Verilator no longer accepts duplicated variables inside unique - generate blocks as this is illegal according to the specification. - -**** Fixed $readmem* with filenames < 8 characters. [Emerson Suguimoto] - - -* Verilator 3.630 2006-12-19 - -** Support $readmemb and $readmemh. [Eugene Weber, Arthur Kahlich] - -*** Fixed configure and compiling under Solaris. [Bob Farrell] - -*** When dotted signal lookup fails, help the user by showing known scopes. - -*** Reduce depth of priority encoded case statements. [Eugene Weber] - -**** Fixed dotted references inside generated cells. [David Hewson] - -**** Fixed missed split optimization points underneath other re-split blocks. - - -* Verilator 3.623 2006-12-05 - -*** Add --output-split-cfuncs for accelerating GCC compile. [Eugene Weber] - -**** Fixed $signed mis-extending when input has a WIDTH violation. [Eugene Weber] - -**** Add M32 make variable to support -m32 compiles. [Eugene Weber] - - -* Verilator 3.622 2006-10-17 Stable - -**** Fixed --skip-identical without --debug, broken in 3.621. [Andy Meier] - - -* Verilator 3.621 2006-10-11 Beta - -** Add /*verilator no_inline_task*/ to prevent over-expansion. [Eugene Weber] - -*** Public functions now allow > 64 bit arguments. - -**** Remove .vpp intermediate files when not under --debug. - -**** Fixed link error when using --exe with --trace. [Eugene Weber] - -**** Fixed mis-optimization of wide concats with constants. - -**** Fixed core dump on printing error when not under --debug. [Allan Cochrane] - - -* Verilator 3.620 2006-10-04 Stable - -*** Support simple inout task ports. [Eugene Weber] - -*** Allow overriding Perl, Flex and Bison versions. [by Robert Farrell] - -*** Optimize variables set to constants within basic blocks for ~3%. - -**** Default make no longer makes the docs; if you edit the documentation. - sources, run "make info" to get them. - -**** Optimize additional boolean identities (a|a = a, etc.) - -**** Fixed coredump when dotted cross-ref inside task call. [Eugene Weber] - -**** Fixed dotted variables in always sensitivity lists. [Allan Cochrane] - - -* Verilator 3.610 2006-09-20 Stable - -*** Verilator now works under DJGPP (Pentium GCC). [John Stroebel] - -**** Add default define for VL_PRINTF. [John Stroebel] - -**** Removed coverage request variable; see Coverage limitations in docs. - -**** Fixed DOS carriage returns in multiline defines. [Ralf Karge] - -**** Fixed printf format warnings on 64-bit linux. - - -* Verilator 3.602 2006-09-11 Stable - -**** Fixed function references under top inlined module. [David Hewson] - - -* Verilator 3.601 2006-09-06 Beta - -*** Added --inhibit-sim flag for environments using old __Vm_inhibitSim. - -*** Added `systemc_dtor for destructor extensions. [Allan Cochrane] - -*** Added -MP to make phony dependencies, ala GCC's. - -*** Changed how internal functions are invoked to reduce aliasing. - Useful when using GCC's -O2 or -fstrict-aliasing, to gain another ~4%. - -**** Fixed memory leak when destroying modules. [John Stroebel] - -**** Fixed coredump when unused modules have unused cells. [David Hewson] - -**** Fixed 3.600 internal error with arrayed instances. [David Hewson] - -**** Fixed 3.600 internal error with non-unrolled function loops. [David Hewson] - -**** Fixed $display %m name not matching Verilog name inside SystemC modules. - -**** Declare optimized lookup tables as 'static', to reduce D-Cache miss rate. - - -* Verilator 3.600 2006-08-28 Beta - -** Support dotted cross-hierarchy variable and task references. - -**** Lint for x's in generate case statements. - -**** Fixed line numbers being off by one when first file starts with newline. - -**** Fixed naming of generate for blocks to prevent non-inline name conflict. - -**** Fixed redundant statements remaining after table optimization. - - -* Verilator 3.542 2006-08-11 Stable - -**** Fixed extraneous UNSIGNED warning when comparing genvars. [David Hewson] - -**** Fixed extra white space in $display %c. [by David Addison] - -**** vl_finish and vl_fatal now print via VL_PRINTF rather then cerr/cout. - -**** Add VL_CONST_W_24X macro. [Bernard Deadman] - - -* Verilator 3.541 2006-07-05 Beta - -*** Fixed "// verilator lint_on" not re-enabling warnings. [David Hewson] - -*** Fixed 3.540's multiple memory assignments to same block. [David Hewson] - -**** Add warning on changeDetect to arrayed structures. [David Hewson] - -**** Fixed non-zero start number for arrayed instantiations. [Jae Hossell] - -**** Fixed GCC 4.0 header file warnings. - - -* Verilator 3.540 2006-06-27 Beta - -**** Optimize combo assignments that are used only once, ~5-25% faster. - -**** Optimize delayed assignments to memories inside loops, ~0-5% faster. - -**** Fixed mis-width warning on bit selects of memories. [David Hewson] - -**** Fixed mis-width warning on dead generate-if branches. [Jae Hossell] - - -* Verilator 3.533 2006-06-05 Stable - -*** Add PDF user manual, verilator.pdf. - -**** Fixed delayed bit-selected arrayed assignments. [David Hewson] - -**** Fixed execution path to Perl. [Shanshan Xu] - -**** Fixed Bison compile errors in verilog.y. [by Ben Jackson] - - -* Verilator 3.531 2006-05-10 Stable - -*** Support $c routines which return 64 bit values. - -**** Fixed `include `DEFINE. - -**** Fixed Verilator core dump when have empty public function. [David.Hewson] - - -* Verilator 3.530 2006-04-24 Stable - -** $time is now 64 bits. The macro VL_TIME_I is now VL_TIME_Q, but calls - the same sc_time_stamp() function to get the current time. - - -* Verilator 3.523 2006-03-06 Stable - -**** Fixed error line numbers being off due to multi-line defines. [Mat Zeno] - -**** Fixed GCC sign extending (uint64_t)(a>>, $signed, $unsigned. [MANY!] - -** Support multi-dimensional arrays. [Eugen Fekete] - -** Add very limited support for the Property Specification Language - (aka PSL or Sugar). The format and keywords are now very limited, but will - grow with future releases. The --assert switch enables this feature. - -** With --assert, generate assertions for synthesis parallel_case and full_case. - -**** Fixed generate if's with empty if/else blocks. [Mat Zeno] - -**** Fixed generate for cell instantiations with same name. [Mat Zeno] - - -* Verilator 3.481 2005-10-12 Stable - -*** Add /*verilator tracing_on/off*/ for waveform control. - -**** Fixed split optimization reordering $display statements. - - -* Verilator 3.480 2005-09-27 Beta - -** Allow coverage of flattened modules, and multiple points per line. - Coverage analysis requires SystemPerl 1.230 or newer. - -**** Add preprocessor changes to support meta-comments. - -**** Optimize sequential assignments of different bits of same bus; ~5% faster. - -**** Optimize away duplicate lookup tables. - -**** Optimize wide concatenates into individual words. [Ralf Karge] - -**** Optimize local variables from delayed array assignments. - - -* Verilator 3.470 2005-09-06 Stable - -*** Optimize staging flops under reset blocks. - -*** Add '-Werror-...' to upgrade specific warnings to errors. - -**** Add GCC branch prediction hints on generated if statements. - -**** Fixed bad simulation when same function called twice in same expression. - -**** Fixed preprocessor substitution of quoted parameterized defines. - - -* Verilator 3.464 2005-08-24 Stable - -*** Add `systemc_imp_header, for use when using --output-split. - -*** Add --stats option to dump design statistics. - -**** Fixed core dump with clock inversion optimizations. - - -* Verilator 3.463 2005-08-05 Stable - -*** Fixed case defaults when not last statement in case list. [Wim Michiels] - - -* Verilator 3.462 2005-08-03 Stable - -*** Fixed reordering of delayed assignments to same memory index. [Wim Michiels] - -**** Fixed compile error with Flex 2.5.1. [Jens Arm] - -**** Fixed multiply-instantiated public tasks generating non-compilable code. - - -* Verilator 3.461 2005-07-28 Beta - -**** Fixed compile error with older versions of bison. [Jeff Dutton] - - -* Verilator 3.460 2005-07-27 Beta - -** Add -output-split option to enable faster parallel GCC compiles. - To support --output-split, the makefiles now split VM_CLASSES - into VM_CLASSES_FAST and VM_CLASSES_SLOW. This may require a - change to local makefiles. - -** Support -v argument to read library files. - -*** When issuing unoptimizable warning, show an example path. - -**** Fixed false warning when a clock is constant. - -**** Fixed X/Z in decimal numbers. [Wim Michiels] - -**** Fixed genvar statements in non-named generate blocks. - -**** Fixed core dump when missing newline in `define. [David van der bokke] - -**** Internal tree dumps now indicate edit number that changed the node. - - -* Verilator 3.450 2005-07-12 - -** $finish will no longer exit, but set Verilated::gotFinish(). - This enables support for final statements, and for other cleanup code. - If this is undesired, redefine the vl_user_finish routine. Top level - loops should use Verilated::gotFinish() as a exit condition for their - loop, and then call top->final(). To prevent a infinite loop, a - double $finish will still exit; this may be removed in future - releases. - -*** Add support for SystemVerilog keywords $bits, $countones, $isunknown, - $onehot, $onehot0, always_comb, always_ff, always_latch, finish. - -**** Fixed "=== 1'bx" to always be false, instead of random. - - -* Verilator 3.440 2005-06-28 Stable - -** Add Verilog 2001 generate for/if/case statements. - - -* Verilator 3.431 2005-06-24 Stable - -*** Fixed selection bugs introduced in 3.430 beta. - - -* Verilator 3.430 2005-06-22 Beta - -** Add Verilog 2001 variable part selects [n+:m] and [n-:m]. [Wim Michiels] - - -* Verilator 3.422 2005-06-10 Stable - -*** Added Verilog 2001 power (**) operator. [Danny Ding] - -**** Fixed crash and added error message when assigning to inputs. [Ralf Karge] - -**** Fixed tracing of modules with public functions. - - -* Verilator 3.421 2005-06-02 Beta - -**** Fixed error about reserved word on non-public signals. - -**** Fixed missing initialization compile errors in 3.420 beta. [Ralf Karge] - - -* Verilator 3.420 2005-06-02 Beta - -*** Fixed case defaults when not last statement in case list. [Ralf Karge] - -**** Added error message when multiple defaults in case statement. - -**** Fixed crash when wire self-assigns x=x. - -** Performance improvements worth ~20% - -** Added -x-assign options; ~5% faster if use -x-assign=0. - -**** Optimize shifts out of conditionals and if statements. - -**** Optimize local 'short' wires. - -**** Fixed gate optimization with top-flattened modules. [Mahesh Kumashikar] - - -* Verilator 3.411 2005-05-30 Stable - -**** Fixed compile error in GCC 2.96. [Jeff Dutton] - - -* Verilator 3.410 2005-05-25 Beta - -** Allow functions and tasks to be declared public. - They will become public C++ functions, with appropriate C++ types. - This allows users to make public accessor functions/tasks, instead - of having to use public variables and `systemc_header hacks. - -*** Skip producing output files if all inputs are identical - This uses timestamps, similar to make. Disable with --no-skip-identical. - -**** Improved compile performance with large case statements. - -**** Fixed internal error in V3Table. [Jeff Dutton] - -**** Fixed compile error in GCC 2.96, and with SystemC 1.2. [Jeff Dutton] - - -* Verilator 3.400 2005-04-29 Beta - -** Internal changes to support future clocking features. - -** Verilog-Perl and SystemPerl are no longer required for C++ or SystemC - output. If you want tracing or coverage analysis, they are still needed. - -*** Added --sc to create pure SystemC output not requiring SystemPerl. - -*** Added --pins64 to create 64 bit SystemC outputs instead of sc_bv<64>. - -*** The --exe flag is now required to produce executables inside the makefile. - This was previously the case any time .cpp files were passed on the - command line. - -*** Added -O3 and --inline-mult for performance tuning. [Ralf Karge] - One experiment regained 5% performance, at a cost of 300% in compile time. - -*** Improved performance of large case/always statements with low fanin - by converting to internal lookup tables (ROMs). - -*** Initialize SystemC port names. [S Shuba] - -**** Added Doxygen comments to Verilated includes. - -**** Fixed -cc pins 8 bits wide and less to be uint8_t instead of uint16_t. - -**** Fixed crash when Mdir has same name as .v file. [Gernot Koch] - -**** Fixed crash with size mismatches on case items. [Gernot Koch] - - -* Verilator 3.340 2005-02-18 Stable - -*** Report misconnected pins across all modules, instead of just first error. - -**** Fixed over-active inlining, resulting in compile slowness. - -**** Improved large netlist compile times. - -**** Added additional internal assertions. - - -* Verilator 3.332 2005-01-27 - -*** Added -E preprocess only flag, similar to GCC. - -*** Added CMPCONSTLR when comparison is constant due to > or < with all ones. - -**** Fixed loss of first -f file argument, introduced in 3.331. - - -* Verilator 3.331 2005-01-18 - -** The Verilog::Perl preprocessor is now C++ code inside of Verilator. - This improves performance, makes compilation easier, and enables - some future features. - -*** Support arrays of instantiations (non-primitives only). [Wim Michiels] - -**** Fixed unlinked error with defparam. [Shawn Wang] - - -* Verilator 3.320 2004-12-10 - -** NEWS is now renamed Changes, to support CPAN indexing. - -*** If Verilator is passed a C file, create a makefile link rule. - This saves several user steps when compiling small projects. - -*** Added new COMBDLY warning in place of fatal error. [Shawn Wang] - -*** Fixed mis-simulation with wide-arrays under bit selects. [Ralf Karge] - -**** Added NC Verilog as alternative to VCS for reference tests. - -**** Support implicit wire declarations on input-only signals. - (Dangerous, as leads to wires without drivers, but allowed by spec.) - -**** Fixed compile warnings on Suse 9.1 - - -* Verilator 3.311 2004-11-29 - -** Support implicit wire declarations (as a warning). [Shawn Wang] - -**** Fixed over-shift difference in Verilog vs C++. [Ralf Karge] - - -* Verilator 3.310 2004-11-15 - -** Support defparam. - -** Support gate primitives: buf, not, and, nand, or, nor, xor, xnor. - -*** Ignore all specify blocks. - - -* Verilator 3.302 2004-11-12 - -*** Support NAND and NOR operators. - -*** Better warnings when port widths don't match. - -**** Fixed internal error due to some port width mismatches. [Ralf Karge] - -**** Fixed WIDTH warnings on modules that are only used - parameterized, not in 'default' state. - -**** Fixed selection of SystemC library on cygwin systems. [Shawn Wang] - -**** Fixed runtime bit-selection of parameter constants. - - -* Verilator 3.301 2004-11-04 - -**** Fixed 64 bit [31:0] = {#{}} mis-simulation. [Ralf Karge] - -**** Fixed shifts greater then word width mis-simulation. [Ralf Karge] - -**** Work around GCC 2.96 negation bug. - - -* Verilator 3.300 2004-10-21 - -** New backend that eliminates most VL_ macros. - Improves performance 20%-50%, depending on frequency of use of signals - over 64 bits. GCC compile times with -O2 shrink by a factor of 10. - -**** Fixed "setting unsigned int from signed value" warning. - - -* Verilator 3.271 2004-10-21 - -**** Fixed "loops detected" error with some negedge clocks. - -**** Cleaned up some output code spacing issues. - - -* Verilator 3.270 2004-10-15 - -*** Support Verilog 2001 parameters in module headers. [Ralf Karge] - -**** Suppress numeric fault when dividing by zero. - -**** Faster code to support compilers not inlining all Verilated functions. - - -* Verilator 3.260 2004-10-07 - -** Support Verilog 2001 named parameter instantiation. [Ralf Karge] - -**** Return 1's when one bit wide extract indexes outside array bounds. - -**** Fixed compile warnings on 64-bit operating systems. - -**** Fixed incorrect dependency in .d file when setting VERILATOR_BIN. - - -* Verilator 3.251 2004-09-09 - -**** Fixed parenthesis overflow in Microsoft Visual C++ [Renga Sundararajan] - - -* Verilator 3.250 2004-08-30 - -** Support Microsoft Visual C++ [Renga Sundararajan] - -*** SystemPerl 1.161+ is required. - - -* Verilator 3.241 2004-08-17 - -** Support ,'s to separate multiple assignments. [Paul Nitza] - -**** Fixed shift sign extension problem using non-GCC compilers. - - -* Verilator 3.240 2004-08-13 - -** Verilator now uses 64 bit math where appropriate. - Inputs and outputs of 33-64 bits wide to the C++ Verilated model must - now be uint64_t's; SystemC has not changed, they will remain sc_bv's. - This increases performance by ~ 9% on x86 machines, varying with how - frequently 33-64 bit signals occur. Signals 9-16 bits wide are now - stored as 16 bit shorts instead of longs, this aids cache packing. - -**** Fixed SystemC compile error with feedthrus. [Paul Nitza] - -**** Fixed concat value error introduced in 3.230. - - -* Verilator 3.230 2004-08-10 - -*** Added coverage output to test_sp example, SystemPerl 1.160+ is required. - -**** Fixed time 0 value of signals. [Hans Van Antwerpen] - Earlier versions would not evaluate some combinatorial signals - until posedge/negedge blocks had been activated. - -**** Fixed wide constant inputs to public submodules [Hans Van Antwerpen] - -**** Fixed wide signal width extension bug. - Only applies when width mismatch warnings were overridden. - - -* Verilator 3.220 2004-06-22 - -** Many waveform tracing changes: - -*** Tracing is now supported on C++ standalone simulations. [John Brownlee] - -*** When tracing, SystemPerl 1.150 or newer is required. - -*** When tracing, Verilator must be called with the --trace switch. - -**** Added SystemPerl example to documentation. [John Brownlee] - -**** Various Cygwin compilation fixes. [John Brownlee] - - -* Verilator 3.210 2004-04-01 - -** Compiler optimization switches have changed - See the BENCHMARKING section of the documentation. - -*** With Verilog-Perl 2.3 or newer, Verilator supports SystemVerilog - preprocessor extensions. - -*** Added localparam. [Thomas Hawkins] - -*** Added warnings for SystemVerilog reserved words. - - -* Verilator 3.203 2004-03-10 - -*** Notes and repairs for Solaris. [Fred Ma] - - -* Verilator 3.202 2004-01-27 - -** The beta version is now the primary release. See below for many changes. - If you have many problems, you may wish to try release 3.125. - -*** Verilated::traceEverOn(true) must be called at time 0 if you will ever - turn on tracing (waveform dumping) of signals. Future versions will - need this switch to disable trace incompatible optimizations. - -**** Fixed several tracing bugs - -**** Added optimizations for common replication operations. - - -* Verilator 3.201-beta 2003-12-10 - -** BETA VERSION, USE 3.124 for stable release! - -** Version 3.2XX includes a all new back-end. - This includes automatic inlining, flattening of signals between - hierarchy, and complete ordering of statements. This results in - 60-300% execution speedups, though less pretty C++ output. Even - better results are possible using GCC 3.2.2 (part of Redhat 9.1), as - GCC has fixed some optimization problems which Verilator exposes. - - If you are using `systemc_ctor, beware pointers to submodules are now - initialized after the constructor is called for a module, to avoid - segfaults, move statements that reference subcells into initial - statements. - -*** C++ Constructor that creates a verilog module may take a char* name. - This name will be used to prefix any $display %m arguments, so users may - distinguish between multiple Verilated modules in a single executable. - - -* Verilator 3.125 2004-01-27 - -**** Optimization of bit replications - - -* Verilator 3.124 2003-12-05 - -*** A optimized executable will be made by default, in addition to a debug - executable. Invoking Verilator with --debug will pick the debug version. - -**** Many minor invisible changes to support the next version. - - -* Verilator 3.123 2003-11-10 - -**** Wide bus performance enhancements. - -**** Fixed function call bug when width warning suppressed. [Leon Wildman] - -**** Fixed __DOT__ compile problem with funcs in last revision. [Leon Wildman] - - -* Verilator 3.122 2003-10-29 - -*** Modules which are accessed from external code now must be marked with - /*verilator public_module*/ unless they already contain public signals. - To enforce this, private cell names now have a string prepended. - -**** Fixed replicated function calls in one statement. [Robert A. Clark] - -**** Fixed function call bug when width warning suppressed. [Leon Wildman] - - -* Verilator 3.121 2003-09-29 - -*** Support multiplication over 32 bits. [Chris Boumenot] - Also improved speed of addition and subtraction over 32 bits. - -*** Detect bit selection out of range errors. - -*** Detect integer width errors. - -**** Fixed width problems on function arguments. [Robert A. Clark] - - -* Verilator 3.120 2003-09-24 - -*** $finish now exits the model (via vl_finish function). - -*** Support inputs/outputs in tasks. - -*** Support V2K "integer int = {INITIAL_VALUE};" - -*** Ignore floating point delay values. [Robert A. Clark] - -**** Ignore `celldefine, `endcelldefine, etc. [Robert A. Clark] - -**** New optimizations on reduction operators. - -**** Fixed converting "\ooo" into octal values. - -**** Fixed $display("%x"); - - -* Verilator 3.112 2003-09-16 - -**** Fixed functions in continuous assignments. [Robert A. Clark] - -**** Fixed inlining of modules with 2-level deep outputs. - - -* Verilator 3.111 2003-09-15 - -**** Fixed declaration of functions before using that module. [Robert A. Clark] - -**** Fixed module inlining bug with outputs. - - -* Verilator 3.110 2003-09-12 - -** Support Verilog 2001 style input/output declarations. [Robert A. Clark] - -*** Allow local vars in headers of function/tasks. [Leon Wildman] - - -* Verilator 3.109 2003-08-28 - -** Added support for local variables in named begin blocks. [Leon Wildman] - - -* Verilator 3.108 2003-08-11 - -** Added support for functions. - -*** Signals 8 bits and shorter are now stored as chars - instead of uint32_t's. This improves Dcache packing and - improves performance by ~7%. - -**** $display now usually results in a single VL_PRINT rather then many. - -**** Many optimizations involving conditionals (?:) - - -* Verilator 3.107 2003-07-15 - -*** --private and --l2name are now the default, - as this enables additional optimizations. - Use --noprivate or --nol2name to get the older behavior. - -*** Now support $display of binary and wide format data. - -*** Added detection of incomplete case statements, - and added related optimizations worth ~4%. - -**** Work around flex bug in Redhat 8.0. [Eugene Weber] - -**** Added some additional C++ reserved words. - -**** Additional constant optimizations, ~5% speed improvement. - - -* Verilator 3.106 2003-06-17 - -** $c can now take multiple expressions as arguments. - For example $c("foo","bar(",32+1,");") will insert "foobar(33);" - This makes it easier to pass the values of signals. - -** Several changes to support future versions that may have - signal-eliminating optimizations. Users should try to use these switch - on designs, they will become the default in later versions. - -*** Added --private switch and /*verilator public*/ metacomment. - This renames all signals so that compile errors will result if any - signals referenced by C++ code are missing a /*verilator public*/ - metacomment. - -*** With --l2name, the second level cell C++ cell is now named "v". - Previously it was named based on the name of the verilog code. This - means to get to signals, scope to "{topcell} ->v ->{mysignal}" instead - of "{topcell} ->{verilogmod}. {mysignal}". This allows different - modules to be substituted for the cell without requiring source - changes. - -**** Several cleanups for Redhat 8.0. - - -* Verilator 3.105 2003-05-08 - -**** Fixed more GCC 3.2 errors. [David Black] - - -* Verilator 3.104 2003-04-30 - -*** Indicate direction of ports with VL_IN and VL_OUT. - -*** Allow $c32, etc, to specify width of the $c statement for VCS. - -**** Fixed false "indent underflow" error inside `systemc_ctor sections. - -**** Fixed missing ordering optimizations when outputs also used internally. - -*** Numerous performance improvements, worth about 25% - -**** Assign constant cell pins in initial blocks rather then every cycle. - -**** Promote subcell's combo logic to sequential evaluation when possible. - -**** Fixed GCC 3.2 compile errors. [Narayan Bhagavatula] - - -* Verilator 3.103 2003-01-28 - -**** Fixed missing model evaluation when clock generated several levels of - hierarchy across from where it is used as a clock. [Richard Myers] - -**** Fixed sign-extension bug introduced in 3.102. - - -* Verilator 3.102 2003-01-24 - -**** Fixed sign-extension of X/Z's ("32'hx") - - -* Verilator 3.101 2003-01-13 - -**** Fixed 'parameter FOO=#'bXXXX' [Richard Myers] - -**** Allow spaces inside numbers ("32'h 1234") [Sam Gladstone] - - -* Verilator 3.100 2002-12-23 - -** Support for simple tasks w/o vars or I/O. [Richard Myers] - -**** Ignore DOS carriage returns in Linux files. [Richard Myers] - - -* Verilator 3.012 2002-12-18 - -**** Fixed parsing bug with casex statements containing case items - with bit extracts of parameters. [Richard Myers] - -**** Fixed bug which could cause writes of non-power-of-2 sized arrays to - corrupt memory beyond the size of the array. [Dan Lussier] - -**** Fixed bug which did not detect UNOPT problems caused by - submodules. See the description in the verilator man page. [John Deroo] - -**** Fixed compile with threaded Perl. [Ami Keren] - - -* Verilator 3.010 2002-11-03 - -*** Support SystemC 2.0.1. SystemPerl version 1.130 or newer is required. - -**** Fixed bug with inlined modules under other inlined modules. [Scott - Bleiweiss] - - -* Verilator 3.005 2002-10-21 - -**** Fixed X's in case (not casex/z) to constant propagate correctly. - -**** Fixed missing include. [Kurachi] - - -* Verilator 3.004 2002-10-10 - -*** Added /* verilator module_inline */ and associated optimizations. - -*** Allow /* verilator coverage_block_off */ in place of `coverage_block_off. - This prevents problems with Emacs AUTORESET. [Ray Strouble] - -**** Fixed `coverage_block_off also disabling subsequent blocks. - -**** Fixed unrolling of loops with multiple simple statements. - -**** Fixed compile warnings on newer GCC. [Kurachi] - -**** Additional concatenation optimizations. - - -* Verilator 3.003 2002-09-13 - -*** Now compiles on Windows 2000 with Cygwin. - -**** Fixed bug with pin assignments to wide memories. - -**** Optimize wire assignments to constants. - - -* Verilator 3.002 2002-08-19 - -** First public release of version 3. - - -* Verilator 3.000 2002-08-03 - -** All new code base. Many changes too numerous to mention. - -*** Approximately 4 times faster then Verilator 2. -*** Supports initial statements -*** Supports correct blocking/nonblocking assignments -*** Supports `defines across multiple modules -*** Optimizes call ordering, constant propagation, and dead code elimination. - - -* Verilator 2.1.8 2002-04-03 - -** All applications must now link against include/verilated.cpp - -*** Paths specified to verilator_make should be absolute, or be formed - to allow for execution in the object directory (prepend ../ to each path.) - This allows relative filenames for makes which hash and cache dependencies. - -**** Added warning when parameter constants are too large. [John Deroo] - -**** Added warning when x/?'s used in non-casez statements. - -**** Added warning when blocking assignments used in posedge blocks. [Dan Lussier] - -**** Split evaluation function into clocked and non-clocked, 20% perf gain. - - -* Verilator 2.1.5 2001-12-01 - -** Added coverage analysis. In conjunction with SystemC provide line - coverage reports, without SystemC, provide a hook to user written - accumulation function. See --coverage option of verilator_make. - -*** Relaxed multiply range checking - -*** Support for constants up to 128 bits - -*** Randomize values used when assigning to X's. - -**** Added -guard option of internal testing. - -**** Changed indentation in emitted code to be automatically generated. - -**** Fixed corruption of assignments of signal over 32 bits with non-0 lsb. - - -* Verilator 2.1.4 2001-11-16 - -** Added $c("c_commands();"); for embedding arbitrary C code in Verilog. - - -* Verilator 2.1.3 2001-11-03 - -** Support for parameters. - - -* Verilator 2.1.2 2001-10-25 - -** Verilog Errors now reference the .v file rather then the .vpp file. - -*** Support strings in assignments: reg [31:0] foo = "STRG"; - -*** Support %m in format strings. Ripped out old $info support, use - Verilog-Perl's vpm program instead. - -*** Convert $stop to call of v_stop() which user can define. - -**** Fixed bug where a==b==c would have wrong precedence rule. - -**** Fixed bug where XNOR on odd-bit-widths (~^ or ^~) had bad value. - - -* Verilator 2.1.1 2001-05-17 - -** New test_sp directory for System-Perl (SystemC) top level instantiation -of the Verilated code, lower modules are still C++ code. (Experimental). - -** New test_spp directory for Pure System-Perl (SystemC) where every module -is true SystemC code. (Experimental) - -*** Input ports are now loaded by pointer reference into the sub-cell. -This is faster on I-386 machines, as the stack must be used when there are -a large number of parameters. Also, this simplifies debugging as the value -of input ports exists for tracing. - -**** Many code cleanups towards standard C++ style conventions. - - -* Verilator 2.1.0 2001-05-08 - -**** Many code cleanups towards standard C++ style conventions. - - -* {Version history lost} - - -* Verilator 1.8 1996-07-08 - -** [Versions 0 to 1.8 were by Paul Wasson] - -**** Fixed single bit in concat from instance output incorrect offset bug. - - -* Verilator 1.7 1996-05-20 - -**** Mask unused bits of DONTCAREs. - - -* Verilator 1.6 1996-05-13 - -*** Added fasttrace script - - -* Verilator 1.5 1996-01-09 - -*** Pass structure pointer into translated code, - so multiple instances can use same functions. - -**** Fixed static value concat on casex items. - - -* Verilator 1.1 1995-03-30 - -*** Bug fixes, added verimake_partial script, performance improvements. - - -* Verilator 1.0c 1994-09-30 - -*** Initial release of Verilator - - -* Verilator 0.0 1994-07-08 - -**** First code written. - ----------------------------------------------------------------------- - -This uses outline mode in Emacs. See C-h m [M-x describe-mode]. +Copyright +========= Copyright 2001-2021 by Wilson Snyder. This program is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0. -SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 -Local variables: -mode: outline -paragraph-separate: "[ \f\n]*$" -end: +SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 diff --git a/docs/CONTRIBUTORS b/docs/CONTRIBUTORS index 9d35df7de..cc4c8292c 100644 --- a/docs/CONTRIBUTORS +++ b/docs/CONTRIBUTORS @@ -13,6 +13,7 @@ Dan Petrisko David Horton David Stanford David Turner +Drew Taussig Driss Hafdi Edgar E. Iglesias Eric Rippey @@ -24,11 +25,12 @@ Glen Gibb Harald Heckmann Howard Su Huang Rui +HyungKi Jeong Iztok Jeras James Hanlon James Hutchinson -Jamey Hicks James Pallister +Jamey Hicks Jan Van Winkel Jean Berniolles Jeremy Bennett @@ -81,13 +83,11 @@ Todd Strader Tomasz Gorochowik Tymoteusz Blazejczyk Unai Martinez-Corral -Victor Besyakov Vassilis Papaefstathiou Veripool API Bot +Victor Besyakov Wilson Snyder Yossi Nivin Yuri Victorovich Yutetsu TAKATSUKASA Yves Mathieu -HyungKi Jeong -Drew Taussig