1.. for github, vim: syntax=reStructuredText 2 3=============================== 4Revision History and Change Log 5=============================== 6 7The changes in each Verilator version are described below. The 8contributors that suggested a given feature are shown in []. Thanks! 9 10 11Verilator 4.216 2021-12-05 12========================== 13 14**Major:** 15 16* Add --lib-create, similar to --protect-lib but without protections. 17* Support tracing through --hierarchical/--lib-create libraries (#3200). 18 19**Minor:** 20 21* Internal code cleanups and improvements. [Geza Lore] 22* Improve --thread verilation-time performance. 23* Support task name in $display %m (#3211). [Julie Schwartz] 24* Make 'bit', 'logic' and 'time' types unsigned by default. [Geza Lore] 25* Optimize $random concatenates/selects (#3114). 26* Fix array method names with parenthesis (#3181) (#3183). [Teng Huang] 27* Fix split_var assign merging (#3177) (#3179). [Yutetsu TAKATSUKASA] 28* Fix wrong bit op tree optimization (#3185). [Yutetsu TAKATSUKASA] 29* Fix some SliceSels not being constants (#3186) (#3218). [Michaël Lefebvre] 30* Fix nested generate if genblk naming (#3189). [yanx21] 31* Fix hang on recursive definition error (#3199). [Jonathan Kimmitt] 32* Fix display of signed without format (#3204). [Julie Schwartz] 33* Fix display of empty string constant (#3207) (#3215). [Julie Schwartz] 34* Fix incorrect width after and-or optimization (#3208). [Julie Schwartz] 35* Fix $fopen etc on integer arrays (#3214). [adrienlemasle] 36* Fix $size on dynamic strings (#3216). 37* Fix %0 format on $value$plusargs (#3217). 38* Fix timescale portability on Arm64 (#3222). 39 40 41Verilator 4.214 2021-10-17 42========================== 43 44**Major:** 45 46* Add profile-guided optmization of mtasks (#3150). 47 48**Minor:** 49 50* Verilator_gantt has removed the ASCII graphics, use the VCD output instead. 51* Verilator_gantt now shows the predicted mtask times, eval times, and additional statistics. 52* Verilator_gantt data files now include processor information, to allow later processing. 53* Support displaying x and z in $display task (#3107) (#3109). [Iru Cai] 54* Fix verilator_profcfunc profile accounting (#3115). 55* Fix display has no time units on class function (#3116). [Damien Pretet] 56* Fix removing if statement with side effect in condition (#3131). [Alexander Grobman] 57* Fix --waiver-output for multiline warnings (#2429) (#3141). [Keith Colbert] 58* Fix internal error on bad widths (#3140) (#3145). [Zhanglei Wang] 59* Fix crash on clang 12/13 (#3148). [Kouping Hsu] 60* Fix cygwin compile error due to missing -std=gnu++14 (#3149). [Sun Kim] 61* Fix $urandom_range when the range is 0 ... UINT_MAX (#3161). [Iru Cai] 62* Fix constructor-parameter argument comma-separation in C++ (#3162). [Matthew Ballance] 63* Fix missing install of vl_file_copy/vl_hier_graph (#3165). [Popolon] 64* Fix calling new with arguments in same class (#3166). [Matthew Ballance] 65* Fix false EOFNEWLINE warning when DOS carriage returns present (#3171). 66 67 68Verilator 4.212 2021-09-01 69========================== 70 71**Minor:** 72 73* Fix re-evaluation of logic dependent on state set in DPI exports (#3091). [Geza Lore] 74* Support unpacked array localparams in tasks/functions (#3078). [Geza Lore] 75* Support timeunit/timeprecision in $unit. 76* Support assignment patterns as children of pins (#3041). [Krzysztof Bieganski] 77* Add --instr-count-dpi to tune assumed DPI import cost for multithreaded 78 model scheduling. Default value changed to 200 (#3068). [Yinan Xu] 79* Output files are split based on the set of headers required 80 in order to aid incremental compilation via ccache (#3071). [Geza Lore] 81* Parameter values are now emitted as 'static constexpr' instead of enum. 82 C++ direct references to parameters might require updating (#3077). [Geza Lore] 83* Refactored Verilated include files; include verilated.h not verilated_heavy.h. 84* Add header guards on Dpi.h generated files (#2979). [Tood Strader] 85* Add XML ccall, constpool, initarray, and if/while begins (#3080). [Steven Hugg] 86* Add error when constant function under a generate (#3103). [Don Owen] 87* Fix -G to treat simple integer literals as signed (#3060). [Anikin1610] 88* Fix emitted string array initializers (#2895). [Iztok Jeras] 89* Fix bitop tree optimization dropping necessary & operator (#3096). [Flavien Solt] 90* Fix internal error on wide -x-initial unique (#3106). [Alexandre Joannou] 91* Fix traces to show array instances with brackets (#3092) (#3095). [Pieter Kapsenberg] 92 93 94Verilator 4.210 2021-07-07 95========================== 96 97**Major:** 98 99* Generated code is now emitted as global functions rather than methods. '$c' 100 contents might need to be updated, see the docs (#3006). [Geza Lore] 101* The generated model class instantiated by the user is now an interface 102 object and no longer the TOP module instance. User code with direct 103 C++ member access to model internals, including verilator public_flat 104 items will likely need to be updated. See the manual for instructions: 105 https://verilator.org/guide/latest/connecting.html#porting-from-pre-4-210 106 (#3036). [Geza Lore] 107 108**Minor:** 109 110* Add --prof-c to pass profiling to compiler (#3059). [Alexander Grobman] 111* Optimize a lot more model variables into function locals (#3027). [Geza Lore] 112* Support middle-of-design nested topmodules (#3026). [Dan Petrisko] 113* Remove deprecated --no-relative-cfuncs option (#3024). [Geza Lore] 114* Remove deprecated --inhibit-sim option (#3035). [Geza Lore] 115* Merge const static data globally into a new constant pool (#3013). [Geza Lore] 116* Allow configure override of AR program (#2999). [ahouska] 117* In XML, show pinIndex information (#2877). [errae233] 118* Fix error on unsupported recursive functions (#2957). [Trefor Southwell] 119* Fix type parameter specialization when struct names are same (#3055). [7FM] 120* Improve speed of table optimization (-OA) pass. [Geza Lore] 121 122 123Verilator 4.204 2021-06-12 124========================== 125 126**Minor:** 127 128* Add 'make ccache-report' (#3011). [Geza Lore] 129* Add --reloop-limit argument (#2943) (#2960). [Geza Lore] 130* Add --expand-limit argument (#3005). [Julien Margetts] 131* Add TRACE_THREADS to CMake (#2934). [Jonathan Drolet] 132* Optimize large lookup tables to static data (#2925). [Geza Lore] 133* Optimize reloop to accept constant index offsets (#2939). [Geza Lore] 134* Split always blocks to better respect --output-split-cfuncs. [Geza Lore] 135* Support ignoring "`pragma protect ..." (#2886). [Udi Finkelstein] 136* Support --trace-fst for SystemC with CMake (#2927). [Jonathan Drolet] 137* Update cmake latest C++ Standard Compilation flag (#2951). [Ameya Vikram Singh] 138* Prep work towards better ccache hashing/performance. [Geza Lore] 139* Fix assertion failure in bitOpTree optimization (#2891) (#2899). [Raynard Qiao] 140* Fix DPI functions not seen as vpiModule (#2893). [Todd Strader] 141* Fix bounds check in VL_SEL_IWII (#2910). [Krzysztof Bieganski] 142* Fix slowdown in elaboration (#2911). [Nathan Graybeal] 143* Fix initialization of assoc in assoc array (#2914). [myftptoyman] 144* Fix make support for gmake 3.x (#2920) (#2921). [Philipp Wagner] 145* Fix VPI memory access for packed arrays (#2922). [Todd Strader] 146* Fix MCD close also closing stdout (#2931). [Alexander Grobman] 147* Fix split procedures to better respect --output-split-cfuncs (#2942). [Geza Lore] 148* Fix to emit 'else if' without nesting (#2944). [Geza Lore] 149* Fix part select issues in LATCH warning (#2948) (#2938). [Julien Margetts] 150* Fix to not emit empty files with low split limits (#2961). [Geza Lore] 151* Fix merging of assignments in C++ code (#2970). [Ruper Swarbrick] 152* Fix unused variable warnings (#2991). [Pieter Kapsenberg] 153* Fix --protect-ids when using SV classes (#2994). [Geza Lore] 154* Fix constant function calls with uninit value (#2995). [yanx21] 155* Fix Makefiles to support Windows EXEEXT usage (#3008). [Miodrag Milanovic] 156 157 158Verilator 4.202 2021-04-24 159========================== 160 161**Major:** 162 163* Documentation has been rewritten into a book format. 164* Verilated signals now use VlWide and VlPacked in place of C arrays. 165 166**Minor:** 167 168* Add an URL on warnings to point to the manual's description. 169* Add EOFNEWLINE warning when missing a newline at EOF. 170* Changed TIMESCALEMOD from error into a warning. 171* Mark --no-relative-cfuncs as scheduled for deprecation. 172* Add --coverage-max-width (#2853). [xuejiazidi] 173* Add VerilatedCovContext::forcePerInstance (#2793). [Kevin Laeufer] 174* Add FST SystemC tracing (#2806). [Alex Torregrosa] 175* Add PINNOTFOUND warning in place of error (#2868). [Udi Finkelstein] 176* Support overlaps in priority case statements (#2864). [Rupert Swarbrick] 177* Support for null ports (#2875). [Udi Finkelstein] 178* Fix class unpacked-array compile error (#2774). [Iru Cai] 179* Fix scope types in FST and VCD traces (#2805). [Alex Torregrosa] 180* Fix exceeding command-line ar limit (#2834). [Yinan Xu] 181* Fix false $dumpfile warning on model save (#2834). [Yinan Xu] 182* Fix --timescale-override not suppressing TIMESCALEMOD (#2838). [Kaleb Barrett] 183* Fix false TIMESCALEMOD on generate-ignored instances (#2838). [Kaleb Barrett] 184* Fix --output-split with class extends (#2839). [Iru Cai] 185* Fix false WIDTHCONCAT on casted constant (#2849). [Rupert Swarbrick] 186* Fix tracing of long hashed names (#2854). [Graham Rushton] 187* Fix --public-flat-rw / DPI issue (#2858). [Todd Strader] 188* Fix interface localparam access (#2859). [Todd Strader] 189* Fix Cygwin example compile issues (#2856). [Mark Shaw] 190* Fix select of with index variable (#2880). [Alexander Grobman] 191* Fix cmake version number to be numeric (#2881). [Yuri Victorovich] 192* Fix MinGW not supportting 'localtime_r' (#2882). [HyungKi Jeong] 193* Fix cast from packed, typedef'ed interface signal (#2884). [Todd Strader] 194* Fix VPI package reported as vpiModule (#2885). [Todd Strader] 195* Fix dumping waveforms to multiple FST files (#2889). [David Metz] 196* Fix assertion failure in bitOpTree (#2892). [Yutetsu TAKATSUKASA] 197* Fix V3Premit infinite loop on always read-and-write (#2898). [Raynard Qiao] 198* Fix VPI packed vectors (#2900). [Todd Strader] 199* Fix VPI public interface parameters (#2901). [Todd Strader] 200 201 202Verilator 4.200 2021-03-12 203========================== 204 205**Announcement:** 206 207* --inhibit-sim is planned for deprecation, file a bug if this is still being used. 208 209**Major:** 210 211* Add simulation context (VerilatedContext) to allow multiple fully independent 212 models to be in the same process. Please see the updated examples. (#2660) 213* Add context->time() and context->timeInc() API calls, to set simulation time. 214 These now are recommended in place of the legacy sc_time_stamp(). 215 216**Minor:** 217 218* Converted Asciidoc documentation into reStructuredText (RST) format. 219* Fix range inheritance on port without data type (#2753). [Embedded Go] 220* Fix slice-assign overflow (#2803) (#2811). [David Turner] 221* Fix interface array connection ordering broken in v4.110 (#2827). [Don Owen] 222* Fix or-reduction on different scopes broken in 4.110 (#2828). [Yinan Xu] 223* Fix MSVC++ compile error. (#2831) (#2833) [Drew Taussig] 224 225 226Verilator 4.110 2021-02-25 227========================== 228 229**Major:** 230 231* Optimize bit operations and others (#2186) (#2632) (#2633) (#2751) (#2800) [Yutetsu TAKATSUKASA] 232 233**Minor:** 234 235* Support concat selection (#2721). 236* Support struct scopes when dumping structs to VCD (#2776) [Alex Torregrosa] 237* Generate SELRANGE for potentially unreachable code (#2625) (#2754) [Pierre-Henri Horrein] 238* For --flatten, override inlining of public and no_inline modules (#2761) [James Hanlon] 239* Fix little endian interface pin swizzling (#2475). [Don Owen] 240* Fix range inheritance on port without data type (#2753). [Embedded Go] 241* Fix TIMESCALE warnings on primitives (#2763). [Xuanqi] 242* Fix to exclude strings from toggle coverage (#2766) (#2767) [Paul Wright] 243* Fix $fread extra semicolon inside statements. [Leendert van Doorn] 244* Fix class extends with VM_PARALLEL_BUILDS (#2775). [Iru Cai] 245* Fix shifts by > 32 bit values (#2785). [qrq992] 246* Fix examples not flushing vcd (#2787). [Richard E George] 247* Fix little endian packed array pattern assignment (#2795). [Alex Torregrosa] 248 249 250Verilator 4.108 2021-01-10 251========================== 252 253**Major:** 254 255* Many VPI changes for IEEE compatibility, which may alter behavior from previous releases. 256* Support randomize() class method and rand (#2607). [Krzysztof Bieganski] 257 258**Minor:** 259 260* Support $cast and new CASTCONST warning. 261* Add --top option as alias of --top-module. 262* Add LATCH and NOLATCH warnings (#1609) (#2740). [Julien Margetts] 263* Remove Unix::Processors internal test dependency. 264* Report UNUSED on parameters, localparam and genvars (#2627). [Charles Eric LaForest] 265* Add error on real to non-real output pins (#2690). [Peter Monsson] 266* Support package imports before parameters in interfaces (#2714). [James Hanlon] 267* Support --sanitize in internal tests (#2705). [Yutetsu TAKATSUKASA] 268* Fix passing parameter type instantiations by position number. 269* Fix DPI open array handling issues. 270* Fix error when dotted refers to missing module (#2095). [Alexander Grobman] 271* Fix little endian packed array counting (#2499). [phantom-killua] 272* Fix showing reference locations for BLKANDNBLK (#2170). [Yuri Victorovich] 273* Fix genblk naming to match IEEE (#2686). [tinshark] 274* Fix VPI memory word indexing (#2695). [Marlon James] 275* Fix vpiLeftRange on little-endian memories (#2696). [Marlon James] 276* Fix VPI module tree (#2704). [Todd Strader] 277* Fix vpi_release_handle to be called implicitly per IEEE (#2706). 278* Fix to allow inheriting 'VerilatedVcdFile' class. (#2720) [HyungKi Jeong] 279* Fix $urandom_range maximum value (#2723). [Nandu Raj] 280* Fix tracing empty sc module (#2729). 281* Fix generate for unrolling to be signed (#2730). [yanx21] 282* Fix to emit timescale in hierarchical blocks (#2735). [Yutetsu TAKATSUKASA] 283* Fix to ignore coverage on real ports (#2741) (#2745). [Paul Wright] 284 285 286 287Verilator 4.106 2020-12-02 288========================== 289 290**Major:** 291 292* Change -sv option to select 1800-2017 instead of 1800-2005. 293 294**Minor:** 295 296* Check for proper 'local' and 'protected' (#2228). 297* Support $random and $urandom seeds. 298* Support $monitor and $strobe. 299* Support complex function arguments. 300* Support 'super'. 301* Support 'with item.index'. 302* Fix the default GNU Make executable name on FreeBSD (#2553). [Yuri Victorovich] 303* Fix trace signal names getting hashed (#2643). [Barbara Gigerl] 304* Fix unpacked array parameters near functions (#2639). [Anderson Ignacio da Silva] 305* Fix access to non-overridden base class variable (#2654). [Tobias Rosenkranz] 306 307 308Verilator 4.104 2020-11-14 309========================== 310 311**Minor:** 312 313* Support queue and associative array 'with' statements (#2616). 314* Support queue slicing (#2326). 315* Support associative array pattern assignments and defaults. 316* Support static methods and typedefs in classes (#2615). [Krzysztof Bieganski] 317* Add error on typedef referencing self (#2539). [Cody Piersall] 318* With --debug, turn off address space layout randomization. 319* Fix iteration over mutating list bug in VPI (#2588). [Kaleb Barrett] 320* Fix cast width propagation (#2597). [flex-liu] 321* Fix return from callValueCbs (#2589) (#2605). [Marlon James] 322* Fix WIDTH warnings on comparisons with nullptr (#2602). [Rupert Swarbrick] 323* Fix fault when $fgets, $sscanf, etc used with string (#2604). [Yutetsu TAKATSUKASA] 324* Fix WIFEXITED missing from MinGW/MSYS2 (#2609). [Jean Berniolles] 325* Fix queue poping wrong value when otherwise unused (#2512). [nanduraj1] 326* Fix arrays of modport interfaces (#2614). [Thierry Tambe] 327* Fix split_var internal error (#2640) (#2641). [Yutetsu TAKATSUKASA] 328 329 330Verilator 4.102 2020-10-15 331========================== 332 333**Minor:** 334 335* Support const object new() assignments. 336* Support # as a comment in -f files (#2497). [phantom-killua] 337* Support 'this' (#2585). [Rafal Kapuscik] 338* Support defines for FST tracing (#2592). [Markus Krause] 339* Support non-overapping implication inside properties (#1292). [Peter Monsson] 340* Fix timescale with --hierarchical (#2554). [Yutetsu TAKATSUKASA] 341* Fix cmake build with --hierarchical (#2560). [Yutetsu TAKATSUKASA] 342* Fix -G dropping public indication (#2561). [Andrew Goessling] 343* Fix $urandom_range passed variable (#2563). [nanduraj1] 344* Fix method calls to package class functions (#2565). [Peter Monsson] 345* Fix class wide member display (#2567). [Nandu Raj P] 346* Fix hierarchical references inside function (#2267) (#2572). [James Pallister] 347* Fix flushCall for backward compatibility (#2580). [chenguokai] 348* Fix preprocessor stringify of undefined macro. [Martin Whitaker] 349 350 351Verilator 4.100 2020-09-07 352========================== 353 354**Major:** 355 356* C++11 or newer compilers are now required. 357* SystemC 2.3.0 or newer (SYSTEMC_VERSION >= 20111121) is now required. 358* Support hierarchical Verilation (#2206). [Yutetsu TAKATSUKASA] 359 360**Minor:** 361 362* Support (with limitations) class extern, class extends, virtual class. 363* Support $urandom, $urandom_range without stability. 364* Support assume property. [Peter Monsson] 365* Support non-overapping implication inside properties (#1292). [Peter Monsson] 366* Fix false DECLFILENAME on black-boxed modules (#2430). [Philipp Wagner] 367* Fix naming of "id : begin" blocks. 368* Fix class constructor error on assignments to const. 369* Fix splitting eval functions with --output-split-cfuncs (#2368). [Geza Lore] 370* Fix queues as class members (#2525). [nanduraj1] 371 372 373Verilator 4.040 2020-08-15 374========================== 375 376**Announcement:** 377 378* Version 4.040 is planned to be the final version that will support 379 pre-C++11 compilers. Please move to C++11 or newer compilers. 380 381**Minor:** 382 383* Fix arrayed interfaces, broke in 4.038 (#2468). [Josh Redford] 384* Support $stable, $rose and $fell. (#2148) (#2501) [Peter Monsson] 385* Support simple function localparams (#2461). [James Hanlon] 386* Miscellaneous parsing error changes towards UVM support. 387* Fix arrayed interfaces (#2469). [Josh Redford] 388* Fix protect lib VCS warning. (#2479) [Julien Margetts] 389* Fix combining different-width parameters (#2484). [abirkmanis] 390* Fix protect-lib without sequential logic (#2492). [Yutetsu TAKATSUKASA] 391* Fix V3Unknown from running with flat XML output (#2494). [James Hanlon] 392* Fix non-32 bit conversion to float (#2495). [dsvf] 393* Fix casting non-self-determined subexpressions (#2493). [phantom-killua] 394* Fix SystemC net names (#2500). [Edgar E. Iglesias] 395* Fix build with Bison 3.7 and newer (#2505). [Rupert Swarbrick] 396* Fix slice of unpacked array (#2506) (#2507). [Yutetsu TAKATSUKASA] 397 398 399Verilator 4.038 2020-07-11 400========================== 401 402**Announcement:** 403 404* Versions 4.038 and 4.040 are planned to be the final versions that will 405 support pre-C++11 compilers. Please move to C++11 or newer compilers. 406 407**Minor:** 408 409* Support VPI access to parameters and localparam. [Ludwig Rogiers] 410* Support parsing (not elaboration, yet) of UVM. 411* Add new UNSUPPORTED error code to replace most previous Unsupported: messages. 412* With --bbox-unsup continue parsing on many (not all) UVM constructs. 413* Support for-loop increments with commas. 414* Support $swrite with arbitrary arguments. 415* Support $writememb (#2450). [Fan Shupei] 416* Fix OS X, Free BSD, and -m32 portability issues. [Geza Lore] 417* Fix to flush FST trace on termination due to $stop or assertion failure. 418* Fix part select error when multipling by power-of-two (#2413). [Conor McCullough] 419* Fix division exception (#2460) [Kuoping Hsu] 420 421 422Verilator 4.036 2020-06-06 423========================== 424 425**Major:** 426 427* OPT_FAST is now -Os by default. See the BENCHMARKING & OPTIMIZATION part 428 of the manual if you experience issues with compilation speed. 429* --output-split is now on by default. VM_PARALLEL_BUILDS is set by default 430 iff the --output-split caused an actual file split to 431 occur. --output-split-cfuncs and --output-split-ctrace now default to 432 the value of --output-split. These changes should improve build times of 433 medium and large designs with default options. User makefiles may require 434 changes. 435 436**Minor:** 437 438* Configure now enables SystemC if it is installed as a system headers, 439 e.g. with 'apt-get install systemc-dev'. 440* Add --waiver-output flag that writes a verilator config file (.vlt) with 441 waivers to the warnings emitted during a Verilator run. 442* Support verilator_coverage --write-info for lcov HTML reports. 443* Line Coverage now tracks all statement lines, not just branch lines. 444* The run-time library is now compiled with -Os by default. (#2369, #2373) 445* Support multi channel descriptor I/O (#2190) [Stephen Henry] 446* Support $countbits. (#2287) [Yossi Nivin] 447* Support $isunbounded and parameter $. (#2104) 448* Support unpacked array .sum and .product. 449* Support prefix/postfix increment/decrement. (#2223) [Maciej Sobkowski] 450* Fix FST tracing of little bit endian signals. [Geza Lore] 451* Fix +: and -: on unpacked arrays. (#2304) [engr248] 452* Fix $isunknown with constant Z's. 453* Fix queues and dynamic array wide ops. (#2352) [Vassilis Papaefstathiou] 454 455 456Verilator 4.034 2020-05-03 457========================== 458 459**Major:** 460 461* Support simplistic classes with many restrictions, see manual. (#377) 462* Support IEEE time units and time precisions. (#234) 463 Includes `timescale, $printtimescale, $timeformat. 464 VL_TIME_MULTIPLIER, VL_TIME_PRECISION, VL_TIME_UNIT have been removed 465 and the time precision must now match the SystemC time precision. To 466 get closer behavior to older versions, use e.g. --timescale-override 467 "1ps/1ps". 468* Add --build to call make automatically. (#2249) [Yutetsu TAKATSUKASA] 469* Configuring with ccache present now defaults to using it; see OBJCACHE. 470* Fix DPI import/export to be standard compliant. (#2236) [Geza Lore] 471* Add --trace-threads for general multithreaded tracing. (#2269) [Geza Lore] 472 473**Minor:** 474 475* Add --flatten for use with --xml-only. (#2270) [James Hanlon] 476* Greatly improve FST/VCD dump performance (#2244) (#2246) (#2250) (#2257) [Geza Lore] 477* Support $ferror, and $fflush without arguments. (#1638) 478* Support event data type (with some restrictions). 479* Support $root. (#2150) [Keyi Zhang] 480* Add error if use SystemC 2.2 and earlier (pre-2011) as is deprecated. 481* Add support of --trace-structs for CMake (#2986). [Martin Schmidt] 482* Fix arrayed instances connecting to slices. (#2263) [Don/engr248] 483* Fix error on unpacked connecting to packed. (#2288) [Joseph Shaker] 484* Fix logical not optimization with empty begin. (#2291) [Baltazar Ortiz] 485* Fix reduction OR on wide data, broke in v4.026. (#2300) [Jack Koenig] 486* Fix clock enables with bit-extends. (#2299) [Marco Widmer] 487* Fix MacOs Homebrew by removing default LIBS. (#2298) [Ryan Clarke] 488 489 490Verilator 4.032 2020-04-04 491========================== 492 493**Minor:** 494 495* Add column numbers to errors and warnings. 496* Add GCC 9-style line number prefix when showing source text for errors. 497* Add setting VM_PARALLEL_BUILDS=1 when using --output-split. (#2185) 498* Change --quiet-exit to also suppress 'Exiting due to N errors'. 499* Suppress REALCVT for whole real numbers. 500* Support split_var in vlt files. (#2219) [Marco Widmer] 501* Fix parameter type redeclaring a type. (#2195) [hdzhangdoc] 502* Fix VCD open with empty filename. (#2198) [Julius Baxter] 503* Fix packages as enum base types. (#2202) [Driss Hafdi] 504* Fix duplicate typedefs in generate for. (#2205) [hdzhangdoc] 505* Fix MinW portability. (#2114) [Sean Cross] 506* Fix assertions with unique case inside. (#2199) [hdzhangdoc] 507* Fix implicit conversion of floats to wide integers. 508 509 510Verilator 4.030 2020-03-08 511========================== 512 513**Major:** 514 515* Add split_var metacomment to assist UNOPTFLAT fixes. (#2066) [Yutetsu TAKATSUKASA] 516* Support $dumpfile and $dumpvars. (#2126) [Alexander Grobman] 517* Support dynamic arrays. (#379) 518 519**Minor:** 520 521* Add +verilator+noassert flag to disable assertion checking. [Tobias Wölfel] 522* Add check for assertOn for asserts. (#2162) [Tobias Wölfel] 523* Add --structs-packed for forward compatibility. 524* Support $displayb/o/h, $writeb/o/h, etc. (#1637) 525* Use gcc -Os in examples instead of -O2 for better average performance. 526* Fix genblk naming with directly nested generate blocks. (#2176) [Alexander Grobman] 527* Fix undeclared VL_SHIFTR_WWQ. (#2114) [Alex Solomatnikov] 528 529 530Verilator 4.028 2020-02-08 531========================== 532 533**Major:** 534 535* Support attributes (public, isolate_assignments, etc.) in configuration files. 536* Add -match to lint_off to waive warnings. [Philipp Wagner] 537 538**Minor:** 539 540* Link Verilator binary partially statically. (#2146) [Geza Lore] 541* Verilation speed improvements (#2133) (#2138) [Geza Lore] 542* Support libgoogle-perftools-dev's libtcmalloc if available. (#2137) [Geza Lore] 543* Support $readmem/$writemem with assoc arrarys. (#2100) [agrobman] 544* Support type(expression) operator and $typename. (#1650) 545* Support left justified $display. (#2101) [Pieter Kapsenberg] 546* Support string character access via indexing. 547* Support enum.next(k) with constant k > 1. (#2125) [Tobias Rosenkranz] 548* Support parameter access from arrays of interfaces. (#2155) [Todd Strader] 549* Add parameter values in XML. #2110. [Pieter Kapsenberg] 550* Add loc column location in XML (replaces fl). (#2122) [Pieter Kapsenberg] 551* Add error on misused define. [Topa Tota] 552* Add parameter to set maximum signal width. (#2082) [Øyvind Harboe] 553* Add warning on genvar in normal for loop. (#2143) [Yuri Victorovich] 554* Fix VPI scope naming for public modules. [Nandu Raj] 555* Fix FST tracing of enums inside structs. [fsiegle] 556* Fix WIDTH warning on </<= of narrower value. (#2141) [agrobman] 557* Fix OpenSolaris issues. (#2154) [brancoliticus] 558* Fix gated clocks under --protect-lib. (#2169) [Todd Strader] 559 560 561Verilator 4.026 2020-01-11 562========================== 563 564**Major:** 565 566* Docker images are now available for Verilator releases. 567 568**Minor:** 569 570* Support bounded queues. 571* Support non-overlapping implication operator in assertions. (#2069) [Peter Monsson] 572* Support string compare, ato*, etc methods. (#1606) [Yutetsu TAKATSUKASA] 573* Support immediate cover statements. 574* Ignore `uselib to end-of-line. (#1634) [Frederic Antonin] 575* Update FST trace API for better performance. 576* Add vpiTimeUnit and allow to specify time as string. (#1636) [Stefan Wallentowitz] 577* Add error when `resetall inside module (IEEE 2017-22.3). 578* Add cleaner error on version control conflicts in sources. 579* Fix little endian cell ranges. (#1631) [Julien Margetts] 580* Fix queue issues (#1641) (#1643) [Peter Monsson, Stefan Wallentowitz] 581* Fix strcasecmp for windows. (#1651) [Kuba Ober] 582* Fix disable iff in assertions. Closes #1404. [Peter Monsson] 583* Fix huge case statement performance. Closes #1644. [Julien Margetts] 584* Fix tracing -1 index arrays. Closes #2090. [Yutetsu Takatsukasa] 585* Fix expand optimization slowing --lint-only. Closes #2091. [Thomas Watts] 586* Fix %{number}s with strings. #2093. [agrobman] 587* Fix shebang breaking some shells. Closes #2067. [zdave] 588 589 590Verilator 4.024 2019-12-08 591========================== 592 593**Major:** 594 595* Support associative arrays (excluding [*] and pattern assignments). (#544) 596* Support queues (excluding {} notation and pattern assignments). (#545) 597 598**Minor:** 599 600* Add +verilator+error+limit to see more assertion errors. [Peter Monsson] 601* Support string.toupper and string.tolower. 602* Support $rewind and $ungetc. 603* Support shortreal as real, with a SHORTREAL warning. 604* Add -Wpedantic and -Wno-context for compliance testing. 605* Add error on redefining preprocessor directives. [Piotr Binkowski] 606* Support $value$plusargs float and shorts. (#1592) (#1619) [Garrett Smith] 607* Fix gate lvalue optimization error. (#831) [Jonathon Donaldson, Driss Hafdi] 608* Fix color assertion on empty if. (#1604) [Andrew Holme] 609* Fix for loop missing initializer. (#1605) [Andrew Holme] 610* Fix hang on concat error. (#1608) [Bogdan Vukobratovic] 611* Fix VPI timed callbacks to be one-shot, pull5. [Matthew Ballance] 612* Fix // in filenames. (#1610) [Peter Nelson] 613* Fix $display("%p") to be closer to IEEE. 614* Fix labels on functions with returns. (#1614) [Mitch Hayenga] 615* Fix false unused message on __Vemumtab. (#2061) [Tobias Rosenkranz] 616* Fix assertion on dotted parameter arrayed function. (#1620) [Rich Porter] 617* Fix interface reference tracing. (#1595) [Todd Strader] 618* Fix error on unpacked concatenations. (#1627) [Driss Hafdi] 619 620 621Verilator 4.022 2019-11-10 622========================== 623 624**Major:** 625 626* Add --protect-lib. (#1490) [Todd Strader] 627* Add cmake support. (#1363) [Patrick Stewart] 628 629**Minor:** 630 631* Examples have been renamed. 632* Add --protect-ids to obscure information in objects. (#1521) [Todd Strader] 633* Add --trace-coverage. 634* Add --xml-output. 635* Support multithreading on Windows. [Patrick Stewart] 636* Suppress 'command failed' on normal errors. 637* Support some unpacked arrays in parameters. (#1315) [Marshal Qiao] 638* Add interface port visibility in traces. (#1594) [Todd Strader] 639* Increase case duplicate/incomplete to 16 bit tables. (#1545) [Yossi Nivin] 640* Support quoted arguments in -f files. (#1535) [Yves Mathieu] 641* Optimize modulus by power-of-two constants, and masked conditionals. 642* Fix detecting missing reg types. (#1570) [Jacko Dirks] 643* Fix multithreaded yield behavior when no work. [Patrick Stewart] 644* Fix bad-syntax crashes. (#1548, #1550-#1553, #1557-#1560, #1563, 645 #1573-#1577, #1579, #1582-#1591) [Eric Rippey] 646* Fix false CMPCONST/UNSIGNED warnings on "inside". (#1581) [Mitch Hayenga] 647 648 649Verilator 4.020 2019-10-06 650========================== 651 652**Minor:** 653 654* Add --public-flat-rw. (#1511) [Stefan Wallentowitz] 655* Support $fseek, $ftell, $frewind. (#1496) [Howard Su] 656* Support vpiModule. (#1469) [Stefan Wallentowitz] 657* Make Syms file honor --output-split-cfuncs. (#1499) [Todd Strader] 658* Fix make test with no VERILATOR_ROOT. (#1494) [Ahmed El-Mahmoudy] 659* Fix error on multidimensional cells. (#1505) [Anderson Ignacio Da Silva] 660* Fix config_rev revision detection on old versions. 661* Fix false warning on backward indexing. (#1507) [Hao Shi] 662* Fix vpiType accessor. (#1509) (#1510) [Stefan Wallentowitz] 663* Fix ugly error on interface misuse. (#1525) [Bogdan Vukobratovic] 664* Fix misc bad-syntax crashes. (#1529) (#1530) (#1531) (#1532) (#1533) [Eric Rippey] 665* Fix case statements with strings. (#1536) [Philipp Wagner] 666* Fix some coverage lost when multithreaded. (#2151) 667 668 669Verilator 4.018 2019-08-29 670========================== 671 672**Major:** 673 674* When showing an error, show source code and offer suggestions of replacements. 675* When showing an error, show the instance location. (#1305) [Todd Strader] 676 677**Minor:** 678 679* Add --rr. (#1481) [Todd Strader] 680* Change MULTITOP to warning to help linting, see manual. 681* Add XSim support to driver.pl. (#1493) [Todd Strader] 682* Add --dpi-hdr-only. (#1491) [Todd Strader] 683* Show included-from filenames in warnings. (#1439) [Todd Strader] 684* Fix elaboration time errors. (#1429) [Udi Finkelstein] 685* Fix not reporting some duplicate signals/ports. (#1462) [Peter Gerst] 686* Fix not in array context on non-power-of-two slices. (#2027) [Yu Sheng Lin] 687* Fix system compile flags injection. [Gianfranco Costamagna] 688* Fix enum values not being sized based on parent. (#1442) [Dan Petrisko] 689* Fix internal error on gate optimization of assign. (#1475) [Oyvind Harboe] 690 691 692 693Verilator 4.016 2019-06-16 694========================== 695 696**Minor:** 697 698* Add --quiet-exit. (#1436) [Todd Strader] 699* Error continuation lines no longer have %Error prefix. 700* Support logical equivalence operator <->. 701* Support VerilatedFstC set_time_unit. (#1433) [Pieter Kapsenberg] 702* Support deferred assertions. (#1449) [Charles Eddleston] 703* Mark infrequently called functions with GCC cold attribute. 704* Fix sign-compare warning in verilated.cpp. (#1437) [Sergey Kvachonok] 705* Fix fault on $realtime with %t. (#1443) [Julien Margetts] 706* Fix $display with string without %s. (#1441) [Denis Rystsov] 707* Fix parameter function string returns. (#1441) [Denis Rystsov] 708* Fix invalid XML output due to special chars. (#1444) [Kanad Kanhere] 709* Fix performance when mulithreaded on 1 CPU. (#1455) [Stefan Wallentowitz] 710* Fix type and real parameter issues (#1427) (#1456) (#1458) [Todd Strader] 711* Fix build error on MinGW. (#1460) [Richard Myers] 712* Fix not reporting some duplicate signals. (#1462) [Peter Gerst] 713* Fix --savable invalid C++ on packed arrays. (#1465) [Alex Chadwick] 714* Fix constant function return of function var. (#1467) [Roman Popov] 715 716 717Verilator 4.014 2019-05-08 718========================== 719 720**Minor:** 721 722* Add --trace-fst-thread. 723* Support '#' comments in $readmem. (#1411) [Frederick Requin] 724* Support "'dx" constants. (#1423) [Udi Finkelstein] 725* For FST tracing use LZ4 compression. [Tony Bybell] 726* Add error when use parameters without value. (#1424) [Peter Gerst] 727* Auto-extend and WIDTH warn on unsized X/Zs. (#1423) [Udi Finkelstein] 728* Fix missing VL_SHIFTL errors. (#1412) (#1415) [Larry Lee] 729* Fix MinGW GCC 6 printf formats. (#1413) [Sergey Kvachonok] 730* Fix test problems when missing fst2vcd. (#1417) [Todd Strader] 731* Fix GTKWave register warning. (#1421) [Pieter Kapsenberg] 732* Fix FST enums not displaying. (#1426) [Danilo Ramos] 733* Fix table compile error with multiinterfaces. (#1431) [Bogdan Vukobratovic] 734 735 736Verilator 4.012 2019-03-23 737========================== 738 739**Minor:** 740 741* Add +verilator+seed. (#1396) [Stan Sokorac] 742* Support $fread. [Leendert van Doorn] 743* Support void' cast on functions called as tasks. (#1383) [Al Grant] 744* Add IGNOREDRETURN warning. (#1383) 745* Report PORTSHORT errors on concat constants. (#1400) [Will Korteland] 746* Fix VERILATOR_GDB being ignored. (#2017) [Yu Sheng Lin] 747* Fix $value$plus$args missing verilated_heavy.h. [Yi-Chung Chen] 748* Fix MSVC compile error. (#1406) [Benjamin Gartner] 749* Fix maintainer test when no Parallel::Forker. (#1977) [Enzo Chi] 750* Fix +1364-1995ext flags applying too late. (#1384) [Al Grant] 751 752 753Verilator 4.010 2019-01-27 754========================== 755 756**Minor:** 757 758* Removed --trace-lxt2, use --trace-fst instead. 759* For --xml, add additional information. (#1372) [Jonathan Kimmitt] 760* Add circular typedef error. (#1388) [Al Grant] 761* Add unsupported for loops error. (#1986) [Yu Sheng Lin] 762* Fix FST tracing of wide arrays. (#1376) [Aleksander Osman] 763* Fix error when pattern assignment has too few elements. (#1378) [Viktor Tomov] 764* Fix error when no modules in $unit. (#1381) [Al Grant] 765* Fix missing too many digits warning. (#1380) [Jonathan Kimmitt] 766* Fix uninitialized data in verFiles and unroller. (#1385) (#1386) [Al Grant] 767* Fix internal error on xrefs into unrolled functions. (#1387) [Al Grant] 768* Fix DPI export void compiler error. (#1391) [Stan Sokorac] 769 770 771Verilator 4.008 2018-12-01 772========================== 773 774**Minor:** 775 776* Support "ref" and "const ref" pins and functions. (#1360) [Jake Longo] 777* In --xml-only show the original unmodified names, and add module_files 778 and cells similar to Verilog-Perl, msg2719. [Kanad Kanhere] 779* Add CONTASSREG error on continuous assignments to regs. (#1369) [Peter Gerst] 780* Add PROCASSWIRE error on behavioral assignments to wires, msg2737. [Neil Turton] 781* Add IMPORTSTAR warning on import::* inside $unit scope. 782* Fix --trace-lxt2 compile error on MinGW. (#1990) [HyungKi Jeong] 783* Fix hang on bad pattern keys. (#1364) [Matt Myers] 784* Fix crash due to cygwin bug in getline. (#1349) [Affe Mao] 785* Fix __Slow files getting compiled with OPT_FAST. (#1370) [Thomas Watts] 786 787 788Verilator 4.006 2018-10-27 789========================== 790 791**Minor:** 792 793* Add --pp-comments. (#1988) [Robert Henry] 794* Add --dump-defines. 795* For --trace-fst, save enum decoding information. (#1358) [Sergi Granell] 796 (To visualize enumeration data you must use GTKwave 3.3.95 or newer.) 797* For --trace-fst, combine hier information into FST. [Tony Bybell] 798* Fix --trace-lxt2 compile error on MinGW, msg2667. [HyungKi Jeong] 799* Fix Windows .exe not found. (#1361) [Patrick Stewart] 800 801 802Verilator 4.004 2018-10-06 803========================== 804 805**Major:** 806 807* Add GTKWave FST native tracing. (#1356) [Sergi Granell] 808 (Verilator developers need to pull the latest vcddiff.) 809 810**Minor:** 811 812* Support $past. [Dan Gisselquist] 813* Support restrict. (#1350) [Clifford Wolf] 814* Rename include/lxt2 to include/gtkwave. 815* Fix replication of 64-bit signal change detects. 816* Fix Mac OSX 10.13.6 / LLVM 9.1 compile issues. (#1348) [Kevin Kiningham] 817* Fix MinGW compile issues. (#1979) [HyungKi Jeong] 818 819 820Verilator 4.002 2018-09-16 821========================== 822 823**Major:** 824 825* This is a major release. Any patches may require major rework to apply. 826 [Thanks everyone] 827* Add multithreaded model generation. 828* Add runtime arguments. 829* Add GTKWave LXT2 native tracing. (#1333) [Yu Sheng Lin] 830* Note $random has new algorithm; results may vary vs. previous versions. 831 832**Minor:** 833 834* Better optimize large always block splitting. (#1244) [John Coiner] 835* Add new reloop optimization for repetitive assignment compression. 836* Support string.atoi and similar methods. (#1289) [Joel Holdsworth] 837* Fix internals to be C++ null-pointer-check clean. 838* Fix internals to avoid 'using namespace std'. 839* Fix Verilation performance issues. (#1316) [John Coiner] 840* Fix clocker attributes to not propagate on concats. [John Coiner] 841* Fix first clock edge and --x-initial-edge. (#1327) [Rupert Swarbrick] 842* Fix compile error on tracing of string arrays. (#1338) [Iztok Jeras] 843* Fix number parsing with newline after radix. (#1340) [George Cuan] 844* Fix string ?: conditional type resolution. (#1345) [Iztok Jeras] 845* Fix duplicate symbol error on generate tri. (#1347) [Tomas Dzetkulic] 846 847 848Verilator 3.926 2018-08-22 849========================== 850 851**Minor:** 852 853* Add OBJCACHE envvar support to examples and generated Makefiles. 854* Change MODDUP errors to warnings. (#1969) [Marshal Qiao] 855* Fix define argument stringification (`"), broke since 3.914. [Joe DErrico] 856* Fix to ignore Unicode UTF-8 BOM sequences. (#1967) [HyungKi Jeong] 857* Fix std:: build error. (#1322) 858* Fix function inlining inside certain while loops. (#1330) [Julien Margetts] 859 860 861Verilator 3.924 2018-06-12 862========================== 863 864**Minor:** 865 866* Renamed --profile-cfuncs to --prof-cfuncs. 867* Report interface ports connected to wrong interface. (#1294) [Todd Strader] 868* When tracing, use scalars on single bit arrays to appease vcddiff. 869* Fix parsing "output signed" in V2K port list, msg2540. [James Jung] 870* Fix parsing error on bad missing #. (#1308) [Dan Kirkham] 871* Fix $clog2 to be in verilog 2005. (#1319) [James Hutchinson] 872 873 874Verilator 3.922 2018-03-17 875========================== 876 877**Major:** 878 879* Support IEEE 1800-2017 as default language. 880 881**Minor:** 882 883* Support trig functions ($sin() etc). (#1281) [Patrick Stewart] 884* Support calling system functions as tasks. (#1285) [Joel Holdsworth] 885* Support assert properties. (#785) (#1290) [John Coiner, et al] 886* Support $writememh. [John Coiner] 887* Add --no-debug-leak to reduce memory use under debug. [John Coiner] 888* Fix severe runtime performance bug in certain foreach loops. [John Coiner] 889* On convergence errors, show activity. [John Coiner] 890* Fix GCC 8.0 issues. (#1273) 891* Fix pullup/pulldowns on bit selects. (#1274) [Rob Stoddard] 892* Fix verilator_coverage --annotate-min. (#1284) [Tymoteusz Blazejczyk] 893* Fix quoting of quoted arguments. [John Coiner] 894 895 896Verilator 3.920 2018-02-01 897========================== 898 899**Announcement:** 900 901* Moving forward, use the git "stable" branch to track the latest release, 902 and git "v#.###" tags for specific releases. 903 904**Minor:** 905 906* Support 'assume' similar to 'assert'. (#1269) [Dan Gisselquist] 907* Remove c++filt. (#1265) [Stefan Wallentowitz] 908* Fix tracing example file output. (#1268) [Enzo Chi] 909* Fix gate optimization out of memory, add --gate-stmts. (#1260) [Alex Solomatnikov] 910* Fix compile error on public real parameters by suppressing. (#1261) [Alex Solomatnikov] 911* Fix input-only tristate comparisons. (#1267) [Alexis G] 912* Fix missing edge type in xml output. (#1955) [Alexis G] 913* Fix compile error with --public and interface bind. (#1264) [Alexis G] 914 915 916Verilator 3.918 2018-01-02 917========================== 918 919**Minor:** 920 921* Workaround GCC/clang bug with huge compile times. (#1248) 922* Support DPI open arrays. (#909) (#1245) [David Pierce, Victor Besyakov] 923* Add INFINITELOOP warning. (#1254) [Alex Solomatnikov] 924* Support > 64 bit decimal $display. 925* Support DPI time and svLogicVal. [Victor Besyakov] 926 Note older version incorrectly assumed svBitVal even for logicals. 927* Support string len() method. [Victor Besyakov] 928* Add error if always_comb has sensitivity list. [Arjen Roodselaar] 929* Fix SystemC 2.3.2 compile error. (#1251) [Tymoteusz Blazejczyk] 930* Fix modport outputs being treated as inputs. (#1246) [Jeff Bush] 931* Fix false ALWCOMBORDER on interface references. (#1247) [Josh Redford] 932* Fix constant propagation across DPI imports of inout strings. [Victor Besyakov] 933* Fix resolving inline nested interface names. (#1250) [Arjen Roodselaar] 934* Fix GCC false warning on array bounds. (#2386) 935 936 937Verilator 3.916 2017-11-25 938========================== 939 940**Minor:** 941 942* Support self-recursive modules. (#659) [Sean Moore, et al] 943* Support $error/$warning in elaboration time blocks. 944* Support $size/$bits/etc on type references. 945* Add error when driving input-only modport. (#1110) [Trevor Elbourne] 946* Add BSSPACE and COLONPLUS lint warnings. 947* Detect MSB overflow when under VL_DEBUG. (#1238) [Junyi Xi] 948* Add data types to --xml. [Rui Terra] 949* Fix partial slicing with pattern assignments. (#991) [Johan Bjork] 950* Fix false unused warning on interfaces. (#1241) [Laurens van Dam] 951* Fix error on "unique case" with no cases. 952* Fix MacOS portability. (#1232) [Jeff Bush] 953 954 955Verilator 3.914 2017-10-14 956========================== 957 958**Major:** 959 960* Add new examples/ directory with appropriate examples. This replaces the 961 old test_c and test_sc directories. 962 963**Minor:** 964 965* Add --getenv option for simplifying Makefiles. 966* Add --x-initial option for specifying initial value assignment behavior. 967* Add --no-relative-cfuncs and related default optimization. (#1224) [John Coiner] 968* Add /*verilator tag*/ for XML extraction applications. [Chris Randall] 969* The internal test_verilated test directory is moved to be part of test_regress. 970* The experimental VL_THREADED setting (only, not normal mode) now requires C++11. 971* Fix over-aggressive inlining. (#1223) [John Coiner] 972* Fix Ubuntu 17.10 issues. (#1223 partial). [John Coiner] 973* Fix compiler warning when WIDTH warning ignored on large compare. 974* Fix memory leak in VerilatedVcd dumps. (#1222 partial) [Shareef Jalloq] 975* Fix unnecessary Vdly variables. (#1224 partial) [John Coiner] 976* Fix conditional slices and add related optimizations. 977* Fix \`\` expansion of `defines. (#1225) (#1227) (#1228) [Odd Magne Reitan] 978* Fix -E duplicating output. (#1226) [Odd Magne Reitan] 979* Fix float-conversion warning. (#1229) [Robert Henry] 980* Fix MacOS portability. (#1230) (#1231) [Jeff Bush] 981 982 983Verilator 3.912 2017-09-23 984========================== 985 986**Major:** 987 988* Verilated headers no longer "use namespace std;" 989 User's code without "std::" prefixes may need "use namespace std;" to compile. 990 991**Minor:** 992 993* Support or/and/xor array intrinsic methods. (#1210) [Mike Popoloski] 994* Support package export. (#1217) [Usuario Eda] 995* Support module port parameters without defaults. (#1213) [Mike Popoloski] 996* Add performance information to --stats file. 997* Simplify VL_CONST_W macro generation for faster compiles. 998* Optimize improvements for Shift-And, and replication constructs. 999* Fix ordering of arrayed cell wide connections. (#1202 partial) [Mike Popoloski] 1000* Fix LITENDIAN warning on arrayed cells. (#1202) [Mike Popoloski] 1001* Fix enum ranges without colons. (#1204) [Mike Popoloski] 1002* Fix GCC noreturn compile error. (#1209) [Mike Popoloski] 1003* Fix constant function default parameters. (#1211) [Mike Popoloski] 1004* Fix non-colon array of interface modports. (#1212) [Mike Popoloski] 1005* Fix .name connections on interfaces. (#1214) [Mike Popoloski] 1006* Fix wide array indices causing compile error. 1007 1008 1009Verilator 3.910 2017-09-07 1010========================== 1011 1012**Major:** 1013 1014* SystemPerl mode (-sp-deprecated) has been removed. 1015 1016**Minor:** 1017 1018* Update keyword warnings to include C++11 and others. 1019 1020 1021Verilator 3.908 2017-08-28 1022========================== 1023 1024**Minor:** 1025 1026* Support x in $readmem. (#1180) [Arthur Kahlich] 1027* Support packed struct DPI imports. (#1190) [Rob Stoddard] 1028* Fix GCC 6 warnings. 1029* Fix compile error on unused VL_VALUEPLUSARGS_IW. (#1181) [Thomas J Whatson] 1030* Fix undefined VL_POW_WWI. [Clifford Wolf] 1031* Fix internal error on unconnected inouts. (#1187) [Rob Stoddard] 1032 1033 1034Verilator 3.906 2017-06-22 1035========================== 1036 1037**Minor:** 1038 1039* Support set_time_unit/set_time_precision in C traces. (#1937) 1040* Fix extract of packed array with non-zero LSB. (#1172) [James Pallister] 1041* Fix shifts by more than 32-bit numbers. (#1174) [Clifford Wolf] 1042* Fix power operator on wide constants. (#761) [Clifford Wolf] 1043* Fix .* on interface pins. (#1176) [Maciej Piechotka] 1044 1045 1046Verilator 3.904 2017-05-30 1047========================== 1048 1049**Minor:** 1050 1051* Fix non-cutable ordering loops on clock arrays. (#1009) [Todd Strader] 1052* Support ports of array of reals. (#1154) [J Briquet] 1053* Support arrayed parameter overrides. (#1153) [John Stevenson] 1054* Support $value$plusargs with variables. (#1165) [Wesley Terpstra] 1055* Support modport access to un-modport objects. (#1161) [Todd Strader] 1056* Add stack trace when can't optimize function. (#1158) [Todd Strader] 1057* Add warning on mis-sized literal. (#1156) [Todd Strader] 1058* Fix interface functions returning wrong parameters. (#996) [Todd Strader] 1059* Fix non-arrayed cells with interface arrays. (#1153) [John Stevenson] 1060* Fix --assert with complex case statements. (#1164) [Enzo Chi] 1061 1062 1063Verilator 3.902 2017-04-02 1064========================== 1065 1066**Major:** 1067 1068* Add -FI option to force includes. (#1916) [Amir Gonnen] 1069* Add --relative-includes. [Rob Stoddard] 1070 1071**Minor:** 1072 1073* Add error on duplicate pattern assignments. (#1145) [Johan Bjork] 1074* Fix error on improperly widthed default function. (#984) [Todd Strader] 1075* Fix 2009 localparam syntax, msg2139. [Galen Seitz] 1076* Fix ugly interface-to-non-interface errors. (#1112) [Johan Bjork] 1077* Fix LDFLAGS and CFLAGS not preserving order. (#1130) [Olof Kindgren] 1078* Fix internal error on initializing parameter array. (#1131) [Jie Xu] 1079* Fix internal error on interface arrays. (#1135) [John Stevenson] 1080* Fix calling sformatf to display, and elab $displays. (#1139) [Johan Bjork] 1081* Fix realpath compile issue on MSVC++. (#1141) [Miodrag Milanovic] 1082* Fix missing error on interface size mismatch. (#1143) [Johan Bjork] 1083* Fix error on parameters with dotted references. (#1146) [Johan Bjork] 1084* Fix wreal not handling continuous assign. (#1150) [J Briquet] 1085* Fix nested structure parameter selects. (#1150) [J Briquet] 1086 1087 1088Verilator 3.900 2017-01-15 1089========================== 1090 1091**Major:** 1092 1093* Internal code changes for improved compatibility and performance. 1094 1095**Minor:** 1096 1097* Support old-style $display($time). (#467) [John Demme] 1098* With --bbox-unsup, suppress desassign and mixed edges. (#1120) [Galen Seitz] 1099* Fix parsing sensitivity with &&. (#934) [Luke Yang] 1100* Fix internal error on double-for loop unrolling. (#1044) [Jan Egil Ruud] 1101* Fix internal error on unique casez with --assert. (#1117) [Enzo Chi] 1102* Fix bad code when tracing array of structs. (#1122) [Andrew Bardsley] 1103 1104 1105Verilator 3.890 2016-11-25 1106========================== 1107 1108**Minor:** 1109 1110* Honor --output-split on coverage constructors. (#1098) [Johan Bjork] 1111* Fix various issues when making outside of the kit. 1112* Fix flex 2.6.2 bug. (#1103) [Sergey Kvachonok] 1113* Fix error on bad interface name. (#1097) [Todd Strader] 1114* Fix error on referencing variable in parent. (#1099) [Ian Thompson] 1115* Fix type parameters with low optimization. (#1101) [Stefan Wallentowitz] 1116 1117 1118Verilator 3.888 2016-10-14 1119========================== 1120 1121**Major:** 1122 1123* Support foreach. (#1078) [Xuan Guo] 1124 1125**Minor:** 1126 1127* Add --no-decoration to remove output comments, msg2015. [Frederic Requin] 1128* If VM_PARALLEL_BUILDS=1, use OPT_FAST and OPT_SLOW. [Frederic Requin] 1129 Set VM_DEFAULT_RULES=0 for old behavior. 1130* Add error on DPI functions > 32 bits. (#1898) [Elliot Mednick] 1131* Improve Verilation performance on internal strings. (#1896) [Johan Bjork] 1132* Improve Verilation performance on trace duplicates. (#1090) [Johan Bjork] 1133* Fix SystemC compiles with VPI. (#1081) [Arthur Kahlich] 1134* Fix error on wide numbers that represent shifts, msg1991. (#1088) [Mandy Xu] 1135 1136 1137Verilator 3.886 2016-07-30 1138========================== 1139 1140**Minor:** 1141 1142* Fix enum values of 11-16 bits wide using .next/.prev. (#1062) [Brian Flachs] 1143* Fix false warnings on non-power-2 enums using .next/.prev. 1144* Fix comparison of unpacked arrays. (#1071) [Andrew Bardsley] 1145* Fix compiler warning in GCC 6. [David Horton] 1146 1147 1148Verilator 3.884 2016-05-18 1149========================== 1150 1151**Major:** 1152 1153* Support parameter type. (#376) [Alan Hunter, et al] 1154* Support command-line -G/+pvalue param overrides. (#1045) [Stefan Wallentowitz] 1155* Add --l2-name option for controlling "v" naming. 1156* The default l2 scope name is now the same as the top-level module. (#1050) 1157 Use "--l2-name v" for the historical behavior. 1158 1159**Minor:** 1160 1161* Fix --output-split of constructors. (#1035) [Johan Bjork] 1162* Fix removal of empty packages, modules and cells. (#1034) [Johan Bjork] 1163* Fix core dump on Arch Linux/GCC 6.1.1. (#1058) [Jannis Harder] 1164* Fix $value$plusargs to string. (#1880) [Frederic Requin] 1165 1166 1167Verilator 3.882 2016-03-01 1168========================== 1169 1170**Minor:** 1171 1172* Internal Verilation-time performance enhancements. (#1021) [Johan Bjork] 1173* Support inlining interfaces. (#1018) [Johan Bjork] 1174* Support SV strings to readmemh. (#1040) [Stefan Wallentowitz] 1175* Fix unrolling complicated for-loop bounds. (#677) [Johan Bjork] 1176* Fix stats file containing multiple unroll entries. (#1020) [Johan Bjork] 1177* Fix using short parameter names on negative params. (#1022) [Duraid Madina] 1178* Fix read-after-free error. (#1031) [Johan Bjork] 1179* Fix elaboration-time display warnings. (#1032) [Johan Bjork] 1180* Fix crash on very deep function trees. (#1028) [Jonathan Kimmitt] 1181* Fix slicing mix of big and little-endian. (#1033) [Geoff Barrett] 1182* Fix pattern assignment width propagation. (#1037) [Johan Bjork] 1183 1184 1185Verilator 3.880 2015-12-19 1186========================== 1187 1188**Minor:** 1189 1190* Support display %u, %v, %p, %z. (#989) [Johan Bjork] 1191* Fix real parameters causing bad module names. (#992) [Johan Bjork] 1192* Fix size-changing cast on packed struct. (#993) [Johan Bjork] 1193* Fix function calls on arrayed interface. (#994) [Johan Bjork] 1194* Fix arrayed interfaces. (#879) (#1001) [Todd Strader] 1195* Fix constant function assigned to packed structs. (#997) [Johan Bjork] 1196* Fix interface inside generate. (#998) [Johan Bjork] 1197* Fix $signed casts under generates. (#999) [Clifford Wolf] 1198* Fix genvar constant propagation. (#1003) [Johan Bjork] 1199* Fix parameter constant propagation from package. (#1004) [Johan Bjork] 1200* Fix array slicing of non-const indexes. (#1006) [Johan Bjork] 1201* Fix dotted generated array error. (#1005) [Jeff Bush, Johan Bjork] 1202* Fix error instead of warning on large concat. (#1865) [Paul Rolfe] 1203* Fix $bitstoreal constant propagation. (#1012) [Jonathan Kimmitt] 1204* Fix model restore crash. (#1013) [Jason McMullan] 1205* Fix arrayed instances to unpacked of same size. (#1015) [Varun Koyyalagunta] 1206* Fix slices of unpacked arrays with non-zero LSBs. 1207* Fix ternary operation with unpacked array. (#1017) [Varun Koyyalagunta]. 1208 1209 1210Verilator 3.878 2015-11-01 1211========================== 1212 1213**Major:** 1214 1215* Add --vpi flag, and fix VPI linkage. (#969) [Arthur Kahlich] 1216* Support genvar indexes into arrayed cells. (#517) [Todd Strader] 1217* Support $sformatf. (#977) [Johan Bjork] 1218* Support elaboration assertions. (#973) [Johan Bjork] 1219* Support $display with non-format arguments. (#467) [Jamey Hicks] 1220 1221**Minor:** 1222 1223* Add VerilatedScopeNameMap for introspection. (#966) [Todd Strader] 1224* Ignore %l in $display. (#983) [Todd Strader] 1225* Fix very long module names. (#937) [Todd Strader] 1226* Fix internal error on dotted refs into generates. (#958) [Jie Xu] 1227* Fix structure parameter constant propagation. (#968) [Todd Strader] 1228* Fix enum constant propagation. (#970) [Todd Strader] 1229* Fix mis-optimizing public DPI functions. (#963) [Wei Song] 1230* Fix package:scope.scope variable references. 1231* Fix $fwrite to constant stderr/stdout. (#961) [Wei Song] 1232* Fix struct.enum.name method calls. (#855) [Jonathon Donaldson] 1233* Fix dot indexing into arrayed inferfaces. (#978) [Johan Bjork] 1234* Fix crash in commandArgsPlusMatch. (#987) [Jamie Iles] 1235* Fix error message on missing interface. (#985) [Todd Strader] 1236 1237 1238Verilator 3.876 2015-08-12 1239========================== 1240 1241**Minor:** 1242 1243* Add tracing_on, etc to vlt files. (#932) [Frederic Requin] 1244* Support extraction of enum bits. (#951) [Jonathon Donaldson] 1245* Fix MinGW compiler error. (#927) (#929) [Hans Tichelaar] 1246* Fix .c files to be treated as .cpp. (#930) [Jonathon Donaldson] 1247* Fix string-to-int space conversion. (#931) [Fabrizio Ferrandi] 1248* Fix dpi imports inside generates. [Michael Tresidder] 1249* Fix rounding in trace $timescale. (#946) [Frederic Requin] 1250* Fix $fopen with SV string. (#947) [Sven Stucki] 1251* Fix hashed error with typedef inside block. (#948) [Sven Stucki] 1252* Fix makefile with --coverage. (#953) [Eivind Liland] 1253* Fix coverage documentation. (#954) [Thomas J Whatson] 1254* Fix parameters with function parameter arguments. (#952) [Jie Xu] 1255* Fix size casts as second argument of cast item. (#950) [Jonathon Donaldson] 1256 1257 1258Verilator 3.874 2015-06-06 1259========================== 1260 1261**Minor:** 1262 1263* Add pkg-config .pc file. (#919) [Stefan Wallentowitz] 1264* Fix installing missing manpages. (#908) [Ahmed El-Mahmoudy] 1265* Fix sign extension in large localparams. (#910) [Mike Thyer] 1266* Fix core dump in sync-async warnings. (#911) [Sebastian Dressler] 1267* Fix truncation warning with -pins-bv. (#912) [Alfonso Martinez] 1268* Fix Cygwin uint32 compile. (#914) [Matthew Barr] 1269* Fix preprocessing stringified newline escapes. (#915) [Anton Rapp] 1270* Fix part-select in constant function. (#916) [Andrew Bardsley] 1271* Fix width extension on mis-width ports. (#918) [Patrick Maupin] 1272* Fix width propagation on sized casts. (#925) [Jonathon Donaldson] 1273* Fix MSVC++ compiler error. (#927) [Hans Tichelaar] 1274 1275 1276Verilator 3.872 2015-04-05 1277========================== 1278 1279**Minor:** 1280 1281* Add VerilatedVcdFile to allow real-time waveforms. (#890) [HyungKi Jeong] 1282* Add --clk and related optimizations. (#1840) [Jie Xu] 1283* Fix order of C style arrays. [Duraid Madina] 1284* Add --dump-treei-<srcfile>. (#894) [Jie Xu] 1285* Fix comma-instantiations with parameters. (#884) [Franck Jullien] 1286* Fix SystemC arrayed bit vectors. (#886) [David Poole] 1287* Fix compile error on MinGW. (#887) [HyungKi Jeong] 1288 1289 1290Verilator 3.870 2015-02-12 1291========================== 1292 1293**Minor:** 1294 1295* Suppress COMBDLY when inside always_latch. (#864) [Iztok Jeras] 1296* Support cast operator with expression size. (#865) [Iztok Jeras] 1297* Add warning on slice selection out of bounds. (#875) [Cong Van Nguyen]. 1298* Fix member select error broke in 3.868. (#867) [Iztok Jeras] 1299* Fix $sccanf from string. (#866) [David Pierce] 1300* Fix VM_PARALLEL_BUILDS broke in 3.868. (#870) [Hiroki Honda] 1301* Fix non-ANSI modport instantiations. (#868) [Kevin Thompson] 1302* Fix UNOPTFLAT change detect on multidim arrays. (#872) [Andrew Bardsley] 1303* Fix slice connections of arrays to ports. (#880) [Varun Koyyalagunta] 1304* Fix mis-optimizing gate assignments in unopt blocks. (#881) [Mike Thyer] 1305* Fix sign extension of pattern members. (#882) [Iztok Jeras] 1306* Fix clang compile warnings. 1307 1308 1309Verilator 3.868 2014-12-20 1310========================== 1311 1312**Major:** 1313 1314* New verilator_coverage program added to replace SystemPerl's vcoverage. 1315* PSL support was removed, please use System Verilog assertions. 1316* SystemPerl mode is deprecated and now untested. 1317 1318**Minor:** 1319 1320* Support enum.first/name and similar methods. (#460) (#848) 1321* Add 'string' printing and comparisons. (#746) (#747) etc. 1322* Inline C functions that are used only once. (#1838) [Jie Xu] 1323* Fix tracing SystemC signals with structures. (#858) [Eivind Liland] 1324 Note that SystemC traces will no longer show the signals 1325 in the wrapper, they can be seen one level further down. 1326* Add --stats-vars. (#851) [Jeremy Bennett] 1327* Fix bare generates in interfaces. (#789) [Bob Newgard] 1328* Fix underscores in real literals. (#863) [Jonathon Donaldson] 1329 1330 1331Verilator 3.866 2014-11-15 1332========================== 1333 1334**Minor:** 1335 1336* Fix +define+A+B to define A and B to match other simulators. (#847) [Adam Krolnik] 1337* Add optimization of wires from arrayed cells. (#1831) [Jie Xu] 1338* Add optimization of operators between concats. (#1831) [Jie Xu] 1339* Add public enums. (#833) [Jonathon Donaldson] 1340* Trace_off now operates on cells. (#826) [Lane Brooks] 1341* Fix public parameters in unused packages. (#804) [Jonathon Donaldson] 1342* Fix select when partially out-of-bound. (#823) [Clifford Wolf] 1343* Fix generate unrolling with function call. (#830) [Steven Slatter] 1344* Fix cast-to-size context-determined sizing. (#828) [Geoff Barrett] 1345* Fix not tracing modules following primitives. (#837) [Jie Xu] 1346* Fix trace overflow on huge arrays. (#834) [Geoff Barrett] 1347* Fix quoted comment slashes in defines. (#845) [Adam Krolnik] 1348 1349 1350Verilator 3.864 2014-09-21 1351========================== 1352 1353**Minor:** 1354 1355* Support power operator with real. (#809) [Jonathon Donaldson] 1356* Improve verilator_profcfunc time attributions. [Jonathon Donaldson] 1357* Fix duplicate anonymous structures in $root. (#788) [Bob Newgard] 1358* Fix mis-optimization of bit-swap in wide signal. (#800) [Jie Xu] 1359* Fix error when tracing public parameters. (#722) [Jonathon Donaldson] 1360* Fix dpiGetContext in dotted scopes. (#740) [Geoff Barrett] 1361* Fix over-shift structure optimization error. (#803) [Jeff Bush] 1362* Fix optional parameter keyword in module #(). (#810) [Iztok Jeras] 1363* Fix $warning/$error multi-argument ordering. (#816) [Jonathon Donaldson] 1364* Fix clang warnings. (#818) [Iztok Jeras] 1365* Fix string formats under deep expressions. (#820) [Iztok Jeras] 1366 1367 1368Verilator 3.862 2014-06-10 1369========================== 1370 1371**Minor:** 1372 1373* Using command line -Wno-{WARNING} now overrides file-local lint_on. 1374* Add -P to suppress `line and blanks with preprocessing. (#781) [Derek Lockhart] 1375* Support SV 2012 package import before port list. 1376* Change SYMRSVDWORD to print as warning rather than error. 1377* Fix seg-fault with variable of parameterized interface. (#692) [Jie Xu] 1378* Fix false name conflict on cells in generate blocks. (#749) [Igor Lesik] 1379* Fix pattern assignment to basic types. (#767) [Jie Xu] 1380* Fix pattern assignment to conditionals. (#769) [Jie Xu] 1381* Fix shift corner-cases. (#765) (#766) (#768) (#772) (#774) (#776) [Clifford Wolf] 1382* Fix C compiler interpreting signing. (#773) [Clifford Wolf] 1383* Fix late constant division by zero giving X error. (#775) [Clifford Wolf] 1384* Fix gate primitives with arrays and non-arrayed pins. 1385* Fix DETECTARRAY error on packed arrays. (#770) [Jie Xu] 1386* Fix ENDLABEL warnings on escaped identifiers. 1387* Fix string corruption. (#780) [Derek Lockhart] 1388 1389 1390Verilator 3.860 2014-05-11 1391========================== 1392 1393**Major:** 1394 1395* PSL is no longer supported, please use System Verilog assertions. 1396* Support '{} assignment pattern on arrays. (#355) 1397* Support streaming operators. (#649) [Glen Gibb] 1398* Fix expression problems with -Wno-WIDTH. (#729) (#736) (#737) (#759) 1399 Where WIDTH warnings were ignored this might result in different 1400 warning messages and results, though it should better match the spec. 1401 [Clifford Wolf] 1402 1403**Minor:** 1404 1405* Add --no-trace-params. 1406* Add assertions on 'unique if'. (#725) [Jeff Bush] 1407* Add PINCONNECTEMPTY warning. [Holger Waechtler] 1408* Support parameter arrays. (#683) [Jeremy Bennett] 1409* Documentation fixes. (#723) [Glen Gibb] 1410* Support {} in always sensitivity lists. (#745) [Igor Lesik] 1411* Fix begin_keywords "1800+VAMS". (#1806) 1412* Fix tracing of package variables and real arrays. 1413* Fix tracing of packed arrays without --trace-structs. (#742) [Jie Xu] 1414* Fix missing coverage line on else-if. (#727) [Sharad Bagri] 1415* Fix modport function import not-found error. 1416* Fix power operator calculation. (#730) (#735) [Clifford Wolf] 1417* Fix reporting struct members as reserved words. (#741) [Chris Randall] 1418* Fix change detection error on unions. (#758) [Jie Xu] 1419* Fix -Wno-UNOPTFLAT change detection with 64-bits. (#762) [Clifford Wolf] 1420* Fix shift-right optimization. (#763) [Clifford Wolf] 1421* Fix Mac OS-X test issues. [Holger Waechtler] 1422* Fix C++-2011 warnings. 1423 1424 1425Verilator 3.856 2014-03-11 1426========================== 1427 1428**Minor:** 1429 1430* Support case inside. (#708) [Jan Egil Ruud] 1431* Add parameters into trace files. (#706) [Alex Solomatnikov] 1432* Fix parsing "#0 'b0". (#256) 1433* Fix array bound checks on real variables. 1434* Fix --skip-identical mis-detecting on OS-X. (#707) 1435* Fix missing VL_SHIFTRS_IQI with WIDTH warning. (#714) [Fabrizio Ferrandi] 1436* Fix signed shift right optimization. (#715) [Fabrizio Ferrandi] 1437* Fix internal error on "input x =" syntax error. (#716) [Lane Brooks] 1438* Fix slice extraction from packed array. (#717) [Jan Egil Ruud] 1439* Fix inside statement EQWILD error. (#718) [Jan Egil Ruud] 1440 1441 1442Verilator 3.855 2014-01-18 1443========================== 1444 1445**Minor:** 1446 1447* Support modport import. (#696) [Jeremy Bennett] 1448* Add --trace-structs to show struct names. (#673) [Chris Randall] 1449* Fix tracing of packed structs. (#705) [Jie Xu] 1450* Fix --lint-only with MinGW. (#1813) [HyungKi Jeong] 1451* Fix some delayed assignments of typedefed unpacked arrays. 1452* Fix wire declarations with size and not range. (#466) [Alex Solomatnikov] 1453* Fix parameter pin vs. normal pin error. (#704) [Alex Solomatnikov] 1454 1455 1456Verilator 3.854 2013-11-26 1457========================== 1458 1459**Minor:** 1460 1461* Add UNPACKED warning to convert unpacked structs. [Jeremy Bennett] 1462* Add --compiler clang to work around compiler bug. (#694) [Stefan Ludwig] 1463* Support vpi_get of vpiSuppressVal. (#687) [Varun Koyyalagunta] 1464* Support vpi_get_time. (#688) [Varun Koyyalagunta] 1465* Fix evaluation of chained parameter functions. (#684) [Ted Campbell] 1466* Fix enum value extension of '1. 1467* Fix multiple VPI variable callbacks. (#679) [Rich Porter] 1468* Fix vpi_get of vpiSize. (#680) [Rich Porter] 1469* Fix vpi_remove_cb inside callback. (#689) [Varun Koyyalagunta] 1470* Fix crash with coverage of structures. (#691) [Eivind Liland] 1471* Fix array assignment from const var. (#693) [Jie Xu] 1472 1473 1474Verilator 3.853 2013-09-30 1475========================== 1476 1477**Minor:** 1478 1479* Add --no-order-clock-delay to work around #613. [Charlie Brej] 1480 1481 1482Verilator 3.852 2013-09-29 1483========================== 1484 1485**Minor:** 1486 1487* Support named function and task arguments. [Chris Randall] 1488* Report SELRANGE warning for non-generate if. (#675) [Roland Kruse] 1489* Fix ordering of $fgetc. (#1808) [Frederic Requin] 1490* Fix --output-split-cfunc to count internal functions. [Chris Randall] 1491* Fix crash on 32-bit Ubuntu. (#670) [Mark Jackson Pulver] 1492 1493 1494Verilator 3.851 2013-08-15 1495========================== 1496 1497**Minor:** 1498 1499* Fix ordering of clock enables with delayed assigns. (#613) [Jeremy Bennett] 1500* Fix vpi_iterate on memory words. (#655) [Rich Porter] 1501* Fix final duplicate declarations when non-inlined. (#661) [Charlie Brej] 1502* Fix interface ports with comma lists. (#1779) [Ed Lander] 1503* Fix parameter real conversion from integer. 1504* Fix clang warnings. (#668) [Yutetsu Takatsukasa] 1505 1506 1507Verilator 3.850 2013-06-02 1508========================== 1509 1510**Major:** 1511 1512* Support interfaces and modports. (#102) [Byron Bradley, Jeremy Bennett] 1513 1514**Minor:** 1515 1516* Duplicate clock gate optimization on by default. (#621) 1517* Fix arrayed input compile error. (#645) [Krzysztof Jankowski] 1518* Fix GCC version runtime changes. (#651) [Jeremy Bennett] 1519* Fix packed array select internal error. (#652) [Krzysztof Jankowski] 1520 1521 1522Verilator 3.847 2013-05-11 1523========================== 1524 1525**Minor:** 1526 1527* Add ALWCOMBORDER warning. [KC Buckenmaier] 1528* Add --pins-sc-uint and --pins-sc-biguint. (#638) [Alex Hornung] 1529* Support "signal[vec]++". 1530* Fix simulation error when inputs and MULTIDRIVEN. (#634) [Ted Campbell] 1531* Fix module resolution with __. (#631) [Jason McMullan] 1532* Fix packed array non-zero right index select crash. (#642) [Krzysztof Jankowski] 1533* Fix nested union crash. (#643) [Krzysztof Jankowski] 1534 1535 1536Verilator 3.846 2013-03-09 1537========================== 1538 1539**Major:** 1540 1541* IEEE 1800-2012 is now the default language. This adds 4 new keywords 1542 and updates the svdpi.h and vpi_user.h header files. 1543* Add --report-unoptflat. (#611) [Jeremy Bennett] 1544 1545**Minor:** 1546 1547* Add duplicate clock gate optimization. (#1772) [Varun Koyyalagunta] 1548 Disabled unless -OD or -O3 used, please try it as may get some 1549 significant speedups. 1550* Support pattern assignment features. (#616) (#617) (#618) [Ed Lander] 1551* Support bind in $unit. (#602) [Ed Lander] 1552* Support <number>'() sized casts. (#628) [Ed Lander] 1553* Fix wrong dot resolution under inlining. [Art Stamness] 1554* Fix DETECTARRAY on packed structures. (#610) [Jeremy Bennett] 1555* Fix LITENDIAN on unpacked structures. (#614) [Wai Sum Mong] 1556* Fix 32-bit OS VPI scan issue. (#615) [Jeremy Bennett, Rich Porter] 1557* Fix opening a VerilatedVcdC file multiple times. (#1774) [Frederic Requin] 1558* Fix UNOPTFLAT circular array bounds crossing. (#630) [Jie Xu] 1559 1560 1561Verilator 3.845 2013-02-04 1562========================== 1563 1564**Minor:** 1565 1566* Fix nested packed arrays and struct. (#600) [Jeremy Bennett] 1567 Packed arrays are now represented as a single linear vector in 1568 Verilated models. This may affect packed arrays that are public or 1569 accessed via the VPI. 1570* Support wires with data types. (#608) [Ed Lander] 1571* Support bind, to module names only. (#602) [Ed Lander] 1572* Support VPI product info, warning calls, etc. (#588) [Rick Porter] 1573* Support $left, $right and related functions. (#448) [Iztok Jeras] 1574* Support inside expressions. 1575* Define SYSTEMVERILOG, SV_COV_START and other IEEE mandated predefines. 1576* Fix pin width mismatch error. (#595) [Alex Solomatnikov] 1577* Fix implicit one bit parameter selection. (#603) [Jeremy Bennett] 1578* Fix signed/unsigned parameter misconversion. (#606) [Jeremy Bennett] 1579* Fix segfault on multidimensional dotted arrays. (#607) [Jie Xu] 1580* Fix per-bit array output connection error. (#414) [Jan Egil Ruud] 1581* Fix package logic var compile error. 1582* Fix enums with X values. 1583 1584 1585Verilator 3.844 2013-01-09 1586========================== 1587 1588**Minor:** 1589 1590* Support "unsigned int" DPI import functions. (#1770) [Alex Lee] 1591* Fix package resolution of parameters. (#586) [Jeremy Bennett] 1592* Fix non-integer vpi_get_value. (#587) [Rich Porter] 1593* Fix task inlining under $display and case. (#589) (#598) [Holger Waechtler] 1594* Fix package import of non-localparam parameter. (#474) (#591) [Jeremy Bennett] 1595* Fix package import of package imports, partial #592. [Jeremy Bennett] 1596* Fix package import preventing local var. (#599) [Jeremy Bennett] 1597* Fix array extraction of implicit vars. (#601) [Joe Eiler] 1598 1599 1600Verilator 3.843 2012-12-01 1601========================== 1602 1603**Minor:** 1604 1605* Add +1364-1995ext and similar language options. (#532) [Jeremy Bennett] 1606* Fix mis-optimized identical submodule subtract. (#581) [Charlie Brej] 1607* Fix crash on dotted references into dead modules. (#583) [Jeremy Bennett] 1608* Fix compile issues on MSVCC. (#571) (#577) [Amir Gonnen] 1609* Fix --debug overriding preceding --dump-treei. (#580) [Jeremy Bennett] 1610 1611 1612Verilator 3.842 2012-11-03 1613========================== 1614 1615**Minor:** 1616 1617* Add -x-initial-edge. (#570) [Jeremy Bennett] 1618* Fix parameter pins interspersed with cells broke in 3.840. [Bernard Deadman] 1619* Fix large shift error on large shift constants. [David Welch] 1620* Fix $display mangling on GCC 4.7 and speed up. (#1765) (#373) (#574) [R Diez] 1621* Fix array of struct references giving false error. (#566) [Julius Baxter] 1622* Fix missing var access functions when no DPI. (#572) [Amir Gonnen] 1623* Fix name collision on unnamed blocks. (#567) [Chandan Egbert] 1624* Fix name collision on task inputs. (#569) [Chandan Egbert] 1625 1626 1627Verilator 3.841 2012-09-03 1628========================== 1629 1630**Major:** 1631 1632* Add --savable to support model save/restore. [Jeremy Bennett] 1633 1634**Minor:** 1635 1636* Support '{} assignment pattern on structures, part of #355. 1637* Fix double-deep parameter cell WIDTHs. (#541) [Hiroki Honda] 1638* Fix imports under multiple instantiated cells. (#542) [Alex Solomatnikov] 1639* Fix defparam in generate broke in 3.840. (#543) [Alex Solomatnikov] 1640* Fix duplicate begin error broke in 3.840. (#548) [Alex Solomatnikov] 1641* Fix triangle symbol resolution error broke in 3.840. (#550) [Ted Campbell] 1642 1643 1644Verilator 3.840 2012-07-31 Beta 1645=============================== 1646 1647**Major:** 1648 1649* Rewrote tristate handling; supports tri0, tri1, tristate bit selects, 1650 concatenates and pullup/pulldowns. (#395) (#56) (#54) (#51) 1651 [Alex Solomatnikov, Lane Brooks, et al] 1652* Support packed structures and unions. (#181) 1653 Note this was a major internal change that may lead to some instability. 1654 1655**Minor:** 1656 1657* Support tri0 and tri1. (#462) [Alex Solomatnikov] 1658* Support nmos and pmos. (#488) [Alex Solomatnikov] 1659* Add INITIALDLY warning on initial assignments. (#478) [Alex Solomatnikov] 1660* Add PINMISSING and PINNOCONNECT lint checks. 1661* Add --converge-limit option. 1662* Fix generate operators not short circuiting. (#413) [by Jeremy Bennett] 1663* Fix parameters not supported in constant functions. (#474) [Alex Solomatnikov] 1664* Fix duplicate warnings/errors. (#516) [Alex Solomatnikov] 1665* Fix signed extending biops with WIDTH warning off. (#511) [Junji Hashimoto] 1666* Fix ITOD internal error on real conversions. (#491) [Alex Solomatnikov] 1667* Fix input and real loosing real data type. (#501) [Alex Solomatnikov] 1668* Fix imports causing symbol table error. (#490) [Alex Solomatnikov] 1669* Fix newlines in radix values. (#507) [Walter Lavino] 1670* Fix loop error message to report line. (#513) [Jeremy Bennett] 1671* Fix false UNUSED warning on file system calls. 1672* Fix GCC 4.7.0 compile warnings. (#530) [Jeremy Bennett] 1673* Fix svdpi.h compile error on Apple OS. 1674* Fix compile error under git submodules. (#534) [Aurelien Francillon] 1675 1676 1677Verilator 3.833 2012-04-15 1678========================== 1679 1680**Minor:** 1681 1682* Support += and -= in standard for loops. (#463) [Alex Solomatnikov] 1683* Fix processing unused parameterized modules. (#469) (#470) [Alex Solomatnikov] 1684* Add SELRANGE as warning instead of error. (#477) [Alex Solomatnikov] 1685* Add readme.pdf and internal.pdf and doxygen. (#483) [by Jeremy Bennett] 1686* Fix change detections on arrays. (#364) [John Stevenson, Alex Solomatnikov] 1687* Fix signed array warning. (#456) [Alex Solomatnikov] 1688* Fix genvar and begin under generate. (#461) [Alex Solomatnikov] 1689* Fix real constant parameter functions. (#475) [Alex Solomatnikov] 1690* Fix and document --gdb option. (#454) [Jeremy Bennett] 1691* Fix OpenSolaris compile error. [Sanjay Singh] 1692 1693 1694Verilator 3.832 2012-03-07 1695========================== 1696 1697**Minor:** 1698 1699* Fix memory delayed assignments from multiple clock domains. [Andrew Ling] 1700* Support arrayed SystemC I/O pins. [Christophe Joly] 1701* Report MULTIDRIVEN on memories set in multiple clock domains. 1702* Report ENDLABEL on mismatching end labels. (#450) [Iztok Jeras] 1703* Fix expansion of back-slashed escaped macros. (#441) [Alberto Del Rio] 1704* Fix inheriting real and signed type across untyped parameters. 1705* Fix core dump with over 100 deep UNOPTFLAT. (#432) [Joe Eiler] 1706* Fix false command not found warning in makefiles. [Ruben Diez] 1707* Fix hang when functions inside begin block. [David Welch] 1708* Fix hang on recursive substitution `defines. (#443) [Alex Solomatnikov] 1709 1710 1711Verilator 3.831 2012-01-20 1712========================== 1713 1714**Major:** 1715 1716* Support SystemC 2.3.0 prerelease. This requires setting the new 1717 SYSTEMC_INCLUDE and SYSTEMC_LIBDIR variables in place of now 1718 deprecated SYSTEMC and SYSTEMC_ARCH. [Iztok Jeras] 1719 1720**Minor:** 1721 1722* Suppress VARHIDDEN on dpi import arguments. [Ruben Diez] 1723* Support "generate for (genvar i=0; ...". [David Kravitz] 1724* Fix dpi exports with > 32 bit but < 64 bit args. (#423) [Chandan Egbert] 1725* Fix array of instantiations with sub-range output. (#414) [Jeremy Bennett] 1726* Fix BLKSEQ warnings on variables declared inside always. [Ruben Diez] 1727 1728 1729Verilator 3.830 2011-11-27 1730========================== 1731 1732**Major:** 1733 1734* With "--language VAMS" support a touch of Verilog AMS. [Holger Waechtler] 1735 1736**Minor:** 1737 1738* Add sc_bv attribute to force bit vectors. (#402) [by Stefan Wallentowitz] 1739* Search for user -y paths before default current directory. [Ruben Diez] 1740* Support constants in sensitivity lists. (#412) [Jeremy Bennett] 1741* Support $system. [Ruben Diez] 1742* Support $sscanf with %g. [Holger Waechtler] 1743* Indicate 'exiting due to errors' if errors, not warnings. [Ruben Diez] 1744* Fix bad result with if-else-return optimization. (#420) [Alex Solomatnikov] 1745* Fix reporting not found modules if generate-off. (#403) [Jeremy Bennett] 1746* Fix $display with %d following %g. [Holger Waechtler] 1747 1748 1749Verilator 3.824 2011-10-25 1750========================== 1751 1752**Minor:** 1753 1754* Fix "always @ (* )". (#403) (#404) [Walter Lavino] 1755* Add ASSIGNIN as suppressible error. [Jeremy Bennett] 1756* Fix 3.823 constructor core dump on Debian. (#401) [Ahmed El-Mahmoudy] 1757 1758 1759Verilator 3.823 2011-10-20 1760========================== 1761 1762**Minor:** 1763 1764* Support $ceil, $floor, etc. [Alex Solomatnikov] 1765* Add configure options for cc warnings and extended tests. [Ruben Diez] 1766* Add -Wall reporting ASSIGNDLY on assignment delays. [Ruben Diez] 1767* Fix UNDRIVEN warnings inside DPI import functions. [Ruben Diez] 1768* Fix --help output to go to stderr, not stdout. (#397) [Ruben Diez] 1769* Fix DPI import output of 64 bits. (#398) [Mike Denio] 1770* Fix DPI import false BLKSEQ warnings. [Alex Solomatnikov] 1771* Fix MSVC compile warning with trunc/round. (#394) [Amir Gonnen] 1772* Fix autoconf and Makefile warnings. (#396) [Ruben Diez] 1773 1774 1775Verilator 3.821 2011-09-14 1776========================== 1777 1778**Minor:** 1779 1780* Fix PowerPC runtime error. (#288) [Ahmed El-Mahmoudy] 1781* Fix internal error on integer casts. (#374) [Chandan Egbert] 1782 1783 1784Verilator 3.820 2011-07-28 1785========================== 1786 1787**Minor:** 1788 1789* Support 'real' numbers and related functions. 1790* Support 'const' variables in limited cases; similar to enums. [Alex Solomatnikov] 1791* Support disable for loop escapes. 1792* Support $fopen and I/O with integer instead of `verilator_file_descriptor. 1793* Support coverage in -cc and -sc output modes. [John Li] 1794 Note this requires SystemPerl 1.338 or newer. 1795* Use 'vluint64_t' for SystemC instead of (same sized) 'uint64' for MSVC++. 1796* Fix vpi_register_cb using bad s_cb_data. (#370) [by Thomas Watts] 1797* Fix $display missing leading zeros in %0d. (#367) [Alex Solomatnikov] 1798 1799 1800Verilator 3.813 2011-06-28 1801========================== 1802 1803**Minor:** 1804 1805* Support bit vectors > 64 bits wide in DPI import and exports. 1806* Fix out of memory on slice syntax error. (#354) [Alex Solomatnikov] 1807* Fix error on enum references to other packages. (#339) [Alex Solomatnikov] 1808* Fix DPI undeclared svBitVecVal compile error. (#346) [Chandan Egbert] 1809* Fix DPI bit vector compile errors. (#347) (#359) [Chandan Egbert] 1810* Fix CDCRSTLOGIC report showing endpoint flops without resets. 1811* Fix compiler warnings on SPARC. (#288) [Ahmed El-Mahmoudy] 1812 1813 1814Verilator 3.812 2011-04-06 1815========================== 1816 1817**Minor:** 1818 1819* Add --trace-max-width and --trace-max-array. (#319) [Alex Solomatnikov] 1820* Add --Wno-fatal to turn off abort on warnings. [by Stefan Wallentowitz] 1821* Support ${...} and $(...) env vars in .vc files. [by Stefan Wallentowitz] 1822* Support $bits(data_type). (#327) [Alex Solomatnikov] 1823* Support loop unrolling on width mismatches. (#333) [Joe Eiler] 1824* Support simple cast operators. (#335) [Alex Solomatnikov] 1825* Accelerate bit-selected inversions. 1826* Add error on circular parameter definitions. (#329) [Alex Solomatnikov] 1827* Fix concatenates and vectored bufif1. (#326) [Iztok Jeras] 1828 1829 1830Verilator 3.811 2011-02-14 1831========================== 1832 1833**Minor:** 1834 1835* Report error on duplicated or empty pins. (#321) [Christian Leber] 1836* Report error on function call output tied to constant. [Bernard Deadman] 1837* Throw UNUSED/UNDRIVEN only once per net in a parameterized module. 1838* Fix internal error on functions called as SV tasks. [Bernard Deadman] 1839* Fix internal error on non-inlined inout pins. [Jeff Winston] 1840* Fix false BLKSEQ on non-unrolled for loop indexes. [Jeff Winston] 1841* Fix block comment not separating identifiers. (#311) [Gene Sullivan] 1842* Fix warnings to point to lowest net usage, not upper level ports. 1843* Fix error on constants connected to outputs. (#323) [Christian Leber] 1844 1845 1846Verilator 3.810 2011-01-03 1847========================== 1848 1849**Major:** 1850 1851* Add limited support for VPI access to public signals, see docs. 1852* Add -F option to read relative option files. (#297) [Neil Hamilton] 1853* Support ++,--,+= etc as standalone statements. [Alex Solomatnikov] 1854* Add -Wall, -Wwarn-style, -Wno-style to enable code style warnings 1855 that have been added to this release, and disabled by default: 1856* With --Wall, add BLKSEQ warning on blocking assignments in seq blocks. 1857* With --Wall, add DECLFILENAME warning on modules not matching filename. 1858* With --Wall, add DEFPARAM warning on deprecated defparam statements. 1859* With --Wall, add IFDEPTH warning on deep if statements. 1860* With --Wall, add INCABSPATH warning on `include with absolute paths. 1861* With --Wall, add SYNCASYNCNET warning on mixed sync/async reset nets. 1862* With --Wall, add UNDRIVEN warning on undriven nets. 1863* With --Wall, add UNUSED warning on unused nets. 1864 1865**Minor:** 1866 1867* When running with VERILATOR_ROOT, optionally find binaries under bin. 1868* Suppress WIDTH warnings when adding/subtracting 1'b1. 1869* The VARHIDDEN warning is now disabled by default, use -Wall to enable. 1870 1871 1872Verilator 3.805 2010-11-02 1873========================== 1874 1875**Minor:** 1876 1877* Add warning when directory contains spaces. (#1705) [Salman Sheikh] 1878* Fix wrong filename on include file errors. (#289) [Brad Parker] 1879* Fix segfault on SystemVerilog "output wire foo=0". (#291) [Joshua Wise] 1880* Fix DPI export name not found. (#1703) [Terry Chen] 1881 1882 1883Verilator 3.804 2010-09-20 1884========================== 1885 1886**Minor:** 1887 1888* Support tracing/coverage of underscore signals. (#280) [by Jason McMullan] 1889* Increase define recursions before error. [Paul Liu] 1890* On core dump, print debug suggestions. 1891* Fix preprocessor \`\` of existing base define. (#283) [Usha Priyadharshini] 1892 1893 1894Verilator 3.803 2010-07-10 1895========================== 1896 1897**Minor:** 1898 1899* Fix preprocessor preservation of newlines across macro substitutions. 1900* Fix preprocessor stringification of nested macros. 1901* Fix some constant parameter functions causing crash. (#253) [Nick Bowler] 1902* Fix do {...} while() not requiring final semicolon. 1903 1904 1905Verilator 3.802 2010-05-01 1906========================== 1907 1908**Minor:** 1909 1910* Support runtime access to public signal names. 1911* Add /*verilator public_flat_rw*/ for timing-specific public access. 1912* Fix word size to match uint64_t on -m64 systems. (#238) [Joe Eiler] 1913* Improve error handling on slices of arrays. (#226) [by Byron Bradley] 1914* Report errors when extra underscores used in meta-comments. 1915* Fix bit reductions on multi-packed dimensions. (#227) [by Byron Bradley] 1916* Fix removing $fscanf if assigned to unused var. (#248) [Ashutosh Das] 1917* Fix "make install" with configure outside srcdir. [Stefan Wallentowitz] 1918* Fix loop unroller out of memory; change --unroll-stmts. [Ashutosh Das] 1919* Fix trace files with empty modules crashing some viewers. 1920* Fix parsing single files > 2GB. [Jeffrey Short] 1921* Fix installing data files as non-executable. (#168) [by Ahmed El-Mahmoudy] 1922 1923 1924Verilator 3.801 2010-03-17 1925========================== 1926 1927**Minor:** 1928 1929* Support "break", "continue", "return". 1930* Support "`default_nettype none|wire". [Dominic Plunkett] 1931* Skip SystemC tests if not installed. [Iztok Jeras] 1932* Fix clock-gates with non-AND complex logic. (#220) [Ashutosh Das] 1933* Fix flushing VCD buffers on $stop. [Ashutosh Das] 1934* Fix Mac OS-X compile issues. (#217) [Joshua Wise, Trevor Williams] 1935* Fix make uninstall. (#216) [Iztok Jeras] 1936* Fix parameterized defines with empty arguments. 1937 1938 1939Verilator 3.800 2010-02-07 1940========================== 1941 1942**Major application visible changes:** 1943 1944* SystemPerl is no longer required for tracing. 1945 Applications must use VerilatedVcdC class in place of SpTraceVcdC. 1946* SystemVerilog 1800-2009 is now the default language. 1947 Thus "global" etc are now keywords. See the --language option. 1948 1949**Major new features:** 1950 1951* Support SystemVerilog types "byte", "chandle", "int", "longint", 1952 "shortint", "time", "var" and "void" in variables and functions. 1953* Support "program", "package", "import" and $unit. 1954* Support typedef and enum. [by Donal Casey] 1955* Support direct programming interface (DPI) "import" and "export". 1956 Includes an extension to map user $system PLI calls to the DPI. 1957* Support assignments of multidimensional slices. (#170) [by Byron Bradley] 1958* Support multidimensional inputs/outputs. (#171) [by Byron Bradley] 1959* Support "reg [1:0][1:0][1:0]" and "reg x [3][2]". (#176) [Byron Bradley] 1960* Support declarations in loop initializers. (#172) [by Byron Bradley] 1961* Support $test$plusargs and $value$plusargs, but see the docs! 1962* Support $sformat and $swrite. 1963* Support 1800-2009 define defaults and `undefineall. 1964* Add -CFLAGS, -LDFLAGS, <file>.a, <file>.o, and <file>.so options. 1965* Speed compiles by avoiding including the STL iostream header. 1966 Application programs may need to include it themselves to avoid errors. 1967* Add experimental clock domain crossing checks. 1968* Add experimental --pipe-filter to filter all Verilog input. 1969* Add experimental config files to filter warnings outside of the source. 1970* Add VARHIDDEN warning when signal name hides module name. 1971* Support optional cell parenthesis. (#179) [by Byron Bradley] 1972* Support for-loop i++, ++i, i--, --i. (#175) [by Byron Bradley] 1973* Support 1800-2009 /*comments*/ in define values. 1974* Add Makefile VM_GLOBAL_FAST, listing objects needed to link executables. 1975* Add --bbox-unsup option to black-box unsupported UDP tables. 1976* Add -Wno-MODDUP option to allow duplicate modules. 1977 1978**Bug fixes:** 1979 1980* Fix implicit variable issues. (#196) (#201) [Byron Bradley] 1981* Fix 'for' variable typing. (#205) [by Byron Bradley] 1982* Fix tracing with --pins-bv 1. (#195) [Michael S] 1983* Fix MSVC++ 2008 compile issues. (#209) [Amir Gonnen] 1984* Fix MinGW compilation. (#184) (#214) [by Shankar Giri, Amir Gonnen] 1985* Fix Cygwin 1.7.x compiler error with uint32_t. (#204) [Ivan Djordjevic] 1986* Fix `define argument mis-replacing system task of same name. (#191) 1987* Fix Verilator core dump on wide integer divides. (#178) [Byron Bradley] 1988* Fix lint_off/lint_on meta comments on same line as warning. 1989 1990 1991Verilator 3.720 2009-10-26 1992========================== 1993 1994**Major:** 1995 1996* Support little endian bit vectors ("reg [0:2] x;"). 1997* Support division and modulus of > 64 bit vectors. [Gary Thomas] 1998 1999**Minor:** 2000 2001* Fix writing to out-of-bounds arrays writing element 0. 2002* Fix core dump with SystemVerilog var declarations under unnamed begins. 2003* Fix VCD files showing internal flattened hierarchy, broke in 3.714. 2004* Fix cell port connection to unsized integer causing false width warning. 2005* Fix erroring on strings with backslashed newlines. (#168) [Pete Nixon] 2006 2007 2008Verilator 3.714 2009-09-18 2009========================== 2010 2011**Major:** 2012 2013* Add --bbox-sys option to blackbox $system calls. 2014 2015**Minor:** 2016 2017* Support generate for var++, var--, ++var, --var. 2018* Improved warning when "do" used as identifier. 2019* Don't require SYSTEMPERL_INCLUDE if SYSTEMPERL/src exists. [Gary Thomas] 2020* Fix deep defines causing flex scanner overflows. [Brad Dobbie] 2021* Fix preprocessing commas in deep parameterized macros. [Brad Dobbie] 2022* Fix tracing escaped dotted identifiers. (#107) 2023* Fix $display with uppercase %M. 2024* Fix --error-limit option being ignored. 2025 2026 2027Verilator 3.713 2009-08-04 2028========================== 2029 2030**Minor:** 2031 2032* Support constant function calls for parameters. [many!] 2033* Support SystemVerilog "logic". (#101) [by Alex Duller] 2034* Name SYMRSVDWORD error, and allow disabling it. (#103) [Gary Thomas] 2035* Fix escaped preprocessor identifiers. (#106) [Nimrod Gileadi] 2036 2037 2038Verilator 3.712 2009-07-14 2039========================== 2040 2041**Major:** 2042 2043* Patching SystemC is no longer required to trace sc_bvs. 2044 2045**Minor:** 2046 2047* Add verilator --pins-uint8 option to use sc_in<uint8_t/uint16_t>. 2048* Add verilator -V option, to show verbose version. 2049* Add BLKLOOPINIT error code, and describe --unroll-count. [Jeff Winston] 2050* Support zero-width constants in concatenations. [Jeff Winston] 2051* On WIDTH warnings, show variable name causing error. [Jeff Winston] 2052 2053 2054Verilator 3.711 2009-06-23 2055========================== 2056 2057**Minor:** 2058 2059* Support decimal constants of arbitrary widths. [Mark Marshall] 2060* Fix error on case statement with all duplicate items. (#99) [Gary Thomas] 2061* Fix segfault on unrolling for's with bad inits. (#90) [Andreas Olofsson] 2062* Fix tristates causing "Assigned pin is neither...". [by Lane Brooks] 2063* Fix compiler errors under Fedora release candidate 11. [Chitlesh Goorah] 2064 2065 2066Verilator 3.710 2009-05-19 2067========================== 2068 2069**Major:** 2070 2071* Verilator is now licensed under LGPL v3 and/or Artistic v2.0. 2072 2073**Minor:** 2074 2075* `__FILE__ now expands to a string, per draft SystemVerilog 2010(ish). 2076* The front end parser has been re-factored to enable more SV parsing. 2077 Code should parse the same, but minor parsing bugs may pop up. 2078* Verilator_includer is no longer installed twice. (#48) [Lane Brooks] 2079* Fix escaped identifiers with '.' causing conflicts. (#83) [J Baxter] 2080* Fix define formal arguments that contain newlines. (#84) [David A] 2081 2082 2083Verilator 3.703 2009-05-02 2084========================== 2085 2086**Minor:** 2087 2088* Fix $clog2 calculation error with powers-of-2. (#81) [Patricio Kaplan] 2089* Fix error with tasks that have output first. (#78) [Andrea Foletto] 2090* Fix "cloning" error with -y/--top-module. (#76) [Dimitris Nalbantis] 2091* Fix segfault with error on bad --top-module. (#79) [Dimitris Nalbantis] 2092* Fix "redefining I" error with complex includes. [Duraid Madina] 2093* Fix GCC 4.3.2 compile warnings. 2094 2095 2096Verilator 3.702 2009-03-28 2097========================== 2098 2099**Minor:** 2100 2101* Add --pins-bv option to use sc_bv for all ports. [Brian Small] 2102* Add SYSTEMPERL_INCLUDE envvar to assist RPM builds. [Chitlesh Goorah] 2103* Report errors when duplicate labels are used. (#72) [Vasu Kandadi] 2104* Fix the SC_MODULE name() to not include __PVT__. [Bob Fredieu] 2105 2106 2107Verilator 3.701 2009-02-26 2108========================== 2109 2110**Minor:** 2111 2112* Support repeat and forever statements. [Jeremy Bennett] 2113* Add --debugi-<srcfile> option, for internal debugging. [Dennis Muhlestein] 2114* Fix compile issues with GCC 4.3. (#47) [Lane Brooks] 2115* Fix VL_RANDom to better randomize bits. [Art Stamness] 2116* Fix error messages to consistently go to stderr. [Jeremy Bennett] 2117* Fix left associativity for ?: operators. 2118 2119 2120Verilator 3.700 2009-01-08 2121========================== 2122 2123**Major:** 2124 2125* Support limited tristate inouts. Written by Lane Brooks, 2126 under support by Ubixum Inc. This allows common pad ring and 2127 tristate-mux structures to be Verilated. See the documentation for 2128 more information on supported constructs. 2129* Add --coverage_toggle for toggle coverage analysis. 2130 Running coverage now requires SystemPerl 1.301 or newer. 2131* Add coverage_on/_off metacomments to bracket coverage regions. 2132 2133**Minor:** 2134 2135* Support posedge of bit-selected signals. (#45) [Rodney Sinclair] 2136* Optimize two-level shift and and/or trees, +23% on one test. 2137* Line coverage now aggregates by hierarchy automatically. 2138 Previously this would be done inside SystemPerl, which was slower. 2139* Minor performance improvements of Verilator compiler runtime. 2140* Coverage of each parameterized module is counted separately. [Bob Fredieu] 2141* Fix creating parameterized modules when no parameter values are changed. 2142* Fix certain generate-if cells causing "clone" error. [Stephane Laurent] 2143* Fix line coverage of public functions. [Soon Koh] 2144* Fix SystemC 2.2 deprecated warnings about sensitive() and sc_start(). 2145* Fix arrayed variables under function not compiling. (#44) [Ralf Karge] 2146* Fix --output-split-cfuncs to also split trace code. [Niranjan Prabhu] 2147* Fix 'bad select range' warning missing some cases. (#43) [Lane Brooks] 2148* Fix internal signal names containing control characters (broke in 3.680). 2149* Fix compile error on Ubuntu 8.10. [Christopher Boumenot] 2150* Fix internal error on "output x; reg x = y;". 2151* Fix wrong result for read of delayed FSM signal. (#46) [Rodney Sinclair] 2152 2153 2154Verilator 3.681 2008-11-12 2155========================== 2156 2157**Minor:** 2158 2159* Support SystemVerilog unique and priority case. 2160* Include Verilog file's directory name in coverage reports. 2161* Fix 'for' under 'generate-for' causing error. (#38) [Rafael Shirakawa] 2162* Fix coverage hierarchy being backwards with inlining. [Vasu Arasanipalai] 2163* Fix GCC 4.3 compile error. (#35) [Lane Brooks] 2164* Fix MSVC compile error. (#42) [John Stroebel] 2165 2166 2167Verilator 3.680 2008-10-08 2168========================== 2169 2170**Major:** 2171 2172* Support negative bit indexes. [Stephane Laurent] 2173 Tracing negative indexes requires latest Verilog-Perl and SystemPerl. 2174 2175**Minor:** 2176 2177* Suppress width warnings between constant strings and wider vectors. 2178 [Rodney Sinclair] 2179* Ignore SystemVerilog timeunit and timeprecision. 2180* Expand environment variables in -f input files. [Lawrence Butcher] 2181* Report error if port declaration is missing. (#32) [Guy-Armand Kamendje] 2182* Fix genvars causing link error when using --public. [Chris Candler] 2183 2184 2185Verilator 3.671 2008-09-19 2186========================== 2187 2188**Major:** 2189 2190* SystemC uint64_t pins are now the default instead of sc_bv<64>. 2191 Use --no-pins64 for backward compatibility. 2192* Support SystemVerilog "cover property" statements. 2193 2194**Minor:** 2195 2196* When warnings are disabled on signals that are flattened out, disable 2197 the warnings on the signal(s) that replace it. 2198* Add by-design and by-module subtotals to verilator_profcfunc. 2199* Add IMPERFECTSCH warning, disabled by default. 2200* Support coverage under SystemPerl 1.285 and newer. 2201* Support arbitrary characters in identifiers. [Stephane Laurent] 2202* Fix extra evaluation of pure combo blocks in SystemC output. 2203* Fix stack overflow on large ? : trees. [John Sanguinetti] 2204 2205 2206Verilator 3.670 2008-07-23 2207========================== 2208 2209**Major:** 2210 2211* Add --x-assign=fast option, and make it the default. 2212 This chooses performance over reset debugging. See the manual. 2213* Add --autoflush, for flushing streams after $display. [Steve Tong] 2214* Add CASEWITHX lint warning and if disabled fix handling of casez with Xs. 2215 2216**Minor:** 2217 2218* Add $feof, $fgetc, $fgets, $fflush, $fscanf, $sscanf. [Holger Waechtler] 2219* Add $stime. [Holger Waechtler] 2220* Add $random. 2221* Add --Wfuture-, for improving forward compatibility. 2222* Add WIDTH warning to $fopen etc file descriptors. 2223* Fix verilator_includer not being installed properly. [Holger Waechtler] 2224* Fix IMPURE errors due to X-assignment temporary variables. [Steve Tong] 2225* Fix "lvalue" errors with public functions. (#25) [CY Wang] 2226 2227 2228Verilator 3.665 2008-06-25 2229========================== 2230 2231**Minor:** 2232 2233* Ignore "// verilator" comments alone on endif lines. [Rodney Sinclair] 2234* "Make install" now installs verilator_includer and verilator_profcfunc. 2235* Fix tracing missing changes on undriven public wires. [Rodney Sinclair] 2236* Fix syntax error when "`include `defname" is ifdefed. [John Dickol] 2237* Fix error when macro call has commas in concatenate. [John Dickol] 2238* Fix compile errors under Fedora 9, GCC 4.3.0. [by Jeremy Bennett] 2239* Fix Makefile to find headers/libraries under prefix. [by Holger Waechtler] 2240 2241 2242Verilator 3.664 2008-05-08 2243========================== 2244 2245**Minor:** 2246 2247* Fix missing file in kit. 2248 2249 2250Verilator 3.663 2008-05-07 2251========================== 2252 2253**Minor:** 2254 2255* Add DESTDIR to Makefiles to assist RPM construction. [Gunter Dannoritzer] 2256* Fix compiler warnings under GCC 4.2.1. 2257* Fix preprocessor `else after series of `elsif. [Mark Nodine] 2258* Fix parameterized defines calling define with comma. [Joshua Wise] 2259* Fix comma separated list of primitives. [by Bryan Brady] 2260 2261 2262Verilator 3.662 2008-04-25 2263========================== 2264 2265**Minor:** 2266 2267* Add Verilog 2005 $clog2() function. 2268 This is useful in calculating bus-widths from parameters. 2269* Support C-style comments in -f option files. [Stefan Thiede] 2270* Add error message when modules have duplicate names. [Stefan Thiede] 2271* Support defines terminated in EOF, though against spec. [Stefan Thiede] 2272* Support optional argument to $finish and $stop. [by Stefan Thiede] 2273* Support ranges on gate primitive instantiations. [Stefan Thiede] 2274* Ignore old standard(ish) Verilog-XL defines. [by Stefan Thiede] 2275* Fix "always @ ((a) or (b))" syntax error. [by Niranjan Prabhu] 2276* Fix "output reg name=expr;" syntax error. [Martin Scharrer] 2277* Fix multiple .v files being read in random order. [Stefan Thiede] 2278* Fix internal error when params get non-constants. [Johan Wouters] 2279* Fix bug introduced in 3.661 with parameterized defines. 2280 2281 2282Verilator 3.661 2008-04-04 2283========================== 2284 2285**Major:** 2286 2287* The --enable-defenv configure option added in 3.660 is now the default. 2288 This hard-codes a default for VERILATOR_ROOT etc in the executables. 2289* Add --language option for supporting older code. [Stefan Thiede] 2290* Add --top-module option to select between multiple tops. [Stefan Thiede] 2291 2292**Minor:** 2293 2294* Unsized concatenates now give WIDTHCONCAT warnings. [Jonathan Kimmitt] 2295 Previously they threw fatal errors, which in most cases is correct 2296 according to spec, but can be incorrect in presence of parameter values. 2297* Support functions with "input integer". [Johan Wouters] 2298* Ignore delays attached to gate UDPs. [Stefan Thiede] 2299* Fix SystemVerilog parameterized defines with \`\` expansion, 2300 and fix extra whitespace inserted on substitution. [Vladimir Matveyenko] 2301* Fix no-module include files on command line. [Stefan Thiede] 2302* Fix dropping of backslash quoted-quote at end of $display. 2303* Fix task output pin connected to non-variables. [Jonathan Kimmitt] 2304* Fix missing test_v in install datadir. [Holger Waechtler] 2305* Fix internal error after MSB < LSB error reported to user. [Stefan Thiede] 2306 2307 2308Verilator 3.660 2008-03-23 2309========================== 2310 2311**Minor:** 2312 2313* Support hard-coding VERILATOR_ROOT etc in the executables, 2314 to enable easier use of Verilator RPMs. [Gunter Dannoritzer] 2315* Allow multiple .v files on command line. [Stefan Thiede] 2316* Convert re-defining macro error to warning. [Stefan Thiede] 2317* Add --error-limit option. [Stefan Thiede] 2318* Allow __ in cell names by quoting them in C. [Stefan Thiede] 2319* Fix genvar to be signed, so "< 0" works properly. [Niranjan Prabhu] 2320* Fix assignments to inputs inside functions/tasks. [Patricio Kaplan] 2321* Fix definitions in main file.v, referenced in library. [Stefan Thiede] 2322* Fix undefined assigns to be implicit warnings. [Stefan Thiede] 2323 2324 2325Verilator 3.658 2008-02-25 2326========================== 2327 2328**Minor:** 2329 2330* Fix unistd compile error in 3.657. [Patricio Kaplan, Jonathan Kimmitt] 2331 2332 2333Verilator 3.657 2008-02-20 2334========================== 2335 2336**Minor:** 2337 2338* Fix assignments of {a,b,c} = {c,b,a}. [Jonathan Kimmitt] 2339* Fix Perl warning with --lint-only. [by Ding Xiaoliang] 2340* Fix to avoid creating obj_dir with --lint-only. [Ding Xiaoliang] 2341* Fix parsing of always @(*). [Patricio Kaplan] 2342 2343 2344Verilator 3.656 2008-01-18 2345========================== 2346 2347**Minor:** 2348 2349* Wide VL_CONST_W_#X functions are now made automatically. [Bernard Deadman] 2350 In such cases, a new {prefix}__Inlines.h file will be built and included. 2351* Fix sign error when extracting from signed memory. [Peter Debacker] 2352* Fix tracing of SystemC w/o SystemPerl. [Bernard Deadman, Johan Wouters] 2353 2354 2355Verilator 3.655 2007-11-27 2356========================== 2357 2358**Minor:** 2359 2360* Support "#delay <statement>;" with associated STMTDLY warning. 2361* Fix generate for loops with constant zero conditions. [Rodney Sinclair] 2362* Fix divide-by-zero errors in constant propagator. [Rodney Sinclair] 2363* Fix wrong result with obscure signed-shift underneath a "? :". 2364* Fix many internal memory leaks, and added leak detector. 2365 2366 2367Verilator 3.654 2007-10-18 2368========================== 2369 2370**Minor:** 2371 2372* Don't exit early if many warnings but no errors are found. [Stan Mayer] 2373* Fix parsing module #(parameter x,y) declarations. [Oleg Rodionov] 2374* Fix parsing system functions with empty parens. [Oleg Rodionov] 2375 2376 2377Verilator 3.653 2007-08-01 2378========================== 2379 2380**Minor:** 2381 2382* Support SystemVerilog ==? and !=? operators. 2383* Fix SC_LIBS missing from generated makefiles. [Ding Xiaoliang] 2384 2385 2386Verilator 3.652 2007-06-21 2387========================== 2388 2389**Minor:** 2390 2391* Report as many warning types as possible before exiting. 2392* Support V2K portlists with "input a,b,...". [Mark Nodine] 2393* Support V2K function/task argument lists. 2394* Optimize constant $display arguments. 2395* Fix preprocessor dropping some `line directives. [Mark Nodine] 2396 2397 2398Verilator 3.651 2007-05-22 2399========================== 2400 2401**Major:** 2402 2403* Add verilator_profcfunc utility. [Gene Weber] 2404 2405**Minor:** 2406 2407* Treat modules within `celldefine and `endcelldefine as if in library. 2408* Support functions which return integers. [Mark Nodine] 2409* Warn if flex is not installed. [Ralf Karge] 2410* Ignore `protect and `endprotect. 2411* Fix empty case/endcase blocks. 2412 2413 2414Verilator 3.650 2007-04-20 2415========================== 2416 2417**Major:** 2418 2419* Add --compiler msvc option. This is now required when Verilated code 2420 is to be run through MSVC++. This also enables fixing MSVC++ error 2421 C1061, blocks nested too deeply. [Ralf Karge] 2422* Add --lint-only option, to lint without creating other output. 2423 2424**Minor:** 2425 2426* Add /*verilator lint_save*/ and /*verilator lint_restore*/ to allow 2427 friendly control over re-enabling lint messages. [Gerald Williams] 2428* Support SystemVerilog .name and .* interconnect. 2429* Support while and do-while loops. 2430* Use $(LINK) instead of $(CXX) for Makefile link rules. [Gerald Williams] 2431* Add USER_CPPFLAGS and USER_LDFLAGS to Makefiles. [Gerald Williams] 2432* Fix compile errors under Windows MINGW compiler. [Gerald Williams] 2433* Fix dotted bit reference to local memory. [Eugene Weber] 2434* Fix 3.640 `verilog forcing IEEE 1364-1995 only. [David Hewson] 2435 2436 2437Verilator 3.640 2007-03-12 2438========================== 2439 2440**Minor:** 2441 2442* Support Verilog 2005 `begin_keywords and `end_keywords. 2443* Updated list of SystemVerilog keywords to correspond to IEEE 1800-2005. 2444* Add /*verilator public_flat*/. [Eugene Weber] 2445* Try all +libext's in the exact order given. [Michael Shinkarovsky] 2446* Fix elimination of public signals assigned to constants. [Eugene Weber] 2447* Fix internal error when public for loop has empty body. [David Addison] 2448* Fix "Loops detected" assertion when model exceeds 4GB. [David Hewson] 2449* Fix display %m names inside named blocks. 2450 2451 2452Verilator 3.633 2007-02-07 2453========================== 2454 2455**Minor:** 2456 2457* Add --trace-depth option for minimizing VCD file size. [Emerson Suguimoto] 2458* With VL_DEBUG, show wires causing convergence errors. [Mike Shinkarovsky] 2459* Fix isolate_assignments when many signals per always. [Mike Shinkarovsky] 2460* Fix isolate_assignments across task/func temporaries. [Mike Shinkarovsky] 2461* Fix $display's with array select followed by wide AND. [David Hewson] 2462 2463 2464Verilator 3.632 2007-01-17 2465========================== 2466 2467**Minor:** 2468 2469* Add /*verilator isolate_assignments*/ attribute. [Mike Shinkarovsky] 2470 2471 2472Verilator 3.631 2007-01-02 2473========================== 2474 2475**Major:** 2476 2477* Support standard NAME[#] for cells created by arraying or generate for. 2478 This replaces the non-standard name__# syntax used in earlier versions. 2479 2480**Minor:** 2481 2482* Fix again dotted references into generate cells. [David Hewson] 2483 Verilator no longer accepts duplicated variables inside unique 2484 generate blocks as this is illegal according to the specification. 2485* Fix $readmem* with filenames < 8 characters. [Emerson Suguimoto] 2486 2487 2488Verilator 3.630 2006-12-19 2489========================== 2490 2491**Major:** 2492 2493* Support $readmemb and $readmemh. [Eugene Weber, Arthur Kahlich] 2494 2495**Minor:** 2496 2497* When dotted signal lookup fails, help the user by showing known scopes. 2498* Fix to reduce depth of priority encoded case statements. [Eugene Weber] 2499* Fix configure and compiling under Solaris. [Bob Farrell] 2500* Fix dotted references inside generated cells. [David Hewson] 2501* Fix missed split optimization points underneath other re-split blocks. 2502 2503 2504Verilator 3.623 2006-12-05 2505========================== 2506 2507**Major:** 2508 2509* Add --output-split-cfuncs for accelerating GCC compile. [Eugene Weber] 2510 2511**Minor:** 2512 2513* Add M32 make variable to support -m32 compiles. [Eugene Weber] 2514* Fix $signed mis-extending when input has a WIDTH violation. [Eugene Weber] 2515 2516 2517Verilator 3.622 2006-10-17 Stable 2518================================= 2519 2520**Minor:** 2521 2522* Fix --skip-identical without --debug, broken in 3.621. [Andy Meier] 2523 2524 2525Verilator 3.621 2006-10-11 Beta 2526=============================== 2527 2528**Major:** 2529 2530* Add /*verilator no_inline_task*/ to prevent over-expansion. [Eugene Weber] 2531 2532**Minor:** 2533 2534* Public functions now allow > 64 bit arguments. 2535* Remove .vpp intermediate files when not under --debug. 2536* Fix link error when using --exe with --trace. [Eugene Weber] 2537* Fix mis-optimization of wide concats with constants. 2538* Fix core dump on printing error when not under --debug. [Allan Cochrane] 2539 2540 2541Verilator 3.620 2006-10-04 Stable 2542================================= 2543 2544**Minor:** 2545 2546* Support simple inout task ports. [Eugene Weber] 2547* Allow overriding Perl, Flex and Bison versions. [by Robert Farrell] 2548* Optimize variables set to constants within basic blocks for ~3%. 2549* Default make no longer makes the docs; if you edit the documentation. 2550 sources, run "make info" to get them. 2551* Optimize additional Boolean identities (a|a = a, etc.) 2552* Fix coredump when dotted cross-ref inside task call. [Eugene Weber] 2553* Fix dotted variables in always sensitivity lists. [Allan Cochrane] 2554 2555 2556Verilator 3.610 2006-09-20 Stable 2557================================= 2558 2559**Minor:** 2560 2561* Verilator now works under DJGPP (Pentium GCC). [John Stroebel] 2562* Add default define for VL_PRINTF. [John Stroebel] 2563* Removed coverage request variable; see Coverage limitations in docs. 2564* Fix DOS carriage returns in multiline defines. [Ralf Karge] 2565* Fix printf format warnings on 64-bit linux. 2566 2567 2568Verilator 3.602 2006-09-11 Stable 2569================================= 2570 2571**Minor:** 2572 2573* Fix function references under top inlined module. [David Hewson] 2574 2575 2576Verilator 3.601 2006-09-06 Beta 2577=============================== 2578 2579**Major:** 2580 2581* Add --inhibit-sim flag for environments using old __Vm_inhibitSim. 2582* Add `systemc_dtor for destructor extensions. [Allan Cochrane] 2583* Add -MP to make phony dependencies, ala GCC's. 2584 2585**Minor:** 2586 2587* Changed how internal functions are invoked to reduce aliasing. 2588 Useful when using GCC's -O2 or -fstrict-aliasing, to gain another ~4%. 2589* Declare optimized lookup tables as 'static', to reduce D-Cache miss rate. 2590* Fix memory leak when destroying modules. [John Stroebel] 2591* Fix coredump when unused modules have unused cells. [David Hewson] 2592* Fix 3.600 internal error with arrayed instances. [David Hewson] 2593* Fix 3.600 internal error with non-unrolled function loops. [David Hewson] 2594* Fix $display %m name not matching Verilog name inside SystemC modules. 2595 2596 2597Verilator 3.600 2006-08-28 Beta 2598=============================== 2599 2600**Major:** 2601 2602* Support dotted cross-hierarchy variable and task references. 2603 2604**Minor:** 2605 2606* Lint for x's in generate case statements. 2607* Fix line numbers being off by one when first file starts with newline. 2608* Fix naming of generate for blocks to prevent non-inline name conflict. 2609* Fix redundant statements remaining after table optimization. 2610 2611 2612Verilator 3.542 2006-08-11 Stable 2613================================= 2614 2615**Minor:** 2616 2617* vl_finish and vl_fatal now print via VL_PRINTF rather then cerr/cout. 2618* Fix extraneous UNSIGNED warning when comparing genvars. [David Hewson] 2619* Fix extra white space in $display %c. [by David Addison] 2620* Fix missing VL_CONST_W_24X macro. [Bernard Deadman] 2621 2622 2623Verilator 3.541 2006-07-05 Beta 2624=============================== 2625 2626**Minor:** 2627 2628* Add warning on changeDetect to arrayed structures. [David Hewson] 2629* Fix "// verilator lint_on" not re-enabling warnings. [David Hewson] 2630* Fix 3.540's multiple memory assignments to same block. [David Hewson] 2631* Fix non-zero start number for arrayed instantiations. [Jae Hossell] 2632* Fix GCC 4.0 header file warnings. 2633 2634 2635Verilator 3.540 2006-06-27 Beta 2636=============================== 2637 2638**Minor:** 2639 2640* Optimize combo assignments that are used only once, ~5-25% faster. 2641* Optimize delayed assignments to memories inside loops, ~0-5% faster. 2642* Fix mis-width warning on bit selects of memories. [David Hewson] 2643* Fix mis-width warning on dead generate-if branches. [Jae Hossell] 2644 2645 2646Verilator 3.533 2006-06-05 Stable 2647================================= 2648 2649**Minor:** 2650 2651* Add PDF user manual, verilator.pdf. 2652* Fix delayed bit-selected arrayed assignments. [David Hewson] 2653* Fix execution path to Perl. [Shanshan Xu] 2654* Fix Bison compile errors in verilog.y. [by Ben Jackson] 2655 2656 2657Verilator 3.531 2006-05-10 Stable 2658================================= 2659 2660**Minor:** 2661 2662* Support $c routines which return 64 bit values. 2663* Fix `include `DEFINE. 2664* Fix Verilator core dump when have empty public function. [David.Hewson] 2665 2666 2667Verilator 3.530 2006-04-24 Stable 2668================================= 2669 2670**Major:** 2671 2672* $time is now 64 bits. The macro VL_TIME_I is now VL_TIME_Q, but calls 2673 the same sc_time_stamp() function to get the current time. 2674 2675 2676Verilator 3.523 2006-03-06 Stable 2677================================= 2678 2679**Minor:** 2680 2681* Fix error line numbers being off due to multi-line defines. [Mat Zeno] 2682* Fix GCC sign extending (uint64_t)(a<b). [David Hewson] 2683* Fix `systemc_imp_header "undefined macro" error. 2684 2685 2686Verilator 3.522 2006-02-23 Beta 2687=============================== 2688 2689**Minor:** 2690 2691* Add UNUSED error message, for forward compatibility. 2692 2693 2694Verilator 3.521 2006-02-14 Beta 2695=============================== 2696 2697**Major:** 2698 2699* Create new --coverage-line and --coverage-user options. [Peter Holmes] 2700 2701**Minor:** 2702 2703* Add SystemVerilog 'x,'z,'0,'1, and new string literals. 2704* Fix public module's parent still getting inlined. 2705 2706 2707Verilator 3.520 2006-01-14 Stable 2708================================= 2709 2710**Major:** 2711 2712* Support $fopen, $fclose, $fwrite, $fdisplay. 2713 See documentation, as the file descriptors differ from the standard. 2714 2715 2716Verilator 3.510 2005-12-17 Stable 2717================================= 2718 2719**Major:** 2720 2721* Improve trace-on performance on large multi-clock designs by 2x or more. 2722 This adds a small ~2% performance penalty if traces are compiled in, 2723 but not turned on. For best non-tracing performance, do not use --trace. 2724 2725**Minor:** 2726 2727* Fix $'s in specify delays causing bad PLI errors. [Mat Zeno] 2728* Fix public functions not setting up proper symbol table. [Mat Zeno] 2729* Fix genvars generating trace compile errors. [Mat Zeno] 2730* Fix VL_MULS_WWW compile error with MSVC++. [Wim Michiels] 2731 2732 2733Verilator 3.502 2005-11-30 Stable 2734================================= 2735 2736**Minor:** 2737 2738* Fix local non-IO variables in public functions and tasks. 2739* Fix bad lifetime optimization when same signal is assigned multiple 2740 times in both branch of a if. [Danny Ding] 2741 2742 2743Verilator 3.501 2005-11-16 Stable 2744================================= 2745 2746**Major:** 2747 2748* Add --prof-cfuncs for correlating profiles back to Verilog. 2749 2750**Minor:** 2751 2752* Fix functions where regs are declared before inputs. [Danny Ding] 2753* Fix bad deep expressions with bit-selects and rotate. [Prabhat Gupta] 2754 2755 2756Verilator 3.500 2005-10-30 Stable 2757================================= 2758 2759**Major:** 2760 2761* Support signed numbers, >>>, $signed, $unsigned. [MANY!] 2762* Support multi-dimensional arrays. [Eugen Fekete] 2763* Support very limited Property Specification Language 2764 (aka PSL or Sugar). The format and keywords are now very limited, but will 2765 grow with future releases. The --assert switch enables this feature. 2766* With --assert, generate assertions for synthesis parallel_case and full_case. 2767 2768**Minor:** 2769 2770* Fix generate if's with empty if/else blocks. [Mat Zeno] 2771* Fix generate for cell instantiations with same name. [Mat Zeno] 2772 2773 2774Verilator 3.481 2005-10-12 Stable 2775================================= 2776 2777**Minor:** 2778 2779* Add /*verilator tracing_on/off*/ for waveform control. 2780* Fix split optimization reordering $display statements. 2781 2782 2783Verilator 3.480 2005-09-27 Beta 2784=============================== 2785 2786**Major:** 2787 2788* Allow coverage of flattened modules, and multiple points per line. 2789 Coverage analysis requires SystemPerl 1.230 or newer. 2790 2791**Minor:** 2792 2793* Add preprocessor changes to support meta-comments. 2794* Optimize sequential assignments of different bits of same bus; ~5% faster. 2795* Optimize away duplicate lookup tables. 2796* Optimize wide concatenates into individual words. [Ralf Karge] 2797* Optimize local variables from delayed array assignments. 2798 2799 2800Verilator 3.470 2005-09-06 Stable 2801================================= 2802 2803**Minor:** 2804 2805* Optimize staging flops under reset blocks. 2806* Add '-Werror-...' to upgrade specific warnings to errors. 2807* Add GCC branch prediction hints on generated if statements. 2808* Fix bad simulation when same function called twice in same expression. 2809* Fix preprocessor substitution of quoted parameterized defines. 2810 2811 2812Verilator 3.464 2005-08-24 Stable 2813================================= 2814 2815**Major:** 2816 2817* Add `systemc_imp_header, for use when using --output-split. 2818* Add --stats option to dump design statistics. 2819 2820**Minor:** 2821 2822* Fix core dump with clock inversion optimizations. 2823 2824 2825Verilator 3.463 2005-08-05 Stable 2826================================= 2827 2828**Minor:** 2829 2830* Fix case defaults when not last statement in case list. [Wim Michiels] 2831 2832 2833Verilator 3.462 2005-08-03 Stable 2834================================= 2835 2836**Minor:** 2837 2838* Fix reordering of delayed assignments to same memory index. [Wim Michiels] 2839* Fix compile error with Flex 2.5.1. [Jens Arm] 2840* Fix multiply-instantiated public tasks generating non-compilable code. 2841 2842 2843Verilator 3.461 2005-07-28 Beta 2844=============================== 2845 2846**Minor:** 2847 2848* Fix compile error with older versions of bison. [Jeff Dutton] 2849 2850 2851Verilator 3.460 2005-07-27 Beta 2852=============================== 2853 2854**Major:** 2855 2856* Add -output-split option to enable faster parallel GCC compiles. 2857 To support --output-split, the makefiles now split VM_CLASSES 2858 into VM_CLASSES_FAST and VM_CLASSES_SLOW. This may require a 2859 change to local makefiles. 2860* Support -v argument to read library files. 2861 2862**Minor:** 2863 2864* When issuing unoptimizable warning, show an example path. 2865* Internal tree dumps now indicate edit number that changed the node. 2866* Fix false warning when a clock is constant. 2867* Fix X/Z in decimal numbers. [Wim Michiels] 2868* Fix genvar statements in non-named generate blocks. 2869* Fix core dump when missing newline in `define. [David van der bokke] 2870 2871 2872Verilator 3.450 2005-07-12 2873========================== 2874 2875**Major:** 2876 2877* $finish will no longer exit, but set Verilated::gotFinish(). 2878 This enables support for final statements, and for other cleanup code. 2879 If this is undesired, redefine the vl_user_finish routine. Top level 2880 loops should use Verilated::gotFinish() as a exit condition for their 2881 loop, and then call top->final(). To prevent a infinite loop, a double 2882 $finish will still exit; this may be removed in future releases. 2883* Support SystemVerilog keywords $bits, $countones, $isunknown, 2884 $onehot, $onehot0, always_comb, always_ff, always_latch, finish. 2885 2886**Minor:** 2887 2888* Fix "=== 1'bx" to always be false, instead of random. 2889 2890 2891Verilator 3.440 2005-06-28 Stable 2892================================= 2893 2894**Major:** 2895 2896* Add Verilog 2001 generate for/if/case statements. 2897 2898 2899 2900Verilator 3.431 2005-06-24 Stable 2901================================= 2902 2903**Minor:** 2904 2905* Fix selection bugs introduced in 3.430 beta. 2906 2907 2908Verilator 3.430 2005-06-22 Beta 2909=============================== 2910 2911**Minor:** 2912 2913* Add Verilog 2001 variable part selects [n+:m] and [n-:m]. [Wim Michiels] 2914 2915 2916Verilator 3.422 2005-06-10 Stable 2917================================= 2918 2919**Minor:** 2920 2921* Add Verilog 2001 power (**) operator. [Danny Ding] 2922* Fix crash and added error message when assigning to inputs. [Ralf Karge] 2923* Fix tracing of modules with public functions. 2924 2925 2926Verilator 3.421 2005-06-02 Beta 2927=============================== 2928 2929**Minor:** 2930 2931* Fix error about reserved word on non-public signals. 2932* Fix missing initialization compile errors in 3.420 beta. [Ralf Karge] 2933 2934 2935Verilator 3.420 2005-06-02 Beta 2936=============================== 2937 2938**Minor:** 2939 2940* Performance improvements worth ~20% 2941* Add -x-assign options; ~5% faster if use -x-assign=0. 2942* Add error message when multiple defaults in case statement. 2943* Optimize shifts out of conditionals and if statements. 2944* Optimize local 'short' wires. 2945* Fix case defaults when not last statement in case list. [Ralf Karge] 2946* Fix crash when wire self-assigns x=x. 2947* Fix gate optimization with top-flattened modules. [Mahesh Kumashikar] 2948 2949 2950Verilator 3.411 2005-05-30 Stable 2951================================= 2952 2953**Minor:** 2954 2955* Fix compile error in GCC 2.96. [Jeff Dutton] 2956 2957 2958Verilator 3.410 2005-05-25 Beta 2959=============================== 2960 2961**Major:** 2962 2963* Allow functions and tasks to be declared public. 2964 They will become public C++ functions, with appropriate C++ types. 2965 This allows users to make public accessor functions/tasks, instead 2966 of having to use public variables and `systemc_header hacks. 2967 2968**Minor:** 2969 2970* Skip producing output files if all inputs are identical 2971 This uses timestamps, similar to make. Disable with --no-skip-identical. 2972* Improved compile performance with large case statements. 2973* Fix internal error in V3Table. [Jeff Dutton] 2974* Fix compile error in GCC 2.96, and with SystemC 1.2. [Jeff Dutton] 2975 2976 2977Verilator 3.400 2005-04-29 Beta 2978=============================== 2979 2980**Major:** 2981 2982* Internal changes to support future clocking features. 2983* Verilog-Perl and SystemPerl are no longer required for C++ or SystemC 2984 output. If you want tracing or coverage analysis, they are still needed. 2985* Add --sc to create pure SystemC output not requiring SystemPerl. 2986* Add --pins64 to create 64 bit SystemC outputs instead of sc_bv<64>. 2987* The --exe flag is now required to produce executables inside the makefile. 2988 This was previously the case any time .cpp files were passed on the 2989 command line. 2990* Add -O3 and --inline-mult for performance tuning. [Ralf Karge] 2991 One experiment regained 5% performance, at a cost of 300% in compile time. 2992 2993**Minor:** 2994 2995* Improved performance of large case/always statements with low fanin 2996 by converting to internal lookup tables (ROMs). 2997* Initialize SystemC port names. [S Shuba] 2998* Add Doxygen comments to Verilated includes. 2999* Fix -cc pins 8 bits wide and less to be uint8_t instead of uint16_t. 3000* Fix crash when Mdir has same name as .v file. [Gernot Koch] 3001* Fix crash with size mismatches on case items. [Gernot Koch] 3002 3003 3004Verilator 3.340 2005-02-18 Stable 3005================================= 3006 3007**Minor:** 3008 3009* Report misconnected pins across all modules, instead of just first error. 3010* Improved large netlist compile times. 3011* Fix over-active inlining, resulting in compile slowness. 3012 3013 3014Verilator 3.332 2005-01-27 3015========================== 3016 3017**Major:** 3018 3019* Add -E preprocess only flag, similar to GCC. 3020* Add CMPCONSTLR when comparison is constant due to > or < with all ones. 3021 3022**Minor:** 3023 3024* Fix loss of first -f file argument, introduced in 3.331. 3025 3026 3027Verilator 3.331 2005-01-18 3028========================== 3029 3030**Major:** 3031 3032* The Verilog::Perl preprocessor is now C++ code inside of Verilator. 3033 This improves performance, makes compilation easier, and enables 3034 some future features. 3035 3036**Minor:** 3037 3038* Support arrays of instantiations (non-primitives only). [Wim Michiels] 3039* Fix unlinked error with defparam. [Shawn Wang] 3040 3041 3042Verilator 3.320 2004-12-10 3043========================== 3044 3045**Major:** 3046 3047* NEWS is now renamed Changes, to support CPAN indexing. 3048* If Verilator is passed a C file, create a makefile link rule. 3049 This saves several user steps when compiling small projects. 3050 3051**Minor:** 3052 3053* Add new COMBDLY warning in place of fatal error. [Shawn Wang] 3054* Fix mis-simulation with wide-arrays under bit selects. [Ralf Karge] 3055* Add NC Verilog as alternative to VCS for reference tests. 3056* Support implicit wire declarations on input-only signals. 3057 (Dangerous, as leads to wires without drivers, but allowed by spec.) 3058* Fix compile warnings on Suse 9.1 3059 3060 3061Verilator 3.311 2004-11-29 3062========================== 3063 3064**Major:** 3065 3066* Support implicit wire declarations (as a warning). [Shawn Wang] 3067 3068**Minor:** 3069 3070* Fix over-shift difference in Verilog vs C++. [Ralf Karge] 3071 3072 3073Verilator 3.310 2004-11-15 3074========================== 3075 3076**Major:** 3077 3078* Support defparam. 3079* Support gate primitives: buf, not, and, nand, or, nor, xor, xnor. 3080 3081**Minor:** 3082 3083* Ignore all specify blocks. 3084 3085 3086Verilator 3.302 2004-11-12 3087========================== 3088 3089**Minor:** 3090 3091* Support NAND and NOR operators. 3092* Better warnings when port widths don't match. 3093* Fix internal error due to some port width mismatches. [Ralf Karge] 3094* Fix WIDTH warnings on modules that are only used 3095 parameterized, not in 'default' state. 3096* Fix selection of SystemC library on cygwin systems. [Shawn Wang] 3097* Fix runtime bit-selection of parameter constants. 3098 3099 3100Verilator 3.301 2004-11-04 3101========================== 3102 3103**Minor:** 3104 3105* Fix 64 bit [31:0] = {#{}} mis-simulation. [Ralf Karge] 3106* Fix shifts greater then word width mis-simulation. [Ralf Karge] 3107* Fix to work around GCC 2.96 negation bug. 3108 3109 3110Verilator 3.300 2004-10-21 3111========================== 3112 3113**Major:** 3114 3115* New backend that eliminates most VL macros. 3116 Improves performance 20%-50%, depending on frequency of use of signals 3117 over 64 bits. GCC compile times with -O2 shrink by a factor of 10. 3118 3119**Minor:** 3120 3121* Fix "setting unsigned int from signed value" warning. 3122 3123 3124Verilator 3.271 2004-10-21 3125========================== 3126 3127**Minor:** 3128 3129* Fix "loops detected" error with some negedge clocks. 3130* Fix some output code spacing issues. 3131 3132 3133Verilator 3.270 2004-10-15 3134========================== 3135 3136**Minor:** 3137 3138* Support Verilog 2001 parameters in module headers. [Ralf Karge] 3139* Faster code to support compilers not inlining all Verilated functions. 3140* Fix numeric fault when dividing by zero. 3141 3142 3143 3144Verilator 3.260 2004-10-07 3145========================== 3146 3147**Major:** 3148 3149* Support Verilog 2001 named parameter instantiation. [Ralf Karge] 3150 3151**Minor:** 3152 3153* Return 1's when one bit wide extract indexes outside array bounds. 3154* Fix compile warnings on 64-bit operating systems. 3155* Fix incorrect dependency in .d file when setting VERILATOR_BIN. 3156 3157 3158Verilator 3.251 2004-09-09 3159========================== 3160 3161**Minor:** 3162 3163* Fix parenthesis overflow in Microsoft Visual C++ [Renga Sundararajan] 3164 3165 3166Verilator 3.250 2004-08-30 3167========================== 3168 3169**Major:** 3170 3171* Support Microsoft Visual C++ [Renga Sundararajan] 3172 3173**Minor:** 3174 3175* SystemPerl 1.161+ is required. 3176 3177 3178Verilator 3.241 2004-08-17 3179========================== 3180 3181**Minor:** 3182 3183* Support ,'s to separate multiple assignments. [Paul Nitza] 3184* Fix shift sign extension problem using non-GCC compilers. 3185 3186 3187Verilator 3.240 2004-08-13 3188========================== 3189 3190**Major:** 3191 3192* Verilator now uses 64 bit math where appropriate. 3193 Inputs and outputs of 33-64 bits wide to the C++ Verilated model must 3194 now be uint64_t's; SystemC has not changed, they will remain sc_bv's. 3195 This increases performance by ~ 9% on x86 machines, varying with how 3196 frequently 33-64 bit signals occur. Signals 9-16 bits wide are now 3197 stored as 16 bit shorts instead of longs, this aids cache packing. 3198 3199**Minor:** 3200 3201* Fix SystemC compile error with feedthrus. [Paul Nitza] 3202* Fix concat value error introduced in 3.230. 3203 3204 3205Verilator 3.230 2004-08-10 3206========================== 3207 3208**Minor:** 3209 3210* Add coverage output to test_sp example, SystemPerl 1.160+ is required. 3211* Fix time 0 value of signals. [Hans Van Antwerpen] 3212 Earlier versions would not evaluate some combinatorial signals 3213 until posedge/negedge blocks had been activated. 3214* Fix wide constant inputs to public submodules [Hans Van Antwerpen] 3215* Fix wide signal width extension bug. 3216 Only applies when width mismatch warnings were overridden. 3217 3218 3219Verilator 3.220 2004-06-22 3220========================== 3221 3222**Major:** 3223 3224* Many waveform tracing changes: 3225* Tracing is now supported on C++ standalone simulations. [John Brownlee] 3226 3227**Minor:** 3228 3229* When tracing, SystemPerl 1.150 or newer is required. 3230* When tracing, Verilator must be called with the --trace switch. 3231* Add SystemPerl example to documentation. [John Brownlee] 3232* Various Cygwin compilation fixes. [John Brownlee] 3233 3234 3235Verilator 3.210 2004-04-01 3236========================== 3237 3238**Major:** 3239 3240* Compiler optimization switches have changed 3241 See the BENCHMARKING section of the documentation. 3242* With Verilog-Perl 2.3 or newer, Verilator supports SystemVerilog 3243 preprocessor extensions. 3244 3245**Minor:** 3246 3247* Add localparam. [Thomas Hawkins] 3248* Add warnings for SystemVerilog reserved words. 3249 3250 3251Verilator 3.203 2004-03-10 3252========================== 3253 3254**Minor:** 3255 3256* Notes and repairs for Solaris. [Fred Ma] 3257 3258 3259Verilator 3.202 2004-01-27 3260========================== 3261 3262**Major:** 3263 3264* The beta version is now the primary release. See below for many changes. 3265 If you have many problems, you may wish to try release 3.125. 3266* Verilated::traceEverOn(true) must be called at time 0 if you will ever 3267 turn on tracing (waveform dumping) of signals. Future versions will 3268 need this switch to disable trace incompatible optimizations. 3269 3270**Minor:** 3271 3272* Optimize common replication operations. 3273* Fix several tracing bugs 3274 3275 3276Verilator 3.201-beta 2003-12-10 3277=============================== 3278 3279**Major:** 3280 3281* BETA VERSION, USE 3.124 for stable release! 3282* Version 3.2XX includes a all new back-end. 3283 This includes automatic inlining, flattening of signals between 3284 hierarchy, and complete ordering of statements. This results in 3285 60-300% execution speedups, though less pretty C++ output. Even 3286 better results are possible using GCC 3.2.2 (part of Redhat 9.1), as 3287 GCC has fixed some optimization problems which Verilator exposes. 3288 3289 If you are using `systemc_ctor, beware pointers to submodules are now 3290 initialized after the constructor is called for a module, to avoid 3291 segfaults, move statements that reference subcells into initial 3292 statements. 3293* C++ Constructor that creates a verilog module may take a char* name. 3294 This name will be used to prefix any $display %m arguments, so users may 3295 distinguish between multiple Verilated modules in a single executable. 3296 3297 3298Verilator 3.125 2004-01-27 3299========================== 3300 3301**Minor:** 3302 3303* Optimize bit replications 3304 3305 3306Verilator 3.124 2003-12-05 3307========================== 3308 3309**Major:** 3310 3311* A optimized executable will be made by default, in addition to a debug 3312 executable. Invoking Verilator with --debug will pick the debug version. 3313 3314**Minor:** 3315 3316* Many minor invisible changes to support the next version. 3317 3318 3319Verilator 3.123 2003-11-10 3320========================== 3321 3322**Minor:** 3323 3324* Wide bus performance enhancements. 3325* Fix function call bug when width warning suppressed. [Leon Wildman] 3326* Fix __DOT__ compile problem with funcs in last revision. [Leon Wildman] 3327 3328 3329Verilator 3.122 2003-10-29 3330========================== 3331 3332**Major:** 3333 3334* Modules which are accessed from external code now must be marked with 3335 /*verilator public_module*/ unless they already contain public signals. 3336 To enforce this, private cell names now have a string prepended. 3337 3338**Minor:** 3339 3340* Fix replicated function calls in one statement. [Robert A. Clark] 3341* Fix function call bug when width warning suppressed. [Leon Wildman] 3342 3343 3344Verilator 3.121 2003-09-29 3345========================== 3346 3347**Minor:** 3348 3349* Support multiplication over 32 bits. [Chris Boumenot] 3350 Also improved speed of addition and subtraction over 32 bits. 3351* Detect bit selection out of range errors. 3352* Detect integer width errors. 3353* Fix width problems on function arguments. [Robert A. Clark] 3354 3355 3356Verilator 3.120 2003-09-24 3357========================== 3358 3359**Minor:** 3360 3361* $finish now exits the model (via vl_finish function). 3362* Support inputs/outputs in tasks. 3363* Support V2K "integer int = {INITIAL_VALUE};" 3364* Ignore floating point delay values. [Robert A. Clark] 3365* Ignore `celldefine, `endcelldefine, etc. [Robert A. Clark] 3366* Optimize reduction operators. 3367* Fix converting "\ooo" into octal values. 3368* Fix $display("%x"); 3369 3370 3371Verilator 3.112 2003-09-16 3372========================== 3373 3374**Minor:** 3375 3376* Fix functions in continuous assignments. [Robert A. Clark] 3377* Fix inlining of modules with 2-level deep outputs. 3378 3379 3380Verilator 3.111 2003-09-15 3381========================== 3382 3383**Minor:** 3384 3385* Fix declaration of functions before using that module. [Robert A. Clark] 3386* Fix module inlining bug with outputs. 3387 3388 3389Verilator 3.110 2003-09-12 3390========================== 3391 3392**Major:** 3393 3394* Support Verilog 2001 style input/output declarations. [Robert A. Clark] 3395* Support local vars in headers of function/tasks. [Leon Wildman] 3396 3397 3398Verilator 3.109 2003-08-28 3399========================== 3400 3401**Major:** 3402 3403* Support local variables in named begin blocks. [Leon Wildman] 3404 3405 3406Verilator 3.108 2003-08-11 3407========================== 3408 3409**Major:** 3410 3411* Support functions. 3412 3413**Minor:** 3414 3415* Signals 8 bits and shorter are now stored as chars 3416 instead of uint32_t's. This improves Dcache packing and 3417 improves performance by ~7%. 3418* $display now usually results in a single VL_PRINT rather then many. 3419* Optimize conditionals (?:) 3420 3421 3422Verilator 3.107 2003-07-15 3423========================== 3424 3425**Major:** 3426 3427* --private and --l2name are now the default, 3428 as this enables additional optimizations. 3429 Use --noprivate or --nol2name to get the older behavior. 3430 3431**Minor:** 3432 3433* Now support $display of binary and wide format data. 3434* Add detection of incomplete case statements, 3435 and added related optimizations worth ~4%. 3436* Work around flex bug in Redhat 8.0. [Eugene Weber] 3437* Add some additional C++ reserved words. 3438* Additional constant optimizations, ~5% speed improvement. 3439 3440 3441Verilator 3.106 2003-06-17 3442========================== 3443 3444**Major:** 3445 3446* $c can now take multiple expressions as arguments. 3447 For example $c("foo","bar(",32+1,");") will insert "foobar(33);" 3448 This makes it easier to pass the values of signals. 3449* Several changes to support future versions that may have 3450 signal-eliminating optimizations. Users should try to use these switch 3451 on designs, they will become the default in later versions. 3452* Add --private switch and /*verilator public*/ metacomment. 3453 This renames all signals so that compile errors will result if any 3454 signals referenced by C++ code are missing a /*verilator public*/ 3455 metacomment. 3456* With --l2name, the second level cell C++ cell is now named "v". 3457 Previously it was named based on the name of the verilog code. This 3458 means to get to signals, scope to "{topcell} ->v ->{mysignal}" instead 3459 of "{topcell} ->{verilogmod}. {mysignal}". This allows different 3460 modules to be substituted for the cell without requiring source 3461 changes. 3462 3463**Minor:** 3464 3465* Several cleanups for Redhat 8.0. 3466 3467 3468Verilator 3.105 2003-05-08 3469========================== 3470 3471**Minor:** 3472 3473* Fix more GCC 3.2 errors. [David Black] 3474 3475 3476Verilator 3.104 2003-04-30 3477========================== 3478 3479**Major:** 3480 3481* Indicate direction of ports with VL_IN and VL_OUT. 3482* Allow $c32, etc, to specify width of the $c statement for VCS. 3483* Numerous performance improvements, worth about 25% 3484 3485**Minor:** 3486 3487* Fix false "indent underflow" error inside `systemc_ctor sections. 3488* Fix missing ordering optimizations when outputs also used internally. 3489* Assign constant cell pins in initial blocks rather then every cycle. 3490* Promote subcell's combo logic to sequential evaluation when possible. 3491* Fix GCC 3.2 compile errors. [Narayan Bhagavatula] 3492 3493 3494Verilator 3.103 2003-01-28 3495========================== 3496 3497**Minor:** 3498 3499* Fix missing model evaluation when clock generated several levels of 3500 hierarchy across from where it is used as a clock. [Richard Myers] 3501* Fix sign-extension bug introduced in 3.102. 3502 3503 3504Verilator 3.102 2003-01-24 3505========================== 3506 3507**Minor:** 3508 3509* Fix sign-extension of X/Z's ("32'hx") 3510 3511 3512Verilator 3.101 2003-01-13 3513========================== 3514 3515**Minor:** 3516 3517* Fix 'parameter FOO=#'bXXXX' [Richard Myers] 3518* Allow spaces inside numbers ("32'h 1234") [Sam Gladstone] 3519 3520 3521Verilator 3.100 2002-12-23 3522========================== 3523 3524**Major:** 3525 3526* Support for simple tasks w/o vars or I/O. [Richard Myers] 3527 3528**Minor:** 3529 3530* Ignore DOS carriage returns in Linux files. [Richard Myers] 3531 3532 3533Verilator 3.012 2002-12-18 3534========================== 3535 3536**Minor:** 3537 3538* Fix parsing bug with casex statements containing case items 3539 with bit extracts of parameters. [Richard Myers] 3540* Fix bug which could cause writes of non-power-of-2 sized arrays to 3541 corrupt memory beyond the size of the array. [Dan Lussier] 3542* Fix bug which did not detect UNOPT problems caused by 3543 submodules. See the description in the verilator man page. [John Deroo] 3544* Fix compile with threaded Perl. [Ami Keren] 3545 3546 3547Verilator 3.010 2002-11-03 3548========================== 3549 3550**Major:** 3551 3552* Support SystemC 2.0.1. SystemPerl version 1.130 or newer is required. 3553 3554**Minor:** 3555 3556* Fix bug with inlined modules under other inlined modules. [Scott Bleiweiss] 3557 3558 3559Verilator 3.005 2002-10-21 3560========================== 3561 3562**Minor:** 3563 3564* Fix X's in case (not casex/z) to constant propagate correctly. 3565* Fix missing include. [Kurachi] 3566 3567 3568Verilator 3.004 2002-10-10 3569========================== 3570 3571**Minor:** 3572 3573* Add module_inline metacomment and associated optimizations. 3574* Allow coverage_block_off metacomment in place of `coverage_block_off. 3575 This prevents problems with Emacs AUTORESET. [Ray Strouble] 3576* Fix `coverage_block_off also disabling subsequent blocks. 3577* Fix unrolling of loops with multiple simple statements. 3578* Fix compile warnings on newer GCC. [Kurachi] 3579* Additional concatenation optimizations. 3580 3581 3582Verilator 3.003 2002-09-13 3583========================== 3584 3585**Minor:** 3586 3587* Now compiles on Windows 2000 with Cygwin. 3588* Fix bug with pin assignments to wide memories. 3589* Optimize wire assignments to constants. 3590 3591 3592Verilator 3.002 2002-08-19 3593========================== 3594 3595**Major:** 3596 3597* First public release of version 3. 3598 3599 3600Verilator 3.000 2002-08-03 3601========================== 3602 3603**Major:** 3604 3605* All new code base. Many changes too numerous to mention. 3606 3607**Minor:** 3608 3609* Approximately 4 times faster then Verilator 2. 3610* Support initial statements 3611* Support correct blocking/nonblocking assignments 3612* Support `defines across multiple modules 3613* Optimize call ordering, constant propagation, and dead code elimination. 3614 3615 3616Verilator 2.1.8 2002-04-03 3617========================== 3618 3619**Major:** 3620 3621* All applications must now link against include/verilated.cpp 3622 3623**Minor:** 3624 3625* Paths specified to verilator_make should be absolute, or be formed 3626 to allow for execution in the object directory (prepend ../ to each path.) 3627 This allows relative filenames for makes which hash and cache dependencies. 3628* Add warning when parameter constants are too large. [John Deroo] 3629* Add warning when x/?'s used in non-casez statements. 3630* Add warning when blocking assignments used in posedge blocks. [Dan Lussier] 3631* Split evaluation function into clocked and non-clocked, 20% perf gain. 3632 3633 3634Verilator 2.1.5 2001-12-01 3635========================== 3636 3637**Major:** 3638 3639* Add coverage analysis. In conjunction with SystemC provide line 3640 coverage reports, without SystemC, provide a hook to user written 3641 accumulation function. See --coverage option of verilator_make. 3642 3643**Minor:** 3644 3645* Relaxed multiply range checking 3646* Support for constants up to 128 bits 3647* Randomize values used when assigning to X's. 3648* Add -guard option of internal testing. 3649* Changed indentation in emitted code to be automatically generated. 3650* Fix corruption of assignments of signal over 32 bits with non-0 lsb. 3651 3652 3653Verilator 2.1.4 2001-11-16 3654========================== 3655 3656**Major:** 3657 3658* Add $c("c_commands();"); for embedding arbitrary C code in Verilog. 3659 3660 3661Verilator 2.1.3 2001-11-03 3662========================== 3663 3664**Major:** 3665 3666* Support for parameters. 3667 3668 3669Verilator 2.1.2 2001-10-25 3670========================== 3671 3672**Major:** 3673 3674* Verilog Errors now reference the .v file rather then the .vpp file. 3675 3676**Minor:** 3677 3678* Support strings in assignments: reg [31:0] foo = "STRG"; 3679* Support %m in format strings. Ripped out old $info support, use 3680 Verilog-Perl's vpm program instead. 3681* Convert $stop to call of v_stop() which user can define. 3682* Fix bug where a==b==c would have wrong precedence rule. 3683* Fix bug where XNOR on odd-bit-widths (~^ or ^~) had bad value. 3684 3685 3686Verilator 2.1.1 2001-05-17 3687========================== 3688 3689**Major:** 3690 3691* New test_sp directory for System-Perl (SystemC) top level instantiation 3692 of the Verilated code, lower modules are still C++ code. (Experimental). 3693* New test_spp directory for Pure System-Perl (SystemC) where every module 3694 is true SystemC code. (Experimental) 3695 3696**Minor:** 3697 3698* Input ports are now loaded by pointer reference into the sub-cell. 3699 This is faster on I-386 machines, as the stack must be used when there are 3700 a large number of parameters. Also, this simplifies debugging as the value 3701 of input ports exists for tracing. 3702* Many code cleanups towards standard C++ style conventions. 3703 3704 3705Verilator 2.1.0 2001-05-08 3706========================== 3707 3708**Minor:** 3709 3710* Many code cleanups towards standard C++ style conventions. 3711 3712 3713Version history lost 3714==================== 3715 3716 3717Verilator 1.8 1996-07-08 3718======================== 3719 3720[Versions 0 to 1.8 were by Paul Wasson] 3721* Fix single bit in concat from instance output incorrect offset bug. 3722 3723 3724Verilator 1.7 1996-05-20 3725======================== 3726 3727* Mask unused bits of DONTCAREs. 3728 3729 3730Verilator 1.6 1996-05-13 3731======================== 3732 3733* Add fasttrace script 3734 3735 3736Verilator 1.5 1996-01-09 3737======================== 3738 3739* Pass structure pointer into translated code, so multiple instances can use same functions. 3740* Fix static value concat on casex items. 3741 3742 3743Verilator 1.1 1995-03-30 3744======================== 3745 3746* Bug fixes, added verimake_partial script, performance improvements. 3747 3748 3749Verilator 1.0c 1994-09-30 3750========================= 3751 3752* Initial release of Verilator 3753 3754 3755Verilator 0.0 1994-07-08 3756======================== 3757 3758* First code written. 3759 3760.. ---------------------------------------------------------------------- 3761 3762Copyright 3763========= 3764 3765Copyright 2001-2021 by Wilson Snyder. This program is free software; you 3766can redistribute it and/or modify it under the terms of either the GNU 3767Lesser General Public License Version 3 or the Perl Artistic License 3768Version 2.0. 3769 3770SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 3771