Revision history for Verilator The contributors that suggested a given feature are shown in []. Thanks! * Verilator 4.015 devel *** Add --quiet-exit, bug1436. [Todd Strader] **** Error continuation lines no longer have %Error prefix. **** Support logical equivalence operator <->. **** Support VerilatedFstC set_time_unit, bug1433. [Pieter Kapsenberg] **** Support deferred assertions, bug1449. [Charles Eddleston] **** Mark infrequently called functions with GCC cold attribute. **** Fix sign-compare warning in verilated.cpp, bug1437. [Sergey Kvachonok] **** Fix fault on $realtime with %t, bug1443. [Julien Margetts] **** Fix $display with string without %s, bug1441. [Denis Rystsov] **** Fix parameter function string returns, bug1441. [Denis Rystsov] **** Fix invalid XML output due to special chars, bug1444. [Kanad Kanhere] **** Fix performance when mulithreaded on 1 CPU, bug1455. [Stefan Wallentowitz] **** Fix type and real parameter issues, bug1427, bug1456, bug1458. [Todd Strader] **** Fix build error on MinGW, bug1460. [Richard Myers] **** Fix not reporting some duplicate signals, bug1462. [Peter Gerst] **** Fix --savable invalid C++ on packed arrays, bug1465. [Alex Chadwick] **** Fix constant function return of function var, bug1467. [Roman Popov] * Verilator 4.014 2019-05-08 *** Add --trace-fst-thread. **** Support '#' comments in $readmem, bug1411. [Frederick Requin] **** Support "'dx" constants, bug1423. [Udi Finkelstein] **** For FST tracing use LZ4 compression. [Tony Bybell] **** Add error when use parameters without value, bug1424. [Peter Gerst] **** Auto-extend and WIDTH warn on unsized X/Zs, bug1423. [Udi Finkelstein] **** Fix missing VL_SHIFTL_ errors, bug1412, bug1415. [Larry Lee] **** Fix MinGW GCC 6 printf formats, bug1413. [Sergey Kvachonok] **** Fix test problems when missing fst2vcd, bug1417. [Todd Strader] **** Fix GTKWave register warning, bug1421. [Pieter Kapsenberg] **** Fix FST enums not displaying, bug1426. [Danilo Ramos] **** Fix table compile error with multiinterfaces, bug1431. [Bogdan Vukobratovic] * Verilator 4.012 2019-3-23 *** Add +verilator+seed, bug1396. [Stan Sokorac] *** Support $fread. [Leendert van Doorn] *** Support void' cast on functions called as tasks, bug1383. [Al Grant] *** Add IGNOREDRETURN warning, bug1383. **** Report PORTSHORT errors on concat constants, bug 1400. [Will Korteland] **** Fix VERILATOR_GDB being ignored, msg2860. [Yu Sheng Lin] **** Fix $value$plus$args missing verilated_heavy.h. [Yi-Chung Chen] **** Fix MSVC compile error, bug1406. [Benjamin Gartner] **** Fix maintainer test when no Parallel::Forker, msg2630. [Enzo Chi] **** Fix +1364-1995ext flags applying too late, bug1384. [Al Grant] * Verilator 4.010 2019-01-27 *** Removed --trace-lxt2, use --trace-fst instead. **** For --xml, add additional information, bug1372. [Jonathan Kimmitt] **** Add circular typedef error, bug1388. [Al Grant] **** Add unsupported for loops error, msg2692. [Yu Sheng Lin] **** Fix FST tracing of wide arrays, bug1376. [Aleksander Osman] **** Fix error when pattern assignment has too few elements, bug1378. [Viktor Tomov] **** Fix error when no modules in $unit, bug1381. [Al Grant] **** Fix missing too many digits warning, bug1380. [Jonathan Kimmitt] **** Fix uninitialized data in verFiles and unroller, bug1385. bug1386. [Al Grant] **** Fix internal error on xrefs into unrolled functions, bug1387. [Al Grant] **** Fix DPI export void compiler error, bug1391. [Stan Sokorac] * Verilator 4.008 2018-12-01 *** Support "ref" and "const ref" pins and functions, bug1360. [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, bug1369. [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, msg2711. [HyungKi Jeong] **** Fix hang on bad pattern keys, bug1364. [Matt Myers] **** Fix crash due to cygwin bug in getline, bug1349. [Affe Mao] **** Fix __Slow files getting compiled with OPT_FAST, bug1370. [Thomas Watts] * Verilator 4.006 2018-10-27 ** Add --pp-comments, msg2700. [Robert Henry] ** Add --dump-defines. *** For --trace-fst, save enum decoding information, bug1358. [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, bug1361. [Patrick Stewart] * Verilator 4.004 2018-10-6 ** Add GTKWave FST native tracing, bug1356. [Sergi Granell] (Verilator developers need to pull the latest vcddiff.) *** Support $past. [Dan Gisselquist] *** Support restrict, bug1350. [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, bug1348. [Kevin Kiningham] **** Fix MinGW compile issues, msg2636. [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, bug1333. [Yu Sheng Lin] ** Note $random has new algorithm; results may vary vs. previous versions. *** Better optimize large always block splitting, bug1244. [John Coiner] *** Add new reloop optimization for repetitive assignment compression. *** Support string.atoi and similar methods, bug1289. [Joel Holdsworth] **** Fix internals to be C++ null-pointer-check clean. **** Fix internals to avoid 'using namespace std'. **** Fix Verilation performance issues, bug1316. [John Coiner] **** Fix clocker attributes to not propagate on concats. [John Coiner] **** Fix first clock edge and --x-initial-edge, bug1327. [Rupert Swarbrick] **** Fix compile error on tracing of string arrays, bug1338. [Iztok Jeras] **** Fix number parsing with newline after radix, bug1340. [George Cuan] **** Fix string ?: conditional type resolution, bug1345. [Iztok Jeras] **** Fix duplicate symbol error on generate tri, bug1347. [Tomas Dzetkulic] * Verilator 3.926 2018-08-22 **** Add OBJCACHE envvar support to examples and generated Makefiles. **** Change MODDUP errors to warnings, msg2588. [Marshal Qiao] **** Fix define argument stringification (`"), broke since 3.914. [Joe DErrico] **** Fix to ignore Unicode UTF-8 BOM sequences, msg2576. [HyungKi Jeong] **** Fix std:: build error, bug1322. **** Fix function inlining inside certain while loops, bug1330. [Julien Margetts] * Verilator 3.924 2018-06-12 *** Renamed --profile-cfuncs to --prof-cfuncs. **** Report interface ports connected to wrong interface, bug1294. [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 #, bug1308. [Dan Kirkham] **** Fix $clog2 to be in verilog 2005, bug1319. [James Hutchinson] * Verilator 3.922 2018-03-17 ** Support IEEE 1800-2017 as default language. *** Support trig functions ($sin() etc), bug1281. [Patrick Stewart] *** Support calling system functions as tasks, bug1285. [Joel Holdsworth] *** Support assert properties, bug785, bug1290. [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, bug1273. **** Fix pullup/pulldowns on bit selects, bug1274. [Rob Stoddard] **** Fix verilator_coverage --annotate-min, bug1284. [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', bug1269. [Dan Gisselquist] **** Fix tracing example file output, bug1268. [Enzo Chi] **** Fix gate optimization out of memory, add --gate-stmts, bug1260. [Alex Solomatnikov] **** Fix compile error on public real parameters by suppressing, bug1261. [Alex Solomatnikov] **** Fix input-only tristate comparisons, bug1267. [Alexis G] **** Fix missing edge type in xml output, msg2480. [Alexis G] **** Fix compile error with --public and interface bind, bug1264. [Alexis G] **** Remove c++filt, bug1265. [Stefan Wallentowitz] * Verilator 3.918 2018-01-02 *** Workaround GCC/clang bug with huge compile times, bug1248. *** Support DPI open arrays, bug909, bug1245. [David Pierce, Victor Besyakov] *** Add INFINITELOOP warning, bug1254. [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, bug1251. [Tymoteusz Blazejczyk] **** Fix modport outputs being treated as inputs, bug1246. [Jeff Bush] **** Fix false ALWCOMBORDER on interface references, bug1247. [Josh Redford] **** Fix constant propagation across DPI imports of inout strings. [Victor Besyakov] **** Fix resolving inline nested interface names, bug1250. [Arjen Roodselaar] * Verilator 3.916 2017-11-25 *** Support self-recursive modules, bug659. [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, bug1110. [Trevor Elbourne] *** Add BSSPACE and COLONPLUS lint warnings. **** Detect MSB overflow when under VL_DEBUG, bug1238. [Junyi Xi] **** Add data types to --xml. [Rui Terra] **** Fix partial slicing with pattern assignments, bug991. [Johan Bjork] **** Fix false unused warning on interfaces, bug1241. [Laurens van Dam] **** Fix error on "unique case" with no cases. **** Fix MacOS portability, bug1232. [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, bug1224. [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, bug1223. [John Coiner] **** Fix Ubuntu 17.10 issues, bug1223 partial. [John Coiner] **** Fix compiler warning when WIDTH warning ignored on large compare. **** Fix memory leak in VerilatedVcd dumps, bug1222 partial. [Shareef Jalloq] **** Fix unnecessary Vdly variables, bug1224 partial. [John Coiner] **** Fix conditional slices and add related optimizations. **** Fix `` expansion of `defines, bug1225, bug1227, bug1228. [Odd Magne Reitan] **** Fix -E duplicating output, bug1226. [Odd Magne Reitan] **** Fix float-conversion warning, bug1229. [Robert Henry] **** Fix MacOS portability, bug1230, bug1231. [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, bug1210. [Mike Popoloski] *** Support package export, bug1217. [Usuario Eda] *** Fix ordering of arrayed cell wide connections, bug1202 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, bug1202. [Mike Popoloski] **** Fix enum ranges without colons, bug1204. [Mike Popoloski] **** Fix GCC noreturn compile error, bug1209. [Mike Popoloski] **** Fix constant function default parameters, bug1211. [Mike Popoloski] **** Fix non-colon array of interface modports, bug1212. [Mike Popoloski] **** Fix .name connections on interfaces, bug1214. [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, bug1180. [Arthur Kahlich] **** Support packed struct DPI imports, bug1190. [Rob Stoddard] **** Fix GCC 6 warnings. **** Fix compile error on unused VL_VALUEPLUSARGS_IW, bug1181. [Thomas J Whatson] **** Fix undefined VL_POW_WWI. [Clifford Wolf] **** Fix internal error on unconnected inouts, bug1187. [Rob Stoddard] * Verilator 3.906 2017-06-22 *** Support set_time_unit/set_time_precision in C traces, msg2261. *** Fix extract of packed array with non-zero LSB, bug1172. [James Pallister] *** Fix shifts by more than 32-bit numbers, bug1174. [Clifford Wolf] *** Fix power operator on wide constants, bug761. [Clifford Wolf] *** Fix .* on interface pins, bug1176. [Maciej Piechotka] * Verilator 3.904 2017-05-30 *** Fix non-cutable ordering loops on clock arrays, bug1009. [Todd Strader] *** Support ports of array of reals, bug1154. [J Briquet] *** Support arrayed parameter overrides, bug1153. [John Stevenson] *** Support $value$plusargs with variables, bug1165. [Wesley Terpstra] **** Support modport access to un-modport objects, bug1161. [Todd Strader] **** Add stack trace when can't optimize function, bug1158. [Todd Strader] **** Add warning on mis-sized literal, bug1156. [Todd Strader] **** Fix interface functions returning wrong parameters, bug996. [Todd Strader] **** Fix non-arrayed cells with interface arrays, bug1153. [John Stevenson] **** Fix --assert with complex case statements, bug1164. [Enzo Chi] * Verilator 3.902 2017-04-02 ** Add -FI option to force includes,msg2146. [Amir Gonnen] ** Add --relative-includes. [Rob Stoddard] *** Add error on duplicate pattern assignments, bug1145. [Johan Bjork] **** Fix error on improperly widthed default function, bug984. [Todd Strader] **** Fix 2009 localparam syntax, msg2139. [Galen Seitz] **** Fix ugly interface-to-non-interface errors, bug1112. [Johan Bjork] **** Fix LDFLAGS and CFLAGS not preserving order, bug1130. [Olof Kindgren] **** Fix internal error on initializing parameter array, bug1131. [Jie Xu] **** Fix internal error on interface arrays, bug1135. [John Stevenson] **** Fix calling sformatf to display, and elab $displays, bug1139. [Johan Bjork] **** Fix realpath compile issue on MSVC++, bug1141. [Miodrag Milanovic] **** Fix missing error on interface size mismatch, bug1143. [Johan Bjork] **** Fix error on parameters with dotted references, bug1146. [Johan Bjork] **** Fix wreal not handling continuous assign, bug1150. [J Briquet] **** Fix nested structure parameter selects, bug1150. [J Briquet] * Verilator 3.900 2017-01-15 ** Internal code changes for improved compatibility and performance. *** Support old-style $display($time), bug467. [John Demme] **** With --bbox-unsup, suppress desassign and mixed edges, bug1120. [Galen Seitz] **** Fix parsing sensitivity with &&, bug934. [Luke Yang] **** Fix internal error on double-for loop unrolling, bug1044. [Jan Egil Ruud] **** Fix internal error on unique casez with --assert, bug1117. [Enzo Chi] **** Fix bad code when tracing array of structs, bug1122. [Andrew Bardsley] * Verilator 3.890 2016-11-25 *** Honor --output-split on coverage constructors, bug1098. [Johan Bjork] **** Fix various issues when making outside of the kit. **** Fix flex 2.6.2 bug, bug1103. [Sergey Kvachonok] **** Fix error on bad interface name, bug1097. [Todd Strader] **** Fix error on referencing variable in parent, bug1099. [Ian Thompson] **** Fix type parameters with low optimization, bug1101. [Stefan Wallentowitz] * Verilator 3.888 2016-10-14 ** Support foreach, bug1078. [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, msg1995. [Elliot Mednick] **** Fix SystemC compiles with VPI, bug1081. [Arthur Kahlich] **** Fix error on wide numbers that represent shifts, msg1991, bug1088. [Mandy Xu] **** Improve Verilation performance on internal strings, msg1975. [Johan Bjork] **** Improve Verilation performance on trace duplicates, bug1090. [Johan Bjork] * Verilator 3.886 2016-07-30 **** Fix enum values of 11-16 bits wide using .next/.prev, bug1062. [Brian Flachs] **** Fix false warnings on non-power-2 enums using .next/.prev. **** Fix comparison of unpacked arrays, bug1071. [Andrew Bardsley] **** Fix compiler warning in GCC 6. [David Horton] * Verilator 3.884 2016-05-18 ** Support parameter type, bug376. [Alan Hunter, et al] ** Support command-line -G/+pvalue param overrides, bug1045. [Stefan Wallentowitz] *** The default l2 scope name is now the same as the top-level module, bug1050. Use "--l2-name v" for the historical behavior. *** Add --l2-name option for controlling "v" naming. **** Fix --output-split of constructors, bug1035. [Johan Bjork] **** Fix removal of empty packages, modules and cells, bug1034. [Johan Bjork] **** Fix core dump on Arch Linux/GCC 6.1.1, bug1058. [Jannis Harder] **** Fix $value$plusargs to string, msg1890. [Frederic Requin] * Verilator 3.882 2016-03-01 **** Internal Verilation-time performance enhancements, bug1021. [Johan Bjork] **** Support inlining interfaces, bug1018. [Johan Bjork] **** Support SV strings to readmemh, bug1040. [Stefan Wallentowitz] **** Fix unrolling complicated for-loop bounds, bug677. [Johan Bjork] **** Fix stats file containing multiple unroll entries, bug1020. [Johan Bjork] **** Fix using short parameter names on negative params, bug1022. [Duraid Madina] **** Fix read-after-free error, bug1031. [Johan Bjork] **** Fix elaboration-time display warnings, bug1032. [Johan Bjork] **** Fix crash on very deep function trees, bug1028. [Jonathan Kimmitt] **** Fix slicing mix of big and little-endian, bug1033. [Geoff Barrett] **** Fix pattern assignment width propagation, bug1037. [Johan Bjork] * Verilator 3.880 2015-12-19 *** Support display %u, %v, %p, %z, bug989. [Johan Bjork] **** Fix real parameters causing bad module names, bug992. [Johan Bjork] **** Fix size-changing cast on packed struct, bug993. [Johan Bjork] **** Fix function calls on arrayed interface, bug994. [Johan Bjork] **** Fix arrayed interfaces, bug879, bug1001. [Todd Strader] **** Fix constant function assigned to packed structs, bug997. [Johan Bjork] **** Fix interface inside generate, bug998. [Johan Bjork] **** Fix $signed casts under generates, bug999. [Clifford Wolf] **** Fix genvar constant propagation, bug1003. [Johan Bjork] **** Fix parameter constant propagation from package, bug1004. [Johan Bjork] **** Fix array slicing of non-const indexes, bug1006. [Johan Bjork] **** Fix dotted generated array error, bug1005. [Jeff Bush, Johan Bjork] **** Fix error instead of warning on large concat, msg1768. [Paul Rolfe] **** Fix $bitstoreal constant propagation, bug1012. [Jonathan Kimmitt] **** Fix model restore crash, bug1013. [Jason McMullan] **** Fix arrayed instances to unpacked of same size, bug1015. [Varun Koyyalagunta] **** Fix slices of unpacked arrays with non-zero LSBs. **** Fix ternary operation with unpacked array, bug1017. [Varun Koyyalagunta]. * Verilator 3.878 2015-11-01 ** Add --vpi flag, and fix VPI linkage, bug969. [Arthur Kahlich] ** Support genvar indexes into arrayed cells, bug517. [Todd Strader] ** Support $sformatf, bug977. [Johan Bjork] *** Support elaboration assertions, bug973. [Johan Bjork] *** Support $display with non-format arguments, bug467. [Jamey Hicks] **** Add VerilatedScopeNameMap for introspection, bug966. [Todd Strader] **** Ignore %l in $display, bug983. [Todd Strader] **** Fix very long module names, bug937. [Todd Strader] **** Fix internal error on dotted refs into generates, bug958. [Jie Xu] **** Fix structure parameter constant propagation, bug968. [Todd Strader] **** Fix enum constant propagation, bug970. [Todd Strader] **** Fix mis-optimizing public DPI functions, bug963. [Wei Song] **** Fix package:scope.scope variable references. **** Fix $fwrite to constant stderr/stdout, bug961. [Wei Song] **** Fix struct.enum.name method calls, bug855. [Jonathon Donaldson] **** Fix dot indexing into arrayed inferfaces, bug978. [Johan Bjork] **** Fix crash in commandArgsPlusMatch, bug987. [Jamie Iles] **** Fix error message on missing interface, bug985. [Todd Strader] * Verilator 3.876 2015-08-12 *** Add tracing_on, etc to vlt files, bug932. [Frederic Requin] **** Support extraction of enum bits, bug951. [Jonathon Donaldson] **** Fix MinGW compiler error, bug927, bug929. [Hans Tichelaar] **** Fix .c files to be treated as .cpp, bug930. [Jonathon Donaldson] **** Fix string-to-int space conversion, bug931. [Fabrizio Ferrandi] **** Fix dpi imports inside generates. [Michael Tresidder] **** Fix rounding in trace $timescale, bug946. [Frederic Requin] **** Fix $fopen with SV string, bug947. [Sven Stucki] **** Fix hashed error with typedef inside block, bug948. [Sven Stucki] **** Fix makefile with --coverage, bug953. [Eivind Liland] **** Fix coverage documentation, bug954. [Thomas J Whatson] **** Fix parameters with function parameter arguments, bug952. [Jie Xu] **** Fix size casts as second argument of cast item, bug950. [Jonathon Donaldson] * Verilator 3.874 2015-06-06 *** Add pkg-config .pc file, bug919. [Stefan Wallentowitz] **** Fix installing missing manpages, bug908. [Ahmed El-Mahmoudy] **** Fix sign extension in large localparams, bug910. [Mike Thyer] **** Fix core dump in sync-async warnings, bug911. [Sebastian Dressler] **** Fix truncation warning with -pins-bv, bug912. [Alfonso Martinez] **** Fix Cygwin uint32 compile, bug914. [Matthew Barr] **** Fix preprocessing stringified newline escapes, bug915. [Anton Rapp] **** Fix part-select in constant function, bug916. [Andrew Bardsley] **** Fix width extension on mis-width ports, bug918. [Patrick Maupin] **** Fix width propagation on sized casts, bug925. [Jonathon Donaldson] **** Fix MSVC++ compiler error, bug927. [Hans Tichelaar] * Verilator 3.872 2015-04-05 *** Add VerilatedVcdFile to allow real-time waveforms, bug890. [HyungKi Jeong] *** Add --clk and related optimizations, msg1533. [Jie Xu] *** Fix order of C style arrays. [Duraid Madina] **** Add --dump-treei-, bug894. [Jie Xu] **** Fix comma-instantiations with parameters, bug884. [Franck Jullien] **** Fix SystemC arrayed bit vectors, bug886. [David Poole] **** Fix compile error on MinGW, bug887. [HyungKi Jeong] * Verilator 3.870 2015-02-12 **** Suppress COMBDLY when inside always_latch, bug864. [Iztok Jeras] **** Support cast operator with expression size, bug865. [Iztok Jeras] **** Add warning on slice selection out of bounds, bug875. [Cong Van Nguyen]. **** Fix member select error broke in 3.868, bug867. [Iztok Jeras] **** Fix $sccanf from string, bug866. [David Pierce] **** Fix VM_PARALLEL_BUILDS broke in 3.868, bug870. [Hiroki Honda] **** Fix non-ANSI modport instantiations, bug868. [Kevin Thompson] **** Fix UNOPTFLAT change detect on multidim arrays, bug872. [Andrew Bardsley] **** Fix slice connections of arrays to ports, bug880. [Varun Koyyalagunta] **** Fix mis-optimizing gate assignments in unopt blocks, bug881. [Mike Thyer] **** Fix sign extension of pattern members, bug882. [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, bug460, bug848. *** Add 'string' printing and comparisons, bug746, bug747, etc. *** Inline C functions that are used only once, msg1525. [Jie Xu] *** Fix tracing SystemC signals with structures, bug858. [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, bug851. [Jeremy Bennett] **** Fix bare generates in interfaces, bug789. [Bob Newgard] **** Fix underscores in real literals, bug863. [Jonathon Donaldson] * Verilator 3.866 2014-11-15 *** Fix +define+A+B to define A and B to match other simulators, bug847. [Adam Krolnik] *** Add optimization of wires from arrayed cells, msg1447. [Jie Xu] *** Add optimization of operators between concats, msg1447. [Jie Xu] *** Add public enums, bug833. [Jonathon Donaldson] *** Trace_off now operates on cells, bug826. [Lane Brooks] **** Fix public parameters in unused packages, bug804. [Jonathon Donaldson] **** Fix select when partially out-of-bound, bug823. [Cliffort Wolf] **** Fix generate unrolling with function call, bug830. [Steven Slatter] **** Fix cast-to-size context-determined sizing, bug828. [Geoff Barrett] **** Fix not tracing modules following primitives, bug837. [Jie Xu] **** Fix trace overflow on huge arrays, bug834. [Geoff Barrett] **** Fix quoted comment slashes in defines, bug845. [Adam Krolnik] * Verilator 3.864 2014-09-21 *** Support power operator with real, bug809. [Jonathon Donaldson] **** Improve verilator_profcfunc time attributions. [Jonathon Donaldson] **** Fix duplicate anonymous structures in $root, bug788. [Bob Newgard] **** Fix mis-optimization of bit-swap in wide signal, bug800. [Jie Xu] **** Fix error when tracing public parameters, bug722. [Jonathon Donaldson] **** Fix dpiGetContext in dotted scopes, bug740. [Geoff Barrett] **** Fix over-shift structure optimization error, bug803. [Jeff Bush] **** Fix optional parameter keyword in module #(), bug810. [Iztok Jeras] **** Fix $warning/$error multi-argument ordering, bug816. [Jonathon Donaldson] **** Fix clang warnings, bug818. [Iztok Jeras] **** Fix string formats under deep expressions, bug820. [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, bug781. [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, bug692. [Jie Xu] **** Fix false name conflict on cells in generate blocks, bug749. [Igor Lesik] **** Fix pattern assignment to basic types, bug767. [Jie Xu] **** Fix pattern assignment to conditionals, bug769. [Jie Xu] **** Fix shift corner-cases, bug765, bug766, bug768, bug772, bug774, bug776. [Clifford Wolf] **** Fix C compiler interpreting signing, bug773. [Clifford Wolf] **** Fix late constant division by zero giving X error, bug775. [Clifford Wolf] **** Fix gate primitives with arrays and non-arrayed pins. **** Fix DETECTARRAY error on packed arrays, bug770. [Jie Xu] **** Fix ENDLABEL warnings on escaped identifiers. **** Fix string corruption, bug780. [Derek Lockhart] * Verilator 3.860 2014-05-11 ** PSL is no longer supported, please use System Verilog assertions. ** Support '{} assignment pattern on arrays, bug355. ** Support streaming operators, bug649. [Glen Gibb] ** Fix expression problems with -Wno-WIDTH, bug729, bug736, bug737, bug759. 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', bug725. [Jeff Bush] *** Add PINCONNECTEMPTY warning. [Holger Waechtler] *** Support parameter arrays, bug683. [Jeremy Bennett] *** Fix begin_keywords "1800+VAMS", msg1211. **** Documentation fixes, bug723. [Glen Gibb] **** Support {} in always sensitivity lists, bug745. [Igor Lesik] **** Fix tracing of package variables and real arrays. **** Fix tracing of packed arrays without --trace-structs, bug742. [Jie Xu] **** Fix missing coverage line on else-if, bug727. [Sharad Bagri] **** Fix modport function import not-found error. **** Fix power operator calculation, bug730, bug735. [Clifford Wolf] **** Fix reporting struct members as reserved words, bug741. [Chris Randall] **** Fix change detection error on unions, bug758. [Jie Xu] **** Fix -Wno-UNOPTFLAT change detection with 64-bits, bug762. [Clifford Wolf] **** Fix shift-right optimization, bug763. [Clifford Wolf] **** Fix Mac OS-X test issues. [Holger Waechtler] **** Fix C++-2011 warnings. * Verilator 3.856 2014-03-11 *** Support case inside, bug708. [Jan Egil Ruud] *** Add parameters into trace files, bug706. [Alex Solomatnikov] **** Fix parsing "#0 'b0", bug256. **** Fix array bound checks on real variables. **** Fix --skip-identical mis-detecting on OS-X, bug707. **** Fix missing VL_SHIFTRS_IQI with WIDTH warning, bug714. [Fabrizio Ferrandi] **** Fix signed shift right optimization, bug715. [Fabrizio Ferrandi] **** Fix internal error on "input x =" syntax error, bug716. [Lane Brooks] **** Fix slice extraction from packed array, bug717. [Jan Egil Ruud] **** Fix inside statement EQWILD error, bug718. [Jan Egil Ruud] * Verilator 3.855 2014-01-18 *** Support modport import, bug696. [Jeremy Bennett] *** Add --trace-structs to show struct names, bug673. [Chris Randall] **** Fix tracing of packed structs, bug705. [Jie Xu] **** Fix --lint-only with MinGW, msg1283. [HyungKi Jeong] **** Fix some delayed assignments of typedefed unpacked arrays. **** Fix wire declarations with size and not range, bug466. [Alex Solomatnikov] **** Fix parameter pin vs. normal pin error, bug704. [Alex Solomatnikov] * Verilator 3.854 2013-11-26 *** Add UNPACKED warning to convert unpacked structs. [Jeremy Bennett] *** Add --compiler clang to work around compiler bug, bug694. [Stefan Ludwig] **** Support vpi_get of vpiSuppressVal, bug687. [Varun Koyyalagunta] **** Support vpi_get_time, bug688. [Varun Koyyalagunta] **** Fix evaluation of chained parameter functions, bug684. [Ted Campbell] **** Fix enum value extension of '1. **** Fix multiple VPI variable callbacks, bug679. [Rich Porter] **** Fix vpi_get of vpiSize, bug680. [Rich Porter] **** Fix vpi_remove_cb inside callback, bug689. [Varun Koyyalagunta] **** Fix crash with coverage of structures, bug691. [Eivind Liland] **** Fix array assignment from const var, bug693. [Jie Xu] * Verilator 3.853 2013-09-30 **** Add --no-order-clock-delay to work around bug613. [Charlie Brej] * Verilator 3.852 2013-09-29 *** Support named function and task arguments. [Chris Randall] *** Report SELRANGE warning for non-generate if, bug675. [Roland Kruse] **** Fix ordering of $fgetc, msg1229. [Frederic Requin] **** Fix --output-split-cfunc to count internal functions. [Chris Randall] **** Fix crash on 32-bit Ubuntu, bug670. [Mark Jackson Pulver] * Verilator 3.851 2013-08-15 *** Fix ordering of clock enables with delayed assigns, bug613. [Jeremy Bennett] *** Fix vpi_iterate on memory words, bug655. [Rich Porter] **** Fix final duplicate declarations when non-inlined, bug661. [Charlie Brej] **** Fix interface ports with comma lists, msg1058. [Ed Lander] **** Fix parameter real conversion from integer. **** Fix clang warnings, bug668. [Yutetsu Takatsukasa] * Verilator 3.850 2013-06-02 ** Support interfaces and modports, bug102. [Byron Bradley, Jeremy Bennett] *** Duplicate clock gate optimization on by default, bug621. **** Fix arrayed input compile error, bug645. [Krzysztof Jankowski] **** Fix GCC version runtime changes, bug651. [Jeremy Bennett] **** Fix packed array select internal error, bug652. [Krzysztof Jankowski] * Verilator 3.847 2013-05-11 *** Add ALWCOMBORDER warning. [KC Buckenmaier] *** Add --pins-sc-uint and --pins-sc-biguint, bug638. [Alex Hornung] **** Support "signal[vec]++". **** Fix simulation error when inputs and MULTIDRIVEN, bug634. [Ted Campbell] **** Fix module resolution with __, bug631. [Jason McMullan] **** Fix packed array non-zero right index select crash, bug642. [Krzysztof Jankowski] **** Fix nested union crash, bug643. [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, bug611. [Jeremy Bennett] *** Add duplicate clock gate optimization, msg980. [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, bug616, bug617, bug618. [Ed Lander] **** Support bind in $unit, bug602. [Ed Lander] **** Support '() sized casts, bug628. [Ed Lander] **** Fix DETECTARRAY on packed structures, bug610. [Jeremy Bennett] **** Fix LITENDIAN on unpacked structures, bug614. [Wai Sum Mong] **** Fix 32-bit OS VPI scan issue, bug615. [Jeremy Bennett, Rich Porter] **** Fix opening a VerilatedVcdC file multiple times, msg1021. [Frederic Requin] **** Fix UNOPTFLAT circular array bounds crossing, bug630. [Jie Xu] * Verilator 3.845 2013/02/04 *** Fix nested packed arrays and struct, bug600. [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, bug608. [Ed Lander] *** Support bind, to module names only, bug602. [Ed Lander] *** Support VPI product info, warning calls, etc, bug588. [Rick Porter] *** Support $left, $right and related functions, bug448. [Iztok Jeras] *** Support inside expressions. *** Define SYSTEMVERILOG, SV_COV_START and other IEEE mandated predefines. **** Fix pin width mismatch error, bug595. [Alex Solomatnikov] **** Fix implicit one bit parameter selection, bug603. [Jeremy Bennett] **** Fix signed/unsigned parameter misconversion, bug606. [Jeremy Bennett] **** Fix segfault on multidimensional dotted arrays, bug607. [Jie Xu] **** Fix per-bit array output connection error, bug414. [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, msg966. [Alex Lee] *** Fix package resolution of parameters, bug586. [Jeremy Bennett] **** Fix non-integer vpi_get_value, bug587. [Rich Porter] **** Fix task inlining under $display and case, bug589, bug598. [Holger Waechtler] **** Fix package import of non-localparam parameter, bug474, bug591. [Jeremy Bennett] **** Fix package import of package imports, partial bug592. [Jeremy Bennett] **** Fix package import preventing local var, bug599. [Jeremy Bennett] **** Fix array extraction of implicit vars, bug601. [Joe Eiler] * Verilator 3.843 2012/12/01 *** Add +1364-1995ext and similar language options, bug532. [Jeremy Bennett] **** Fix mis-optimized identical submodule subtract, bug581. [Charlie Brej] **** Fix crash on dotted references into dead modules, bug583. [Jeremy Bennett] **** Fix compile issues on MSVCC, bug571, bug577. [Amir Gonnen] **** Fix --debug overriding preceding --dump-treei, bug580. [Jeremy Bennett] * Verilator 3.842 2012/11/03 **** Add -x-initial-edge, bug570. [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, msg927, bug373, bug574. [R Diez] **** Fix array of struct references giving false error, bug566. [Julius Baxter] **** Fix missing var access functions when no DPI, bug572. [Amir Gonnen] **** Fix name collision on unnamed blocks, bug567. [Chandan Egbert] **** Fix name collision on task inputs, bug569. [Chandan Egbert] * Verilator 3.841 2012/09/03 *** Add --savable to support model save/restore. [Jeremy Bennett] *** Support '{} assignment pattern on structures, part of bug355. **** Fix double-deep parameter cell WIDTHs, bug541. [Hiroki Honda] **** Fix imports under multiple instantiated cells, bug542. [Alex Solomatnikov] **** Fix defparam in generate broke in 3.840, bug543. [Alex Solomatnikov] **** Fix duplicate begin error broke in 3.840, bug548. [Alex Solomatnikov] **** Fix triangle symbol resolution error broke in 3.840, bug550. [Ted Campbell] * Verilator 3.840 2012/07/31 Beta ** Rewrote tristate handling; supports tri0, tri1, tristate bit selects, concatenates and pullup/pulldowns, bug395, bug56, bug54, bug51. [Alex Solomatnikov, Lane Brooks, et al] ** Support packed structures and unions, bug181. Note this was a major internal change that may lead to some instability. *** Support tri0 and tri1, bug462. [Alex Solomatnikov] *** Support nmos and pmos, bug488. [Alex Solomatnikov] *** Add INITIALDLY warning on initial assignments, bug478. [Alex Solomatnikov] *** Add PINMISSING and PINNOCONNECT lint checks. *** Add --converge-limit option. *** Fix generate operators not short circuiting, bug413. [by Jeremy Bennett] *** Fix parameters not supported in constant functions, bug474. [Alex Solomatnikov] **** Fix duplicate warnings/errors, bug516. [Alex Solomatnikov] **** Fix signed extending biops with WIDTH warning off, bug511. [Junji Hashimoto] **** Fix ITOD internal error on real conversions, bug491. [Alex Solomatnikov] **** Fix input and real loosing real data type, bug501. [Alex Solomatnikov] **** Fix imports causing symbol table error, bug490. [Alex Solomatnikov] **** Fix newlines in radix values, bug507. [Walter Lavino] **** Fix loop error message to report line, bug513. [Jeremy Bennett] **** Fix false UNUSED warning on file system calls. **** Fix GCC 4.7.0 compile warnings, bug530. [Jeremy Bennett] **** Fix svdpi.h compile error on Apple OS. **** Fix compile error under git submodules, bug534. [Aurelien Francillon] * Verilator 3.833 2012/04/15 *** Support += and -= in standard for loops, bug463. [Alex Solomatnikov] *** Fix processing unused parametrized modules, bug469, bug470. [Alex Solomatnikov] **** Add SELRANGE as warning instead of error, bug477. [Alex Solomatnikov] **** Add readme.pdf and internal.pdf and doxygen, bug483. [by Jeremy Bennett] **** Fix change detections on arrays, bug364. [John Stevenson, Alex Solomatnikov] **** Fix signed array warning, bug456. [Alex Solomatnikov] **** Fix genvar and begin under generate, bug461. [Alex Solomatnikov] **** Fix real constant parameter functions, bug475. [Alex Solomatnikov] **** Fix and document --gdb option, bug454. [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, bug450. [Iztok Jeras] **** Fix expansion of back-slashed escaped macros, bug441. [Alberto Del Rio] **** Fix inheriting real and signed type across untyped parameters. **** Fix core dump with over 100 deep UNOPTFLAT, bug432. [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, bug443. [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, bug423. [Chandan Egbert] **** Fix array of instantiations with sub-range output, bug414. [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, bug402. [by Stefan Wallentowitz] **** Search for user -y paths before default current directory. [Ruben Diez] **** Support constants in sensitivity lists, bug412. [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, bug420. [Alex Solomatnikov] **** Fix reporting not found modules if generate-off, bug403. [Jeremy Bennett] **** Fix $display with %d following %g. [Holger Waechtler] * Verilator 3.824 2011/10/25 *** Fix "always @ (* )", bug403, bug404. [Walter Lavino] *** Add ASSIGNIN as suppressable error. [Jeremy Bennett] **** Fix 3.823 constructor core dump on Debian, bug401. [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, bug397. [Ruben Diez] **** Fix DPI import output of 64 bits, bug398. [Mike Denio] **** Fix DPI import false BLKSEQ warnings. [Alex Solomatnikov] **** Fix MSVC compile warning with trunc/round, bug394. [Amir Gonnen] **** Fix autoconf and Makefile warnings, bug396. [Ruben Diez] * Verilator 3.821 2011/09/14 **** Fix PowerPC runtime error, bug288. [Ahmed El-Mahmoudy] **** Fix internal error on integer casts, bug374. [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, bug370. [by Thomas Watts] **** Fix $display missing leading zeros in %0d, bug367. [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, bug354. [Alex Solomatnikov] **** Fix error on enum references to other packages, bug339. [Alex Solomatnikov] **** Fix DPI undeclared svBitVecVal compile error, bug346. [Chandan Egbert] **** Fix DPI bit vector compile errors, bug347, bug359. [Chandan Egbert] **** Fix CDCRSTLOGIC report showing endpoint flops without resets. **** Fix compiler warnings on SPARC, bug288. [Ahmed El-Mahmoudy] * Verilator 3.812 2011/04/06 *** Add --trace-max-width and --trace-max-array, bug319. [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), bug327. [Alex Solomatnikov] **** Support loop unrolling on width mismatches, bug333. [Joe Eiler] **** Support simple cast operators, bug335. [Alex Solomatnikov] **** Accelerate bit-selected inversions. **** Add error on circular parameter definitions, bug329. [Alex Solomatnikov] **** Fix concatenates and vectored bufif1, bug326. [Iztok Jeras] * Verilator 3.811 2011/02/14 **** Report errors on duplicated or empty pins, bug321. [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, bug311. [Gene Sullivan] **** Fix warnings to point to lowest net usage, not upper level ports. **** Fix error on constants connected to outputs, bug323. [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, bug297. [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, msg378. [Salman Sheikh] **** Fix wrong filename on include file errors, bug289. [Brad Parker] **** Fix segfault on SystemVerilog "output wire foo=0", bug291. [Joshua Wise] **** Fix DPI export name not found, msg369. [Terry Chen] * Verilator 3.804 2010/09/20 *** Support tracing/coverage of underscore signals, bug280. [by Jason McMullan] **** Fix preprocessor `` of existing base define, bug283. [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, bug253. [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, bug238. [Joe Eiler] **** Improve error handling on slices of arrays, bug226. [by Byron Bradley] **** Report errors when extra underscores used in meta-comments. **** Fix bit reductions on multi-packed dimensions, bug227. [by Byron Bradley] **** Fix removing $fscanf if assigned to unused var, bug248. [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, bug168. [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, bug220. [Ashutosh Das] **** Fix flushing VCD buffers on $stop. [Ashutosh Das] **** Fix Mac OS-X compile issues, bug217. [Joshua Wise, Trevor Williams] **** Fix make uninstall, bug216. [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, bug170. [by Byron Bradley] *** Support multidimensional inputs/outputs, bug171. [by Byron Bradley] *** Support "reg [1:0][1:0][1:0]" and "reg x [3][2]", bug176. [Byron Bradley] *** Support declarations in loop initializers, bug172. [by Byron Bradley] *** Support $test$plusargs and $value$plusargs, but see the docs! *** Support $sformat and $swrite. *** Support 1800-2009 define defaults and `undefineall. *** Add -CFLAGS, -LDFLAGS, .a, .o, and .so options. *** Speed compiles by avoiding including the STL iostream header. Application programs may need to include it themselves to avoid errors. *** Add experimental clock domain crossing checks. *** Add experimental --pipe-filter to filter all Verilog input. *** Add experimental config files to filter warnings outside of the source. *** Add VARHIDDEN warning when signal name hides module name. **** Support optional cell parenthesis, bug179. [by Byron Bradley] **** Support for loop i++, ++i, i--, --i, bug175. [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, bug196, bug201. [Byron Bradley] **** Fix 'for' variable typing, bug205. [by Byron Bradley] **** Fix tracing with --pins-bv 1, bug195. [Michael S] **** Fix MSVC++ 2008 compile issues, bug209. [Amir Gonnen] **** Fix MinGW compilation, bug184, bug214. [by Shankar Giri, Amir Gonnen] **** Fix Cygwin 1.7.x compiler error with uint32_t, bug204. [Ivan Djordjevic] **** Fix `define argument mis-replacing system task of same name, bug191. **** Fix Verilator core dump on wide integer divides, bug178. [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, bug168. [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, bug107. **** 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", bug101. [by Alex Duller] *** Name SYMRSVDWORD error, and allow disabling it, bug103. [Gary Thomas] **** Fix escaped preprocessor identifiers, bug106. [Nimrod Gileadi] * Verilator 3.712 2009/07/14 ** Patching SystemC is no longer required to trace sc_bvs. *** Support zero-width constants in concatenations. [Jeff Winston] *** Add verilator --pins-uint8 option to use sc_in. *** Add verilator -V option, to show verbose version. *** On WIDTH warnings, show variable name causing error. [Jeff Winston] **** Add BLKLOOPINIT error code, and describe --unroll-count. [Jeff Winston] * Verilator 3.711 2009/06/23 **** Support decimal constants of arbitrary widths. [Mark Marshall] **** Fix error on case statement with all duplicate items, bug99. [Gary Thomas] **** Fix segfault on unrolling for's with bad inits, bug90. [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, bug48. [Lane Brooks] **** Fix escaped identifiers with '.' causing conflicts, bug83. [J Baxter] **** Fix define formal arguments that contain newlines, bug84. [David A] * Verilator 3.703 2009/05/02 *** Fix $clog2 calculation error with powers-of-2, bug81. [Patricio Kaplan] **** Fix error with tasks that have output first, bug78. [Andrea Foletto] **** Fix "cloning" error with -y/--top-module, bug76. [Dimitris Nalbantis] **** Fix segfault with error on bad --top-module, bug79. [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, bug72. [Vasu Kandadi] **** Fix the SC_MODULE name() to not include __PVT__. [Bob Fredieu] * Verilator 3.701 2009/02/26 ** Support repeat and forever statements. [Jeremy Bennett] *** Add --debugi- option, for internal debugging. [Dennis Muhlestein] **** Fix compile issues with GCC 4.3, bug47. [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, bug45. [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, bug44. [Ralf Karge] **** Fix --output-split-cfuncs to also split trace code. [Niranjan Prabhu] **** Fix 'bad select range' warning missing some cases, bug43. [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, bug46. [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; bug38. [Rafael Shirakawa] **** Fix coverage hierarchy being backwards with inlining. [Vasu Arasanipalai] **** Fix GCC 4.3 compile error; bug35. [Lane Brooks] **** Fix MSVC compile error; bug42. [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; bug32. [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; bug25. [CY Wang] **** Add WIDTH warning to $fopen etc file descriptors. **** Internal changes to how $displays get compiled and executed. * Verilator 3.665 2008/06/25 **** Ignore "// verilator" comments alone on endif lines. [Rodney Sinclair] **** "Make install" now installs verilator_includer and verilator_profcfunc. **** Fix tracing missing changes on undriven public wires. [Rodney Sinclair] **** Fix syntax error when "`include `defname" is ifdefed. [John Dickol] **** Fix error when macro call has commas in concatenate. [John Dickol] **** Fix compile errors under Fedora 9, GCC 4.3.0. [by Jeremy Bennett] **** Fix Makefile to find headers/libraries under prefix. [by Holger Waechtler] * Verilator 3.664 2008/05/08 **** Fix missing file in kit. * Verilator 3.663 2008/05/07 **** Add DESTDIR to Makefiles to assist RPM construction. [Gunter Dannoritzer] **** Fix compiler warnings under GCC 4.2.1. **** Fix preprocessor `else after series of `elsif. [Mark Nodine] **** Fix parametrized defines calling define with comma. [Joshua Wise] **** Fix comma separated list of primitives. [by Bryan Brady] * Verilator 3.662 2008/04/25 *** Add Verilog 2005 $clog2() function. This is useful in calculating bus-widths from parameters. *** Support /**/ comments in -f option files. [Stefan Thiede] **** Add error message when modules have duplicate names. [Stefan Thiede] **** Support defines terminated in EOF, though against spec. [Stefan Thiede] **** Support optional argument to $finish and $stop. [by Stefan Thiede] **** Support ranges on gate primitive instantiations. [Stefan Thiede] **** Ignore old standard(ish) Verilog-XL defines. [by Stefan Thiede] **** Fix "always @ ((a) or (b))" syntax error. [by Niranjan Prabhu] **** Fix "output reg name=expr;" syntax error. [Martin Scharrer] **** Fix multiple .v files being read in random order. [Stefan Thiede] **** Fix internal error when params get non-constants. [Johan Wouters] **** Fix bug introduced in 3.661 with parametrized defines. * Verilator 3.661 2008/04/04 *** The --enable-defenv configure option added in 3.660 is now the default. This hard-codes a default for VERILATOR_ROOT etc in the executables. *** Add --language option for supporting older code. [Stefan Thiede] *** Add --top-module option to select between multiple tops. [Stefan Thiede] *** Unsized concatenates now give WIDTHCONCAT warnings. [Jonathan Kimmitt] Previously they threw fatal errors, which in most cases is correct according to spec, but can be incorrect in presence of parameter values. **** Support functions with "input integer". [Johan Wouters] **** Ignore delays attached to gate UDPs. [Stefan Thiede] **** Fix SystemVerilog parameterized defines with `` expansion, and fix extra whitespace inserted on substitution. [Vladimir Matveyenko] **** Fix no-module include files on command line. [Stefan Thiede] **** Fix dropping of backslash quoted-quote at end of $display. **** Fix task output pin connected to non-variables. [Jonathan Kimmitt] **** Fix missing test_v in install datadir. [Holger Waechtler] **** Fix internal error after MSB < LSB error reported to user. [Stefan Thiede] * Verilator 3.660 2008/03/23 *** Add support for hard-coding VERILATOR_ROOT etc in the executables, to enable easier use of Verilator RPMs. [Gunter Dannoritzer] *** Allow multiple .v files on command line. [Stefan Thiede] *** Convert re-defining macro error to warning. [Stefan Thiede] *** Add --error-limit option. [Stefan Thiede] *** Allow __ in cell names by quoting them in C. [Stefan Thiede] **** Fix genvar to be signed, so "< 0" works properly. [Niranjan Prabhu] **** Fix assignments to inputs inside functions/tasks. [Patricio Kaplan] **** Fix definitions in main file.v, referenced in library. [Stefan Thiede] **** Fix undefined assigns to be implicit warnings. [Stefan Thiede] * Verilator 3.658 2008/02/25 **** Fix unistd compile error in 3.657. [Patricio Kaplan, Jonathan Kimmitt] * Verilator 3.657 2008/02/20 **** Fix assignments of {a,b,c} = {c,b,a}. [Jonathan Kimmitt] **** Fix Perl warning with --lint-only. [by Ding Xiaoliang] **** Avoid creating obj_dir with --lint-only. [Ding Xiaoliang] **** Fix parsing of always @(*). [Patricio Kaplan] * Verilator 3.656 2008/01/18 **** Wide VL_CONST_W_#X functions are now made automatically. [Bernard Deadman] In such cases, a new {prefix}__Inlines.h file will be built and included. **** Fixed sign error when extracting from signed memory. [Peter Debacker] **** Fixed tracing of SystemC w/o SystemPerl. [Bernard Deadman, Johan Wouters] * Verilator 3.655 2007/11/27 *** Support "#delay ;" with associated STMTDLY warning. **** Fixed generate for loops with constant zero conditions. [Rodney Sinclair] **** Fixed divide-by-zero errors in constant propagator. [Rodney Sinclair] **** Fixed wrong result with obscure signed-shift underneath a "? :". **** Fixed many internal memory leaks, and added leak detector. * Verilator 3.654 2007/10/18 **** Don't exit early if many warnings but no errors are found. [Stan Mayer] **** Fixed parsing module #(parameter x,y) declarations. [Oleg Rodionov] **** Fixed parsing system functions with empty parens. [Oleg Rodionov] * Verilator 3.653 2007/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>>, $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/5/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/5/8 **** Many code cleanups towards standard C++ style conventions. * {Version history lost} * Verilator 1.8 1996/7/8 ** [Versions 0 to 1.8 were by Paul Wasson] **** Fixed single bit in concat from instance output incorrect offset bug. * Verilator 1.7 1996/5/20 **** Mask unused bits of DONTCAREs. * Verilator 1.6 1996/5/13 *** Added fasttrace script * Verilator 1.5 1996/1/9 *** Pass structure pointer into translated code, so multiple instances can use same functions. **** Fixed static value concat on casex items. * Verilator 1.1 1995/3/30 *** Bug fixes, added verimake_partial script, performance improvements. * Verilator 1.0c 1994/9/30 *** Initial release of Verilator * Verilator 0.0 1994/7/8 **** First code written. ---------------------------------------------------------------------- This uses outline mode in Emacs. See C-h m [M-x describe-mode]. Copyright 2001-2019 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: