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