Revision history for Verilator

The contributors that suggested a given feature are shown in []. Thanks!


* Verilator 4.027 devel

**    Support attributes (public, isolate_assignments, etc.) in configuration files.

**    Add -match to lint_off to waive warnings. [Philipp Wagner]

***   Verilation speed improvements, #2133, #2138. [Geza Lore]

***   Support libgoogle-perftools-dev's libtcmalloc if available, #2137. [Geza Lore]

***   Support $readmem/$writemem with assoc arrarys, #2100. [agrobman]

****  Support type(expression) operator and $typename, #1650.

****  Support left justified $display, #2101. [Pieter Kapsenberg]

****  Support string character access via indexing.

****  Support enum.next(k) with constant k > 1, #2125. [Tobias Rosenkranz]

****  Add parameter values in XML. #2110. [Pieter Kapsenberg]

****  Add loc column location in XML (replaces fl), #2122. [Pieter Kapsenberg]

****  Add error on misused define. [Topa Tota]

****  Add parameter to set maximum signal width, #2082. [Øyvind Harboe]

****  Fix VPI scope naming for public modules. [Nandu Raj]

****  Fix FST tracing of enums inside structs. [fsiegle]

****  Fix WIDTH warning on </<= of narrower value, #2141. [agrobman]


* Verilator 4.026 2020-01-11

**    Docker images are now available for Verilator releases.

***   Support bounded queues.

***   Support implication operator "|->" in assertions, #2069. [Peter Monsson]

***   Support string compare, ato*, etc methods, #1606. [Yutetsu TAKATSUKASA]

****  Support immediate cover statements.

****  Ignore `uselib to end-of-line, #1634. [Frederic Antonin]

****  Update FST trace API for better performance.

****  Add vpiTimeUnit and allow to specify time as string, #1636. [Stefan Wallentowitz]

****  Add error when `resetall inside module (IEEE 2017-22.3).

****  Add cleaner error on version control conflicts in sources.

****  Fix little endian cell ranges, #1631. [Julien Margetts]

****  Fix queue issues, #1641, #1643. [Peter Monsson, Stefan Wallentowitz]

****  Fix strcasecmp for windows, #1651. [Kuba Ober]

****  Fix disable iff in assertions. Closes #1404. [Peter Monsson]

****  Fix huge case statement performance. Closes #1644. [Julien Margetts]

****  Fix tracing -1 index arrays. Closes #2090. [Yutetsu Takatsukasa]

****  Fix expand optimization slowing --lint-only. Closes #2091. [Thomas Watts]

****  Fix %{number}s with strings. #2093. [agrobman]

****  Fix shebang breaking some shells. Closes #2067. [zdave]


* Verilator 4.024 2019-12-08

**    Support associative arrays (excluding [*] and pattern assignments), #544.

**    Support queues (excluding {} notation and pattern assignments), #545.

***   Add +verilator+error+limit to see more assertion errors. [Peter Monsson]

***   Support string.toupper and string.tolower.

***   Support $rewind and $ungetc.

***   Support shortreal as real, with a SHORTREAL warning.

****  Add -Wpedantic and -Wno-context for compliance testing.

****  Add error on redefining preprocessor directives. [Piotr Binkowski]

****  Support $value$plusargs float and shorts, #1592, #1619. [Garrett Smith]

****  Fix gate lvalue optimization error, #831. [Jonathon Donaldson, Driss Hafdi]

****  Fix color assertion on empty if, #1604. [Andrew Holme]

****  Fix for loop missing initializer, #1605. [Andrew Holme]

****  Fix hang on concat error, #1608. [Bogdan Vukobratovic]

****  Fix VPI timed callbacks to be one-shot, pull5. [Matthew Ballance]

****  Fix // in filenames, #1610. [Peter Nelson]

****  Fix $display("%p") to be closer to IEEE.

****  Fix labels on functions with returns, #1614. [Mitch Hayenga]

****  Fix false unused message on __Vemumtab, #2061. [Tobias Rosenkranz]

****  Fix assertion on dotted parameter arrayed function, #1620. [Rich Porter]

****  Fix interface reference tracing, #1595. [Todd Strader]

****  Fix error on unpacked concatenations, #1627. [Driss Hafdi]


* Verilator 4.022 2019-11-10

**    Add --protect-lib, #1490. [Todd Strader]

**    Add cmake support, #1363. [Patrick Stewart]

***   Examples have been renamed.

***   Add --protect-ids to obscure information in objects, #1521. [Todd Strader]

***   Add --trace-coverage.

***   Add --xml-output.

***   Support multithreading on Windows. [Patrick Stewart]

***   Suppress 'command failed' on normal errors.

***   Support some unpacked arrays in parameters, #1315. [Marshal Qiao]

***   Add interface port visibility in traces, #1594. [Todd Strader]

****  Increase case duplicate/incomplete to 16 bit tables, #1545. [Yossi Nivin]

****  Support quoted arguments in -f files, #1535. [Yves Mathieu]

****  Optimize modulus by power-of-two constants, and masked conditionals.

****  Fix detecting missing reg types, #1570. [Jacko Dirks]

****  Fix multithreaded yield behavior when no work.  [Patrick Stewart]

****  Fix bad-syntax crashes, #1548, #1550-#1553, #1557-#1560, #1563,
      #1573-#1577, #1579, #1582-#1591. [Eric Rippey]

****  Fix false CMPCONST/UNSIGNED warnings on "inside", #1581. [Mitch Hayenga]


* Verilator 4.020 2019-10-06

***   Support $fseek, $ftell, $frewind, #1496. [Howard Su]

***   Add --public-flat-rw, #1511. [Stefan Wallentowitz]

***   Support vpiModule, #1469. [Stefan Wallentowitz]

****  Make Syms file honor --output-split-cfuncs, #1499. [Todd Strader]

****  Fix make test with no VERILATOR_ROOT, #1494. [Ahmed El-Mahmoudy]

****  Fix error on multidimensional cells, #1505. [Anderson Ignacio Da Silva]

****  Fix config_rev revision detection on old versions.

****  Fix false warning on backward indexing, #1507. [Hao Shi]

****  Fix vpiType accessor, #1509, #1510. [Stefan Wallentowitz]

****  Fix ugly error on interface misuse, #1525. [Bogdan Vukobratovic]

****  Fix misc bad-syntax crashes, #1529, #1530, #1531, #1532, #1533. [Eric Rippey]

****  Fix case statements with strings, #1536. [Philipp Wagner]


* Verilator 4.018 2019-08-29

**    When showing an error, show source code and offer suggestions of replacements.

**    When showing an error, show the instance location, #1305. [Todd Strader]

***   Add --rr, #1481. [Todd Strader]

***   Change MULTITOP to warning to help linting, see manual.

***   Add XSim support to driver.pl, #1493. [Todd Strader]

****  Show included-from filenames in warnings, #1439. [Todd Strader]

****  Fix elaboration time errors, #1429. [Udi Finkelstein]

****  Fix not reporting some duplicate signals/ports, #1462. [Peter Gerst]

****  Fix not in array context on non-power-of-two slices, #2027. [Yu Sheng Lin]

****  Fix system compile flags injection. [Gianfranco Costamagna]

****  Fix enum values not being sized based on parent, #1442. [Dan Petrisko]

****  Fix internal error on gate optimization of assign, #1475. [Oyvind Harboe]

****  Add --dpi-hdr-only, #1491. [Todd Strader]


* Verilator 4.016 2019-06-16

***   Add --quiet-exit, #1436. [Todd Strader]

****  Error continuation lines no longer have %Error prefix.

****  Support logical equivalence operator <->.

****  Support VerilatedFstC set_time_unit, #1433. [Pieter Kapsenberg]

****  Support deferred assertions, #1449. [Charles Eddleston]

****  Mark infrequently called functions with GCC cold attribute.

****  Fix sign-compare warning in verilated.cpp, #1437. [Sergey Kvachonok]

****  Fix fault on $realtime with %t, #1443. [Julien Margetts]

****  Fix $display with string without %s, #1441. [Denis Rystsov]

****  Fix parameter function string returns, #1441. [Denis Rystsov]

****  Fix invalid XML output due to special chars, #1444. [Kanad Kanhere]

****  Fix performance when mulithreaded on 1 CPU, #1455. [Stefan Wallentowitz]

****  Fix type and real parameter issues, #1427, #1456, #1458. [Todd Strader]

****  Fix build error on MinGW, #1460. [Richard Myers]

****  Fix not reporting some duplicate signals, #1462. [Peter Gerst]

****  Fix --savable invalid C++ on packed arrays, #1465. [Alex Chadwick]

****  Fix constant function return of function var, #1467. [Roman Popov]


* Verilator 4.014 2019-05-08

***   Add --trace-fst-thread.

****  Support '#' comments in $readmem, #1411. [Frederick Requin]

****  Support "'dx" constants, #1423. [Udi Finkelstein]

****  For FST tracing use LZ4 compression. [Tony Bybell]

****  Add error when use parameters without value, #1424. [Peter Gerst]

****  Auto-extend and WIDTH warn on unsized X/Zs, #1423. [Udi Finkelstein]

****  Fix missing VL_SHIFTL_ errors, #1412, #1415. [Larry Lee]

****  Fix MinGW GCC 6 printf formats, #1413. [Sergey Kvachonok]

****  Fix test problems when missing fst2vcd, #1417. [Todd Strader]

****  Fix GTKWave register warning, #1421. [Pieter Kapsenberg]

****  Fix FST enums not displaying, #1426. [Danilo Ramos]

****  Fix table compile error with multiinterfaces, #1431. [Bogdan Vukobratovic]


* Verilator 4.012 2019-3-23

***   Add +verilator+seed, #1396. [Stan Sokorac]

***   Support $fread.  [Leendert van Doorn]

***   Support void' cast on functions called as tasks, #1383. [Al Grant]

***   Add IGNOREDRETURN warning, #1383.

****  Report PORTSHORT errors on concat constants, bug 1400. [Will Korteland]

****  Fix VERILATOR_GDB being ignored, #2017. [Yu Sheng Lin]

****  Fix $value$plus$args missing verilated_heavy.h. [Yi-Chung Chen]

****  Fix MSVC compile error, #1406. [Benjamin Gartner]

****  Fix maintainer test when no Parallel::Forker, #1977. [Enzo Chi]

****  Fix +1364-1995ext flags applying too late, #1384. [Al Grant]


* Verilator 4.010 2019-01-27

***   Removed --trace-lxt2, use --trace-fst instead.

****  For --xml, add additional information, #1372. [Jonathan Kimmitt]

****  Add circular typedef error, #1388.  [Al Grant]

****  Add unsupported for loops error, #1986. [Yu Sheng Lin]

****  Fix FST tracing of wide arrays, #1376. [Aleksander Osman]

****  Fix error when pattern assignment has too few elements, #1378. [Viktor Tomov]

****  Fix error when no modules in $unit, #1381. [Al Grant]

****  Fix missing too many digits warning, #1380. [Jonathan Kimmitt]

****  Fix uninitialized data in verFiles and unroller, #1385, #1386. [Al Grant]

****  Fix internal error on xrefs into unrolled functions, #1387. [Al Grant]

****  Fix DPI export void compiler error, #1391. [Stan Sokorac]


* Verilator 4.008 2018-12-01

***   Support "ref" and "const ref" pins and functions, #1360. [Jake Longo]

***   In --xml-only show the original unmodified names, and add module_files
      and cells similar to Verilog-Perl, msg2719. [Kanad Kanhere]

****  Add CONTASSREG error on continuous assignments to regs, #1369. [Peter Gerst]

****  Add PROCASSWIRE error on behavioral assignments to wires, msg2737. [Neil Turton]

****  Add IMPORTSTAR warning on import::* inside $unit scope.

****  Fix --trace-lxt2 compile error on MinGW, #1990. [HyungKi Jeong]

****  Fix hang on bad pattern keys, #1364. [Matt Myers]

****  Fix crash due to cygwin bug in getline, #1349. [Affe Mao]

****  Fix __Slow files getting compiled with OPT_FAST, #1370. [Thomas Watts]


* Verilator 4.006 2018-10-27

**    Add --pp-comments, #1988. [Robert Henry]

**    Add --dump-defines.

***   For --trace-fst, save enum decoding information, #1358. [Sergi Granell]
      (To visualize enumeration data you must use GTKwave 3.3.95 or newer.)

***   For --trace-fst, instead of *.fst.hier, put data into *.fst. [Tony Bybell]

****  Fix --trace-lxt2 compile error on MinGW, msg2667. [HyungKi Jeong]

****  Fix Windows .exe not found, #1361. [Patrick Stewart]


* Verilator 4.004 2018-10-6

**    Add GTKWave FST native tracing, #1356. [Sergi Granell]
      (Verilator developers need to pull the latest vcddiff.)

***   Support $past. [Dan Gisselquist]

***   Support restrict, #1350. [Clifford Wolf]

***   Rename include/lxt2 to include/gtkwave.

****  Fix replication of 64-bit signal change detects.

****  Fix Mac OSX 10.13.6 / LLVM 9.1 compile issues, #1348. [Kevin Kiningham]

****  Fix MinGW compile issues, #1979. [HyungKi Jeong]


* Verilator 4.002 2018-09-16

**    This is a major release.  Any patches may require major rework to apply.
      [Thanks everyone]

**    Add multithreaded model generation.

**    Add runtime arguments.

**    Add GTKWave LXT2 native tracing, #1333. [Yu Sheng Lin]

**    Note $random has new algorithm; results may vary vs. previous versions.

***   Better optimize large always block splitting, #1244. [John Coiner]

***   Add new reloop optimization for repetitive assignment compression.

***   Support string.atoi and similar methods, #1289. [Joel Holdsworth]

****  Fix internals to be C++ null-pointer-check clean.

****  Fix internals to avoid 'using namespace std'.

****  Fix Verilation performance issues, #1316. [John Coiner]

****  Fix clocker attributes to not propagate on concats. [John Coiner]

****  Fix first clock edge and --x-initial-edge, #1327. [Rupert Swarbrick]

****  Fix compile error on tracing of string arrays, #1338. [Iztok Jeras]

****  Fix number parsing with newline after radix, #1340. [George Cuan]

****  Fix string ?: conditional type resolution, #1345. [Iztok Jeras]

****  Fix duplicate symbol error on generate tri, #1347. [Tomas Dzetkulic]


* Verilator 3.926 2018-08-22

****  Add OBJCACHE envvar support to examples and generated Makefiles.

****  Change MODDUP errors to warnings, #1969. [Marshal Qiao]

****  Fix define argument stringification (`"), broke since 3.914. [Joe DErrico]

****  Fix to ignore Unicode UTF-8 BOM sequences, #1967. [HyungKi Jeong]

****  Fix std:: build error, #1322.

****  Fix function inlining inside certain while loops, #1330. [Julien Margetts]


* Verilator 3.924 2018-06-12

***   Renamed --profile-cfuncs to --prof-cfuncs.

****  Report interface ports connected to wrong interface, #1294. [Todd Strader]

****  When tracing, use scalars on single bit arrays to appease vcddiff.

****  Fix parsing "output signed" in V2K port list, msg2540. [James Jung]

****  Fix parsing error on bad missing #, #1308. [Dan Kirkham]

****  Fix $clog2 to be in verilog 2005, #1319. [James Hutchinson]


* Verilator 3.922 2018-03-17

**    Support IEEE 1800-2017 as default language.

***   Support trig functions ($sin() etc), #1281. [Patrick Stewart]

***   Support calling system functions as tasks, #1285. [Joel Holdsworth]

***   Support assert properties, #785, #1290. [John Coiner, et al]

***   Support $writememh. [John Coiner]

***   Add --no-debug-leak to reduce memory use under debug. [John Coiner]

****  Fix severe runtime performance bug in certain foreach loops. [John Coiner]

****  On convergence errors, show activity. [John Coiner]

****  Fix GCC 8.0 issues, #1273.

****  Fix pullup/pulldowns on bit selects, #1274. [Rob Stoddard]

****  Fix verilator_coverage --annotate-min, #1284. [Tymoteusz Blazejczyk]

****  Fix quoting of quoted arguments. [John Coiner]


* Verilator 3.920 2018-02-01

**    Moving forward, use the git "stable" branch to track the latest release,
      and git "v#.###" tags for specific releases.

***   Support 'assume' similar to 'assert', #1269. [Dan Gisselquist]

****  Fix tracing example file output, #1268. [Enzo Chi]

****  Fix gate optimization out of memory, add --gate-stmts, #1260. [Alex Solomatnikov]

****  Fix compile error on public real parameters by suppressing, #1261. [Alex Solomatnikov]

****  Fix input-only tristate comparisons, #1267. [Alexis G]

****  Fix missing edge type in xml output, #1955. [Alexis G]

****  Fix compile error with --public and interface bind, #1264. [Alexis G]

****  Remove c++filt, #1265. [Stefan Wallentowitz]


* Verilator 3.918 2018-01-02

***   Workaround GCC/clang bug with huge compile times, #1248.

***   Support DPI open arrays, #909, #1245. [David Pierce, Victor Besyakov]

***   Add INFINITELOOP warning, #1254. [Alex Solomatnikov]

****  Support > 64 bit decimal $display.

****  Support DPI time and svLogicVal. [Victor Besyakov]
      Note older version incorrectly assumed svBitVal even for logicals.

****  Support string len() method. [Victor Besyakov]

****  Add error if always_comb has sensitivity list. [Arjen Roodselaar]

****  Fix SystemC 2.3.2 compile error, #1251. [Tymoteusz Blazejczyk]

****  Fix modport outputs being treated as inputs, #1246. [Jeff Bush]

****  Fix false ALWCOMBORDER on interface references, #1247. [Josh Redford]

****  Fix constant propagation across DPI imports of inout strings. [Victor Besyakov]

****  Fix resolving inline nested interface names, #1250. [Arjen Roodselaar]


* Verilator 3.916 2017-11-25

***   Support self-recursive modules, #659. [Sean Moore, et al]

***   Support $error/$warning in elaboration time blocks.

***   Support $size/$bits/etc on type references.

***   Add error when driving input-only modport, #1110. [Trevor Elbourne]

***   Add BSSPACE and COLONPLUS lint warnings.

****  Detect MSB overflow when under VL_DEBUG, #1238. [Junyi Xi]

****  Add data types to --xml. [Rui Terra]

****  Fix partial slicing with pattern assignments, #991. [Johan Bjork]

****  Fix false unused warning on interfaces, #1241. [Laurens van Dam]

****  Fix error on "unique case" with no cases.

****  Fix MacOS portability, #1232. [Jeff Bush]


* Verilator 3.914 2017-10-14

**    Added new examples/ directory with appropriate examples. This replaces the
      old test_c and test_sc directories.

***   Add --getenv option for simplifying Makefiles.

***   Add --x-initial option for specifying initial value assignment behavior.

***   Add --no-relative-cfuncs and related default optimization, #1224. [John Coiner]

***   Add /*verilator tag*/ for XML extraction applications. [Chris Randall]

****  The internal test_verilated test directory is moved to be part of test_regress.

****  The experimental VL_THREADED setting (only, not normal mode) now requires C++11.

****  Fix over-aggressive inlining, #1223. [John Coiner]

****  Fix Ubuntu 17.10 issues, #1223 partial. [John Coiner]

****  Fix compiler warning when WIDTH warning ignored on large compare.

****  Fix memory leak in VerilatedVcd dumps, #1222 partial. [Shareef Jalloq]

****  Fix unnecessary Vdly variables, #1224 partial. [John Coiner]

****  Fix conditional slices and add related optimizations.

****  Fix `` expansion of `defines, #1225, #1227, #1228. [Odd Magne Reitan]

****  Fix -E duplicating output, #1226. [Odd Magne Reitan]

****  Fix float-conversion warning, #1229. [Robert Henry]

****  Fix MacOS portability, #1230, #1231. [Jeff Bush]


* Verilator 3.912 2017-09-23

**    Verilated headers no longer "use namespace std;"
      User's code without "std::" prefixes may need "use namespace std;" to compile.

***   Support or/and/xor array intrinsic methods, #1210. [Mike Popoloski]

***   Support package export, #1217. [Usuario Eda]

***   Fix ordering of arrayed cell wide connections, #1202 partial. [Mike Popoloski]

****  Support module port parameters without defaults, bug 1213. [Mike Popoloski]

****  Add performance information to --stats file.

****  Simplify VL_CONST_W macro generation for faster compiles.

****  Fix LITENDIAN warning on arrayed cells, #1202. [Mike Popoloski]

****  Fix enum ranges without colons, #1204. [Mike Popoloski]

****  Fix GCC noreturn compile error, #1209. [Mike Popoloski]

****  Fix constant function default parameters, #1211. [Mike Popoloski]

****  Fix non-colon array of interface modports, #1212. [Mike Popoloski]

****  Fix .name connections on interfaces, #1214. [Mike Popoloski]

****  Fix wide array indices causing compile error.

****  Better optimize Shift-And, and replication constructs.


* Verilator 3.910 2017-09-07

***   SystemPerl mode (-sp-deprecated) has been removed.

****  Update keyword warnings to include C++11 and others.


* Verilator 3.908 2017-08-28

****  Support x in $readmem, #1180. [Arthur Kahlich]

****  Support packed struct DPI imports, #1190. [Rob Stoddard]

****  Fix GCC 6 warnings.

****  Fix compile error on unused VL_VALUEPLUSARGS_IW, #1181. [Thomas J Whatson]

****  Fix undefined VL_POW_WWI. [Clifford Wolf]

****  Fix internal error on unconnected inouts, #1187. [Rob Stoddard]


* Verilator 3.906 2017-06-22

***   Support set_time_unit/set_time_precision in C traces, #1937.

***   Fix extract of packed array with non-zero LSB, #1172. [James Pallister]

***   Fix shifts by more than 32-bit numbers, #1174. [Clifford Wolf]

***   Fix power operator on wide constants, #761. [Clifford Wolf]

***   Fix .* on interface pins, #1176. [Maciej Piechotka]


* Verilator 3.904 2017-05-30

***   Fix non-cutable ordering loops on clock arrays, #1009. [Todd Strader]

***   Support ports of array of reals, #1154. [J Briquet]

***   Support arrayed parameter overrides, #1153. [John Stevenson]

***   Support $value$plusargs with variables, #1165. [Wesley Terpstra]

****  Support modport access to un-modport objects, #1161. [Todd Strader]

****  Add stack trace when can't optimize function, #1158. [Todd Strader]

****  Add warning on mis-sized literal, #1156. [Todd Strader]

****  Fix interface functions returning wrong parameters, #996. [Todd Strader]

****  Fix non-arrayed cells with interface arrays, #1153. [John Stevenson]

****  Fix --assert with complex case statements, #1164. [Enzo Chi]


* Verilator 3.902 2017-04-02

**    Add -FI option to force includes, #1916. [Amir Gonnen]

**    Add --relative-includes. [Rob Stoddard]

***   Add error on duplicate pattern assignments, #1145. [Johan Bjork]

****  Fix error on improperly widthed default function, #984. [Todd Strader]

****  Fix 2009 localparam syntax, msg2139. [Galen Seitz]

****  Fix ugly interface-to-non-interface errors, #1112. [Johan Bjork]

****  Fix LDFLAGS and CFLAGS not preserving order, #1130. [Olof Kindgren]

****  Fix internal error on initializing parameter array, #1131. [Jie Xu]

****  Fix internal error on interface arrays, #1135. [John Stevenson]

****  Fix calling sformatf to display, and elab $displays, #1139. [Johan Bjork]

****  Fix realpath compile issue on MSVC++, #1141. [Miodrag Milanovic]

****  Fix missing error on interface size mismatch, #1143.  [Johan Bjork]

****  Fix error on parameters with dotted references, #1146. [Johan Bjork]

****  Fix wreal not handling continuous assign, #1150. [J Briquet]

****  Fix nested structure parameter selects, #1150. [J Briquet]


* Verilator 3.900 2017-01-15

**    Internal code changes for improved compatibility and performance.

***   Support old-style $display($time), #467. [John Demme]

****  With --bbox-unsup, suppress desassign and mixed edges, #1120. [Galen Seitz]

****  Fix parsing sensitivity with &&, #934. [Luke Yang]

****  Fix internal error on double-for loop unrolling, #1044. [Jan Egil Ruud]

****  Fix internal error on unique casez with --assert, #1117. [Enzo Chi]

****  Fix bad code when tracing array of structs, #1122. [Andrew Bardsley]


* Verilator 3.890 2016-11-25

***   Honor --output-split on coverage constructors, #1098. [Johan Bjork]

****  Fix various issues when making outside of the kit.

****  Fix flex 2.6.2 bug, #1103. [Sergey Kvachonok]

****  Fix error on bad interface name, #1097. [Todd Strader]

****  Fix error on referencing variable in parent, #1099. [Ian Thompson]

****  Fix type parameters with low optimization, #1101. [Stefan Wallentowitz]


* Verilator 3.888 2016-10-14

**    Support foreach, #1078. [Xuan Guo]

***   Add --no-decoration to remove output comments, msg2015. [Frederic Requin]

***   If VM_PARALLEL_BUILDS=1, use OPT_FAST and OPT_SLOW. [Frederic Requin]
      Set VM_DEFAULT_RULES=0 for old behavior.

****  Add error on DPI functions > 32 bits, #1898. [Elliot Mednick]

****  Fix SystemC compiles with VPI, #1081. [Arthur Kahlich]

****  Fix error on wide numbers that represent shifts, msg1991, #1088. [Mandy Xu]

****  Improve Verilation performance on internal strings, #1896. [Johan Bjork]

****  Improve Verilation performance on trace duplicates, #1090. [Johan Bjork]


* Verilator 3.886 2016-07-30

****  Fix enum values of 11-16 bits wide using .next/.prev, #1062. [Brian Flachs]

****  Fix false warnings on non-power-2 enums using .next/.prev.

****  Fix comparison of unpacked arrays, #1071. [Andrew Bardsley]

****  Fix compiler warning in GCC 6. [David Horton]


* Verilator 3.884 2016-05-18

**    Support parameter type, #376. [Alan Hunter, et al]

**    Support command-line -G/+pvalue param overrides, #1045. [Stefan Wallentowitz]

***   The default l2 scope name is now the same as the top-level module, #1050.
      Use "--l2-name v" for the historical behavior.

***   Add --l2-name option for controlling "v" naming.

****  Fix --output-split of constructors, #1035. [Johan Bjork]

****  Fix removal of empty packages, modules and cells, #1034. [Johan Bjork]

****  Fix core dump on Arch Linux/GCC 6.1.1, #1058. [Jannis Harder]

****  Fix $value$plusargs to string, #1880. [Frederic Requin]


* Verilator 3.882 2016-03-01

****  Internal Verilation-time performance enhancements, #1021. [Johan Bjork]

****  Support inlining interfaces, #1018. [Johan Bjork]

****  Support SV strings to readmemh, #1040. [Stefan Wallentowitz]

****  Fix unrolling complicated for-loop bounds, #677. [Johan Bjork]

****  Fix stats file containing multiple unroll entries, #1020. [Johan Bjork]

****  Fix using short parameter names on negative params, #1022. [Duraid Madina]

****  Fix read-after-free error, #1031. [Johan Bjork]

****  Fix elaboration-time display warnings, #1032. [Johan Bjork]

****  Fix crash on very deep function trees, #1028. [Jonathan Kimmitt]

****  Fix slicing mix of big and little-endian, #1033. [Geoff Barrett]

****  Fix pattern assignment width propagation, #1037. [Johan Bjork]


* Verilator 3.880 2015-12-19

***   Support display %u, %v, %p, %z, #989. [Johan Bjork]

****  Fix real parameters causing bad module names, #992. [Johan Bjork]

****  Fix size-changing cast on packed struct, #993. [Johan Bjork]

****  Fix function calls on arrayed interface, #994. [Johan Bjork]

****  Fix arrayed interfaces, #879, #1001. [Todd Strader]

****  Fix constant function assigned to packed structs, #997. [Johan Bjork]

****  Fix interface inside generate, #998. [Johan Bjork]

****  Fix $signed casts under generates, #999. [Clifford Wolf]

****  Fix genvar constant propagation, #1003. [Johan Bjork]

****  Fix parameter constant propagation from package, #1004. [Johan Bjork]

****  Fix array slicing of non-const indexes, #1006. [Johan Bjork]

****  Fix dotted generated array error, #1005. [Jeff Bush, Johan Bjork]

****  Fix error instead of warning on large concat, #1865. [Paul Rolfe]

****  Fix $bitstoreal constant propagation, #1012. [Jonathan Kimmitt]

****  Fix model restore crash, #1013. [Jason McMullan]

****  Fix arrayed instances to unpacked of same size, #1015. [Varun Koyyalagunta]

****  Fix slices of unpacked arrays with non-zero LSBs.

****  Fix ternary operation with unpacked array, #1017. [Varun Koyyalagunta].


* Verilator 3.878 2015-11-01

**    Add --vpi flag, and fix VPI linkage, #969. [Arthur Kahlich]

**    Support genvar indexes into arrayed cells, #517.  [Todd Strader]

**    Support $sformatf, #977. [Johan Bjork]

***   Support elaboration assertions, #973. [Johan Bjork]

***   Support $display with non-format arguments, #467. [Jamey Hicks]

****  Add VerilatedScopeNameMap for introspection, #966. [Todd Strader]

****  Ignore %l in $display, #983. [Todd Strader]

****  Fix very long module names, #937. [Todd Strader]

****  Fix internal error on dotted refs into generates, #958. [Jie Xu]

****  Fix structure parameter constant propagation, #968. [Todd Strader]

****  Fix enum constant propagation, #970. [Todd Strader]

****  Fix mis-optimizing public DPI functions, #963. [Wei Song]

****  Fix package:scope.scope variable references.

****  Fix $fwrite to constant stderr/stdout, #961. [Wei Song]

****  Fix struct.enum.name method calls, #855. [Jonathon Donaldson]

****  Fix dot indexing into arrayed inferfaces, #978.  [Johan Bjork]

****  Fix crash in commandArgsPlusMatch, #987. [Jamie Iles]

****  Fix error message on missing interface, #985. [Todd Strader]


* Verilator 3.876 2015-08-12

***   Add tracing_on, etc to vlt files, #932. [Frederic Requin]

****  Support extraction of enum bits, #951. [Jonathon Donaldson]

****  Fix MinGW compiler error, #927, #929. [Hans Tichelaar]

****  Fix .c files to be treated as .cpp, #930. [Jonathon Donaldson]

****  Fix string-to-int space conversion, #931. [Fabrizio Ferrandi]

****  Fix dpi imports inside generates. [Michael Tresidder]

****  Fix rounding in trace $timescale, #946. [Frederic Requin]

****  Fix $fopen with SV string, #947. [Sven Stucki]

****  Fix hashed error with typedef inside block, #948. [Sven Stucki]

****  Fix makefile with --coverage, #953. [Eivind Liland]

****  Fix coverage documentation, #954. [Thomas J Whatson]

****  Fix parameters with function parameter arguments, #952. [Jie Xu]

****  Fix size casts as second argument of cast item, #950. [Jonathon Donaldson]


* Verilator 3.874 2015-06-06

***   Add pkg-config .pc file, #919. [Stefan Wallentowitz]

****  Fix installing missing manpages, #908. [Ahmed El-Mahmoudy]

****  Fix sign extension in large localparams, #910. [Mike Thyer]

****  Fix core dump in sync-async warnings, #911. [Sebastian Dressler]

****  Fix truncation warning with -pins-bv, #912. [Alfonso Martinez]

****  Fix Cygwin uint32 compile, #914. [Matthew Barr]

****  Fix preprocessing stringified newline escapes, #915. [Anton Rapp]

****  Fix part-select in constant function, #916. [Andrew Bardsley]

****  Fix width extension on mis-width ports, #918. [Patrick Maupin]

****  Fix width propagation on sized casts, #925. [Jonathon Donaldson]

****  Fix MSVC++ compiler error, #927. [Hans Tichelaar]


* Verilator 3.872 2015-04-05

***   Add VerilatedVcdFile to allow real-time waveforms, #890. [HyungKi Jeong]

***   Add --clk and related optimizations, #1840. [Jie Xu]

***   Fix order of C style arrays. [Duraid Madina]

****  Add --dump-treei-<srcfile>, #894. [Jie Xu]

****  Fix comma-instantiations with parameters, #884. [Franck Jullien]

****  Fix SystemC arrayed bit vectors, #886. [David Poole]

****  Fix compile error on MinGW, #887. [HyungKi Jeong]


* Verilator 3.870 2015-02-12

****  Suppress COMBDLY when inside always_latch, #864. [Iztok Jeras]

****  Support cast operator with expression size, #865. [Iztok Jeras]

****  Add warning on slice selection out of bounds, #875. [Cong Van Nguyen].

****  Fix member select error broke in 3.868, #867. [Iztok Jeras]

****  Fix $sccanf from string, #866. [David Pierce]

****  Fix VM_PARALLEL_BUILDS broke in 3.868, #870. [Hiroki Honda]

****  Fix non-ANSI modport instantiations, #868. [Kevin Thompson]

****  Fix UNOPTFLAT change detect on multidim arrays, #872. [Andrew Bardsley]

****  Fix slice connections of arrays to ports, #880. [Varun Koyyalagunta]

****  Fix mis-optimizing gate assignments in unopt blocks, #881. [Mike Thyer]

****  Fix sign extension of pattern members, #882. [Iztok Jeras]

****  Fix clang compile warnings.


* Verilator 3.868 2014-12-20

**    New verilator_coverage program added to replace SystemPerl's vcoverage.

**    PSL support was removed, please use System Verilog assertions.

**    SystemPerl mode is deprecated and now untested.

***   Support enum.first/name and similar methods, #460, #848.

***   Add 'string' printing and comparisons, #746, #747, etc.

***   Inline C functions that are used only once, #1838. [Jie Xu]

***   Fix tracing SystemC signals with structures, #858. [Eivind Liland]
      Note that SystemC traces will no longer show the signals
      in the wrapper, they can be seen one level further down.

****  Add --stats-vars, #851. [Jeremy Bennett]

****  Fix bare generates in interfaces, #789. [Bob Newgard]

****  Fix underscores in real literals, #863. [Jonathon Donaldson]


* Verilator 3.866 2014-11-15

***   Fix +define+A+B to define A and B to match other simulators, #847. [Adam Krolnik]

***   Add optimization of wires from arrayed cells, #1831. [Jie Xu]

***   Add optimization of operators between concats, #1831. [Jie Xu]

***   Add public enums, #833. [Jonathon Donaldson]

***   Trace_off now operates on cells, #826. [Lane Brooks]

****  Fix public parameters in unused packages, #804. [Jonathon Donaldson]

****  Fix select when partially out-of-bound, #823. [Cliffort Wolf]

****  Fix generate unrolling with function call, #830. [Steven Slatter]

****  Fix cast-to-size context-determined sizing, #828. [Geoff Barrett]

****  Fix not tracing modules following primitives, #837. [Jie Xu]

****  Fix trace overflow on huge arrays, #834. [Geoff Barrett]

****  Fix quoted comment slashes in defines, #845. [Adam Krolnik]


* Verilator 3.864 2014-09-21

***   Support power operator with real, #809. [Jonathon Donaldson]

****  Improve verilator_profcfunc time attributions. [Jonathon Donaldson]

****  Fix duplicate anonymous structures in $root, #788. [Bob Newgard]

****  Fix mis-optimization of bit-swap in wide signal, #800. [Jie Xu]

****  Fix error when tracing public parameters, #722. [Jonathon Donaldson]

****  Fix dpiGetContext in dotted scopes, #740. [Geoff Barrett]

****  Fix over-shift structure optimization error, #803. [Jeff Bush]

****  Fix optional parameter keyword in module #(), #810. [Iztok Jeras]

****  Fix $warning/$error multi-argument ordering, #816. [Jonathon Donaldson]

****  Fix clang warnings, #818. [Iztok Jeras]

****  Fix string formats under deep expressions, #820. [Iztok Jeras]


* Verilator 3.862 2014-06-10

***   Using command line -Wno-{WARNING} now overrides file-local lint_on.

***   Add -P to suppress `line and blanks with preprocessing, #781. [Derek Lockhart]

***   Support SV 2012 package import before port list.

****  Change SYMRSVDWORD to print as warning rather than error.

****  Fix seg-fault with variable of parameterized interface, #692. [Jie Xu]

****  Fix false name conflict on cells in generate blocks, #749. [Igor Lesik]

****  Fix pattern assignment to basic types, #767. [Jie Xu]

****  Fix pattern assignment to conditionals, #769. [Jie Xu]

****  Fix shift corner-cases, #765, #766, #768, #772, #774, #776. [Clifford Wolf]

****  Fix C compiler interpreting signing, #773. [Clifford Wolf]

****  Fix late constant division by zero giving X error, #775. [Clifford Wolf]

****  Fix gate primitives with arrays and non-arrayed pins.

****  Fix DETECTARRAY error on packed arrays, #770. [Jie Xu]

****  Fix ENDLABEL warnings on escaped identifiers.

****  Fix string corruption, #780. [Derek Lockhart]


* Verilator 3.860 2014-05-11

**    PSL is no longer supported, please use System Verilog assertions.

**    Support '{} assignment pattern on arrays, #355.

**    Support streaming operators, #649. [Glen Gibb]

**    Fix expression problems with -Wno-WIDTH, #729, #736, #737, #759.
      Where WIDTH warnings were ignored this might result in different
      warning messages and results, though it should better match the spec.
      [Clifford Wolf]

***   Add --no-trace-params.

***   Add assertions on 'unique if', #725. [Jeff Bush]

***   Add PINCONNECTEMPTY warning. [Holger Waechtler]

***   Support parameter arrays, #683. [Jeremy Bennett]

***   Fix begin_keywords "1800+VAMS", #1806.

****  Documentation fixes, #723. [Glen Gibb]

****  Support {} in always sensitivity lists, #745. [Igor Lesik]

****  Fix tracing of package variables and real arrays.

****  Fix tracing of packed arrays without --trace-structs, #742. [Jie Xu]

****  Fix missing coverage line on else-if, #727. [Sharad Bagri]

****  Fix modport function import not-found error.

****  Fix power operator calculation, #730, #735. [Clifford Wolf]

****  Fix reporting struct members as reserved words, #741. [Chris Randall]

****  Fix change detection error on unions, #758. [Jie Xu]

****  Fix -Wno-UNOPTFLAT change detection with 64-bits, #762. [Clifford Wolf]

****  Fix shift-right optimization, #763. [Clifford Wolf]

****  Fix Mac OS-X test issues. [Holger Waechtler]

****  Fix C++-2011 warnings.


* Verilator 3.856 2014-03-11

***   Support case inside, #708. [Jan Egil Ruud]

***   Add parameters into trace files, #706. [Alex Solomatnikov]

****  Fix parsing "#0 'b0", #256.

****  Fix array bound checks on real variables.

****  Fix --skip-identical mis-detecting on OS-X, #707.

****  Fix missing VL_SHIFTRS_IQI with WIDTH warning, #714. [Fabrizio Ferrandi]

****  Fix signed shift right optimization, #715. [Fabrizio Ferrandi]

****  Fix internal error on "input x =" syntax error, #716. [Lane Brooks]

****  Fix slice extraction from packed array, #717. [Jan Egil Ruud]

****  Fix inside statement EQWILD error, #718. [Jan Egil Ruud]


* Verilator 3.855 2014-01-18

***   Support modport import, #696. [Jeremy Bennett]

***   Add --trace-structs to show struct names, #673. [Chris Randall]

****  Fix tracing of packed structs, #705. [Jie Xu]

****  Fix --lint-only with MinGW, #1813. [HyungKi Jeong]

****  Fix some delayed assignments of typedefed unpacked arrays.

****  Fix wire declarations with size and not range, #466. [Alex Solomatnikov]

****  Fix parameter pin vs. normal pin error, #704. [Alex Solomatnikov]


* Verilator 3.854 2013-11-26

***   Add UNPACKED warning to convert unpacked structs. [Jeremy Bennett]

***   Add --compiler clang to work around compiler bug, #694. [Stefan Ludwig]

****  Support vpi_get of vpiSuppressVal, #687. [Varun Koyyalagunta]

****  Support vpi_get_time, #688. [Varun Koyyalagunta]

****  Fix evaluation of chained parameter functions, #684. [Ted Campbell]

****  Fix enum value extension of '1.

****  Fix multiple VPI variable callbacks, #679. [Rich Porter]

****  Fix vpi_get of vpiSize, #680. [Rich Porter]

****  Fix vpi_remove_cb inside callback, #689. [Varun Koyyalagunta]

****  Fix crash with coverage of structures, #691. [Eivind Liland]

****  Fix array assignment from const var, #693. [Jie Xu]


* Verilator 3.853 2013-09-30

****  Add --no-order-clock-delay to work around #613. [Charlie Brej]


* Verilator 3.852 2013-09-29

***   Support named function and task arguments. [Chris Randall]

***   Report SELRANGE warning for non-generate if, #675. [Roland Kruse]

****  Fix ordering of $fgetc, #1808. [Frederic Requin]

****  Fix --output-split-cfunc to count internal functions. [Chris Randall]

****  Fix crash on 32-bit Ubuntu, #670. [Mark Jackson Pulver]


* Verilator 3.851 2013-08-15

***   Fix ordering of clock enables with delayed assigns, #613. [Jeremy Bennett]

***   Fix vpi_iterate on memory words, #655. [Rich Porter]

****  Fix final duplicate declarations when non-inlined, #661. [Charlie Brej]

****  Fix interface ports with comma lists, #1779. [Ed Lander]

****  Fix parameter real conversion from integer.

****  Fix clang warnings, #668.  [Yutetsu Takatsukasa]


* Verilator 3.850 2013-06-02

**    Support interfaces and modports, #102.  [Byron Bradley, Jeremy Bennett]

***   Duplicate clock gate optimization on by default, #621.

****  Fix arrayed input compile error, #645. [Krzysztof Jankowski]

****  Fix GCC version runtime changes, #651. [Jeremy Bennett]

****  Fix packed array select internal error, #652. [Krzysztof Jankowski]


* Verilator 3.847 2013-05-11

***   Add ALWCOMBORDER warning.  [KC Buckenmaier]

***   Add --pins-sc-uint and --pins-sc-biguint, #638. [Alex Hornung]

****  Support "signal[vec]++".

****  Fix simulation error when inputs and MULTIDRIVEN, #634. [Ted Campbell]

****  Fix module resolution with __, #631. [Jason McMullan]

****  Fix packed array non-zero right index select crash, #642. [Krzysztof Jankowski]

****  Fix nested union crash, #643. [Krzysztof Jankowski]


* Verilator 3.846 2013-03-09

**    IEEE 1800-2012 is now the default language.  This adds 4 new keywords
      and updates the svdpi.h and vpi_user.h header files.

***   Add --report-unoptflat, #611. [Jeremy Bennett]

***   Add duplicate clock gate optimization, #1772. [Varun Koyyalagunta]
      Disabled unless -OD or -O3 used, please try it as may get some
      significant speedups.

***   Fix wrong dot resolution under inlining. [Art Stamness]

****  Support pattern assignment features, #616, #617, #618. [Ed Lander]

****  Support bind in $unit, #602. [Ed Lander]

****  Support <number>'() sized casts, #628. [Ed Lander]

****  Fix DETECTARRAY on packed structures, #610. [Jeremy Bennett]

****  Fix LITENDIAN on unpacked structures, #614. [Wai Sum Mong]

****  Fix 32-bit OS VPI scan issue, #615.  [Jeremy Bennett, Rich Porter]

****  Fix opening a VerilatedVcdC file multiple times, #1774. [Frederic Requin]

****  Fix UNOPTFLAT circular array bounds crossing, #630. [Jie Xu]


* Verilator 3.845 2013-02-04

***   Fix nested packed arrays and struct, #600. [Jeremy Bennett]
      Packed arrays are now represented as a single linear vector in
      Verilated models.  This may affect packed arrays that are public or
      accessed via the VPI.

***   Support wires with data types, #608. [Ed Lander]

***   Support bind, to module names only, #602. [Ed Lander]

***   Support VPI product info, warning calls, etc, #588. [Rick Porter]

***   Support $left, $right and related functions, #448. [Iztok Jeras]

***   Support inside expressions.

***   Define SYSTEMVERILOG, SV_COV_START and other IEEE mandated predefines.

****  Fix pin width mismatch error, #595.  [Alex Solomatnikov]

****  Fix implicit one bit parameter selection, #603.  [Jeremy Bennett]

****  Fix signed/unsigned parameter misconversion, #606.  [Jeremy Bennett]

****  Fix segfault on multidimensional dotted arrays, #607.  [Jie Xu]

****  Fix per-bit array output connection error, #414.  [Jan Egil Ruud]

****  Fix package logic var compile error.

****  Fix enums with X values.


* Verilator 3.844 2013-01-09

***   Support "unsigned int" DPI import functions, #1770.  [Alex Lee]

***   Fix package resolution of parameters, #586. [Jeremy Bennett]

****  Fix non-integer vpi_get_value, #587.  [Rich Porter]

****  Fix task inlining under $display and case, #589, #598.  [Holger Waechtler]

****  Fix package import of non-localparam parameter, #474, #591.  [Jeremy Bennett]

****  Fix package import of package imports, partial #592.  [Jeremy Bennett]

****  Fix package import preventing local var, #599.  [Jeremy Bennett]

****  Fix array extraction of implicit vars, #601.  [Joe Eiler]


* Verilator 3.843 2012-12-01

***   Add +1364-1995ext and similar language options, #532.  [Jeremy Bennett]

****  Fix mis-optimized identical submodule subtract, #581.  [Charlie Brej]

****  Fix crash on dotted references into dead modules, #583.  [Jeremy Bennett]

****  Fix compile issues on MSVCC, #571, #577.  [Amir Gonnen]

****  Fix --debug overriding preceding --dump-treei, #580.  [Jeremy Bennett]


* Verilator 3.842 2012-11-03

****  Add -x-initial-edge, #570.  [Jeremy Bennett]

****  Fix parameter pins interspersed with cells broke in 3.840.  [Bernard Deadman]

****  Fix large shift error on large shift constants.  [David Welch]

****  Fix $display mangling on GCC 4.7 and speed up, #1765, #373, #574. [R Diez]

****  Fix array of struct references giving false error, #566. [Julius Baxter]

****  Fix missing var access functions when no DPI, #572. [Amir Gonnen]

****  Fix name collision on unnamed blocks, #567.  [Chandan Egbert]

****  Fix name collision on task inputs, #569.  [Chandan Egbert]


* Verilator 3.841 2012-09-03

***   Add --savable to support model save/restore.  [Jeremy Bennett]

***   Support '{} assignment pattern on structures, part of #355.

****  Fix double-deep parameter cell WIDTHs, #541.  [Hiroki Honda]

****  Fix imports under multiple instantiated cells, #542.  [Alex Solomatnikov]

****  Fix defparam in generate broke in 3.840, #543.  [Alex Solomatnikov]

****  Fix duplicate begin error broke in 3.840, #548.  [Alex Solomatnikov]

****  Fix triangle symbol resolution error broke in 3.840, #550.  [Ted Campbell]


* Verilator 3.840 2012-07-31 Beta

**    Rewrote tristate handling; supports tri0, tri1, tristate bit selects,
      concatenates and pullup/pulldowns, #395, #56, #54, #51.
      [Alex Solomatnikov, Lane Brooks, et al]

**    Support packed structures and unions, #181.
      Note this was a major internal change that may lead to some instability.

***   Support tri0 and tri1, #462.  [Alex Solomatnikov]

***   Support nmos and pmos, #488.  [Alex Solomatnikov]

***   Add INITIALDLY warning on initial assignments, #478.  [Alex Solomatnikov]

***   Add PINMISSING and PINNOCONNECT lint checks.

***   Add --converge-limit option.

***   Fix generate operators not short circuiting, #413.  [by Jeremy Bennett]

***   Fix parameters not supported in constant functions, #474. [Alex Solomatnikov]

****  Fix duplicate warnings/errors, #516.  [Alex Solomatnikov]

****  Fix signed extending biops with WIDTH warning off, #511. [Junji Hashimoto]

****  Fix ITOD internal error on real conversions, #491.  [Alex Solomatnikov]

****  Fix input and real loosing real data type, #501.  [Alex Solomatnikov]

****  Fix imports causing symbol table error, #490.  [Alex Solomatnikov]

****  Fix newlines in radix values, #507. [Walter Lavino]

****  Fix loop error message to report line, #513.  [Jeremy Bennett]

****  Fix false UNUSED warning on file system calls.

****  Fix GCC 4.7.0 compile warnings, #530.  [Jeremy Bennett]

****  Fix svdpi.h compile error on Apple OS.

****  Fix compile error under git submodules, #534. [Aurelien Francillon]


* Verilator 3.833 2012-04-15

***   Support += and -= in standard for loops, #463. [Alex Solomatnikov]

***   Fix processing unused parametrized modules, #469, #470.  [Alex Solomatnikov]

****  Add SELRANGE as warning instead of error, #477. [Alex Solomatnikov]

****  Add readme.pdf and internal.pdf and doxygen, #483.  [by Jeremy Bennett]

****  Fix change detections on arrays, #364.  [John Stevenson, Alex Solomatnikov]

****  Fix signed array warning, #456. [Alex Solomatnikov]

****  Fix genvar and begin under generate, #461.  [Alex Solomatnikov]

****  Fix real constant parameter functions, #475.  [Alex Solomatnikov]

****  Fix and document --gdb option, #454. [Jeremy Bennett]

****  Fix OpenSolaris compile error. [Sanjay Singh]


* Verilator 3.832 2012-03-07

***   Fix memory delayed assignments from multiple clock domains. [Andrew Ling]

***   Support arrayed SystemC I/O pins.  [Christophe Joly]

***   Report MULTIDRIVEN on memories set in multiple clock domains.

***   Report ENDLABEL on mismatching end labels, #450. [Iztok Jeras]

****  Fix expansion of back-slashed escaped macros, #441. [Alberto Del Rio]

****  Fix inheriting real and signed type across untyped parameters.

****  Fix core dump with over 100 deep UNOPTFLAT, #432. [Joe Eiler]

****  Fix false command not found warning in makefiles. [Ruben Diez]

****  Fix hang when functions inside begin block. [David Welch]

****  Fix hang on recursive substitution `defines, #443. [Alex Solomatnikov]


* Verilator 3.831 2012-01-20

**    Support SystemC 2.3.0 prerelease.  This requires setting the new
      SYSTEMC_INCLUDE and SYSTEMC_LIBDIR variables in place of now
      deprecated SYSTEMC and SYSTEMC_ARCH.  [Iztok Jeras]

****  Suppress VARHIDDEN on dpi import arguments.  [Ruben Diez]

****  Support "generate for (genvar i=0; ...".  [David Kravitz]

****  Fix dpi exports with > 32 bit but < 64 bit args, #423. [Chandan Egbert]

****  Fix array of instantiations with sub-range output, #414. [Jeremy Bennett]

****  Fix BLKSEQ warnings on variables declared inside always. [Ruben Diez]


* Verilator 3.830 2011-11-27

**   With "--language VAMS" support a touch of Verilog AMS.  [Holger Waechtler]

***  Add sc_bv attribute to force bit vectors, #402. [by Stefan Wallentowitz]

**** Search for user -y paths before default current directory.  [Ruben Diez]

**** Support constants in sensitivity lists, #412.  [Jeremy Bennett]

**** Support $system.  [Ruben Diez]

**** Support $sscanf with %g. [Holger Waechtler]

**** Indicate 'exiting due to errors' if errors, not warnings. [Ruben Diez]

**** Fix bad result with if-else-return optimization, #420. [Alex Solomatnikov]

**** Fix reporting not found modules if generate-off, #403. [Jeremy Bennett]

**** Fix $display with %d following %g. [Holger Waechtler]


* Verilator 3.824 2011-10-25

***  Fix "always @ (* )", #403, #404.  [Walter Lavino]

***  Add ASSIGNIN as suppressable error.  [Jeremy Bennett]

**** Fix 3.823 constructor core dump on Debian, #401.  [Ahmed El-Mahmoudy]


* Verilator 3.823 2011-10-20

***  Support $ceil, $floor, etc.  [Alex Solomatnikov]

***  Add configure options for cc warnings and extended tests.  [Ruben Diez]

***  Add -Wall reporting ASSIGNDLY on assignment delays.  [Ruben Diez]

***  Fix UNDRIVEN warnings inside DPI import functions.  [Ruben Diez]

***  Fix --help output to go to stderr, not stdout, #397.  [Ruben Diez]

**** Fix DPI import output of 64 bits, #398. [Mike Denio]

**** Fix DPI import false BLKSEQ warnings.  [Alex Solomatnikov]

**** Fix MSVC compile warning with trunc/round, #394. [Amir Gonnen]

**** Fix autoconf and Makefile warnings, #396.  [Ruben Diez]


* Verilator 3.821 2011-09-14

**** Fix PowerPC runtime error, #288. [Ahmed El-Mahmoudy]

**** Fix internal error on integer casts, #374. [Chandan Egbert]


* Verilator 3.820 2011-07-28

**   Support 'real' numbers and related functions.

***  Support 'const' variables in limited cases; similar to enums. [Alex Solomatnikov]

***  Support disable for loop escapes.

***  Support $fopen and I/O with integer instead of `verilator_file_descriptor.

***  Support coverage in -cc and -sc output modes.  [John Li]
     Note this requires SystemPerl 1.338 or newer.

**** Fix vpi_register_cb using bad s_cb_data, #370.  [by Thomas Watts]

**** Fix $display missing leading zeros in %0d, #367.  [Alex Solomatnikov]

**** Use 'vluint64_t' for SystemC instead of (same sized) 'uint64' for MSVC++.


* Verilator 3.813 2011-06-28

***  Support bit vectors > 64 bits wide in DPI import and exports.

***  Fix out of memory on slice syntax error, #354.  [Alex Solomatnikov]

**** Fix error on enum references to other packages, #339. [Alex Solomatnikov]

**** Fix DPI undeclared svBitVecVal compile error, #346. [Chandan Egbert]

**** Fix DPI bit vector compile errors, #347, #359. [Chandan Egbert]

**** Fix CDCRSTLOGIC report showing endpoint flops without resets.

**** Fix compiler warnings on SPARC, #288. [Ahmed El-Mahmoudy]


* Verilator 3.812 2011-04-06

***  Add --trace-max-width and --trace-max-array, #319.  [Alex Solomatnikov]

***  Add --Wno-fatal to turn off abort on warnings. [by Stefan Wallentowitz]

**** Support ${...} and $(...) env vars in .vc files.  [by Stefan Wallentowitz]

**** Support $bits(data_type), #327.  [Alex Solomatnikov]

**** Support loop unrolling on width mismatches, #333. [Joe Eiler]

**** Support simple cast operators, #335.  [Alex Solomatnikov]

**** Accelerate bit-selected inversions.

**** Add error on circular parameter definitions, #329. [Alex Solomatnikov]

**** Fix concatenates and vectored bufif1, #326. [Iztok Jeras]


* Verilator 3.811 2011-02-14

**** Report errors on duplicated or empty pins, #321.  [Christian Leber]

**** Report error on function call output tied to constant.  [Bernard Deadman]

**** Throw UNUSED/UNDRIVEN only once per net in a parametrized module.

**** Fix internal error on functions called as SV tasks.  [Bernard Deadman]

**** Fix internal error on non-inlined inout pins.  [Jeff Winston]

**** Fix false BLKSEQ on non-unrolled for loop indexes.  [Jeff Winston]

**** Fix block comment not separating identifiers, #311. [Gene Sullivan]

**** Fix warnings to point to lowest net usage, not upper level ports.

**** Fix error on constants connected to outputs, #323.  [Christian Leber]


* Verilator 3.810 2011-01-03

**   Add limited support for VPI access to public signals, see docs.

***  Add -F option to read relative option files, #297. [Neil Hamilton]

***  Support ++,--,+= etc as standalone statements.  [Alex Solomatnikov]

**** When running with VERILATOR_ROOT, optionally find binaries under bin.

**** Suppress WIDTH warnings when adding/subtracting 1'b1.

**   Add -Wall, -Wwarn-style, -Wno-style to enable code style warnings
     that have been added to this release, and disabled by default:

***  With --Wall, add BLKSEQ warning on blocking assignments in seq blocks.

***  With --Wall, add DECLFILENAME warning on modules not matching filename.

***  With --Wall, add DEFPARAM warning on deprecated defparam statements.

***  With --Wall, add IFDEPTH warning on deep if statements.

***  With --Wall, add INCABSPATH warning on `include with absolute paths.

***  With --Wall, add SYNCASYNCNET warning on mixed sync/async reset nets.

***  With --Wall, add UNDRIVEN warning on undriven nets.

***  With --Wall, add UNUSED warning on unused nets.

***  The VARHIDDEN warning is now disabled by default, use -Wall to enable.


* Verilator 3.805 2010-11-02

**** Add warning when directory contains spaces, #1705.  [Salman Sheikh]

**** Fix wrong filename on include file errors, #289. [Brad Parker]

**** Fix segfault on SystemVerilog "output wire foo=0", #291.  [Joshua Wise]

**** Fix DPI export name not found, #1703.  [Terry Chen]


* Verilator 3.804 2010-09-20

***  Support tracing/coverage of underscore signals, #280.  [by Jason McMullan]

**** Fix preprocessor `` of existing base define, #283.  [Usha Priyadharshini]

**** Increase define recursions before error.  [Paul Liu]

**** On core dump, print debug suggestions.


* Verilator 3.803 2010-07-10

***  Fix preprocessor preservation of newlines across macro substitutions.

**** Fix preprocessor stringification of nested macros.

**** Fix some constant parameter functions causing crash, #253. [Nick Bowler]

**** Fix do {...} while() not requiring final semicolon.


* Verilator 3.802 2010-05-01

***  Support runtime access to public signal names.

***  Add /*verilator public_flat_rw*/ for timing-specific public access.

***  Fix word size to match uint64_t on -m64 systems, #238. [Joe Eiler]

**** Improve error handling on slices of arrays, #226. [by Byron Bradley]

**** Report errors when extra underscores used in meta-comments.

**** Fix bit reductions on multi-packed dimensions, #227. [by Byron Bradley]

**** Fix removing $fscanf if assigned to unused var, #248. [Ashutosh Das]

**** Fix "make install" with configure outside srcdir.  [Stefan Wallentowitz]

**** Fix loop unroller out of memory; change --unroll-stmts.  [Ashutosh Das]

**** Fix trace files with empty modules crashing some viewers.

**** Fix parsing single files > 2GB.  [Jeffrey Short]

**** Fix installing data files as non-executable, #168. [by Ahmed El-Mahmoudy]


* Verilator 3.801 2010-03-17

***  Support "break", "continue", "return".

***  Support "`default_nettype none|wire".  [Dominic Plunkett]

**** Skip SystemC tests if not installed.  [Iztok Jeras]

**** Fix clock-gates with non-AND complex logic, #220. [Ashutosh Das]

**** Fix flushing VCD buffers on $stop.  [Ashutosh Das]

**** Fix Mac OS-X compile issues, #217.  [Joshua Wise, Trevor Williams]

**** Fix make uninstall, #216.  [Iztok Jeras]

**** Fix parametrized defines with empty arguments.


* Verilator 3.800 2010-02-07

Application visible changes:

**   SystemPerl is no longer required for tracing.
     Applications must use VerilatedVcdC class in place of SpTraceVcdC.

**   SystemVerilog 1800-2009 is now the default language.
     Thus "global" etc are now keywords.  See the --language option.

New features:

**   Support SystemVerilog types "byte", "chandle", "int", "longint",
     "shortint", "time", "var" and "void" in variables and functions.

**   Support "program", "package", "import" and $unit.

**   Support typedef and enum.  [by Donal Casey]

**   Support direct programming interface (DPI) "import" and "export".
     Includes an extension to map user $system PLI calls to the DPI.

***  Support assignments of multidimensional slices, #170. [by Byron Bradley]

***  Support multidimensional inputs/outputs, #171. [by Byron Bradley]

***  Support "reg [1:0][1:0][1:0]" and "reg x [3][2]", #176.  [Byron Bradley]

***  Support declarations in loop initializers, #172.  [by Byron Bradley]

***  Support $test$plusargs and $value$plusargs, but see the docs!

***  Support $sformat and $swrite.

***  Support 1800-2009 define defaults and `undefineall.

***  Add -CFLAGS, -LDFLAGS, <file>.a, <file>.o, and <file>.so options.

***  Speed compiles by avoiding including the STL iostream header.
     Application programs may need to include it themselves to avoid errors.

***  Add experimental clock domain crossing checks.

***  Add experimental --pipe-filter to filter all Verilog input.

***  Add experimental config files to filter warnings outside of the source.

***  Add VARHIDDEN warning when signal name hides module name.

**** Support optional cell parenthesis, #179. [by Byron Bradley]

**** Support for loop i++, ++i, i--, --i, #175. [by Byron Bradley]

**** Support 1800-2009 /*comments*/ in define values.

**** Add Makefile VM_GLOBAL_FAST, listing objects needed to link executables.

**** Add --bbox-unsup option to black-box unsupported UDP tables.

**** Add -Wno-MODDUP option to allow duplicate modules.

Bug fixes:

**** Fix implicit variable issues, #196, #201. [Byron Bradley]

**** Fix 'for' variable typing, #205.  [by Byron Bradley]

**** Fix tracing with --pins-bv 1, #195.  [Michael S]

**** Fix MSVC++ 2008 compile issues, #209.  [Amir Gonnen]

**** Fix MinGW compilation, #184, #214. [by Shankar Giri, Amir Gonnen]

**** Fix Cygwin 1.7.x compiler error with uint32_t, #204.  [Ivan Djordjevic]

**** Fix `define argument mis-replacing system task of same name, #191.

**** Fix Verilator core dump on wide integer divides, #178. [Byron Bradley]

**** Fix lint_off/lint_on meta comments on same line as warning.


* Verilator 3.720 2009-10-26

**   Support little endian bit vectors ("reg [0:2] x;").

**   Support division and modulus of > 64 bit vectors.  [Gary Thomas]

***  Fix writing to out-of-bounds arrays writing element 0.

**** Fix core dump with SystemVerilog var declarations under unnamed begins.

**** Fix VCD files showing internal flattened hierarchy, broke in 3.714.

**** Fix cell port connection to unsized integer causing false width warning.

**** Fix erroring on strings with backslashed newlines, #168. [Pete Nixon]


* Verilator 3.714 2009-09-18

**   Add --bbox-sys option to blackbox $system calls.

**   Support generate for var++, var--, ++var, --var.

***  Improved warning when "do" used as identifier.

**** Don't require SYSTEMPERL_INCLUDE if SYSTEMPERL/src exists. [Gary Thomas]

**** Fix deep defines causing flex scanner overflows. [Brad Dobbie]

**** Fix preprocessing commas in deep parameterized macros. [Brad Dobbie]

**** Fix tracing escaped dotted identifiers, #107.

**** Fix $display with uppercase %M.

**** Fix --error-limit option being ignored.


* Verilator 3.713 2009-08-04

**   Support constant function calls for parameters. [many!]

***  Support SystemVerilog "logic", #101.  [by Alex Duller]

***  Name SYMRSVDWORD error, and allow disabling it, #103. [Gary Thomas]

**** Fix escaped preprocessor identifiers, #106. [Nimrod Gileadi]


* Verilator 3.712 2009-07-14

**   Patching SystemC is no longer required to trace sc_bvs.

***  Support zero-width constants in concatenations.  [Jeff Winston]

***  Add verilator --pins-uint8 option to use sc_in<uint8_t/uint16_t>.

***  Add verilator -V option, to show verbose version.

***  On WIDTH warnings, show variable name causing error.  [Jeff Winston]

**** Add BLKLOOPINIT error code, and describe --unroll-count.  [Jeff Winston]


* Verilator 3.711 2009-06-23

**** Support decimal constants of arbitrary widths. [Mark Marshall]

**** Fix error on case statement with all duplicate items, #99. [Gary Thomas]

**** Fix segfault on unrolling for's with bad inits, #90. [Andreas Olofsson]

**** Fix tristates causing "Assigned pin is neither...". [by Lane Brooks]

**** Fix compiler errors under Fedora release candidate 11. [Chitlesh Goorah]


* Verilator 3.710 2009-05-19

**   Verilator is now licensed under LGPL v3 and/or Artistic v2.0.

***  `__FILE__ now expands to a string, per draft SystemVerilog 2010(ish).

**** The front end parser has been re-factored to enable more SV parsing.
     Code should parse the same, but minor parsing bugs may pop up.

**** Verilator_includer is no longer installed twice, #48.  [Lane Brooks]

**** Fix escaped identifiers with '.' causing conflicts, #83.  [J Baxter]

**** Fix define formal arguments that contain newlines, #84. [David A]


* Verilator 3.703 2009-05-02

***  Fix $clog2 calculation error with powers-of-2, #81. [Patricio Kaplan]

**** Fix error with tasks that have output first, #78.  [Andrea Foletto]

**** Fix "cloning" error with -y/--top-module, #76. [Dimitris Nalbantis]

**** Fix segfault with error on bad --top-module, #79. [Dimitris Nalbantis]

**** Fix "redefining I" error with complex includes.  [Duraid Madina]

**** Fix GCC 4.3.2 compile warnings.


* Verilator 3.702 2009-03-28

***  Add --pins-bv option to use sc_bv for all ports.  [Brian Small]

***  Add SYSTEMPERL_INCLUDE envvar to assist RPM builds.  [Chitlesh Goorah]

**** Report errors when duplicate labels are used, #72.  [Vasu Kandadi]

**** Fix the SC_MODULE name() to not include __PVT__.  [Bob Fredieu]


* Verilator 3.701 2009-02-26

**   Support repeat and forever statements.  [Jeremy Bennett]

***  Add --debugi-<srcfile> option, for internal debugging. [Dennis Muhlestein]

**** Fix compile issues with GCC 4.3, #47.  [Lane Brooks]

**** Fix VL_RANDom to better randomize bits.  [Art Stamness]

**** Fix error messages to consistently go to stderr. [Jeremy Bennett]

**** Fix left associativity for ?: operators.


* Verilator 3.700 2009-01-08

**   Add limited support for tristate inouts.  Written by Lane Brooks,
     under support by Ubixum Inc.  This allows common pad ring and
     tristate-mux structures to be Verilated.  See the documentation for
     more information on supported constructs.

**   Add --coverage_toggle for toggle coverage analysis.
     Running coverage now requires SystemPerl 1.301 or newer.

***  Add /*verilator coverage_on/_off */ to bracket coverage regions.

***  Optimize two-level shift and and/or trees, +23% on one test.

***  Support posedge of bit-selected signals, #45. [Rodney Sinclair]

***  Line coverage now aggregates by hierarchy automatically.
     Previously this would be done inside SystemPerl, which was slower.

**** Minor performance improvements of Verilator compiler runtime.

**** Coverage of each parametarized module is counted separately. [Bob Fredieu]

**** Fix creating parameterized modules when no parameter values are changed.

**** Fix certain generate-if cells causing "clone" error. [Stephane Laurent]

**** Fix line coverage of public functions.  [Soon Koh]

**** Fix SystemC 2.2 deprecated warnings about sensitive() and sc_start().

**** Fix arrayed variables under function not compiling, #44. [Ralf Karge]

**** Fix --output-split-cfuncs to also split trace code. [Niranjan Prabhu]

**** Fix 'bad select range' warning missing some cases, #43. [Lane Brooks]

**** Fix internal signal names containing control characters (broke in 3.680).

**** Fix compile error on Ubuntu 8.10. [Christopher Boumenot]

**** Fix internal error on "output x; reg x = y;".

**** Fix wrong result for read of delayed FSM signal, #46. [Rodney Sinclair]


* Verilator 3.681 2008-11-12

***  Add SystemVerilog unique and priority case.

**** Include Verilog file's directory name in coverage reports.

**** Fix 'for' under 'generate-for' causing error, #38. [Rafael Shirakawa]

**** Fix coverage hierarchy being backwards with inlining.  [Vasu Arasanipalai]

**** Fix GCC 4.3 compile error, #35.  [Lane Brooks]

**** Fix MSVC compile error, #42.  [John Stroebel]


* Verilator 3.680 2008-10-08

**   Support negative bit indexes. [Stephane Laurent]
     Tracing negative indexes requires latest Verilog-Perl and SystemPerl.

***  Suppress width warnings between constant strings and wider vectors.
     [Rodney Sinclair]

**** Ignore SystemVerilog timeunit and timeprecision.

**** Expand environment variables in -f input files.  [Lawrence Butcher]

**** Report error if port declaration is missing, #32. [Guy-Armand Kamendje]

**** Fix genvars causing link error when using --public.  [Chris Candler]


* Verilator 3.671 2008-09-19

**   SystemC uint64_t pins are now the default instead of sc_bv<64>.
     Use --no-pins64 for backward compatibility.

***  Support SystemVerilog "cover property" statements.

***  When warnings are disabled on signals that are flattened out, disable
     the warnings on the signal(s) that replace it.

***  Add by-design and by-module subtotals to verilator_profcfunc.

***  Fix extra evaluation of pure combo blocks in SystemC output.

**** Add IMPERFECTSCH warning, disabled by default.

**** Support coverage under SystemPerl 1.285 and newer.

**** Fix stack overflow on large ? : trees. [John Sanguinetti]

**** Support arbitrary characters in identifiers. [Stephane Laurent]


* Verilator 3.670 2008-07-23

**   Add --x-assign=fast option, and make it the default.
     This chooses performance over reset debugging.  See the manual.

**   Add --autoflush, for flushing streams after $display.  [Steve Tong]

**   Add CASEWITHX lint warning and if disabled fix handling of casez with Xs.

***  Add $feof, $fgetc, $fgets, $fflush, $fscanf, $sscanf. [Holger Waechtler]

***  Add $stime. [Holger Waechtler]

***  Add $random.

***  Add --Wfuture-, for improving forward compatibility.

**** Fix verilator_includer not being installed properly.  [Holger Waechtler]

**** Fix IMPURE errors due to X-assignment temporary variables. [Steve Tong]

**** Fix "lvalue" errors with public functions, #25.  [CY Wang]

**** Add WIDTH warning to $fopen etc file descriptors.

**** Internal changes to how $displays get compiled and executed.


* Verilator 3.665 2008-06-25

**** Ignore "// verilator" comments alone on endif lines.  [Rodney Sinclair]

**** "Make install" now installs verilator_includer and verilator_profcfunc.

**** Fix tracing missing changes on undriven public wires. [Rodney Sinclair]

**** Fix syntax error when "`include `defname" is ifdefed.  [John Dickol]

**** Fix error when macro call has commas in concatenate. [John Dickol]

**** Fix compile errors under Fedora 9, GCC 4.3.0.  [by Jeremy Bennett]

**** Fix Makefile to find headers/libraries under prefix. [by Holger Waechtler]


* Verilator 3.664 2008-05-08

**** Fix missing file in kit.


* Verilator 3.663 2008-05-07

**** Add DESTDIR to Makefiles to assist RPM construction. [Gunter Dannoritzer]

**** Fix compiler warnings under GCC 4.2.1.

**** Fix preprocessor `else after series of `elsif.  [Mark Nodine]

**** Fix parametrized defines calling define with comma.  [Joshua Wise]

**** Fix comma separated list of primitives.  [by Bryan Brady]


* Verilator 3.662 2008-04-25

***  Add Verilog 2005 $clog2() function.
     This is useful in calculating bus-widths from parameters.

***  Support /**/ comments in -f option files. [Stefan Thiede]

**** Add error message when modules have duplicate names. [Stefan Thiede]

**** Support defines terminated in EOF, though against spec. [Stefan Thiede]

**** Support optional argument to $finish and $stop.  [by Stefan Thiede]

**** Support ranges on gate primitive instantiations. [Stefan Thiede]

**** Ignore old standard(ish) Verilog-XL defines.  [by Stefan Thiede]

**** Fix "always @ ((a) or (b))" syntax error. [by Niranjan Prabhu]

**** Fix "output reg name=expr;" syntax error. [Martin Scharrer]

**** Fix multiple .v files being read in random order. [Stefan Thiede]

**** Fix internal error when params get non-constants. [Johan Wouters]

**** Fix bug introduced in 3.661 with parametrized defines.


* Verilator 3.661 2008-04-04

***  The --enable-defenv configure option added in 3.660 is now the default.
     This hard-codes a default for VERILATOR_ROOT etc in the executables.

***  Add --language option for supporting older code. [Stefan Thiede]

***  Add --top-module option to select between multiple tops. [Stefan Thiede]

***  Unsized concatenates now give WIDTHCONCAT warnings. [Jonathan Kimmitt]
     Previously they threw fatal errors, which in most cases is correct
     according to spec, but can be incorrect in presence of parameter values.

**** Support functions with "input integer".  [Johan Wouters]

**** Ignore delays attached to gate UDPs.  [Stefan Thiede]

**** Fix SystemVerilog parameterized defines with `` expansion,
     and fix extra whitespace inserted on substitution.  [Vladimir Matveyenko]

**** Fix no-module include files on command line.  [Stefan Thiede]

**** Fix dropping of backslash quoted-quote at end of $display.

**** Fix task output pin connected to non-variables. [Jonathan Kimmitt]

**** Fix missing test_v in install datadir. [Holger Waechtler]

**** Fix internal error after MSB < LSB error reported to user. [Stefan Thiede]


* Verilator 3.660 2008-03-23

***  Add support for hard-coding VERILATOR_ROOT etc in the executables,
     to enable easier use of Verilator RPMs.  [Gunter Dannoritzer]

***  Allow multiple .v files on command line.  [Stefan Thiede]

***  Convert re-defining macro error to warning.  [Stefan Thiede]

***  Add --error-limit option.  [Stefan Thiede]

***  Allow __ in cell names by quoting them in C.  [Stefan Thiede]

**** Fix genvar to be signed, so "< 0" works properly.  [Niranjan Prabhu]

**** Fix assignments to inputs inside functions/tasks.  [Patricio Kaplan]

**** Fix definitions in main file.v, referenced in library.  [Stefan Thiede]

**** Fix undefined assigns to be implicit warnings. [Stefan Thiede]


* Verilator 3.658 2008-02-25

**** Fix unistd compile error in 3.657.  [Patricio Kaplan, Jonathan Kimmitt]


* Verilator 3.657 2008-02-20

**** Fix assignments of {a,b,c} = {c,b,a}.  [Jonathan Kimmitt]

**** Fix Perl warning with --lint-only.  [by Ding Xiaoliang]

**** Avoid creating obj_dir with --lint-only.  [Ding Xiaoliang]

**** Fix parsing of always @(*).  [Patricio Kaplan]


* Verilator 3.656 2008-01-18

**** Wide VL_CONST_W_#X functions are now made automatically. [Bernard Deadman]
     In such cases, a new {prefix}__Inlines.h file will be built and included.

**** Fixed sign error when extracting from signed memory.  [Peter Debacker]

**** Fixed tracing of SystemC w/o SystemPerl. [Bernard Deadman, Johan Wouters]


* Verilator 3.655 2007-11-27

***  Support "#delay <statement>;" with associated STMTDLY warning.

**** Fixed generate for loops with constant zero conditions. [Rodney Sinclair]

**** Fixed divide-by-zero errors in constant propagator. [Rodney Sinclair]

**** Fixed wrong result with obscure signed-shift underneath a "? :".

**** Fixed many internal memory leaks, and added leak detector.


* Verilator 3.654 2007-10-18

**** Don't exit early if many warnings but no errors are found. [Stan Mayer]

**** Fixed parsing module #(parameter x,y) declarations. [Oleg Rodionov]

**** Fixed parsing system functions with empty parens. [Oleg Rodionov]


* Verilator 3.653 2007/8/1

**** Support SystemVerilog ==? and !=? operators.

**** Fixed SC_LIBS missing from generated makefiles. [Ding Xiaoliang]


* Verilator 3.652 2007/6/21

**** Report as many warning types as possible before exiting.

**** Support V2K portlists with "input a,b,...".  [Mark Nodine]

**** Support V2K function/task argument lists.

**** Optimize constant $display arguments.

**** Fixed Preprocessor dropping some `line directives.  [Mark Nodine]


* Verilator 3.651 2007/5/22

***  Added verilator_profcfunc utility.  [Gene Weber]

***  Treat modules within `celldefine and `endcelldefine as if in library.

***  Support functions which return integers.  [Mark Nodine]

**** Warn if flex is not installed.  [Ralf Karge]

**** Ignore `protect and `endprotect.

**** Allow empty case/endcase blocks.


* Verilator 3.650 2007/4/20

**   Add --compiler msvc option.  This is now required when Verilated code
     is to be run through MSVC++.  This also enables fixing MSVC++ error
     C1061, blocks nested too deeply.  [Ralf Karge]

**   Add --lint-only option, to lint without creating other output.

***  Add /*verilator lint_save*/ and /*verilator lint_restore*/ to allow
     friendly control over re-enabling lint messages.  [Gerald Williams]

***  Support SystemVerilog .name and .* interconnect.

***  Support while and do-while loops.

***  Use $(LINK) instead of $(CXX) for Makefile link rules.  [Gerald Williams]

***  Add USER_CPPFLAGS and USER_LDFLAGS to Makefiles.  [Gerald Williams]

**** Fixed compile errors under Windows MINGW compiler.  [Gerald Williams]

**** Fixed dotted bit reference to local memory.  [Eugene Weber]

**** Fixed 3.640 `verilog forcing IEEE 1364-1995 only.  [David Hewson]


* Verilator 3.640 2007/3/12

***  Support Verilog 2005 `begin_keywords and `end_keywords.

***  Updated list of SystemVerilog keywords to correspond to IEEE 1800-2005.

***  Add /*verilator public_flat*/.  [Eugene Weber]

**** Try all +libext's in the exact order given.  [Michael Shinkarovsky]

**** Fixed elimination of public signals assigned to constants.  [Eugene Weber]

**** Fixed internal error when public for loop has empty body.  [David Addison]

**** Fixed "Loops detected" assertion when model exceeds 4GB.  [David Hewson]

**** Fixed display %m names inside named blocks.


* Verilator 3.633 2007/2/7

***  Add --trace-depth option for minimizing VCD file size. [Emerson Suguimoto]

***  With VL_DEBUG, show wires causing convergence errors. [Mike Shinkarovsky]

**** Fixed isolate_assignments when many signals per always. [Mike Shinkarovsky]

**** Fixed isolate_assignments across task/func temporaries. [Mike Shinkarovsky]

**** Fixed $display's with array select followed by wide AND.  [David Hewson]


* Verilator 3.632 2007/1/17

***  Add /*verilator isolate_assignments*/ attribute.  [Mike Shinkarovsky]


* Verilator 3.631 2007/1/2

**   Support standard NAME[#] for cells created by arraying or generate for.
     This replaces the non-standard name__# syntax used in earlier versions.

**** Fixed again dotted references into generate cells.  [David Hewson]
     Verilator no longer accepts duplicated variables inside unique
     generate blocks as this is illegal according to the specification.

**** Fixed $readmem* with filenames < 8 characters.  [Emerson Suguimoto]


* Verilator 3.630 2006-12-19

**   Support $readmemb and $readmemh.  [Eugene Weber, Arthur Kahlich]

***  Fixed configure and compiling under Solaris.  [Bob Farrell]

***  When dotted signal lookup fails, help the user by showing known scopes.

***  Reduce depth of priority encoded case statements.  [Eugene Weber]

**** Fixed dotted references inside generated cells.  [David Hewson]

**** Fixed missed split optimization points underneath other re-split blocks.


* Verilator 3.623 2006-12-05

***  Add --output-split-cfuncs for accelerating GCC compile. [Eugene Weber]

**** Fixed $signed mis-extending when input has a WIDTH violation. [Eugene Weber]

**** Add M32 make variable to support -m32 compiles.  [Eugene Weber]


* Verilator 3.622 2006-10-17 Stable

**** Fixed --skip-identical without --debug, broken in 3.621.  [Andy Meier]


* Verilator 3.621 2006-10-11 Beta

**   Add /*verilator no_inline_task*/ to prevent over-expansion. [Eugene Weber]

***  Public functions now allow > 64 bit arguments.

**** Remove .vpp intermediate files when not under --debug.

**** Fixed link error when using --exe with --trace.  [Eugene Weber]

**** Fixed mis-optimization of wide concats with constants.

**** Fixed core dump on printing error when not under --debug.  [Allan Cochrane]


* Verilator 3.620 2006-10-04 Stable

***  Support simple inout task ports.  [Eugene Weber]

***  Allow overriding Perl, Flex and Bison versions.  [by Robert Farrell]

***  Optimize variables set to constants within basic blocks for ~3%.

**** Default make no longer makes the docs; if you edit the documentation.
     sources, run "make info" to get them.

**** Optimize additional boolean identities (a|a = a, etc.)

**** Fixed coredump when dotted cross-ref inside task call. [Eugene Weber]

**** Fixed dotted variables in always sensitivity lists. [Allan Cochrane]


* Verilator 3.610 2006-09-20 Stable

***  Verilator now works under DJGPP (Pentium GCC).  [John Stroebel]

**** Add default define for VL_PRINTF.  [John Stroebel]

**** Removed coverage request variable; see Coverage limitations in docs.

**** Fixed DOS carriage returns in multiline defines.  [Ralf Karge]

**** Fixed printf format warnings on 64-bit linux.


* Verilator 3.602 2006-09-11 Stable

**** Fixed function references under top inlined module.  [David Hewson]


* Verilator 3.601 2006-09-06 Beta

***  Added --inhibit-sim flag for environments using old __Vm_inhibitSim.

***  Added `systemc_dtor for destructor extensions.  [Allan Cochrane]

***  Added -MP to make phony dependencies, ala GCC's.

***  Changed how internal functions are invoked to reduce aliasing.
     Useful when using GCC's -O2 or -fstrict-aliasing, to gain another ~4%.

**** Fixed memory leak when destroying modules.  [John Stroebel]

**** Fixed coredump when unused modules have unused cells.  [David Hewson]

**** Fixed 3.600 internal error with arrayed instances.  [David Hewson]

**** Fixed 3.600 internal error with non-unrolled function loops.  [David Hewson]

**** Fixed $display %m name not matching Verilog name inside SystemC modules.

**** Declare optimized lookup tables as 'static', to reduce D-Cache miss rate.


* Verilator 3.600 2006-08-28 Beta

**   Support dotted cross-hierarchy variable and task references.

**** Lint for x's in generate case statements.

**** Fixed line numbers being off by one when first file starts with newline.

**** Fixed naming of generate for blocks to prevent non-inline name conflict.

**** Fixed redundant statements remaining after table optimization.


* Verilator 3.542 2006-08-11 Stable

**** Fixed extraneous UNSIGNED warning when comparing genvars.  [David Hewson]

**** Fixed extra white space in $display %c.  [by David Addison]

**** vl_finish and vl_fatal now print via VL_PRINTF rather then cerr/cout.

**** Add VL_CONST_W_24X macro.  [Bernard Deadman]


* Verilator 3.541 2006-07-05 Beta

***  Fixed "// verilator lint_on" not re-enabling warnings.  [David Hewson]

***  Fixed 3.540's multiple memory assignments to same block.  [David Hewson]

**** Add warning on changeDetect to arrayed structures.  [David Hewson]

**** Fixed non-zero start number for arrayed instantiations.  [Jae Hossell]

**** Fixed GCC 4.0 header file warnings.


* Verilator 3.540 2006-06-27 Beta

**** Optimize combo assignments that are used only once, ~5-25% faster.

**** Optimize delayed assignments to memories inside loops, ~0-5% faster.

**** Fixed mis-width warning on bit selects of memories.  [David Hewson]

**** Fixed mis-width warning on dead generate-if branches.  [Jae Hossell]


* Verilator 3.533 2006-06-05 Stable

***  Add PDF user manual, verilator.pdf.

**** Fixed delayed bit-selected arrayed assignments. [David Hewson]

**** Fixed execution path to Perl.  [Shanshan Xu]

**** Fixed Bison compile errors in verilog.y.  [by Ben Jackson]


* Verilator 3.531 2006-05-10 Stable

***  Support $c routines which return 64 bit values.

**** Fixed `include `DEFINE.

**** Fixed Verilator core dump when have empty public function. [David.Hewson]


* Verilator 3.530 2006-04-24 Stable

**   $time is now 64 bits.  The macro VL_TIME_I is now VL_TIME_Q, but calls
     the same sc_time_stamp() function to get the current time.


* Verilator 3.523 2006-03-06 Stable

**** Fixed error line numbers being off due to multi-line defines.  [Mat Zeno]

**** Fixed GCC sign extending (uint64_t)(a<b). [David Hewson]

**** Fixed `systemc_imp_header "undefined macro" error.


* Verilator 3.522 2006-02-23 Beta

**** Add UNUSED error message, for forward compatibility.


* Verilator 3.521 2006-02-14 Beta

***  Create new --coverage-line and --coverage-user options. [Peter Holmes]

**** Added SystemVerilog 'x,'z,'0,'1, and new string literals.

**** Fixed public module's parent still getting inlined.


* Verilator 3.520 2006-01-14 Stable

**   Added support for $fopen, $fclose, $fwrite, $fdisplay.
     See documentation, as the file descriptors differ from the standard.


* Verilator 3.510 2005-12-17 Stable

**   Improve trace-on performance on large multi-clock designs by 2x or more.
     This adds a small ~2% performance penalty if traces are compiled in,
     but not turned on.  For best non-tracing performance, do not use --trace.

**** Fixed $'s in specify delays causing bad PLI errors.  [Mat Zeno]

**** Fixed public functions not setting up proper symbol table. [Mat Zeno]

**** Fixed genvars generating trace compile errors.  [Mat Zeno]

**** Fixed VL_MULS_WWW compile error with MSVC++. [Wim Michiels]


* Verilator 3.502 2005-11-30 Stable

**** Fixed local non-IO variables in public functions and tasks.

**** Fixed bad lifetime optimization when same signal is assigned multiple
     times in both branch of a if. [Danny Ding]


* Verilator 3.501 2005-11-16 Stable

***  Add --prof-cfuncs for correlating profiles back to Verilog.

**** Fixed functions where regs are declared before inputs.  [Danny Ding]

**** Fixed bad deep expressions with bit-selects and rotate.  [Prabhat Gupta]


* Verilator 3.500 2005-10-30 Stable

**   Support signed numbers, >>>, $signed, $unsigned.  [MANY!]

**   Support multi-dimensional arrays.  [Eugen Fekete]

**   Add very limited support for the Property Specification Language
     (aka PSL or Sugar).  The format and keywords are now very limited, but will
     grow with future releases.  The --assert switch enables this feature.

**   With --assert, generate assertions for synthesis parallel_case and full_case.

**** Fixed generate if's with empty if/else blocks.  [Mat Zeno]

**** Fixed generate for cell instantiations with same name.  [Mat Zeno]


* Verilator 3.481 2005-10-12 Stable

***  Add /*verilator tracing_on/off*/ for waveform control.

**** Fixed split optimization reordering $display statements.


* Verilator 3.480 2005/9/27 Beta

**   Allow coverage of flattened modules, and multiple points per line.
     Coverage analysis requires SystemPerl 1.230 or newer.

**** Add preprocessor changes to support meta-comments.

**** Optimize sequential assignments of different bits of same bus; ~5% faster.

**** Optimize away duplicate lookup tables.

**** Optimize wide concatenates into individual words.  [Ralf Karge]

**** Optimize local variables from delayed array assignments.


* Verilator 3.470 2005/9/6 Stable

***  Optimize staging flops under reset blocks.

***  Add '-Werror-...' to upgrade specific warnings to errors.

**** Add GCC branch prediction hints on generated if statements.

**** Fixed bad simulation when same function called twice in same expression.

**** Fixed preprocessor substitution of quoted parameterized defines.


* Verilator 3.464 2005/8/24 Stable

***  Add `systemc_imp_header, for use when using --output-split.

***  Add --stats option to dump design statistics.

**** Fixed core dump with clock inversion optimizations.


* Verilator 3.463 2005/8/5 Stable

***  Fixed case defaults when not last statement in case list. [Wim Michiels]


* Verilator 3.462 2005/8/3 Stable

***  Fixed reordering of delayed assignments to same memory index. [Wim Michiels]

**** Fixed compile error with Flex 2.5.1.  [Jens Arm]

**** Fixed multiply-instantiated public tasks generating non-compilable code.


* Verilator 3.461 2005/7/28 Beta

**** Fixed compile error with older versions of bison.  [Jeff Dutton]


* Verilator 3.460 2005/7/27 Beta

**   Add -output-split option to enable faster parallel GCC compiles.
     To support --output-split, the makefiles now split VM_CLASSES
     into VM_CLASSES_FAST and VM_CLASSES_SLOW.  This may require a
     change to local makefiles.

**   Support -v argument to read library files.

***  When issuing unoptimizable warning, show an example path.

**** Fixed false warning when a clock is constant.

**** Fixed X/Z in decimal numbers.  [Wim Michiels]

**** Fixed genvar statements in non-named generate blocks.

**** Fixed core dump when missing newline in `define.  [David van der bokke]

**** Internal tree dumps now indicate edit number that changed the node.


* Verilator 3.450 2005/7/12

**   $finish will no longer exit, but set Verilated::gotFinish().
     This enables support for final statements, and for other cleanup code.
     If this is undesired, redefine the vl_user_finish routine.  Top level
     loops should use Verilated::gotFinish() as a exit condition for their
     loop, and then call top->final().  To prevent a infinite loop, a
     double $finish will still exit; this may be removed in future
     releases.

***  Add support for SystemVerilog keywords $bits, $countones, $isunknown,
     $onehot, $onehot0, always_comb, always_ff, always_latch, finish.

**** Fixed "=== 1'bx" to always be false, instead of random.


* Verilator 3.440 2005/6/28 Stable

**   Add Verilog 2001 generate for/if/case statements.


* Verilator 3.431 2005/6/24 Stable

***  Fixed selection bugs introduced in 3.430 beta.


* Verilator 3.430 2005/6/22 Beta

**   Add Verilog 2001 variable part selects [n+:m] and [n-:m].  [Wim Michiels]


* Verilator 3.422 2005/6/10 Stable

***  Added Verilog 2001 power (**) operator.  [Danny Ding]

**** Fixed crash and added error message when assigning to inputs.  [Ralf Karge]

**** Fixed tracing of modules with public functions.


* Verilator 3.421 2005/6/2 Beta

**** Fixed error about reserved word on non-public signals.

**** Fixed missing initialization compile errors in 3.420 beta. [Ralf Karge]


* Verilator 3.420 2005/6/2 Beta

***  Fixed case defaults when not last statement in case list. [Ralf Karge]

**** Added error message when multiple defaults in case statement.

**** Fixed crash when wire self-assigns x=x.

**   Performance improvements worth ~20%

**   Added -x-assign options; ~5% faster if use -x-assign=0.

**** Optimize shifts out of conditionals and if statements.

**** Optimize local 'short' wires.

**** Fixed gate optimization with top-flattened modules. [Mahesh Kumashikar]


* Verilator 3.411 2005/5/30 Stable

**** Fixed compile error in GCC 2.96.  [Jeff Dutton]


* Verilator 3.410 2005/5/25 Beta

**   Allow functions and tasks to be declared public.
     They will become public C++ functions, with appropriate C++ types.
     This allows users to make public accessor functions/tasks, instead
     of having to use public variables and `systemc_header hacks.

***  Skip producing output files if all inputs are identical
     This uses timestamps, similar to make.  Disable with --no-skip-identical.

**** Improved compile performance with large case statements.

**** Fixed internal error in V3Table.  [Jeff Dutton]

**** Fixed compile error in GCC 2.96, and with SystemC 1.2.  [Jeff Dutton]


* Verilator 3.400 2005/4/29 Beta

**   Internal changes to support future clocking features.

**   Verilog-Perl and SystemPerl are no longer required for C++ or SystemC
     output.  If you want tracing or coverage analysis, they are still needed.

***  Added --sc to create pure SystemC output not requiring SystemPerl.

***  Added --pins64 to create 64 bit SystemC outputs instead of sc_bv<64>.

***  The --exe flag is now required to produce executables inside the makefile.
     This was previously the case any time .cpp files were passed on the
     command line.

***  Added -O3 and --inline-mult for performance tuning.  [Ralf Karge]
     One experiment regained 5% performance, at a cost of 300% in compile time.

***  Improved performance of large case/always statements with low fanin
     by converting to internal lookup tables (ROMs).

***  Initialize SystemC port names.  [S Shuba]

**** Added Doxygen comments to Verilated includes.

**** Fixed -cc pins 8 bits wide and less to be uint8_t instead of uint16_t.

**** Fixed crash when Mdir has same name as .v file.  [Gernot Koch]

**** Fixed crash with size mismatches on case items.  [Gernot Koch]


* Verilator 3.340 2005/2/18 Stable

***  Report misconnected pins across all modules, instead of just first error.

**** Fixed over-active inlining, resulting in compile slowness.

**** Improved large netlist compile times.

**** Added additional internal assertions.


* Verilator 3.332 2005/1/27

***  Added -E preprocess only flag, similar to GCC.

***  Added CMPCONSTLR when comparison is constant due to > or < with all ones.

**** Fixed loss of first -f file argument, introduced in 3.331.


* Verilator 3.331 2005/1/18

**   The Verilog::Perl preprocessor is now C++ code inside of Verilator.
     This improves performance, makes compilation easier, and enables
     some future features.

***  Support arrays of instantiations (non-primitives only). [Wim Michiels]

**** Fixed unlinked error with defparam.  [Shawn Wang]


* Verilator 3.320 2004-12-10

**   NEWS is now renamed Changes, to support CPAN indexing.

***  If Verilator is passed a C file, create a makefile link rule.
     This saves several user steps when compiling small projects.

***  Added new COMBDLY warning in place of fatal error.  [Shawn Wang]

***  Fixed mis-simulation with wide-arrays under bit selects.  [Ralf Karge]

**** Added NC Verilog as alternative to VCS for reference tests.

**** Support implicit wire declarations on input-only signals.
     (Dangerous, as leads to wires without drivers, but allowed by spec.)

**** Fixed compile warnings on Suse 9.1


* Verilator 3.311 2004-11-29

**   Support implicit wire declarations (as a warning).  [Shawn Wang]

**** Fixed over-shift difference in Verilog vs C++.  [Ralf Karge]


* Verilator 3.310 2004-11-15

**   Support defparam.

**   Support gate primitives: buf, not, and, nand, or, nor, xor, xnor.

***  Ignore all specify blocks.


* Verilator 3.302 2004-11-12

***  Support NAND and NOR operators.

***  Better warnings when port widths don't match.

**** Fixed internal error due to some port width mismatches. [Ralf Karge]

**** Fixed WIDTH warnings on modules that are only used
     parameterized, not in 'default' state.

**** Fixed selection of SystemC library on cygwin systems. [Shawn Wang]

**** Fixed runtime bit-selection of parameter constants.


* Verilator 3.301 2004-11-04

**** Fixed 64 bit [31:0] = {#{}} mis-simulation.  [Ralf Karge]

**** Fixed shifts greater then word width mis-simulation.  [Ralf Karge]

**** Work around GCC 2.96 negation bug.


* Verilator 3.300 2004-10-21

**   New backend that eliminates most VL_ macros.
     Improves performance 20%-50%, depending on frequency of use of signals
     over 64 bits. GCC compile times with -O2 shrink by a factor of 10.

**** Fixed "setting unsigned int from signed value" warning.


* Verilator 3.271 2004-10-21

**** Fixed "loops detected" error with some negedge clocks.

**** Cleaned up some output code spacing issues.


* Verilator 3.270 2004-10-15

***  Support Verilog 2001 parameters in module headers. [Ralf Karge]

**** Suppress numeric fault when dividing by zero.

**** Faster code to support compilers not inlining all Verilated functions.


* Verilator 3.260 2004-10-7

**   Support Verilog 2001 named parameter instantiation. [Ralf Karge]

**** Return 1's when one bit wide extract indexes outside array bounds.

**** Fixed compile warnings on 64-bit operating systems.

**** Fixed incorrect dependency in .d file when setting VERILATOR_BIN.


* Verilator 3.251 2004/9/9

**** Fixed parenthesis overflow in Microsoft Visual C++ [Renga Sundararajan]


* Verilator 3.250 2004/8/30

**   Support Microsoft Visual C++ [Renga Sundararajan]

***  SystemPerl 1.161+ is required.


* Verilator 3.241 2004/8/17

**   Support ,'s to separate multiple assignments. [Paul Nitza]

**** Fixed shift sign extension problem using non-GCC compilers.


* Verilator 3.240 2004/8/13

**   Verilator now uses 64 bit math where appropriate.
     Inputs and outputs of 33-64 bits wide to the C++ Verilated model must
     now be uint64_t's; SystemC has not changed, they will remain sc_bv's.
     This increases performance by ~ 9% on x86 machines, varying with how
     frequently 33-64 bit signals occur.  Signals 9-16 bits wide are now
     stored as 16 bit shorts instead of longs, this aids cache packing.

**** Fixed SystemC compile error with feedthrus. [Paul Nitza]

**** Fixed concat value error introduced in 3.230.


* Verilator 3.230 2004/8/10

***  Added coverage output to test_sp example, SystemPerl 1.160+ is required.

**** Fixed time 0 value of signals. [Hans Van Antwerpen]
     Earlier versions would not evaluate some combinatorial signals
     until posedge/negedge blocks had been activated.

**** Fixed wide constant inputs to public submodules [Hans Van Antwerpen]

**** Fixed wide signal width extension bug.
     Only applies when width mismatch warnings were overridden.


* Verilator 3.220 2004/6/22

**   Many waveform tracing changes:

***  Tracing is now supported on C++ standalone simulations. [John Brownlee]

***  When tracing, SystemPerl 1.150 or newer is required.

***  When tracing, Verilator must be called with the --trace switch.

**** Added SystemPerl example to documentation.  [John Brownlee]

**** Various Cygwin compilation fixes.  [John Brownlee]


* Verilator 3.210 2004/4/1

**   Compiler optimization switches have changed
     See the BENCHMARKING section of the documentation.

***  With Verilog-Perl 2.3 or newer, Verilator supports SystemVerilog
     preprocessor extensions.

***  Added localparam. [Thomas Hawkins]

***  Added warnings for SystemVerilog reserved words.


* Verilator 3.203 2004/3/10

***  Notes and repairs for Solaris. [Fred Ma]


* Verilator 3.202 2004/1/27

**   The beta version is now the primary release.  See below for many changes.
     If you have many problems, you may wish to try release 3.125.

***  Verilated::traceEverOn(true) must be called at time 0 if you will ever
     turn on tracing (waveform dumping) of signals.  Future versions will
     need this switch to disable trace incompatible optimizations.

**** Fixed several tracing bugs

**** Added optimizations for common replication operations.


* Verilator 3.201-beta 2003-12-10

**   BETA VERSION, USE 3.124 for stable release!

**   Version 3.2XX includes a all new back-end.
     This includes automatic inlining, flattening of signals between
     hierarchy, and complete ordering of statements.  This results in
     60-300% execution speedups, though less pretty C++ output.  Even
     better results are possible using GCC 3.2.2 (part of Redhat 9.1), as
     GCC has fixed some optimization problems which Verilator exposes.

     If you are using `systemc_ctor, beware pointers to submodules are now
     initialized after the constructor is called for a module, to avoid
     segfaults, move statements that reference subcells into initial
     statements.

***  C++ Constructor that creates a verilog module may take a char* name.
     This name will be used to prefix any $display %m arguments, so users may
     distinguish between multiple Verilated modules in a single executable.


* Verilator 3.125 2004/1/27

**** Optimization of bit replications


* Verilator 3.124 2003-12-05

***  A optimized executable will be made by default, in addition to a debug
     executable.  Invoking Verilator with --debug will pick the debug version.

**** Many minor invisible changes to support the next version.


* Verilator 3.123 2003-11-10

**** Wide bus performance enhancements.

**** Fixed function call bug when width warning suppressed. [Leon Wildman]

**** Fixed __DOT__ compile problem with funcs in last revision. [Leon Wildman]


* Verilator 3.122 2003-10-29

***  Modules which are accessed from external code now must be marked with
     /*verilator public_module*/ unless they already contain public signals.
     To enforce this, private cell names now have a string prepended.

**** Fixed replicated function calls in one statement. [Robert A. Clark]

**** Fixed function call bug when width warning suppressed. [Leon Wildman]


* Verilator 3.121 2003-09-29

***  Support multiplication over 32 bits. [Chris Boumenot]
     Also improved speed of addition and subtraction over 32 bits.

***  Detect bit selection out of range errors.

***  Detect integer width errors.

**** Fixed width problems on function arguments. [Robert A. Clark]


* Verilator 3.120 2003-09-24

***  $finish now exits the model (via vl_finish function).

***  Support inputs/outputs in tasks.

***  Support V2K "integer int = {INITIAL_VALUE};"

***  Ignore floating point delay values.  [Robert A. Clark]

**** Ignore `celldefine, `endcelldefine, etc. [Robert A. Clark]

**** New optimizations on reduction operators.

**** Fixed converting "\ooo" into octal values.

**** Fixed $display("%x");


* Verilator 3.112 2003-09-16

**** Fixed functions in continuous assignments. [Robert A. Clark]

**** Fixed inlining of modules with 2-level deep outputs.


* Verilator 3.111 2003-09-15

**** Fixed declaration of functions before using that module. [Robert A. Clark]

**** Fixed module inlining bug with outputs.


* Verilator 3.110 2003-09-12

**   Support Verilog 2001 style input/output declarations. [Robert A. Clark]

***  Allow local vars in headers of function/tasks. [Leon Wildman]


* Verilator 3.109 2003-08-28

**   Added support for local variables in named begin blocks. [Leon Wildman]


* Verilator 3.108 2003-08-11

**   Added support for functions.

***  Signals 8 bits and shorter are now stored as chars
     instead of uint32_t's.  This improves Dcache packing and
     improves performance by ~7%.

**** $display now usually results in a single VL_PRINT rather then many.

**** Many optimizations involving conditionals (?:)


* Verilator 3.107 2003-07-15

***  --private and --l2name are now the default,
     as this enables additional optimizations.
     Use --noprivate or --nol2name to get the older behavior.

***  Now support $display of binary and wide format data.

***  Added detection of incomplete case statements,
     and added related optimizations worth ~4%.

**** Work around flex bug in Redhat 8.0.  [Eugene Weber]

**** Added some additional C++ reserved words.

**** Additional constant optimizations, ~5% speed improvement.


* Verilator 3.106 2003-06-17

** $c can now take multiple expressions as arguments.
   For example $c("foo","bar(",32+1,");") will insert "foobar(33);"
   This makes it easier to pass the values of signals.

** Several changes to support future versions that may have
   signal-eliminating optimizations.  Users should try to use these switch
   on designs, they will become the default in later versions.

*** Added --private switch and /*verilator public*/ metacomment.
    This renames all signals so that compile errors will result if any
    signals referenced by C++ code are missing a /*verilator public*/
    metacomment.

*** With --l2name, the second level cell C++ cell is now named "v".
    Previously it was named based on the name of the verilog code.  This
    means to get to signals, scope to "{topcell} ->v ->{mysignal}" instead
    of "{topcell} ->{verilogmod}. {mysignal}".  This allows different
    modules to be substituted for the cell without requiring source
    changes.

**** Several cleanups for Redhat 8.0.


* Verilator 3.105 2003-05-08

**** Fixed more GCC 3.2 errors. [David Black]


* Verilator 3.104 2003-04-30

*** Indicate direction of ports with VL_IN and VL_OUT.

*** Allow $c32, etc, to specify width of the $c statement for VCS.

**** Fixed false "indent underflow" error inside `systemc_ctor sections.

**** Fixed missing ordering optimizations when outputs also used internally.

*** Numerous performance improvements, worth about 25%

**** Assign constant cell pins in initial blocks rather then every cycle.

**** Promote subcell's combo logic to sequential evaluation when possible.

**** Fixed GCC 3.2 compile errors.  [Narayan Bhagavatula]


* Verilator 3.103 2003-01-28

**** Fixed missing model evaluation when clock generated several levels of
     hierarchy across from where it is used as a clock.  [Richard Myers]

**** Fixed sign-extension bug introduced in 3.102.


* Verilator 3.102 2003-01-24

**** Fixed sign-extension of X/Z's ("32'hx")


* Verilator 3.101 2003-01-13

**** Fixed 'parameter FOO=#'bXXXX' [Richard Myers]

**** Allow spaces inside numbers ("32'h 1234") [Sam Gladstone]


* Verilator 3.100 2002-12-23

**   Support for simple tasks w/o vars or I/O.  [Richard Myers]

**** Ignore DOS carriage returns in Linux files. [Richard Myers]


* Verilator 3.012 2002-12-18

**** Fixed parsing bug with casex statements containing case items
     with bit extracts of parameters. [Richard Myers]

**** Fixed bug which could cause writes of non-power-of-2 sized arrays to
     corrupt memory beyond the size of the array. [Dan Lussier]

**** Fixed bug which did not detect UNOPT problems caused by
     submodules.  See the description in the verilator man page. [John Deroo]

**** Fixed compile with threaded Perl.  [Ami Keren]


* Verilator 3.010  2002-11-3

*** Support SystemC 2.0.1.  SystemPerl version 1.130 or newer is required.

**** Fixed bug with inlined modules under other inlined modules.  [Scott
     Bleiweiss]


* Verilator 3.005  2002-10-21

**** Fixed X's in case (not casex/z) to constant propagate correctly.

**** Fixed missing include. [Kurachi]


* Verilator 3.004  2002-10-10

*** Added /* verilator module_inline */ and associated optimizations.

*** Allow /* verilator coverage_block_off */ in place of `coverage_block_off.
    This prevents problems with Emacs AUTORESET. [Ray Strouble]

**** Fixed `coverage_block_off also disabling subsequent blocks.

**** Fixed unrolling of loops with multiple simple statements.

**** Fixed compile warnings on newer GCC. [Kurachi]

**** Additional concatenation optimizations.


* Verilator 3.003  2002-09-13

*** Now compiles on Windows 2000 with Cygwin.

**** Fixed bug with pin assignments to wide memories.

**** Optimize wire assignments to constants.


* Verilator 3.002  2002-08-19

** First public release of version 3.


* Verilator 3.000  2002-08-03

** All new code base.  Many changes too numerous to mention.

*** Approximately 4 times faster then Verilator 2.
*** Supports initial statements
*** Supports correct blocking/nonblocking assignments
*** Supports `defines across multiple modules
*** Optimizes call ordering, constant propagation, and dead code elimination.


* Verilator 2.1.8 2002-04-03

** All applications must now link against include/verilated.cpp

*** Paths specified to verilator_make should be absolute, or be formed
   to allow for execution in the object directory (prepend ../ to each path.)
   This allows relative filenames for makes which hash and cache dependencies.

**** Added warning when parameter constants are too large. [John Deroo]

**** Added warning when x/?'s used in non-casez statements.

**** Added warning when blocking assignments used in posedge blocks. [Dan Lussier]

**** Split evaluation function into clocked and non-clocked, 20% perf gain.


* Verilator 2.1.5 2001-12-1

** Added coverage analysis.  In conjunction with SystemC provide line
   coverage reports, without SystemC, provide a hook to user written
   accumulation function.  See --coverage option of verilator_make.

*** Relaxed multiply range checking

*** Support for constants up to 128 bits

*** Randomize values used when assigning to X's.

**** Added -guard option of internal testing.

**** Changed indentation in emitted code to be automatically generated.

**** Fixed corruption of assignments of signal over 32 bits with non-0 lsb.


* Verilator 2.1.4 2001-11-16

** Added $c("c_commands();");  for embedding arbitrary C code in Verilog.


* Verilator 2.1.3 2001-11-03

** Support for parameters.


* Verilator 2.1.2 2001-10-25

** Verilog Errors now reference the .v file rather then the .vpp file.

*** Support strings in assignments:  reg [31:0] foo = "STRG";

*** Support %m in format strings.  Ripped out old $info support, use
    Verilog-Perl's vpm program instead.

*** Convert $stop to call of v_stop() which user can define.

**** Fixed bug where a==b==c would have wrong precedence rule.

**** Fixed bug where XNOR on odd-bit-widths (~^ or ^~) had bad value.


* Verilator 2.1.1 2001-05-17

** New test_sp directory for System-Perl (SystemC) top level instantiation
of the Verilated code, lower modules are still C++ code.  (Experimental).

** New test_spp directory for Pure System-Perl (SystemC) where every module
is true SystemC code.  (Experimental)

*** Input ports are now loaded by pointer reference into the sub-cell.
This is faster on I-386 machines, as the stack must be used when there are
a large number of parameters.  Also, this simplifies debugging as the value
of input ports exists for tracing.

**** Many code cleanups towards standard C++ style conventions.


* Verilator 2.1.0 2001-05-08

**** Many code cleanups towards standard C++ style conventions.


* {Version history lost}


* Verilator 1.8 1996-07-08

** [Versions 0 to 1.8 were by Paul Wasson]

****  Fixed single bit in concat from instance output incorrect offset bug.


* Verilator 1.7 1996-05-20

****  Mask unused bits of DONTCAREs.


* Verilator 1.6 1996-05-13

*** Added fasttrace script


* Verilator 1.5 1996-01-09

*** Pass structure pointer into translated code,
    so multiple instances can use same functions.

**** Fixed static value concat on casex items.


* Verilator 1.1 1995-03-30

*** Bug fixes, added verimake_partial script, performance improvements.


* Verilator 1.0c 1994-09-30

*** Initial release of Verilator


* Verilator 0.0 1994-07-08

**** First code written.

----------------------------------------------------------------------

This uses outline mode in Emacs.  See C-h m [M-x describe-mode].

Copyright 2001-2020 by Wilson Snyder.  This program is free software; you
can redistribute it and/or modify it under the terms of either the GNU
Lesser General Public License Version 3 or the Perl Artistic License
Version 2.0.

Local variables:
mode: outline
paragraph-separate: "[  \f\n]*$"
end:
