head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.2 pkgsrc-2026Q1-base:1.1; locks; strict; comment @// @; 1.1 date 2025.12.24.16.52.27; author ryoon; state Exp; branches; next ; commitid GmqA2JgnNOytoGnG; desc @@ 1.1 log @cad/verilator: Update to 5.042 Changelog: Verilator 5.042 2025-11-02 ========================== **Other:** * Add HIERPARAM error on hierarchical parameter values (#1626) (#6456) (#6484) (#6587) (#6609) (#6621) (#6623). [Todd Strader] [Luca Rufer] [Paul Swirhun] * Add error on zero/negative unpacked dimensions (#1642). [Stefan Wallentowitz] * Add verilator_gantt profiling of DPI imports (#3084). [Geza Lore] * Add ASSIGNEQEXPR when use `=` inside expressions (#5567). [Ethan Sifferman] * Add error on non-packed struct randc (#5999). [Seth Pellegrino] * Add configure `--enable-dev-asan` to compile verilator_bin with the address sanitizer (#6404). [Geza Lore] * Add $(LDFLAGS) and $(LIBS) to when building shared libraries (#6425) (#6426). [Ahmed El-Mahmoudy] * Add IMPLICITSTATIC also on procedure variables. * Add FUNCTIMCTL error on function invoking task or time-controlling statements (#6385). * Add error on `virtual new` (#6486). [Alex Solomatnikov] * Add error on ranges with tristate values (#6534). [Alex Solomatnikov] * Add NORETURN warning on functions without return values (#6534). [Alex Solomatnikov] * Add `--aslr` and `--no-aslr` options. * Add `$cpure` (#6580). [Igor Zaworski, Antmicro Ltd.] * Add `--preproc-defines`. * Deprecate sensitivity list on public_flat_rw attributes (#6443). [Geza Lore] * Deprecate clocker attribute and --clk option (#6463). [Geza Lore] * Deprecate '--make cmake' option (#6540). [Geza Lore] * Change default `--expand-limit` to 256 (#3419). * Change developer coverage flow and add configure `--enable-dev-gcov` (#6526). [Geza Lore] * Change `verilator_difftree` to return exit code 1 on mismatch, 2 on error. * Change default thread pool sizes to respect processor affinity (#6604). [Geza Lore] * Change `--preproc-comments` to be new name of `--pp-comments` option. * Support modports referencing clocking blocks (#4555) (#6436). [Ryszard Rozak, Antmicro Ltd.] * Support class package reference on pattern keys (#5653). [Todd Strader] * Support digits in `$sscanf` field width formats (#6083). [Iztok Jeras] * Support pure functions in sensitivity lists (#6393). [Krzysztof Bieganski, Antmicro Ltd.] * Support simple alias statements (#6339) (#6501). [Ryszard Rozak, Antmicro Ltd.] * Support simple cycle delay sequence expressions inside properties (#6508). [Bartłomiej Chmiel, Antmicro Ltd.] * Support impure expressions in `inside` (#6562). [Igor Zaworski, Antmicro Ltd.] * Support `case` impure expressions (#6563). [Igor Zaworski, Antmicro Ltd.] * Support dotted access to ports of a direct hier_block instance. (#6595). [Geza Lore] * Improve `lint_off` to allow multiple messages and comments (#2755). * Improve automatic selection of logic for DFG synthesis (#6370). [Geza Lore] * Improve `covergroup with function sample` handling (#6387). [Jakub Wasilewski] * Improve DFG type system (#6390). [Geza Lore] * Improve DFG variable removal and temporary insertion (#6401). [Geza Lore] * Improve memory usage of statistics (#6513). [Geza Lore] * Improve conditional merging to preserve branch prediction. [Geza Lore] * Optimize duplicate 'if' and '?:' conditions (#3807) (#6495) * Optimize dead functions in more cases (#6380) (#6430). [Artur Bieniek, Antmicro Ltd.] * Optimize constant folding in wide expression expansion (#6381). [Geza Lore] * Fix `--trace-max-width` and increase to 4096. (#2385). * Fix missing BLKSEQ when connecting module port to array (#2973). * Fix LATCH warning with CASEINCOMPLETE (#3301). * Fix unused parameterized class causing internal error (#4013). [Alberto Del Rio] * Fix false CONSTVAR error on initializers (#4992). * Fix hierarchical references with parameterized modules and interfaces (#5649) (#6566). [Ryszard Rozak, Antmicro Ltd.] * Fix interface exposure with `--public-depth` or `--trace-depth` (#5758). * Fix cell scoping performance (#6059). [Jerry Tianchen] * Fix hierarchical `--prof-pgo` (#6213). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix while loop hang on timing-delayed assignment (#6343) (#6354). [Krzysztof Bieganski, Antmicro Ltd.] * Fix driver analysis of partially assigned variables (#6364) (#6378). [Geza Lore] * Fix V3Hash MacOS ambiguity (#6350). [Lan Zongwei] * Fix cmake APPLE variable (#6351). [Lan Zongwei] * Fix randomize local after parameters applied (#6371). [Alex Solomatnikov] * Fix package imports not found after parameters applied (#6373). [Alex Solomatnikov] * Fix deep shift pattern performance (#6379) (#6420). [Geza Lore] * Fix COVERAGEIGN-ignored `get_inst_coverage` and other covergroup methods (#6383). [Alex Solomatnikov] * Fix error when modport variable is unresolved (#6386). [Ryszard Rozak, Antmicro Ltd.] * Fix resolving parameters (#6388) (#6418) (#6421) (#6438) (#6429). [Artur Bieniek, Antmicro Ltd.] * Fix wire array with initial assignment (#6391). [Alex Solomatnikov] * Fix import of class with default params (#6396) (#6410) (#6413). [Krzysztof Bieganski, Antmicro Ltd.] * Fix use after free in elaboration (#6403). [Geza Lore] * Fix address sanitizer issues (#6406). [Geza Lore] * Fix timing control under fork under function (#6407). [Krzysztof Bieganski, Antmicro Ltd.] * Fix memory leaks and reduce requirements (#6411) (#6417) (#6419) (#6437) (#6439) (#6517). [Geza Lore] * Fix parameter implicit type from string (#6414). [Alex Solomatnikov] * Fix parsing for sequence expressions (#6427). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix parameterized class super functions (#6431) (#6438). [Artur Bieniek, Antmicro Ltd.] * Fix external function declarations with class typedef references (#6433). * Fix internal error on out-of-bounds real array access. * Fix pre/post increments in assertions (#6434). * Fix elaboration displays with `%m` and some `%p` (#6445) (#6451). [Alex Solomatnikov] * Fix cast in gdbinit.py (#6447). [Artur Bieniek, Antmicro Ltd.] * Fix false unique assertions on `else ;` (#6450). [Don Owen] * Fix loss of clock attribute in DFG variable removal (#6453). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix data types of method calls without parenthesis (#6457). [Artur Bieniek, Antmicro Ltd.] * Fix segfault on unsupported PLI calls (#6458). [Krzysztof Bieganski, Antmicro Ltd.] * Fix false assertion failure on failed DFG driver tracing (#6459). [Geza Lore] * Fix side effects when using select (#6460). [Igor Zaworski, Antmicro Ltd.] * Fix timeprecision backward assignment (#6469). [Artur Bieniek, Antmicro Ltd.] * Fix splitting hierarchically referenced variables (#6475). [Ryszard Rozak, Antmicro Ltd.] * Fix Windows compilation of Verilator with spaces in the path (#6477). [Fabian Keßler-Schulz] * Fix PROTOTYPEMIS error on implicit logic (#6482). [Alex Solomatnikov] * Fix configure misdetecting C++14 (#6488) (#6515). [Thomas O'Keeffe] * Fix false BLKSEQ on non-edged sensitivity list (#6492). [Oron Port] * Fix .vlt public_flat* and others to support long identifier names (#6516). [Szymon Gizler, Antmicro Ltd.] * Fix always_ff on constants (#6519). [Todd Strader] * Fix fault on operations on uninitialized strings (#6520). [Artur Bieniek, Antmicro Ltd.] * Fix find_index methods of associative arrays (#6525). [Ryszard Rozak, Antmicro Ltd.] * Fix parsing of `eventually[]` and property expression memory leaks (#6530). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix memory leak for unsupported `$past` (#6535). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix inconsistent force assignment (#6541). [Artur Bieniek, Antmicro Ltd.] * Fix DFG circular driver tracing with partial assignments. [Geza Lore] * Fix passing typedef value as parameter (#6543) (#6547). [Igor Zaworski, Antmicro Ltd.] * Fix indent error on quoted strings (#6544). * Fix incorrect nested interface-class error (#6549). [Matthew Ballance] * Fix std::process::get_randstate to not affect random stability (#6550) (#6565). [Aleksander Kiryk] * Fix exit code signal number reporting (#6554). [Artur Bieniek, Antmicro Ltd.] * Fix `$finish` inside fork blocks (#6555). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix single element unpacked array DPI parameters. [Geza Lore] * Fix DFG synthesis non-determinism (#6557) (#6568). [Todd Strader] * Fix side effects for improved function/task/process purity (#6559). [Igor Zaworski, Antmicro Ltd.] * Fix excessive logic replication in DFG circular driver tracing (#6561) (#6594). [Geza Lore] * Fix hierarchical with parameterized instances under hier block (#6572). [Geza Lore] * Fix segfault on type casts (#6574). [David Moberg] * Fix references to interfaces containing generate blocks (#6579). [Ryszard Rozak, Antmicro Ltd.] * Fix missing net type mappings in FST traces (#6582) (#6583). [Matt Stroud] * Fix function call expression coverage (#6589). [Todd Strader] * Fix V3Life eliminating assignments across timing controls (#6593) (#6596). [Geza Lore] * Fix incorrectly resuming process waiting on multiple events (#6597). [Geza Lore] * Fix `--hierarchical` with `--binary` (#6602). [Geza Lore] * Fix mis-ignoring virtual interface member triggers (#5116 reopened) (#6613). [Geza Lore] * Fix ENUMVALUE warning when overriding parameter using `-G/-pvalue` options. [Geza Lore] * Fix `-G` and `-pvalue` with `--hierarchical`. [Geza Lore] * Fix waiving messages with empty contents (#6610). [Yoshitomo KANEDA] * Fix constant-arrayed instance parameters (#6614). [Alex Solomatnikov] Verilator 5.040 2025-08-30 ========================== **Other:** * Add ENUMITEMWIDTH error, and apply to X-extended and ranged values. * Add NOEFFECT warning, replacing previous `foreach` error. * Add SPECIFYIGN warning for specify constructs that were previously silently ignored. * Add PARAMNODEFAULT error, for parameters without defaults. * Add enum base data type, wire data type, and I/O versus data declaration checking per IEEE. * Add PROTOTYPEMIS error on missing and mismatching prototypes (#6206) (#6207). [Alex Solomatnikov] * Add error when trying to assign class object to variable of non-class types (#6237). [Igor Zaworski, Antmicro Ltd.] * Add ALWNEVER warning, for `always @@*` that never execute (#6291). * Add separate coverage counters for toggles 0->1 and 1->0 (#6086). [Ryszard Rozak, Antmicro Ltd.] * Add error on class 'function static'. * Add error on force/release non-constant selects. * Add `-DVERILATOR=1` definition to compiler flags when using verilated.mk. * Support member-level triggers for virtual interfaces (#5166) (#6148). [Yilou Wang] * Support unassigned virtual interfaces (#5265) (#6245). [Szymon Gizler, Antmicro Ltd.] * Support randomization of scope variables with 'std::randomize()' (#5438) (#6185). [Yilou Wang] * Support disabling a fork in additional contexts (#5432 partial) (#6174) (#6183). [Ryszard Rozak, Antmicro Ltd.] * Support bit queue streaming (#5830) (#6103). [Paul Swirhun] * Support `$fread` with missing start (#6125). [Iztok Jeras] * Support unpacked array `with` methods (#6134). * Support Verilog real ports as SystemC double ports (#6136) (#6158). [George Polack] * Support `$countones` in constraints (#6144 partial) (#6235). [Ryszard Rozak, Antmicro Ltd.] * Support disable dotted references (#6154). [Ryszard Rozak, Antmicro Ltd.] * Support randomize() on class member selects (#6161) (#6195). [Igor Zaworski, Ryszard Rozak, Antmicro Ltd.] * Support multiple variables on RHS of a `force` assignment (#6163). [Artur Bieniek, Antmicro Ltd.] * Support covergroup extends, etc., as unsupported (#6160). [Artur Bieniek, Antmicro Ltd.] * Support parameter resolution of 1D unpacked array slices (#6257) (#6268). [Michael Bedford Taylor] * Support generic interfaces (#6272). [Igor Zaworski, Antmicro Ltd.] * Support disabling a fork from within that fork (#6314). [Ryszard Rozak, Antmicro Ltd.] * Support future sampled value functions. * Support simple disable within task (#6334). [Ryszard Rozak, Antmicro Ltd.] * Support recursive constant functions. * Change control file `public_flat_*` and other signal attributes to support __ in names (#6140). * Change runtime to exit() instead of abort(), unless under +verilated+debug. * Change `$display("%p")` to remove space after `}`. * Improve `--skip-identical` to skip on identical input file contents (#6109). * Improve testing on FreeBSD (#6328). [Aleksander Kiryk] * Optimize to return memory when using -build (#6192) (#6226). [Michael B. Taylor] * Optimize 2 ** X to 1 << X if base is signed (#6203). [Max Wipfli] * Optimize more complex combinational logic in DFG (#6205) (#6209) (#6298). [Geza Lore] * Optimize combinational cycles through arrays in DFG (#6210). [Geza Lore] * Optimize variable removal in scoped DFG (#6260). [Geza Lore] * Optimize acyclic DFG components into the original acyclic sub-graph. (#6261). [Geza Lore] * Optimize multiplexers in DFG synthesis (#6331). [Geza Lore] * Optimize interfaces in DFG (#6332). [Geza Lore] * Optimize logic in non-virtual interfaces with DFG (#6347). [Geza Lore] * Fix loop initialization visibility outside loop (#4237). * Fix constructor parameters in inheritance hierarchies (#6036) (#6070). [Petr Nohavica] * Fix replicate of negative giving 'REPLICATE has no expected width' internal error (#6048) (#6229). * Fix cmake `-Wno` compiler flag testing (#6145). [Martin Stadler] * Fix class extends dotted error (#6162). [Igor Zaworski, Antmicro Ltd.] * Fix genvar error with `-O0` (#6165). [Max Wipfli] * Fix uninitialized thread PGO counters (#6167). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix additional UNOPTFLAT combinational cycles automatically in DFG (#6168) (#6173) (#6176). [Geza Lore] * Fix omitting error when assigning to an input (#6169). [Artur Bieniek, Antmicro Ltd.] * Fix parameter-dependent type linking (#6170). [Igor Zaworski, Antmicro Ltd.] * Fix param-dependent class typedef linking (#6171). [Igor Zaworski, Antmicro Ltd.] * Fix virtual interface member propagation (#6175) (#6184). [Yilou Wang] * Fix `--coverage-expr` null pointer dereference (#6181). [Igor Zaworski, Antmicro Ltd.] * Fix conflicting function/class name linking error (#6182). [Igor Zaworski, Antmicro Ltd.] * Fix negate of wide structure selections (#6186). * Fix VPI signal range order (#6189) (#6200). [Ibrahim Burak Yorulmaz] * Fix structure select causing 'Wide Op' error (#6191). [Danny Oler] * Fix automatic task variables in unrolled loops with forks (#6194) (#6201). [Danny Oler] * Fix 'driver same component' assertion (#6211) (#6215). [Geza Lore] * Fix `--stats` overridden by skipping identical build (#6220). [Geza Lore] * Fix MODDUP with duplicate packages to take first package (#6222). * Fix replicate with unsigned count but MSB set (#6231) (#6233). [Geza Lore] * Fix randomize on function-local variable (#6234). * Fix queue typedef with unbounded slice (#6236). * Fix error when force assignment is used with ref function args (#6244). [Ryszard Rozak, Antmicro Ltd.] * Fix write of 0 in '%c' (#6248) (#6249). [Rodrigo Batista de Moraes] * Fix coverage of variables of complex types (#6250). [Ryszard Rozak, Antmicro Ltd.] * Fix broken support of unassigned virtual interfaces (#6253) (#6338). [Szymon Gizler, Antmicro Ltd.] * Fix partial DFG conversion of concat assignments (#6255). [Geza Lore] * Fix dynamic cast purity (#6267). [Igor Zaworski, Antmicro Ltd.] * Fix same variable on the RHS forced to two different LHSs. (#6269). [Artur Bieniek, Antmicro Ltd.] * Fix spurious VPI value change callbacks (#6274). [Todd Strader] * Fix stray ']' in Verilog code output for non-constant select (#6277). [Geza Lore] * Fix hierarchical NBAs (#6286) (#6300). [Geza Lore] * Fix variables hiding package imports (#6289). [Johan Wouters] * Fix DFG circular driver tracing. [Geza Lore] * Fix no matching function calls for randomized `VlWide` in unpacked and dynamic arrays (#6290). [Mateusz Gancarz, Antmicro Ltd.] * Fix PowerPC support (#6292). [Sergey Fedorov] * Fix referencing module variables above classes (#6304). [Artur Bieniek, Antmicro Ltd.] * Fix direct NBA to dynamically-sized variable (#6310). [Artur Bieniek, Antmicro Ltd.] * Fix static vars under member select (#6313). [Igor Zaworski, Antmicro Ltd.] * Fix expression type comparison (#6316). [Igor Zaworski, Antmicro Ltd.] * Fix of inline constraints with member selects (#6321). [Igor Zaworski, Antmicro Ltd.] * Fix corner case bugs in module and variable inlining (#6322). [Geza Lore] * Fix queue extend to check bounds (#6324). [Aleksander Kiryk] * Fix gathering sensitivities from virtual interface members (#6325). [Aleksander Kiryk] * Fix FreeBSD missing headers (#6326). [Aleksander Kiryk] * Fix to select UDPs when they are the only candidate for a top module. * Fix splitting of assignments to SC variables (#6329) (#6336). [Geza Lore] * Fix to localize for super constructors with function calls as arguments (#6330). [Igor Zaworski, Antmicro Ltd.] * Fix wide select expansion and substitution (#6341) (#6345). [Geza Lore] * Fix upcasting class type parameters (#6344). [Krzysztof Bieganski, Antmicro Ltd.] * Fix undefined weak link for Apple GCC etc (#6348). [Congcong Cai] Verilator 5.038 2025-07-08 ========================== **Important:** * Change `--assert` to be the default; use `--no-assert` for legacy behavior and faster runtimes. **Other:** * Support redeclaring type as non-type; major parsing change (#2412) (#6020) (#6042) (#6044). * Support scoped `new` (#4199). * Support elaboration-time printing of unpacked array with `%p` (#4732). * Support constrained random for associative arrays (#5985) (#5986). [Yilou Wang] * Support assignments to concatenations with impure RHS (#6002). [Ryszard Rozak, Antmicro Ltd.] * Support SARIF JSON diagnostic output with `--diagnostics-sarif`. (#6017) * Support 1-bit params with -G and -pvalue (#6051) (#6082). [Paul Swirhun] * Support `specparam` (#5767) (#6142). * Support `$timeformat` with missing arguments (#6113). [Alex Solomatnikov] * Support non-overlapping blocking/non-blocking assignments (#6137). [Geza Lore] * Support parameter forward types. * Support constant functions with left-hand-side concatenates. * Add PROCINITASSIGN on initial assignments to process variables (#2481). [Niraj Menon] * Add BADVLTPRAGMA on unknown Verilator pragmas (#5945). [Shou-Li Hsu] * Add ternary operator into branch coverage (#5880). [Ryszard Rozak, Antmicro Ltd.] * Add aggregate type error checks (#5570) (#5950). [Shou-Li Hsu] * Add `--work` library-selection option (#5891 partial). * Add `--filter-type` to verilator_coverage (#6030). [Ryszard Rozak, Antmicro Ltd.] * Add `--hierarchical-threads` (#6037). [Bartłomiej Chmiel] * Add `MODMISSING` error, in place of unnamed error (#6054). [Paul Swirhun] * Add DFG binToOneHot pass to generate one-hot decoders (#6096). [Geza Lore] * Add hint of the signed right-hand-side in oversized replication error (#6098). [Peter Birch] * Improve hierarchical scheduling visualization in V3ExecGraph (#6009). [Bartłomiej Chmiel, Antmicro Ltd.] * Improve DPI temporary 'for' loop performance (#6079). [Bartłomiej Chmiel, Antmicro Ltd.] * Improve memory usage for SenTrees in V3OrderProcessDomains (#6112). [Geza Lore] * Improve docker image size (#6139). [Tobias Rosenkranz, bitaggregat GmbH] * Update docker base image to Ubuntu 24.04 (#6147). [Tobias Rosenkranz, bitaggregat GmbH] * Optimize DFG De Morgan patterns (#6090). [Geza Lore] * Optimize DFG variable elimination (#6091). [Geza Lore] * Optimize DFG PUSH_SEL_THROUGH_CONCAT pattern (#6092). [Geza Lore] * Optimize DFG before V3Gate (#6141). [Geza Lore] * Optimize DFG peephole patterns (#6149). [Geza Lore] * Optimize constification within Expand and Subst stages (#6111). [Geza Lore] * Fix --x-initial and --x-assign random stability (#2662) (#5958) (#6018) (#6025) (#6075). [Todd Strader] * Fix trace hierarchical-name runtime errors (#5668) (#6076). [Paul Swirhun] * Fix streaming operator packing order (#5903) (#6077). [Paul Swirhun] * Fix filename backslash escapes in C code (#5947). * Fix C++ widths in V3Expand (#5953) (#5975). [Geza Lore] * Fix dependencies from different hierarchical schedules (#5954). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix constant propagation of post-expand stages (#5955) (#5963) (#5969) (#5972) (#5983). * Fix sign extension of signed compared with unsigned case items (#5968). * Fix always processes ignoring $finish (#5971). [Hennadii Chernyshchyk] * Fix method calls and new to access interface arrays (#5973). [Nick Brereton] * Fix streaming to/from packed arrays (#5976). [Geza Lore] * Fix segfault writing timestamp to VCD after buffer flush (#5978) (#5980). [Dominick Grochowina] * Fix inconsistent assignment error with split-var (#5984) (#5988). [Yutetsu TAKATSUKASA] * Fix AstAssignW conversion (#5991) (#5992). [Ryszard Rozak, Antmicro Ltd.] * Fix const-bit-op-tree with single-bit masks (#5993) (#5998). [Yutetsu TAKATSUKASA] * Fix arithmetic right-shift by constants over 32 bits (#5994). [Zhen Yan] * Fix array bounds checking with class member selects (#5996) (#5997). [Krzysztof Starecki] * Fix checking for too-wide divide and modulus (#6003) (#6006). [Zhen Yan] * Fix folding of LteS in DfgPeephole (#6000) (#6004). [Geza Lore] * Fix slicing of AstExprStmt nodes (#6005). [Ryszard Rozak, Antmicro Ltd.] * Fix skipped generate blocks in toggle coverage (#6010). [Ryszard Rozak, Antmicro Ltd.] * Fix arithmetic left-shift by constants over 32 bits (#6007) (#6015). [Zhen Yan] * Fix concatenation and type casting (#6012) (#6013). [Todd Strader] * Fix wrong optimization result of shifted out variable (#6016) (#6019). [Yutetsu TAKATSUKASA] * Fix missing FreeBSD include (#6027) (#6028). [Joel Bodenmann] * Fix associative arrays with enum keys (#6034) (#6035). [Petr Nohavica] * Fix GCC 10 read-only linker error (#6040). [Todd Strader] * Fix WIDTHCONCAT on packed pattern assignment (#6045). [Dan Petrisko] * Fix type operator for interface signals (#6049) (#6050). [Todd Strader] * Fix V3OrderParallel scoring contraction hang (#6052). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix virtual interface array typedef expressions (#6057). * Fix DFG peephole select conditionals (#6064) (#6071). [Geza Lore] * Fix `--skip-identical` skipping on some errors (#6066). [Todd Strader] * Fix class typedef elaboration (#6080). [Kamil Rakoczy, Antmicro Ltd.] * Fix unpacked to packed parameter assignment (#6081) (#6088). [Todd Strader] * Fix casting reals to large integrals (#6085). [Todd Strader] * Fix nested hier blocks workers error (#6087). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix `--lib-create` with double-underscore (#6099). * Fix DFG binToOneHot table index missing driver (#6100). [Geza Lore] * Fix decoding octal string escapes with 1-2 digits (#6108). * Fix colon-divide operator without space (#6121). [Alex Solomatnikov] * Fix variables declared in fork after taskify (#6126). [Kamil Rakoczy, Antmicro Ltd.] * Fix method calls without parenthesis (#6127). [Alex Solomatnikov] * Fix `pre_randomize`/`post_randomize` when no randomize (#6128). [Alex Solomatnikov] * Fix wide non-blocking assignment mis-optimization (#6150) (#6152) (#6155). [Todd Strader] * Fix interface array connections with non-zero low declaration index. * Fix developer build error on MacOS/Flex2.6.4 (#6153). [Paul Swirhun] * Fix crash with --dumpi-V3LinkDot without --debug (#6159). [Igor Zaworski, Antmicro Ltd.] * Fix dereferencing stale iterator in DfgVertex::scopep() (#6225) (#6227). [Geza Lore] * Fix component numbers of new Vertices in V3DfgBreakCycles (#6225) (#6228). [Geza Lore] Verilator 5.036 2025-04-27 ========================== **Important:** * Change `--output-groups` to default to value of `--build-jobs` (#5751). Those using build farms may need to now use `--output-groups 0` or otherwise. * Support user-defined primitives (UDPs) (#468) (#5807) (#5936). [Zhou Shen, Krzysztof Sychla, et al] * Add `--trace-saif` for SAIF power traces (#5812) (#5914). [Mateusz Gancarz, Antmicro Ltd.] **Other:** * Change `--trace` to `--trace-vcd`. * Support simple `checker` blocks (#4066). [Srinivasan Venkataramanan] * Support force/release with a variable reference (#5721) (#5810). [Bartłomiej Chmiel, Antmicro Ltd.] * Support constraint random for StructArray (#5805) (#5937). [Yilou Wang] * Support command-line overriding `define (#5900) (#5908). [Brian Li] * Support soft unions (#5912) (#5932). [Robin Heinemann] * Support `$setuphold` (#5884). [Krzysztof Sychla] * Support assigning unpacked arrays to queues (#5924) (#5928). [Brian Li] * Support `systemc_interface and related inside `class`. * Support class extends with arguments. * Add multi-thread hierarchical simulation (#2583) (#5871). [Bartłomiej Chmiel, Antmicro Ltd.] * Add check for `let` misused in statement context (#5733). * Add used language to `--preproc-resolve` output (#5795). [Kamil Rakoczy, Antmicro Ltd.] * Add `--make json` to enable integration with non-make/cmake build systems (#5799). [Andrew Voznytsa] * Add numactl-like automatic assignment of processor affinity (#5911). * Add ccache support for generated cmake files (#5926) (#5930). [Andrew Voznytsa] * Add visualization of multi-threaded waiting time with verilator_gantt (#5929). [Bartłomiej Chmiel, Antmicro Ltd.] * Add suggesting isolate_assignments to UNOPTFLAT (#5942). [John Khoo] * Add profiling of hierarchical mtasks with verilator_gantt (#5956). [Bartłomiej Chmiel, Antmicro Ltd.] * Add empty veriuser.h for legacy compatibility. * Add DEPRECATED warning on `--xml-only` and `--xml-output`. * Remove unused gtkwave/wavealloca.h. [Geza Lore] * Optimize automatic splitting of some packed variables (#5843). [Geza Lore] * Optimize trigger vector in whole words (#5857). [Geza Lore] * Fix parameters referencing interface fields (#1593) (#5910). [Ryszard Rozak, Antmicro Ltd.] * Fix interface array assignments (#5270) (#5633) (#5869). [Nick Brereton] * Fix change detection at time 0 (#5499) (#5864). [Geza Lore] * Fix foreach of associative array inside a constraint block (#5727) (#5841). [Yilou Wang] * Fix reset of automatic function variables (#5747). [Augustin Fabre] * Fix invalid code motion over branches (#5811) (#5814). [Geza Lore] * Fix sorting of wide SenItems (#5816). [Geza Lore] * Fix tcmalloc static link and non-22.04 builds (#5817) (#5818). [Geza Lore] * Fix error on out-of-range lvalue part select (#5820). * Fix UNOPTFLAT warnings with `--coverage-trace` and always_comb (#5821). * Fix function locals in SenExprBuilder (#5822). [Geza Lore] * Fix type_id package scope resolution (#5826). [Krzysztof Bieganski, Antmicro Ltd.] * Fix `rand_mode` method with cast (#5831). * Fix invalidating variable caches in SenExprBulider (#5834) (#5835). [Geza Lore] * Fix assignment pattern as function argument (#5839). * Fix checking built-in method arguments (#5839). * Fix splitting of packed ports with non-zero based ranges (#5842). [Geza Lore] * Fix delays inside interface functions, and classes inside interfaces (#5846). * Fix NBA shared flag reuse (#5848). [Geza Lore] * Fix multiple expression coverage issues (#5849 partial) (#5867) (#5870). [Todd Strader] * Fix unresolved typedefs as parameters (#5850). [Eugene Feinberg, Brian Li] * Fix removal of callbacks no longer in current list (#5851) (#5852). [Gilberto Abram] * Fix segmentation fault on member compare (#5853). * Fix recursive error on virtual interfaces (#5854). [Yilou Wang] * Fix streaming of unpacked arrays concatenations (#5856). [Ryszard Rozak, Antmicro Ltd.] * Fix Windows paths in Perl (#5858) (#5860). [Tobias Jensen] * Fix algorithm header portability in V3Os.cpp (for std::replace) (#5861). [William D. Jones] * Fix `$fscanf` not returning -1 on EOF (#5881). * Fix PGO profiling for multi-threaded hierarchical scenarios (#5888). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix V3Gate assertion on eliminated circular logic (#5889) (#5898). [Geza Lore] * Fix process comparisons (#5896). * Fix ccache with clang (#5899). [Geza Lore] * Fix delayed assignment malformed LHS assertion (#5904). * Fix segfault in fork synchronization (#5906). [Krzysztof Bieganski, Antmicro Ltd.] * Fix `new this` (#5909). * Fix assignments with stream expressions and unpacked arrays (#5915). [Ryszard Rozak, Antmicro Ltd.] * Fix LATCH warning for automatic variables (#5918). [Yutetsu TAKATSUKASA] * Fix %% on elaboration severity tasks (#5922). [Ethan Sifferman] * Fix port default values with `--coverage-line` creating `0=0` (#5920). [Drew Ranck] * Fix vlSelf error on fork repeats (#5927). [Drew Ranck] * Fix missing C++ regeneration when Verilog files are updated (#5934). [Zhouyi Shen] * Fix stream expressions (#5938). [Ryszard Rozak, Antmicro Ltd.] * Fix packed selection using over 32-bit index (#5957). Verilator 5.034 2025-02-24 ========================== **Important:** * This is likely the last version to support Ubuntu 20.04, which is at end-of-life. * Add expression coverage (#4677) (#5719). [Todd Strader] **Other:** * Add `COVERIGN` warning, as a more specific UNSUPPORTED error. * Add `--public-ignore` to ignore public metacomments (#5716). [Andrew Nolte] * Add `--preproc-token-limit` (#5768). [Krzysztof Bieganski, Antmicro Ltd.] * Add lint error on importing package within a class (#5634) (#5679). [Nick Brereton] * Add `--preproc-resolve` for modules in preprocessor output (#5789). [Kamil Rakoczy, Antmicro Ltd.] * Support multidimensional array access via VPI (#2812) (#5573). [Krzysztof Starecki] * Support nested classes (#4178) (#5778). [Kamil Rakoczy, Antmicro Ltd.] * Support VPI array accessors (#5612). [Moubarak Jeje] * Support unpacked structure constrained randomization (#5657) (#5759). [Yilou Wang] * Support generated classes (#5665). [Shou-Li Hsu] * Support constraints on associative array user-defined keys (#5671) (#5729). [Yilou Wang] * Support `+incdir` with multiple directories. * Support integer atom type ports in `--hierarchical` (#5748). [Bartłomiej Chmiel, Antmicro Ltd.] * Support constrained random for arrays in structs (#5765) (#5802). [Yilou Wang] * Support selects on arbitrary string expressions (#5773). [Krzysztof Bieganski, Antmicro Ltd.] * Support side effects of form 'variable[index_function()]++'. * Improve hierarchical DPI wrapper scheduling performance (#2583) (#5734). [Bartłomiej Chmiel, Antmicro Ltd.] * Improve VPI write errors (#5712). [Andrew Nolte] * Improve `resetall support (#5728) (#5730). [Ethan Sifferman] * Optimize labels as final `if` block statements (#5744). * Optimize empty function definition bodies (#5750). * Optimize splitting trigger computation and dump (#5798). [Geza Lore] * Fix error message when call task as a function (#3089). [Matthew Ballance] * Fix force VPI public signal visibility (#5225). [Frédéric Requin] * Fix VPI iteration over hierarchy (#5314) (#5731). [Natan Kreimer] * Fix constrained random for > 64-bit associative arrays (#5670) (#5682). [Yilou Wang] * Fix mis-optimizing away `$urandom` (#5703). [Parker Schless] * Fix packages with `--public-depth 1` (#5708). [Andrew Nolte] * Fix V3Simulate constant reuse (#5709). [Geza Lore] * Fix man pages what-is section (#5710). [Ahmed El-Mahmoudy] * Fix pattern assignment to real inside struct (#5713). * Fix %p format output for real inside struct (#5713). * Fix segfault when only enum value referenced in package (#5714). [Dan Katz] * Fix `BLKSEQ` on suspendable processes (#5722). [Krzysztof Bieganski, Antmicro Ltd.] * Fix vpiDefName issues with non-inlined scopes and dpi conflicts (#5732). [Andrew Nolte] * Fix inlined expression with assignment under LHS of NBA (#5736) (#5740). [Geza Lore] * Fix duplicate-named class variable equivalence (#5737). * Fix `-j` ignored after `-f` (#5749). [Luca Colagrande] * Fix handling forced assigns in V3Life (#5757). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix VFileContent reference count (#5769) (#5771). [Dave Sargeant] * Fix ignoring joins in stringify in preprocessor (#5777). [Krzysztof Bieganski, Antmicro Ltd.] * Fix unpacked split_var (#5782) (#5785). [Yutetsu TAKATSUKASA] * Fix time import error on time parameters (#5786). [Luca Colagrande] * Fix dpi context functions (#5788). [Ryszard Rozak, Antmicro Ltd.] * Fix `$monitor` with dotted references (#5794). [Ahmed Elzeftawi] * Fix parsing input wire with default and range (#5800). [RJ Cunningham] * Fix matching language extension options including dots. Verilator 5.032 2025-01-01 ========================== **Minor:** * Support queue's assignment `push_back/push_front('{})` (#5585) (#5586). [Yilou Wang] * Support basic constrained random for multi-dimensional dynamic array and queue (#5591). [Yilou Wang] * Support vpiDefName (#3906) (#5572). [Krzysztof Starecki] * Support parameter names in pattern initialization (#5593) (#5596). [Greg Davill] * Support randomize size constraints with restrictions (#5582 partial) (#5611). [Ryszard Rozak, Antmicro Ltd.] * Support associative array basic constrained randomization (#5658) (#5670). [Yilou Wang] * Support `default disable iff` and `$inferred_disable` (#4016). [Srinivasan Venkataramanan] * Support `extern constraint` and `pure constraint`. * Add `--no-std-waiver` and default reading of standard lint waivers file (#5607). * Add `--no-std-package` as subset-alias of `--no-std` (#5607). * Add `lint_off --contents` in configuration files (#5606). * Add `--waiver-multiline` for context-sensitive `--waiver-output` (#5608). * Add `--fno-inline-funcs` to disable function inlining. * Add `--fno-slice` to disable array assignment slicing (#5644). * Add error on illegal enum base type (#3010). [Iztok Jeras] * Add error on `wait` with missing `.triggered` (#4457). * Add error when improperly storing to parameter (#5147). [Gökçe Aydos] * Add error on illegal `--prefix` etc. values (#5507). [Fabian Keßler] * Add error on `--savable --timing` (#5690). [Narcis Rodas] * Add coverage point hierarchy to coverage reports (#5575) (#5576). [Andrew Nolte] * Add warning on global constraints (#5625). [Ryszard Rozak, Antmicro Ltd.] * Add default CMAKE_BUILD_TYPE (#5691) (#5692). [Anthony Moore] * Add error on `solve before` or soft constraints of `randc` variable. * Improve concatenation performance (#5598) (#5599) (#5602). [Geza Lore] * Improve optimization of duplicate wide expressions (#5637). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix dotted reference in delay value (#2410). * Fix `function fork...join_none` regression with unknown type (#4449). * Fix public_module requiring a wire to become public (#4916). [Andrew Nolte] * Fix --hierarchical on projects with dot-f dependency lists (#5199) (#5669). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix can't locate scope error in interface task delayed assignment (#5462) (#5568). [Zhou Shen] * Fix BLKANDNBLK for for VARXREFs (#5569). [Todd Strader] * Fix VPI error instead of fatal for vpi_get_value() on large signals (#5571). [Todd Strader] * Fix --output-groups leftover files issue (#5574). [Todd Strader] * Fix slow unsized number parsing (#5577). [Geza Lore] * Fix negative assignment pattern keys (#5580). [Iztok Jeras] * Fix duplicate scope identifiers decoding (#5584). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix `rand` dynamic arrays with null handles (#5594). [Ryszard Rozak, Antmicro Ltd.] * Fix NBAs to unpacked arrays of unpacked structs (#5603). [Geza Lore] * Fix array of struct member overwrites on member update (#5605) (#5618) (#5628). [sumpster] * Fix interface and struct pattern collision (#5639) (#5640). [Todd Strader] * Fix mis-aliasing of instances with mailbox parameter types (#5632 partial). * Fix error on duplicated declaration of gen block (#5663). [Ryszard Rozak, Antmicro Ltd.] * Fix wildcard equality and inside operators for non-fourstate expressions (#5673). [Ryszard Rozak, Antmicro Ltd.] * Fix `randomize..with` of parameterized classes (#5676). [Ryszard Rozak, Antmicro Ltd.] * Fix interface bracketed array parameter access (#5677) (#5678). [Todd Strader] * Fix width extension of operands of `inside` operator (#5685). [Ryszard Rozak, Antmicro Ltd.] * Fix VPI + SYMRSVDWORD intersection (#5686). [Todd Strader] * Fix verilator_gantt for hierarchically Verilated models (#5700). [Bartłomiej Chmiel, Antmicro Ltd.] Verilator 5.030 2024-10-27 ========================== **Major:** * Add `-output-groups` to build with concatenated .cpp files (#5257). [Mariusz Glebocki] * Self-tests have been converted to Python, run `{test_name}.py` instead of `{test_name}.pl`. **Minor:** * Change .vlt config files to be read before .v files (#5185). [David Moberg] * Change to use maximum for cover point aggregation (#5402). [Andrew Nolte] * Change `--main` and `--binary` to use a TOP hierarchy name of "" (#5482). * Change install of public executables into bindir instead of pkgdatadir (#5140) (#5544). [Geza Lore] * Support IEEE-compliant intra-assign delays (#3711) (#5441). [Krzysztof Bieganski, Antmicro Ltd.] * Support `wor`, `trior`, `wand`, `triand` (#5386) (#5496). [Zhou Shen] * Support unconstrained randomization for unions (#5395) (#5396). [Yilou Wang] * Support basic constrained queue randomization (#5413). [Arkadiusz Kozdra, Antmicro Ltd.] * Support packed/unpacked and dynamic array unconstrained randomization (#5414) (#5415). [Yilou Wang] * Support appending to queue via `[]` (#5421). [Krzysztof Bieganski, Antmicro Ltd.] * Support named event locals (#5422). [Krzysztof Bieganski, Antmicro Ltd.] * Support basic `dist` constraints (#5431). [Arkadiusz Kozdra, Antmicro Ltd.] * Support unpacked array constrained randomization (#5437) (#5489). [Yilou Wang] * Support inside array constraints (#5448). [Arkadiusz Kozdra, Antmicro Ltd.] * Support DPI imports and exports with double underscores (#5481). * Support ccache when compiling Verilated files with cmake. * Support `local` and `protected` on `typedef` (#5460). * Support unconstrained randomization for associative array and queue (#5515). [Yilou Wang] * Support `rand` dynamic arrays of objects (#5557) (#5564). [Ryszard Rozak, Antmicro Ltd.] * Add error on misused genvar (#408). [Alex Solomatnikov] * Add error on instances without parenthesis. * Add Docker pre-commit hook (#5238) (#5452). [Chris Bachhuber] * Add partial coverage symbol and branch data in lcov info files (#5388). [Andrew Nolte] * Add method to check if there are VPI callbacks of the given type (#5399). [Kaleb Barrett] * Remove warning on unsized numbers exceeding 32-bits. * Improve Verilation thread pool (#5161). [Bartłomiej Chmiel, Antmicro Ltd.] * Improve performance of V3VariableOrder with parallelism (#5406). [Bartłomiej Chmiel, Antmicro Ltd.] * Improve parser error handling (#5493). [Arkadiusz Kozdra, Antmicro Ltd.] * Improve process trigger performance (#5483). [Geza Lore] * Fix suppression of WIDTH* warnings when immediately under a size cast (#3417). * Fix `$fatal` to not be affected by `+verilator+error+limit` (#5135). [Gökçe Aydos] * Fix equivalence checking when replacing type parameters (#5213) (#5255). [Han Qi] * Fix display with multiple string formats (#5311). [Luiza de Melo] * Fix performance of V3Trace when many activity blocks (#5372). [Deniz Güzel] * Fix REALCVT warning on integral timescale conversions (#5378). [Liam Braun] * Fix multidimensional function return value selects (#5382). [Gökçe Aydos] * Fix internal error in out-of-range select (#5393) (#5443). [Geza Lore] * Fix dot fallback finding wrong symbols (#5394). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix infinite recursion due to recursive functions/tasks (#5398). [Krzysztof Bieganski, Antmicro Ltd.] * Fix V3Randomize compile error on old GCC (#5403) (#5417). [Krzysztof Bieganski, Antmicro Ltd.] * Fix extra events in traces (#5405). * Fix empty `foreach` in `if` in constraints (#5408). [Krzysztof Bieganski, Antmicro Ltd.] * Fix queue `[$-i]` select as reference argument (#5411). [Krzysztof Bieganski, Antmicro Ltd.] * Fix `pre`/`post_randomize` on `randomize() with` (#5412). [Krzysztof Bieganski, Antmicro Ltd.] * Fix capturing params in `randomize() with` (#5416) (#5418). [Krzysztof Bieganski, Antmicro Ltd.] * Fix `sformatf` internal error on initial automatics (#5423). [Todd Strader] * Fix clearing trigger of events with no sensitivity trees (#5426). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix driving clocking block in reactive region (#5430). [Krzysztof Bieganski, Antmicro Ltd.] * Fix associative array next/prev/first/last mis-propagating constants (#5435). [Ethan Sifferman] * Fix randomize treated as std::randomize in classes (#5436). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix `foreach` colliding index names (#5444). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix fault on defparam with UNSUPPORTED ignored (#5450). [Luiza de Melo] * Fix class reference with pin that is a class reference (#5454). * Fix not reporting class reference with extra parameters (#5467). * Fix user-type parameter overlap (#5469). [Todd Strader] * Fix tracing when name() is empty (#5470). [Sam Shahrestani] * Fix timing mode not exiting on empty events (#5472). * Fix coverage counts missing due to table optimization (#5473) (#5474). [Vito Gamberini] * Fix `--binary` with .cpp PLI filenames under relative directory paths. * Fix extra dot in coverage point hierarchy when using name()=''. * Fix short-circuiting with associative array access (#5484). [Ethan Sifferman] * Fix short-circuiting on method calls (#5486). [Ethan Sifferman] * Fix exponential concatenate performance (#5488). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix V3Table trying to generate 'x' bits in the lookup table (#5491). [Geza Lore] * Fix randomize with foreach constraints (#5492). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix explicit CMAKE_INSTALL_PREFIX usages (#5500). [Fabian Keßler] * Fix configure inserting absolute paths for Python and Perl (#5504) (#5505). [Nathan Graybeal] * Fix pattern initialization with typedef key (#5512). [Eugene Feinberg] * Fix `-j` option without argument in hierarchical Verilation (#5514). [Ryszard Rozak, Antmicro Ltd.] * Fix `foreach` with 2-D queues and dynamic arrays (#5525) (#5529). [Yilou Wang] * Fix struct array assignment (#5455) (#5537). [Yilou Wang] * Fix copy constructor of classes that use std::process (#5528). [Ryszard Rozak, Antmicro Ltd.] * Fix foreach on associative array (#5530). [Yilou Wang] * Fix multi-range indices assignment (#5534) (#5547). [Yilou Wang] * Fix static function wrappers (#5536). [Ryszard Rozak, Antmicro Ltd.] * Fix assignments of concatenation to queues and dynamic arrays (#5540). [Ryszard Rozak, Antmicro Ltd.] * Fix container reduction methods (#5542). [Krzysztof Boroński] * Fix complex user type problem with `--x-assign` (#5543). [Todd Strader] * Fix long module names crashing string handling (#5546). [Filip Badáň] * Fix array trace splitting (#5549). [Todd Strader] * Fix queue element access (#5551). [Ryszard Rozak, Antmicro Ltd.] * Fix struct literal on pattern assignment (#5552) (#5559). [Todd Strader] * Fix build on gcc when using the Spack wrapper (#5555). [Eric Müller] * Fix enum name method (#5563). [Todd Strader] * Fix `$countbits` in assert with non-tristates (#5566). [Shou-Li Hsu] * Fix missing VlProcess handle in coroutines with splits (#5623) (#5650). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix imported array assignment literals (#5642) (#5648). [Todd Strader] * Fix foreach mixed array (#5655) (#5656). [Yilou Wang] Verilator 5.028 2024-08-21 ========================== **Minor:** * Support state-dependent constraints (#5217). [Arkadiusz Kozdra, Antmicro Ltd.] * Support cross-module clocking variable access (#5184). [Arkadiusz Kozdra, Antmicro Ltd.] * Support inline constraints for class randomization methods (#5234). [Krzysztof Boroński] * Support clocking blocks in virtual interfaces (#5235). [Arkadiusz Kozdra, Antmicro Ltd.] * Support `$assertcontrol` assertion_type (#5236). [Bartłomiej Chmiel, Antmicro Ltd.] * Support conditional constraints (#5245). [Arkadiusz Kozdra, Antmicro Ltd.] * Support`--compiler-include` headers in user-supplied cpp files (#5271). [Bartłomiej Chmiel, Antmicro Ltd.] * Support `rand_mode` (#5273). [Krzysztof Bieganski, Antmicro Ltd.] * Support `this.randomize with` (#5282). [Arkadiusz Kozdra, Antmicro Ltd.] * Support foreach constraints (#5302). [Arkadiusz Kozdra, Antmicro Ltd.] * Support `parameter type` in hierarchical blocks (#5309) (#5333). [Bartłomiej Chmiel, Antmicro Ltd.] * Support assertcontrol directive type (#5310). [Bartłomiej Chmiel, Antmicro Ltd.] * Support inline random variable control (#5317). [Krzysztof Bieganski, Antmicro Ltd.] * Support streaming operator on arrays and wide data (#5326). [Arkadiusz Kozdra, Antmicro Ltd.] * Support streams to/from arrays of wide data (#5334). [Arkadiusz Kozdra, Antmicro Ltd.] * Support `constraint_mode` (#5338). [Krzysztof Bieganski, Antmicro Ltd.] * Support constraining AstSel (#5344). [Arkadiusz Kozdra, Antmicro Ltd.] * Support default value on module input (#5358) (#5373). [Drew Ranck] * Add `--compiler-include` for additional C++ includes (#5139) (#5202). [Bartłomiej Chmiel, Antmicro Ltd.] * Add `--emit-accessors` (#5182) (#5227). [Ryan Ziegler] * Add suggestions on misspelled PLI functions. * Add warning on dist in constraints (#5264). [Arkadiusz Kozdra, Antmicro Ltd.] * Add more `rand_mode` unsupported errors (#5329). [Krzysztof Bieganski, Antmicro Ltd.] * Add parsing but otherwise ignore std::randomize (#5354). [Arkadiusz Kozdra, Antmicro Ltd.] * Add Verilated cc define when `--timing` used (#5383). [Kaleb Barrett] * Improve emitted code to use a reference for VlSelf (#5254). [Yangyu Chen] * Fix monitor block sensitivity items (#4040) (#4400) (#5294). [Udaya Raj Subedi] * Fix fusing macro arguments to not ignore whitespace (#5061). [Tudor Timi] * Fix optimized-out sensitivity trees with `--timing` (#5080) (#5349). [Krzysztof Bieganski, Antmicro Ltd.] * Fix classes/modules of case-similar names (#5109). [Arkadiusz Kozdra] * Fix mis-removing $value$plusargs calls (#5127) (#5137). [Seth Pellegrino] * Fix incorrect result of width mismatch (#5186) (#5189). [Yutetsu TAKATSUKASA] * Fix compiler coroutine check (#5190) (#5300). [Ricardo Barbedo] * Fix shortened module names when searching for files (#5196) (#5246). [Tim Hutt] * Fix `--x-assign` to be independent from `+verilator+rand+reset` (#5214). [Andrew Nolte] * Fix splitting if statements with impure conditions (#5219). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix unknown conversion on queues (#5220). [Alex Solomatnikov] * Fix top-level unpacked structure resets (#5221). * Fix concurrency for mailbox and semaphores (#5222). [Liam Braun] * Fix forks capturing non-input ports in tasks (#5237) (#5343). [Krzysztof Bieganski, Antmicro Ltd.] * Fix toggle coverage aggregation on same line (#5248). [Krzysztof Obłonczek] * Fix error on empty generate with -O0 (#5250). * Fix unconstrained randomization of unpacked structs (#5252). [Krzysztof Bieganski, Antmicro Ltd.] * Fix inlining of variables driven from forced vars (#5259). [Geza Lore] * Fix tracing with `--main-top-name -` (#5261). [Ethan Sifferman] * Fix randomization when used with inheritance (#5268). [Krzysztof Bieganski, Antmicro Ltd.] * Fix inline constraints creating class random generator (#5280). [Krzysztof Bieganski, Antmicro Ltd.] * Fix WIDTHEXPAND on left shift of intuitive amount (#5284). [Greg Taylor] * Fix elaborating foreach loops (#5285). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix initializing static array in dynamic arrays and queues (#5287). [Baruch Sterin] * Fix static variable initializers in procedures (#5296). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix randomizing current object with `rand` class instance member (#5292). [Krzysztof Bieganski, Antmicro Ltd.] * Fix handling of rand fields not referenced in constraints (#5305). [Ryszard Rozak, Antmicro Ltd.] * Fix Python3 path discovery in make flows to avoid mixing system and user python interpreters (#5307). [Markus Krause] * Fix make flows to pass PYTHON3 (like PERL) (#5307) (#5308). [Markus Krause] * Fix assert on wide expression (#5319) (#5324). [Varun Koyyalagunta] * Fix output clock variable overwriting signal (#5320) (#5347). [Krzysztof Bieganski, Antmicro Ltd.] * Fix stringify in nested preprocessor macros (#5323). [Krzysztof Bieganski, Antmicro Ltd.] * Fix $sformat with array arguments (#5330). [Abe Jordan] * Fix -Wunused-but-set-variable clang warning (#5331). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix purity of functions with AstJumpBlock or AstStmtExpr (#5332). [Ryszard Rozak, Antmicro Ltd.] * Fix compilation error on unreachable disable fork / wait fork (#5339). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix missing type coercion in 'inside {array}' (#5340). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix +: and -: unpacked array slicing when array has nonzero low index (#5345) (#5387). [James Bailey] * Fix tracing_{on,off} in the presence of non-inlined modules (#5346). [Geza Lore] * Fix NBAs in suspendables (#5348). [Krzysztof Bieganski, Antmicro Ltd.] * Fix lint_off on Errors (#5351) (#5363). [Ethan Sifferman] * Fix cache config file resolution performance (#5369). [Geza Lore] * Fix capturing fields from superclass in `randomize() with` (#5389). [Krzysztof Bieganski, Antmicro Ltd.] * Fix virtual interface null checks (#5391). [Krzysztof Bieganski, Antmicro Ltd.] * Fix ==? and !=? with X values. * Fix CPU time being zero. * Fix inline function ref port persistence. Verilator 5.026 2024-06-15 ========================== **Major:** * Support constrained randomization with external solvers (#4947). [Arkadiusz Kozdra, Antmicro Ltd.] **Minor:** * Support `$psprintf` system function (#4314) (#5169). [Arkadiusz Kozdra, Antmicro Ltd.] * Support 2D dynamic array initialization (#4700) (#5122). [Valentin Atepalikhin] * Support __en/__out signals on top level inout ports (#4812) (#4856). [Paul Wright] * Support empty queue as dynarray default value (#5055). [Arkadiusz Kozdra, Antmicro Ltd.] * Support vpiInertialDelay (#5087). [Todd Strader] * Support NBAs to arrays inside loops (#5092). [Geza Lore] * Support parsing and otherwise ignoring inline constraints (#5126). [Arkadiusz Kozdra, Antmicro Ltd.] * Support `inout` clocking items (#5160). [Arkadiusz Kozdra, Antmicro Ltd.] * Support StructSel in unpacked array assignments (#5176). [Geza Lore] * Add error on zero width select (#5028). * Add CITATION.cff (#5057) (#5058). [Gijs Burghoorn] * Add VPI eval needed tracking (#5065). [Todd Strader] * Add `--localize-max-size` option and optimization (#5072). * Add parameterless assert control system tasks (#5010). [Bartłomiej Chmiel] * Add traceCapable indication to model header (#5053). [Vito Gamberini] * Add increasing of stack size when possible (#5071) (#5104). [Yinan Xu] * Add assertion on reusing VerilatedContext (#5167). * Add `--pins-sc-uint-bool` to force SystemC uint type (#5192). [Bartłomiej Chmiel, Antmicro Ltd.] * Improve DFG regularization in cyclic graphs (#5142). [Geza Lore] * Improve VerilatedVpiPutHolder storage requirements (#5144). [Kaleb Barrett] * Fix coroutines without awaits to have a co_return (#4208) (#5175). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix missing flex include path variable (#4970) (#4971). [Christopher Taylor] * Fix missing parameters with comma to be errors (#4979) (#5012). [Paul Swirhun] * Fix 'experimental/coroutine' file not found on MacOS (#5030) (#5031) (#5151). [Paul Bowen-Huggett] * Fix bound queue printing (#5032). [Aleksander Kiryk, Antmicro Ltd.] * Fix consecutive zero-delays (#5038). [Krzysztof Bieganski, Antmicro Ltd.] * Fix attempted to destroy locked thread pool error (#5040). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix `$system` with string argument (#5042). * Fix width extension on delays (#5043). * Fix `$typename` on array.min and others (#5049). [Gökçe Aydos] * Fix `make $(info)` which cannot be silenced (#5059). [Gökçe Aydos] * Fix CMake builds to export VERILATOR_ROOT (#5063). [Michael Bikovitsky] * Fix false ASSIGNIN on functions with explicit port map (#5069). * Fix 4-state value support for $readmem (#5070) (#5078). [Ethan Sifferman] * Fix DFG assertion with SystemC (#5076). [Geza Lore] * Fix `$typename` string to be more standard (#5082) (#5083). [Andrew Nolte] * Fix missed optimization in V3Delayed (#5089). [Geza Lore] * Fix macro expansion in strings per 1800-2023 (#5094). [Geza Lore] * Fix width extension of unpacked array select (#5095). [Varun Koyyalagunta] * Fix MacOS missing header (#5096) (#5097). [Vito Gamberini] * Fix assertion failure in V3Gate (#5101). [Yutetsu TAKATSUKASA] * Fix aliases for forced port signals (#5105). [Geza Lore] * Fix tracing interface functions (#5108). [Alex Solomatnikov] * Fix method calls parsing in constraints (#5110). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix vpiInertialDelay for memories (#5113). [Todd Strader] * Fix hierarchical compilation with nested -F (#5114) (#5124). [Alex Solomatnikov] * Fix references to ports in forks (#5123). [Krzysztof Bieganski, Antmicro Ltd.] * Fix output C++ type error on change detect of I/O arrays (#5125) (#5131). [Pawel Jewstafjew] * Fix x-valued parameters with `--x-assign unique` (#5129). [Ethan Sifferman] * Fix overflow of string on VPI reads (#5145) (#5146). [Kaleb Barrett] * Fix VerilatedVpiPutHolder class (#5156). [Kaleb Barrett] * Fix extending out-of-range select (#5159) (#5164). [Geza Lore] * Fix radix in width warnings (#5166). [Geza Lore] * Fix SystemC BITS_PER_DIGIT in VL_ASSIGN_SBW (#5170). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix non-constant replication in concats (#5171). [Arkadiusz Kozdra, Antmicro Ltd.] * Fix table optimization when applied on real data type (#5172) (#5173). [Arthur Rosa] * Fix signed types emitted in hierarchical Verilation (#5178). [Bartłomiej Chmiel, Antmicro Ltd.] * Fix DPI import of null C-string (#5179). * Fix CMake installation missing verilated.mk (#5187) (#5188). [Philip Axer] * Fix linking with pthreads on CMake (#5194). [Tim Hutt] * Fix clang-17 coroutines configuration with -std=gnu++20 (#5200). [Gus Smith] Verilator 5.024 2024-04-05 ========================== **Major:** * Add printing summary reports, use `--quiet` or `+verilator+quiet` to suppress (#4909). * Support 1800-2023 keywords, and parsing with UNDEFINED warnings. * Support 1800-2023 preprocessor ifdef expressions. **Minor:** * Change 1800-2023 to be default language version. * Add DFG 'regularize' pass, and improve variable removal (#4937). [Geza Lore] * Add error when pass net to function argument (#4132) (#4966). [Fuad Ismail] * Add `UNUSEDLOOP` when unused loop is removed (#4926). [Bartłomiej Chmiel, Antmicro Ltd.] * Add custom version for verilator --version packaging (#4954). [Nolan Poe] * Add error on missing pure virtual functions (#4961). * Add error on calling static function without object (#4962). * Add JSON AST dumps (#5020). [Szymon Gizler] * Support 1800-2023 DPI headers, svGetTime/svgGetTimeUnit/svGetTimePrecision methods. * Support 1800-2023 class and function :initial, :extends, :final virtual overrides (#5025). * Support public packed struct / union (#860) (#4878). [Kefa Chen] * Support stream operation on unpacked array (#4714) (#5006). [Fuad Ismail] * Support implicitly-typed variable definitions in for-loop initializers (#4945) (#4986). [Kevin Nygaard] * Support inside range with implicit type conversion (#5026). [Arkadiusz Kozdra, Antmicro Ltd.] * Improve installation to be relocatable (#4927). [Geza Lore] * Improve internal ordering code (#4957) (#4990) (#4994) et al. [Geza Lore] * Fix generate blocks in vpi_iterate (#3609) (#4913). [Andrew Nolte] * Fix __Vlip undefined error in --freloop (#4824). [Justin Yao Du] * Fix missing VPI scopes (#4918). [Andrew Nolte] * Fix invalid cast on string structure creation (#4921). * Fix try-lock spuriously fails (#4931) (#4938). [Kamil Rakoczy] * Fix V3Unknown unpacked struct x-assign (#4934). [Yan Xu] * Fix DFG removing forceable signals (#4942). [Geza Lore] * Fix null characters in shortened identifiers (#4946). [Abdul Hameed] * Fix assignment of null into struct member (#4952). * Fix VPI missing scopes 2 (#4965). [Andrew Nolte] * Fix object assignment from conditionals (#4968). * Fix GCC14 warnings on template specialization syntax (#4974) (#4975). [Nolan Poe] * Fix unpacked structure upper bit cleaning (#4978). * Fix tests on MacOS (#4984) (#4985). [Kevin Nygaard] * Fix `--prof-exec` predicted time values (#4988). [Geza Lore] * Fix class type as an associative array parameter (#4997). * Fix inout ports of unpacked struct type (#5000). [Ryszard Rozak, Antmicro Ltd.] * Fix `unique {}` constraints missing semicolon (#5001). * Fix preprocessor to respect strings in joins (#5007). * Fix tracing class parameters (#5014). * Fix memory leaks (#5016). [Geza Lore] * Fix `$readmem` with missing newline (#5019). [Josse Van Delm] * Fix internal error on missing pattern key (#5023). * Fix tracing replicated hierarchical models (#5027). * Fix false LIFETIME warning on `repeat` in `fork-join` (#5456). Verilator 5.022 2024-02-24 ========================== **Minor:** * Add predicted stack overflow warning (#4799). * Add `+verilator+coverage+file` runtime option. * Add `--assert-case` option (#4919). [Yutetsu TAKATSUKASA] * Add `--decorations node` for inserting debug comments into emitted code. * Add `--json-only` and related JSON dumping (#4715) (#4831). [Szymon Gizler, Antmicro Ltd.] * Add `--[no]-stop-fail` option for continuing after assertions (#4904). [Yutetsu TAKATSUKASA] * Add `--runtime-debug` for Verilated executable runtime debugging. * Add `--valgrind` switch (#4828). [Szymon Gizler] * Add `unroll_disable` and `unroll_full` loop control metacomments (#3260). [Jiaxun Yang] * Remove deprecated 32-bit pointer mode (`gcc -m32`). * Deprecate --xml-only and XML dumping (#4715) (#4831). * Change zero replication width error to ZEROREPL warning (#4753) (#4762). [Pengcheng Xu] * Improve message for priority case assertion failure (#4905). [Yutetsu TAKATSUKASA] * Support dumping coverage with `--main`. * Support dumping DFG patterns with `--stats` (#4889). [Geza Lore] * Support `vpiConstType` in `vpi_get_str()` (#4797). [Marlon James] * Support SystemC 3.0.0 public review version (#4805) (#4807). [Anthony Donlon] * Support parsing anonymous primitive instantiations (#4809). [Anthony Donlon] * Fix to not emit already waived warnings in waiver output (#4574) (#4818). [Jonathan Schröter] * Fix `this` in member initialization (#4710). [eliasphanna] * Fix localparam elaboration (#3858) (#4794). [Andrew Nolte] * Fix lint_off disables on preprocessor warnings (#4703). [Srinivasan Venkataramanan] * Fix $time not rounding up (#4790) (#4792). [Paul Wright] * Fix `vpi_get()` and `vpi_get64()` to return vpiUndefined on errors (#4795). [Marlon James] * Fix VPI parameter iteration (#4798). [Marlon James] * Fix delays using wrong timeunit when modules inlined (#4806). [Paul Wright] * Fix warnings in verilated_sc_trace.h for Clang (#4807) (#4827). [Anthony Donlon] * Fix null pointer dereference (#4810) (#4825). [Adrian Sampson] * Fix compilation error on multi-inherited interface class usage (#4819). * Fix maybe-uninitialized compiler warning (#4820) (#4822). [Larry Doolittle] * Fix mis-splitting of dump control functions (#4821). [Fan Shupei] * Fix wrong utimes() parameter (#4829). [Szymon Gizler] * Fix incorrect bit-op-tree NOT optimization (#4832) (#4847). [Yutetsu TAKATSUKASA] * Fix width calculation in replaceShiftOp (#4837) (#4841) (#4849). [Yutetsu TAKATSUKASA] * Fix unsafe write in wide array insertion (#4850) (#4855). [Paul Swirhun] * Fix NOT when checking EQ/NEQ under AND/OR tree (#4857) (#4863). [Yutetsu TAKATSUKASA] * Fix tracing chandles (#4860). [Nathan Graybeal] * Fix $fwrite of null (#4862). [Jose Tejada] * Fix -fno-const-bit-op-tree wrong runtime result (#4864) (#4867). [Yutetsu TAKATSUKASA] * Fix SystemC biguint sign desynchronization (#4870). [Bartłomiej Chmiel] * Fix incorrect temporary insertion in loop conditions with statements (#4873). [Geza Lore] * Fix timing with expr on assign LHS (#4880). [Krzysztof Bieganski, Antmicro Ltd.] * Fix assertion for unique case (#4892). [Yutetsu TAKATSUKASA] * Fix GCC tautological-compare warnings. * Fix compile error on structs with queues (and ignore toggle coverage on queues). * Fix toggle coverage error on multi-edge driven signals. * Fix whitespace in `pragma protect version` (#4902) (#4914). [Paul Swirhun] * Fix incorrect code generation for change expression on typedefed unpacked array (#4915). [Geza Lore] * Fix inconsistent driver resolution with typedefs (#4917). [Geza Lore] Verilator 5.020 2024-01-01 ========================== **Major:** * Support compilation with precompiled headers with Make, and GCC or CLang. * Change include to systemc instead of systemc.h (#4622) (#4623). [Chih-Mao Chen] This may require that SystemC programs add 'using namespace sc_core', 'using namespace sc_dt'. **Minor:** * Add devcontainer support (#4748). [Stefan Wallentowitz] * Support `iff` in sensitivity list (#1482) (#4626). [Krzysztof Bieganski, Antmicro Ltd.] * Support parameterized virtual interfaces (#4047) (#4743). [Ryszard Rozak, Antmicro Ltd.] * Support --timing triggers for virtual interfaces (#4673). [Krzysztof Bieganski, Antmicro Ltd.] * Support ccache when compiling Verilator with CMake (#4678). [Anthony Donlon] * Support passing constraints to --xml-only output (still otherwise unsupported) (#4683). [Shahid Ikram] * Support node memory usage information in --stats (#4684). [Geza Lore] * Support vpiConstType in vpi_get() (#4761). [Todd Strader] * Support vpi_iterate on packages with vpiInstance (#4726). [Todd Strader] * Support multiple parameters in virtual interfaces (#4745). [Ryszard Rozak, Antmicro Ltd.] * Support user C/C++ code in final archive, and make a lib{model}.a (#4749) (#4754). [Fan Shupei] * Support inside operator on unpacked arrays and queues (#4751). [Ryszard Rozak, Antmicro Ltd.] * Support VPI parameter iteration (#4765). [Todd Strader] * Support packages in vpi_handle_by_name() (#4768). [Todd Strader] * Support invoking interface methods on virtual interface variables (#4774) (#4775). [Jordan McConnon] * Remove deprecated options (#4663). [Geza Lore] * Remove older compiler support; require C++14 or newer (#4784) (#4786). * Optimize timing-delayed queue (#4584). [qrqiuren] * Optimize substitute optimization memory usage (#4687). [Geza Lore] * Optimize wide primitive operations with -Oz (#4733). [Geza Lore] * Optimize V3Premit performance etc. (#4736). [Geza Lore] * Fix VPI TOP level variable iteration (#3919) (#4618). [Marlon James] * Fix display with no % printing assoc array (#4376). [Alex Solomatnikov] * Fix scheduling of external force signals (#4577) (#4668). [Geza Lore] * Fix a memory leak in V3Fork (#4628). [Krzysztof Boroński] * Fix linking parameterized hierarchical blocks and recursive hierarchical blocks (#4654). [Anthony Donlon] * Fix identifiers that end with '_' on Windows (#4655). [Anthony Donlon] * Fix 'for' loop with outside variable reference (#4660). [David Harris] * Fix tracing FST enums (#4661) (#4756). [Todd Strader] * Fix interface parameters used in loop generate constructs (#4664) (#4665). [Anthony Donlon] * Fix C++20 compilation errors (#4670). * Fix deadlocks in error handler (#4672). [Mariusz Glebocki, Antmicro Ltd.] * Fix MingW compilation (#4675). [David Ledger] * Fix trace when using SystemC with certain configurations (#4676). [Anthony Donlon] * Fix range access to classes depending on parameter resolution (#4681). [Krzysztof Boroński] * Fix select into constant And/Or/Xor pattern (#4689). [Geza Lore] * Fix access type of function arguments (#4692) (#4694). [Ryszard Rozak, Antmicro Ltd.] * Fix dynamic NBAs with automatic vars (#4696). [Krzysztof Bieganski, Antmicro Ltd.] * Fix # 0 delays for process resumption, etc. (#4697). [Krzysztof Boroński] * Fix conflicted namespace for coroutines (#4701) (#4707). [Jinyan Xu] * Fix compilers seeing empty input due to file system races (#4708). [Flavien Solt] * Fix shift of > 32-bit number (#4719). [Flavien Solt] * Fix Windows include gates in filesystem Flush implementation (#4720). [William D. Jones] * Fix power operator with wide numbers and constants (#4721) (#4763). [Flavien Solt] * Fix parameter passing to ports (#4723). [Ryszard Rozak, Antmicro Ltd.] * Fix block names of nested do..while loops (#4728). [Ryszard Rozak, Antmicro Ltd.] * Fix class name in error on 'new' on virtual class (#4739). [Ryszard Rozak, Antmicro Ltd.] * Fix typedefs pointing to parameterized classes (#4747). [Ryszard Rozak, Antmicro Ltd.] * Fix $finish twice to no longer exit (#4757). [Tim Hutt] * Fix dynamic NBA conditions (#4773). [Krzysztof Bieganski, Antmicro Ltd.] * Fix `V3Fork` stage to run only if `--timing` is set (#4778). [Krzysztof Bieganski, Antmicro Ltd.] * Fix max multiply width and add runtime assertions if too small (#4781). * Fix select value too wide (#5148) (#5153). [Dercury] Verilator 5.018 2023-10-30 ========================== **Major:** * Support compilation with precompiled headers with Make and GCC or CLang. * Change include of systemc instead of systemc.h (#4622) (#4623). [Chih-Mao Chen] This may require that SystemC programs add 'using namespace sc_core', 'using namespace sc_dt'. **Minor:** * Add SIDEEFFECT warning on mishandled side effect cases. * Add trace() API even when Verilated without --trace (#4462). [phelter] * Add warning on interface instantiation without parens (#4094). [Gökçe Aydos] * Add sv_vpi_user.h from IEEE 1800-2017 Annex M (#4606). [Marlon James] * Support 'disable fork' (#4125) (#4569). [Aleksander Kiryk, Antmicro Ltd.] * Support 'wait fork' (#4586). [Aleksander Kiryk, Antmicro Ltd.] * Support 'randc' (#4349). * Support assigning events (#4403). [Krzysztof Boroński] * Support resizing function call inout arguments (#4467). * Support NBAs in non-inlined functions/tasks (#4496) (#4572). [Krzysztof Bieganski, Antmicro Ltd.] * Support converting parameters inside modules to localparams (#4511). [Anthony Donlon] * Support concatenation of unpacked arrays (#4558). [Yutetsu TAKATSUKASA] * Support Clang 16 (#4592). [Mariusz Glebocki] * Support VPI variables of real and string data types (#4594). [Marlon James] * Support making VL_LOCK_SPINS configurable (#4599). [Geza Lore] * Change code --stats output (#4597). [Geza Lore] * Change --prof-exec infrastructure and report (#4602). [Geza Lore] * Change lint_off to not propagate upwards to files including where the lint_off is. * Optimize empty expression statements (#4544). * Optimize trace internals (#4610) (#4612). [Geza Lore] * Optimize internal performance issues (#4638). [Geza Lore] * Fix conversion of impure logical expressions to bit expressions (#487 partial) (#4437). [Ryszard Rozak, Antmicro Ltd.] * Fix enum functions in localparams (#3999). [Andrew Nolte] * Fix passing arguments by reference (#3385 partial) (#4489). [Ryszard Rozak, Antmicro Ltd.] * Fix multithreading handling to separate by code units that use/never use it (#4228). [Mariusz Glebocki, Antmicro Ltd.] * Fix usage of annotation options (#4486) (#4504). [Michal Czyz] * Fix detecting local vars in nested forks (#4493) (#4506). [Kamil Rakoczy] * Fix handling input file path separator (#4515) (#4516). [Anthony Donlon] * Fix mis-support for parameterized UDPs (#4518). [Anthony Donlon] * Fix constant conversion of $realtobits, $bitstoreal (#4522). [Andrew Nolte] * Fix conversion of integers in $display '%e' (#4528). [muzafferkal] * Fix non-inlined interface tracing (#3984) (#4530). [Todd Strader] * Fix stream operations with operands of struct type (#4531) (#4532). [Ryszard Rozak, Antmicro Ltd.] * Fix 'this' in a constructor (#4533). [Ryszard Rozak, Antmicro Ltd.] * Fix stream shift operator of 32 bits (#4536). [Julien Faucher] * Fix object destruction after a copy constructor (#4540) (#4541). [Ryszard Rozak, Antmicro Ltd.] * Fix inlining of real functions miscasting (#4543). [Andrew Nolte] * Fix broken link error for enum references (#4551). [Anthony Donlon] * Fix logical expressions with class objects - caching in v3Const (#4552). [Ryszard Rozak, Antmicro Ltd.] * Fix using functions/tasks following class definition inside module (#4553). [Anthony Donlon] * Fix large constant buffer overflow (#4556). [Varun Koyyalagunta] * Fix instance arrays connecting to array of structs (#4557). [raphmaster] * Fix error message for invalid parameter overrides (#4559). [Anthony Donlon] * Fix shift to remove operation side effects (#4563). * Fix compile warning on unused member function variable (#4567). * Fix method narrowing conversion compiler error (#4568). * Fix interface comparison (#4570). [Krzysztof Bieganski, Antmicro Ltd.] * Fix dynamic triggers for named events (#4571). [Krzysztof Bieganski, Antmicro Ltd.] * Fix dictionaries with keys of class types (#4576). [Ryszard Rozak, Antmicro Ltd.] * Fix to not remap local assign intervals in forks (#4583). [Krzysztof Bieganski, Antmicro Ltd.] * Fix display optimization ignoring side effects (#4585). * Fix PLI/DPI user defined system task/function grammar (#4587) (#4588). [Quentin Corradi] * Fix fault on empty clocking block (#4593). [Alex Mykyta] * Fix creating implicit nets for inputs of gate primitives (#4603). [Geza Lore] * Fix try_put method of unbounded mailbox (#4608). [Ryszard Rozak, Antmicro Ltd.] * Fix stable name generation in V3Fork (#4615) (#4624). [Krzysztof Boroński] * Fix virtual methods (#4616). [Ryszard Rozak, Antmicro Ltd.] * Fix insertion at queue end (#4619). [Krzysztof Boroński] * Fix rand fields of reference types (#4627). [Ryszard Rozak, Antmicro Ltd.] * Fix dynamic casts of null values (#4631). [Ryszard Rozak, Antmicro Ltd.] * Fix signals read via virtual interfaces being misoptimized (#4645). [Krzysztof Bieganski, Antmicro Ltd.] * Fix handling of static keyword in methods (#4649). [Ryszard Rozak, Antmicro Ltd.] * Fix preprocessor to show `line 2 on resumed file. Verilator 5.016 2023-09-16 ========================== **Minor:** * Add prepareClone and atClone APIs for Verilated models (#3503) (#4444). [Yinan Xu] * Add check for conflicting options e.g. binary and lint-only (#4409). [Ethan Sifferman] * Add --no-trace-top to not trace top signals (#4412) (#4422). [Frans Skarman] * Support recursive function calls (#3267). * Support assignments of packed values to stream expressions on queues (#4401). [Ryszard Rozak, Antmicro Ltd] * Support no-parentheses calls to static methods (#4432). [Krzysztof Boroński] * Support block_item_declaration in forks (#4455). [Krzysztof Boroński] * Support assignments of stream expressions on queues to packed values (#4458). [Ryszard Rozak, Antmicro Ltd] * Support function non-constant default arguments (#4470). * Support 'let'. * Optimize Verilator executable size by refactoring error reporting routines (#4446). [Anthony Donlon] * Optimize Verilation runtime pointers and graphs (#4396) (#4397) (#4398). [Krzysztof Bieganski, Antmicro Ltd] * Optimize preparations towards multithreaded Verilation (#4291) (#4463) (#4476) (#4477) (#4479). [Kamil Rakoczy, Antmicro Ltd] * Fix Windows filename format, etc (#3873) (#4421). [Anthony Donlon]. * Fix t_dist_cppstyle Perl performance issue (#4085). [Srinivasan Venkataramanan] * Fix using type in parameterized classes without #() (#4281) (#4440). [Anthony Donlon] * Fix false INFINITELOOP on forever..mailbox.get() (#4323). [Srinivasan Venkataramanan] * Fix data type of condition operation on class objects (#4345) (#4352). [Ryszard Rozak, Antmicro Ltd] * Fix variables mutated under fork..join_none/join_any blocks into anonymous objects (#4356). [Krzysztof Boroński] * Fix V3CUse, do not consider implementations (.cpp) at all (#4386). [Krzysztof Boroński] * Fix ++/-- under statements (#4399). [Aleksander Kiryk, Antmicro Ltd] * Fix detection of mixed blocking and nonblocking assignment in nested assignments (#4404). [Ryszard Rozak, Antmicro Ltd] * Fix jumping over object initialization (#4411). [Krzysztof Boroński] * Fix multiple issues towards short circuit support (#4413) (#4460). [Ryszard Rozak, Antmicro Ltd] * Fix variable lifetimes in extern methods (#4414). [Krzysztof Boroński] * Fix multiple function definitions in V3Sched (#4416). [Hennadii Chernyshchyk] * Fix false UNUSEDPARAM on generate localparam (#4427). [Bill Pringlemeir] * Fix checking for parameter and port connections in the wrong place (#4428). [Anthony Donlon] * Fix coroutine handle movement during queue manipulation (#4431). [Aleksander Kiryk, Antmicro Ltd] * Fix nested assignments on the LHS (#4435). [Ryszard Rozak, Antmicro Ltd] * Fix false MULTITOP on bound interfaces (#4438). [Alex Solomatnikov] * Fix internal error on real conversion (#4447). [vdhotre-ventana] * Fix lifetime unknown error on enum.name (#4448). [Johan Wouters] * Fix unstable output of VHashSha256 (#4453). [Anthony Donlon] * Fix static cast from a stream type (#4469) (#4485). [Ryszard Rozak, Antmicro Ltd] * Fix error on enum with VARHIDDEN of cell (#4482). [Michail Rontionov] * Fix lint of case statements with enum and wildcard bits (#4464) (#4487). [Anthony Donlon] * Fix reference to extended class in parameterized class (#4466). * Fix recursive display causing segfault (#4480). [Kuoping Hsu] * Fix the error message when the type of ref argument is wrong (#4490). [Ryszard Rozak, Antmicro Ltd] * Fix display %x formatting of real. * Fix mis-warning on #() in classes' own functions. * Fix IGNOREDRETURN to not warn on void-cast static function calls. * Fix ZERODLY to not warn on 'wait(0)'. Verilator 5.014 2023-08-06 ========================== **Minor:** * Deprecation planned for 32-bit pointer -m32 mode (#4268). * Deprecate CMake config below version 3.13 (#4389) (#4390). [Vito Gamberini] * Support some stream operations on queues (#4292). [Ryszard Rozak, Antmicro Ltd] * Support property declaration with empty parentheses (#4313) (#4317). [Anthony Donlon] * Support locator methods with "with" on assoc arrays (#4335). [Ryszard Rozak, Antmicro Ltd] * Support string replication with variable (#4341). [Aleksander Kiryk, Antmicro Ltd] * Support more types in wait (#4374). [Aleksander Kiryk, Antmicro Ltd] * Support static method calls as default values of function arguments (#4378). [Ryszard Rozak, Antmicro Ltd] * Add GENUNNAMED lint warning. [Srinivasan Venkataramanan, Deepa Palaniappan] * Add MISINDENT lint warning for misleading indentation. * Fix 'VlForkSync' redeclaration (#4277). [Krzysztof Bieganski, Antmicro Ltd] * Fix processes that can outlive their parents (#4253). [Krzysztof Boronski, Antmicro Ltd] * Fix duplicate fork names (#4295). [Ryszard Rozak, Antmicro Ltd] * Fix splitting coroutines (#4297) (#4307). [Jiamin Zhu] * Fix error when multiple duplicate DPI exports (#4301). * Fix class reference assignment checking (#4296). [Ryszard Rozak, Antmicro Ltd] * Fix handling of ref types in initial values of type parameters (#4304). [Ryszard Rozak, Antmicro Ltd] * Fix comparison of string parameters (#4308). [Ryszard Rozak, Antmicro Ltd] * Fix state update for always processes (#4311). [Aleksander Kiryk, Antmicro Ltd] * Fix multiple edge timing controls in class methods (#4318) (#4320) (#4344). [Krzysztof Bieganski, Antmicro Ltd] * Fix implicit calls of base class constructors with optional arguments (#4319). [Ryszard Rozak, Antmicro Ltd] * Fix propagation of process requirement (#4321). [Krzysztof Boroński] * Fix unhandled overloads in V3InstrCount (#4324). [Krzysztof Boroński] * Fix selects of static members (#4326). [Ryszard Rozak, Antmicro Ltd] * Fix references to members of results of static methods (#4327). [Ryszard Rozak, Antmicro Ltd] * Fix unique..with method on queues of class objects (#4328). [Ryszard Rozak, Antmicro Ltd] * Fix queue slicing (#4329). [Aleksander Kiryk, Antmicro Ltd] * Fix wildcard referring types (#4336) (#4342). [Aleksander Kiryk, Antmicro Ltd] * Fix comparison of class objects (#4346). [Ryszard Rozak, Antmicro Ltd] * Fix unexpected RefDType on assoc arrays (#4337). [Aleksander Kiryk, Antmicro Ltd] * Fix cmake astgen for Rocky Linux 8.7 (#4343). [Julian Daube] * Fix class timescale in class packages (#4348). [Krzysztof Bieganski, Antmicro Ltd] * Fix string concatenations (#4354). [Ryszard Rozak, Antmicro Ltd] * Fix unlinked task error from broken context (#4355) (#4402). [Aleksander Kiryk, Antmicro Ltd] * Fix selects on unpacked structs (#4359). [Ryszard Rozak, Antmicro Ltd] * Fix select operation on assoc array with wide keys (#4360). [Ryszard Rozak, Antmicro Ltd] * Fix non-public methods with wide output (#4364). [Ryszard Rozak, Antmicro Ltd] * Fix handling of super.new calls (#4366). [Ryszard Rozak, Antmicro Ltd] * Fix assign to input var in methods (#4367). [Aleksander Kiryk, Antmicro Ltd] * Fix VlProcess not found (#4368). [Aleksander Kiryk, Antmicro Ltd] * Fix order of evaluation of function calls in statements (#4375). [Ryszard Rozak, Antmicro Ltd] * Fix config_build.h issues (#4380) (#4381). [Andrew Miloradovsky] Verilator 5.012 2023-06-13 ========================== **Major:** * With -j or --build-jobs, multithread Verilator's emit phase of Verilation. [Kamil Rakoczy, Antmicro Ltd] Additional Verilator-internal stages will become multithreaded over time. **Minor:** * Add --main-top-name option for C main TOP name (#4235) (#4249). [Don Williamson] * Add creating __inputs.vpp file with --debug (#4177). [Tudor Timi] * Add NEWERSTD warning when using feature in newer language standard (#4168) (#4172). [Ethan Sifferman] * Add warning that timing controls in DPI exports are unsupported (#4238). [Krzysztof Bieganski, Antmicro Ltd] * Support std::process class (#4212). [Aleksander Kiryk, Antmicro Ltd] * Support inside expressions with strings and doubles (#4138) (#4139). [Krzysztof Boroński] * Support get_randstate/set_randstate class method functions. * Support for condition operator on class objects (#4214). [Ryszard Rozak, Antmicro Ltd] * Support array max (#4275). [Aleksander Kiryk, Antmicro Ltd] * Optimize VPI callValueCbs (#4155). [Hennadii Chernyshchyk] * Configure for faster C++ linking using 'mold', if it is installed. * Fix crash on duplicate imported modules (#3231). [Robert Balas] * Fix false WIDTHEXPAND on array declarations (#3959). [Jose Tejada] * Fix marking overridden methods as coroutines (#4120) (#4169). [Krzysztof Bieganski, Antmicro Ltd] * Fix SystemC signal copy macro use (#4135). [Josep Sans] * Fix duplicate static names in blocks in functions (#4144) (#4160). [Stefan Wallentowitz] * Fix initialization order of initial static after function/task (#4159). [Kamil Rakoczy, Antmicro Ltd] * Fix linking AstRefDType if it has parameterized class ref (#4164) (#4170). [Ryszard Rozak, Antmicro Ltd] * Fix crash caused by $display() optimization (#4165) (#4166). [Tudor Timi] * Fix arrays of unpacked structs (#4173). [Risto Pejašinović] * Fix $fscanf of decimals overflowing variables (#4174). [Ahmed El-Mahmoudy] * Fix super.new missing data type (#4147). [Tudor Timi] * Fix missing class forward declarations (#4151). [Krzysztof Boroński] * Fix hashes of instances of parameterized classes (#4182). [Ryszard Rozak, Antmicro Ltd] * Fix forced assignments that override non-continuous assignments (#4183) (#4192). [Krzysztof Bieganski, Antmicro Ltd] * Fix wide structure VL_TOSTRING_W generation (#4188) (#4189). [Aylon Chaim Porat] * Fix references to members of parameterized base classes (#4196). [Ryszard Rozak, Antmicro Ltd] * Fix tracing undefined alignment (#4201) (#4288) [John Wehle] * Fix class-specific same methods for AstVarScope, AstVar, and AstScope (#4203) (#4250). [John Wehle] * Fix dotted references in parameterized classes (#4206). [Ryszard Rozak, Antmicro Ltd] * Fix bit selections under parameterized classes (#4210). [Ryszard Rozak, Antmicro Ltd] * Fix duplicate std:: declaration with -I (#4215). [Harald Pretl] * Fix deep traversal of class inheritance timing (#4216). [Krzysztof Boroński] * Fix class parameters of enum types (#4219). [Ryszard Rozak, Antmicro Ltd] * Fix static methods with prototypes (#4220). [Ryszard Rozak, Antmicro Ltd] * Fix LATCH warning on function local variables (#4221) (#4284) [Julien Margetts] * Fix VCD scope types (#4227) (#4282). [Àlex Torregrosa] * Fix incorrect multi-driven lint warning (#4231) (#4248). [Adrien Le Masle] * Fix missing assignment for wide unpacked structs (#4233). [Jiamin Zhu] * Fix unpacked struct == and != operators (#4234) (#4240). [Risto Pejašinović] * Fix AstStructSel clean when data type is structure (#4241) (#4244). [Risto Pejašinović] * Fix function calls in with statements (#4245). [Ryszard Rozak, Antmicro Ltd] * Fix operator == for unpacked struct, if elements are VlUnpacked arrays (#4247). [Risto Pejašinović] * Fix STATIC lifetime for variables created from clocking items (#4262). [Krzysztof Boroński] * Fix names of foreach blocks (#4264). [Ryszard Rozak, Antmicro Ltd] * Fix iterated variables in foreach loops to have VAUTOM lifetimes (#4265). [Krzysztof Boroński] * Fix missing assignment for wide class members (#4267). [Jiamin Zhu] * Fix the global uses timing flag when forks exist (#4274). [Krzysztof Bieganski, Antmicro Ltd] * Fix struct redefinition (#4276). [Aleksander Kiryk, Antmicro Ltd] * Fix detection of wire/reg duplicates. * Fix false IMPLICITSTATIC on package functions. * Fix method calls on function return values. Verilator 5.010 2023-04-30 ========================== **Minor:** * Add --public-depth to force public to a certain instance depth (#3952). [Andrew Nolte] * Add --public-params flag (#3990). [Andrew Nolte] * Add CONSTRAINTIGN warning when constraint ignored. * Add STATICVAR warning and convert to automatic (#4018) (#4027) (#4030). [Ryszard Rozak, Antmicro Ltd] * Add error if class types don't match (#4064). [Ryszard Rozak, Antmicro Ltd] * Support class extends of package::class. * Support class srandom and class random stability. * Support class method calls without parenthesis (#3902) (#4082). [Srinivasan Venkataramanan] * Support method calls without parenthesis (#4034). [Ryszard Rozak, Antmicro Ltd] * Support parameterized return types of methods (#4122). [Ryszard Rozak, Antmicro Ltd] * Support parameterized class references in extends statement (#4146). [Ryszard Rozak, Antmicro Ltd] * Support complicated IEEE 'for' assignments. * Support $fopen as an expression. * Support ++/-- on dotted member variables. * Optimize static trigger evaluation (#4142). [Geza Lore, X-EPIC] * Optimize more xor trees (#4071). [Yutetsu TAKATSUKASA] * Change range order warning from LITENDIAN to ASCRANGE (#4010). [Iztok Jeras] * Change ZERODLY to a warning. * Fix random internal crashes (#666). [Dag Lem] * Fix install, standardization in cmake CMakeLists.txt (#3974). [Yu-Sheng Lin] * Fix UNDRIVEN warning seg fault (#3989). [Felix Neumärker] * Fix symbol entries when inheriting classes (#3995) (#3996). [Krzysztof Boroński] * Fix event controls reusing same variable (#4014). Kamil Rakoczy * Fix push to dynamic queue in struct (#4015). [ezchi] * Fix names for blocks in do..while loop (#4019). [Ryszard Rozak, Antmicro Ltd] * Fix randomize on null field (#4023). [Ryszard Rozak, Antmicro Ltd] * Fix rand fields in base classes (#4025). [Ryszard Rozak, Antmicro Ltd] * Fix large return blocks with --comp-limit-blocks (#4028). [tenghtt] * Fix clocking block scope internal error (#4032). [Srinivasan Venkataramanan] * Fix false LATCH warning on --assert 'unique else if' (#4033) ($4054). [Jesse Taube] * Fix characters from DEFENV literals for Conda (#4035) (#4044). [Tim Snyder] * Fix info message prints under --assert (#4036) (#4053). [Srinivasan Venkataramanan] * Fix C++ compile errors when passing class refs as task argument (#4063). [Krzysztof Bieganski, Antmicro Ltd] * Fix NBAs inside fork-joins (#4050). [Aleksander Kiryk, Antmicro Ltd] * Fix task calls as fork statements (#4055). [Krzysztof Bieganski, Antmicro Ltd] * Fix _Vilp used before declaration (#4057) (#4062). [Josep Sans] * Fix incorrect optimization of bit op tree (#4059) (#4070). [Yutetsu TAKATSUKASA] * Fix parameters in a class body to be localparam (#4061). [Ryszard Rozak, Antmicro Ltd] * Fix interface generate begin (#4065). [Srinivasan Venkataramanan] * Fix tracing with awaits at end of block (#4075) (#4076). [Krzysztof Bieganski, Antmicro Ltd] * Fix sense expression variable naming (#4081). [Kamil Rakoczy] * Fix importing symbols from base class (#4084). [Ryszard Rozak, Antmicro Ltd] * Fix false error on new const assignment (#4098). [Tudor Timi] * Fix unpacked structs under classes (#4102). [Tudor Timi] * Fix variables in class methods to be automatic (#4111) (#4137). [Peter Monsson] * Fix to use parallel build for projects with a lot of files (#4116). [Krzysztof Boroński] * Fix including __Syms header in generated C++ files (#4123). [Krzysztof Boroński] * Fix systemc namespace issues (#4126) (#4127). [Eyck Jentzsch] * Fix class param extends A=B (#4128). [Ryszard Rozak, Antmicro Ltd] * Fix missing begin block hierarchy in --xml-only cells section (#4129) (#4133). [Risto Pejašinović] * Fix resolution of class lvalues after parameterization (#4131). [Krzysztof Boroński] * Fix DFG error on $countbits (#4101) (#4143). [Paul Donahue] * Fix duplicating parameter class types (#4115). [Ryszard Rozak, Antmicro Ltd] * Fix class extend param references (#4136). [Ryszard Rozak, Antmicro Ltd] * Fix -CFLAGS to allow overriding optimization levels (#4140). [Peter Monsson] * Fix DPI function type alias (#4148) (#4149). [Toru Niina] * Fix deleting unused parameterized classes (#4150). [Ryszard Rozak, Antmicro Ltd] * Fix false ENUMVALUE on expressions and arrays. * Fix unnecessary verilated_std.sv waivers in --waiver-output. Verilator 5.008 2023-03-04 ========================== **Minor:** * Add --annotate-points option, change multipoint on line reporting (#3876). [Nassim Corteggiani] * Add --verilate-jobs option (#3889). [Kamil Rakoczy, Antmicro Ltd] * Add WIDTHEXPAND and WIDTHTRUNC warnings to replace WIDTH (#3900). [Andrew Nolte] * Add SOURCE_DATE_EPOCH for docs/guide/conf.py (#3918). [Larry Doolittle] * Add /*verilator public[flat|flat_rd|flat_rw| ]*/ metacomments (#3894). [Joseph Nwabueze] * Add lint warning on always_comb multidriven (#3888) (#3939). [Adam Bagley] * Add warning on ++/-- over expressions with potential side effects (#3976). [Krzysztof Boroński] * Add error on mixing .name and by-port instantiations. * Removed deprecated --cdc option. * Support unpacked unions. * Support interface classes and class implements. * Support global clocking and $global_clock. * Support class parameters without initial values. * Support cast to numbers from strings. * Support struct I/O in --lib-create (#3378) (#3892). [Varun Koyyalagunta] * Support function calls without parenthesis (#3903) (#3902). [Ryszard Rozak, Antmicro Ltd] * Support class extending its parameter (#3904). [Ryszard Rozak, Antmicro Ltd] * Support static function variables (#3830). [Ryszard Rozak, Antmicro Ltd] * Support recursive methods (#3987). [Ryszard Rozak, Antmicro Ltd] * Fix real parameters of infinity and NaN. * Fix pattern assignment to unpacked structs (#3510). [Mostafa Garnal] * Fix single-element replication to dynarray/unpacked/queue (#3548). [Gustav Svensk] * Fix constant enum methods (#3621). [Todd Strader] * Fix inconsistent naming of generate scope arrays (#3840). [Andrew Nolte] * Fix namespace fallback resolution (#3863) (#3942). [Aleksander Kiryk, Antmicro Ltd] * Fix std:: to be parsed first (#3864) (#3928). [Aleksander Kiryk, Antmicro Ltd] * Fix cmake warning if multiple SOURCES w/o PREFIX (#3916) (#3927). [Yoda Lee] * Fix parameterized class function linkage (#3917). [Ryszard Rozak] * Fix static members of type aliases of a parameterized class (#3922). [Ryszard Rozak, Antmicro Ltd] * Fix class extend parameter dot case (#3926). [Ryszard Rozak, Antmicro Ltd] * Fix MsWin missing directory exception, and ::std (#3928) (#3933) (#3935). [Kritik Bhimani] * Fix very long VPI signal names (#3929). [Marlon James] * Fix VPI upper interface scopes not found (#3937). [David Stanford] * Fix virus detection false positive (#3944). [Stuart Morris] * Fix constant string function assignment (#3945). [Todd Strader] * Fix constant format field widths (#3946). [Todd Strader] * Fix class field linking when a super classes is a param (#3949). [Ryszard Rozak, Antmicro Ltd] * Fix CMake bad C identifiers (#3948) (#3951). [Zixi Li] * Fix build on HP PA architecture (#3954). [John David Anglin] * Fix date on the front page of verilator.pdf (#3956) (#3957). [Larry Doolittle] * Fix associative arrays declared with ref type (#3960). [Ryszard Rozak, Antmicro Ltd] * Fix missing error on negative replicate (#3963). [Benjamin Menküc] * Fix self references to parameterized classes (#3962). [Ryszard Rozak, Antmicro Ltd] * Fix LITENDIAN warning is backwards (#3966) (#3967). [Cameron Kirk] * Fix subsequent parameter declarations (#3969). [Ryszard Rozak, Antmicro Ltd] * Fix timing delays to not truncate below 64 bits (#3973) (#3982). [Felix Neumärker] * Fix cmake on MacOS to mark weak symbols with -U linker flag (#3978) (#3979). [Peter Debacker] * Fix UNDRIVEN warning seg fault (#3989). [Felix Neumärker] * Fix coverage of class methods (#3998). [Tim Paine] * Fix packed array structure replication. * Fix enum.next(0) and enum.prev(0). Verilator 5.006 2023-01-22 ========================== **Minor:** * Support clocking blocks (#3674). [Krzysztof Bieganski, Antmicro Ltd] * Support unpacked structs (#3802). [Aleksander Kiryk, Antmicro Ltd] * Support Windows-native builds using cmake (#3814). [Kritik Bhimani] * Support p format for UnpackArray (#3877). [Aleksander Kiryk, Antmicro Ltd] * Support property calls without parenthesis (#3879) (#3893). [Ryszard Rozak, Antmicro Ltd] * Support import/export lists in modport (#3886). [Gökçe Aydos] * Support class queue equality (#3895). [Ilya Barkov] * Support type case and type equality comparisons. * Add IMPLICITSTATIC warning when a task/function is implicitly static (#3839). [Ryszard Rozak, Antmicro Ltd] * Add VL_VALUE_STRING_MAX_WORDS override (#3869). [Andrew Nolte] * Optimize expansion of extend operators. * Internal multithreading tests. [Mariusz Glebocki, et al, Antmicro Ltd] * Fix VPI one-time timed callbacks (#2778). [Marlon James, et al] * Fix initiation of function variables (#3815). [Dan Gisselquist] * Fix to zero possibly uninitialized bits in replications (#3815). * Fix crash in DFT due to width use after free (#3817) (#3820). [Jevin Sweval] * Fix signed/unsigned comparison compile warning (#3822). [Kamil Rakoczy] * Fix OS-X weak symbols with -U linker flag (#3823). [Jevin Sweval] * Fix wrong bit op tree optimization (#3824) (#3825). [Yutetsu TAKATSUKASA] * Fix self references when param class instantiated (#3833). [Ryszard Rozak, Antmicro Ltd] * Fix memory leak in V3Sched, etc. (#3834). [Geza Lore] * Fix compatibility with musl libc / Alpine Linux (#3845). [Sören Tempel] * Fix empty case items crash (#3851). [Rich Porter] * Fix VL_CPU_RELAX on MIPS/Armel/s390/sparc (#3843) (#3891). [Kamil Rakoczy] * Fix module parameter name collision (#3854) (#3855). [James Shi] * Fix unpacked array expansion (#3861). [Joey Liu] * Fix signed/unsigned parameter types (#3866). [James Shi] * Fix chain call of abstract class constructor (#3868) (#3883). [Ilya Barkov] * Fix to use same std in Verilator and Verilated compile (#3881). [Kamil Rakoczy, Antmicro Ltd] * Fix foreach unnamedblk duplicate error (#3885). [Ilya Barkov] * Fix elaboration of member selected classes (#3890). [Ilya Barkov] * Fix mismatched widths in DFG (#3872). [Geza Lore, Yike Zhou] * Fix lint for non-integral types in packed structs. * Fix generate case with empty body statements. Verilator 5.004 2022-12-14 ========================== **Major:** * Support named properties (#3667). [Ryszard Rozak, Antmicro Ltd] * Add ENUMVALUE warning when value misused for enum (#726) (#3777) (#3783). * Deprecate --no-threads; use --threads 1 for single threaded (#3703). [Kamil Rakoczy, Antmicro Ltd] **Minor:** * Support std::semaphore and typed std::mailbox (#3708). [Krzysztof Bieganski, Antmicro Ltd] * Support 'with' in unique, unique_index, min, max in queues (#3772). [Ryszard Rozak, Antmicro Ltd] * Support events in VCD/FST traces (#3759). [Yves Mathieu] * Support foreach loops on strings (#3760). [Ryszard Rozak, Antmicro Ltd] * Support member selects in with clauses (#3775). [Ryszard Rozak, Antmicro Ltd] * Support super.new calls (#3789). [Ryszard Rozak, Antmicro Ltd] * Support randcase. * Support pre_randomize and post_randomize. * Support $timeunit and $timeprecision. * Support assignment expressions. * Change ENDLABEL from warning into an error. * Internal AST improvements, also affect XML format (#3721). [Geza Lore] * Deprecate verilated_fst_sc.cpp and verilated_vcd_sc.cpp. * Disable stack size limit (#3706) (#3751). [Mariusz Glebocki] * Add error when use --exe with --lib-create (#3785). [Yinan Xu] * Fix jump handling in do while loops (#3731). [Ryszard Rozak, Antmicro Ltd] * Fix 'with' clause handling in functions (#3739). [Ryszard Rozak, Antmicro Ltd] * Fix CONTEXT compile error on MingW (#3741). [William D. Jones] * Fix MSVC compiler errors (#3742) (#3746). [Kritik Bhimani] * Fix CASEINCOMPLETE when covers all enum values (#3745) (#3782). [Guy-Armand Kamendje] * Fix return type of $countbits functions to int (#3725). [Ryszard Rozak, Antmicro Ltd] * Fix timing control in while-break loops (#3733) (#3769). [Ryszard Rozak, Antmicro Ltd] * Fix return in constructors (#3734). [Ryszard Rozak, Antmicro Ltd] * Fix missing UNUSED warnings with --coverage (#3736). [alejandro-castro-ortegon] * Fix tracing parameters overridden with -G (#3723). [Iztok Jeras] * Fix folding of LogAnd with non-bool operands (#3726). [Geza Lore] * Fix DFG optimization issues (#3740) (#3771). [Geza Lore] * Fix pre/postincrement operations (#3744) (#3756). [Ryszard Rozak, Antmicro Ltd] * Fix cross-compile for MingW, Arm and RISC-V (#3752). [Miodrag Milanović] * Fix $unit as base package for other packages (#3755). [Ryszard Rozak, Antmicro Ltd] * Fix make jobserver with submakes (#3758). [Gus Smith] * Fix to escape VERILATOR_ROOT file paths (#3764) (#3765). [Jiacheng Qian] * Fix empty string literals converting to string types (#3774). [miree] * Fix to remove $date from .vcd files (#3779). [Larry Doolittle] * Fix missing user objects in --lib-create mode (#3780) (#3784). [Yinan Xu] * Fix non-blocking assignments in forks (#3781) (#3800). [Krzysztof Bieganski, Antmicro Ltd] * Fix forks without any delayed statements (#3792) (#3801). [Krzysztof Bieganski, Antmicro Ltd] * Fix internal error in bit op tree optimization (#3793). [Yutetsu TAKATSUKASA] * Fix lint_off EOFNEWLINE in .vlt files (#3796). [Andrew Nolte] * Fix wait 0. * Fix comparing ranged slices of unpacked arrays. Verilator 5.002 2022-10-29 ========================== **Major:** * This is a major new release. * Require C++20 for the new --timing features. Upgrading to a C++20 or newer compiler is strongly recommended. * Support the Active and NBA scheduling regions as defined by the SystemVerilog standard (IEEE 1800-2017 chapter 4). This means all generated clocks are now simulated correctly (#3278, #3384). [Geza Lore, Shunyao CAD] * Support timing controls (delays, event controls in any location, wait statements) and forks. [Krzysztof Bieganski, Antmicro Ltd] This may require adding --timing or --no-timing. See docs for details. * Introduce a new combinational logic optimizer (DFG), that can yield significant performance improvements on some designs. [Geza Lore, Shunyao CAD] * Add --binary option as alias of --main --exe --build --timing (#3625). For designs where C++ was only used to make a simple no-I/O testbench, we recommend abandoning that C++, and instead letting Verilator build it with --binary (or --main). **Minor:** * Split UNUSED warning into genvar, param, and signal warnings (#3607). [Topa Topino] * Support standalone 'this' in classes (#2594) (#3248) (#3675). [Arkadiusz Kozdra, Antmicro Ltd] * Support tristate select/extend (#3604). [Ryszard Rozak, Antmicro Ltd> * Support linting for top module interfaces (#3635). [Kanad Kanhere] * Support virtual interfaces (#3654). [Arkadiusz Kozdra, Antmicro Ltd] * Support class type params without defaults (#3693). [Krzysztof Bieganski, Antmicro Ltd] * Support empty generate_regions (#3695). [mpb27] * Support access to constructs inside type parameters (#3702). [Arkadiusz Kozdra, Antmicro Ltd] * Add --dump-tree-dot to enable dumping Ast Tree .dot files (#3636). [Marcel Chang] * Add --get-supported to determine what features are in Verilator. * Add error on real edge event control. * Fix false LATCH warning on 'unique if' (#3088). [Rachit Nigam] * Fix cell assigning integer array parameters (#3299). [Michael Platzer] * Fix LSB error on --hierarchical submodules (#3539). [danbone] * Fix $display of fixed-width numbers (#3565). [Iztok Jeras] * Fix foreach and pre/post increment in functions (#3613). [Nandu Raj] * Fix linker errors in user-facing timing functions (#3657). [Krzysztof Bieganski, Antmicro Ltd] * Fix null access on optimized-out fork statements (#3658). [Krzysztof Bieganski, Antmicro Ltd] * Fix VPI inline module naming mismatch (#3690) (#3694). [Jiuyang Liu] * Fix deadlock in timeprecision when using SystemC (#3707). [Kamil Rakoczy, Antmicro Ltd] * Fix width mismatch on inside operator (#3714). [Àlex Torregrosa] Verilator 4.228 2022-10-01 ========================== **Announcement:** * The next release is anticipated to premiere Verilator Version 5. Please consider beta-testing the github 'develop-v5' branch, which will soon merge into the github 'master' branch (#3383). **Minor:** * Support some IEEE signal strengths (#3601) (#3629). [Ryszard Rozak, Antmicro Ltd] * Add --main to generate main() C++ (previously was experimental only). * Add --build-jobs, and rework arguments for -j (#3623). [Kamil Rakoczy] * Rename --bin to --build-dep-bin. * Rename debug flags --dumpi-tree, --dumpi-graph, etc. [Geza Lore] * Fix thread safety in SystemC VL_ASSIGN_SBW/WSB (#3494) (#3513). [Mladen Slijepcevic] * Fix crash in gate optimization of circular logic (#3543). [Bill Flynn] * Fix arguments in non-static method call (#3547) (#3582). [Gustav Svensk] * Fix default --mod-prefix when --prefix is repeated (#3603). [Geza Lore] * Fix calling trace() after open() segfault (#3610) (#3627). [Yu-Sheng Lin] * Fix typedef'ed class conversion to Boolean (#3616). [Aleksander Kiryk] * Fix Verilation speed when disabled warnings (#3632). [Kamil Rakoczy, Antmicro Ltd] Verilator 4.226 2022-08-31 ========================== **Minor:** * Add --future0 and --future1 options. * Support class parameters (#2231) (#3541). [Arkadiusz Kozdra, Antmicro Ltd] * Support wildcard index associative arrays (#3501). [Arkadiusz Kozdra, Antmicro Ltd] * Support negated properties (#3572). [Aleksander Kiryk] * Support $test$plusargs(expr) (#3489). * Rename trace rolloverSize() (#3570). * Improve Verilation speed with --threads on large designs. [Geza Lore] * Improve Verilation memory by reducing V3Number (#3521). [Mariusz Glebocki, Antmicro Ltd] * Fix struct pattern assignment (#2328) (#3517). [Mostafa Gamal] * Fix public combo propagation issues (#2905). [Todd Strader] * Fix incorrect tristate logic (#3399) [shareefj, Vighnesh Iyer] * Fix incorrect bit op tree optimization (#3470). [algrobman] * Fix bisonpre for MSYS2 (#3471). * Fix max memory usage (#3483). [Kamil Rakoczy, Antmicro Ltd] * Fix empty string arguments to display (#3484). [Grulfen] * Fix table optimizing away display (#3488). [Stefan Post] * Fix unique_ptr memory header for MinGW64 (#3493). * Fix $dump system task with --output-split-cfuncs (#3495) (#3497). [Varun Koyyalagunta] * Fix wrong bit op tree optimization (#3509). [Nathan Graybeal] * Fix nested default assignment for struct pattern (#3511) (#3524). [Mostafa Gamal] * Fix sformat string incorrectly cleared (#3515) (#3519). [Gustav Svensk] * Fix segfault exporting non-existent package (#3535). * Fix void-cast queue pop_front or pop_back (#3542) (#3364). [Drew Ranck] * Fix case statement comparing string literal (#3544). [Gustav Svensk] * Fix === with some tristate constants (#3551). [Ryszard Rozak, Antmicro Ltd] * Fix converting classes to string (#3552). [Arkadiusz Kozdra, Antmicro Ltd] * Fix --hierarchical with order-based pin connections (#3583) (#3585). [Kelin9298] Verilator 4.224 2022-06-19 ========================== **Major:** * VCD tracing is now parallelized with --threads (#3449). [Geza Lore, Shunyao CAD] **Minor:** * Add -f options to replace -O options (#3436). * Changed --no-merge-const-pool to -fno-merge-const-pool (#3436). * Changed --no-decoration to remove output whitespace (#3460). [Kamil Rakoczy] * Support compile time trace signal selection with tracing_on/off (#3323). [Shunyao CAD] * Support non-ANSI interface port declarations (#3439). [Geza Lore, Shunyao CAD] * Support concat assignment to packed array (#3446). * Improve conditional merging optimization (#3125). [Geza Lore, Shunyao CAD] * Define VM_TRACE_VCD when tracing in VCD format. [Geza Lore, Shunyao CAD] * Add assert when VerilatedContext is mis-deleted (#3121). [Rupert Swarbrick] * Internal prep work towards timing control. [Krzysztof Bieganski, Antmicro Ltd] * Fix hang with large case statement optimization (#3405). [Mike Urbach] * Fix UNOPTFLAT warning from initial static var (#3406). [Kamil Rakoczy] * Fix compile error when enable VL_LEAK_CHECKS (#3411). [HungMingWu] * Fix cmake rules to support higher-level targets (#3377) (#3386). [Martin Stadler] * Fix BLKANDNBLK on $readmem/$writemem (#3379). [Alex Solomatnikov] * Fix 'with' operator with type casting (#3387). [xiak95] * Fix incorrect conditional merging (#3409). [Raynard Qiao] * Fix passing VL_TRACE_FST_WRITER_THREAD in CMake build. [Geza Lore, Shunyao CAD] * Fix compile error under strict C++11 mode (#3463). [Kevin Kiningham] * Fix public unpacked input ports (#3465). [Todd Strader] Verilator 4.222 2022-05-02 ========================== **Minor:** * Split --prof-threads into --prof-exec and --prof-pgo (#3365). [Geza Lore, Shunyao CAD] * Deprecate 'vluint64_t' and similar types (#3255). * Raise error on assignment to const in initial blocks. [Geza Lore, Shunyao CAD] * Issue INITIALDLY/COMBDLY/BLKSEQ warnings consistent with Verilator execution. [Geza Lore, Shunyao CAD] * Support LoongArch ISA multithreading (#3353) (#3354). [Xi Zhang] * Fix MSVC localtime_s (#3124). * Fix Bison 3.8.2 error (#3366). [elike-ypq] * Fix rare bug in -Oz (V3Localize) (#3286). [Geza Lore, Shunyao CAD] * Fix tracing interfaces inside interfaces (#3309). [Kevin Millis] * Fix filenames with dots overwriting debug .vpp files (#3373). * Fix including VK_USER_OBJS in make library (#3370) (#3382). [Julien Margetts] * Fix hang in generate symbol references (#3391) (#3398). [Yoda Lee] * Fix missing #include (#3392). [Aliaksei Chapyzhenka] * Fix crash in recursive module inlining (#3393). [david-sawatzke] * Fix --protect-ids mangling names of library methods. [Geza Lore, Shunyao CAD] * Fix foreach segmentation fault (#3400). [Kamil Rakoczy] Verilator 4.220 2022-03-12 ========================== **Minor:** * Removed the deprecated lint_off flag -msg; use -rule instead. * Removed the deprecated "fl" attribute in XML output; use "loc" attribute instead. * Suppress WIDTH warning on negate using carry bit (#3295). [Peter Monsson] * Add trace dumpvars() call for selective runtime tracing (#3322). [Shunyao CAD] * Add VERILATOR_VERSION_INTEGER for determining API (#3343). [Larry Doolittle] * Improve various V3Combine algorithm details (#3328). [Yutetsu TAKATSUKASA] * Improve various V3Order algorithm details. [Geza Lore] * Fix MacOS arm64 build (#3285) (#3291). [Guokai Chen] * Fix signed number operation (#3294) (#3308). [Raynard Qiao] * Fix FST traces to include vector range (#3296) (#3297). [Jamie Iles] * Fix skipping public enum values with four-state values (#3303). * Fix $readmem file not found to be warning not error (#3310). [Alexander Grobman] * Fix class stringification on wide arrays (#3312). [Iru Cai] * Fix $fscanf etc to return -1 on EOF (#3313). [Jose Tejada] * Fix public function arguments that are arrayed (#3316). [pawel256] * Fix unnamedblk error on foreach (#3321). [Aliaksei Chapyzhenka] * Fix crash in recursive module inlining (#3324). [Larry Doolittle] * Fix VL_RESTORER behavior on passing a lvalue reference (#3326). [HungMingWu] * Fix compile error with --trace-fst --sc (#3332). [leavinel] * Fix cast to array types (#3333). [Todd Strader] * Fix Vdeeptemp error with --threads and --compiler clang (#3338). [Per Karlsson] Verilator 4.218 2022-01-17 ========================== **Major:** * Primary inputs and outputs (VL_INW/VL_OUTW) now use VlWide type. In general this should be backward compatible, but may lead to some wrapper code needing changes. * Option --cdc is deprecated and is planned for removal, file a bug if this is still being used. **Minor:** * Support class static members (#2233). * Support force/release (#2431) (#2593). [Shunyao CAD] * Add 'forceable' attribute to allow forcing from C++ (#3272). [Geza Lore, Shunyao CAD] * Support lower dimension looping in foreach loops (#3172). [Ehab Ibrahim] * Support up to 64 bit enums for .next/.prev/.name (#3244). [Alexander Grobman] * Reduce .rodata footprint of trace initialization (#3250). [Geza Lore, Shunyao CAD] * Support FST tracing in hierarchical Verilation (#3251). [Yutetsu TAKATSUKASA] * Use C++11 standard types for MacOS portability (#3254) (#3257). [Adrien Le Masle] * Fix make support for BSD ar (#2999) (#3256). [Julie Schwartz] * Fix bad ending address on $readmem (#3205). [Julie Schwartz] * Fix MSWIN compile error (#2681). [Unai Martinez-Corral] * Fix break under foreach loop (#3230). * Fix VL_STREAML_FAST_QQI with 64 bit left-hand-side (#3232) (#3235). [Adrien Le Masle] * Fix $sformat of inputs/outputs (#3236). [Adrien Le Masle] * Fix associative array first method as statement (#3228). [Adrien Le Masle] * Fix associative array foreach loop (#3229). * Fix $fclose not accepting expressions (#3237). [Julie Schwartz] * Fix $random not updating seed (#3238). [Julie Schwartz] * Fix top level param overwrite when package has same param (#3241) (#3247). [Adrien Le Masle] * Fix spurious UNUSED by ignoring inout pin connections (#3242). [Julie Schwartz] * Fix splitting of _eval and other top level functions. [Geza Lore, Shunyao CAD] * Fix internal error by inout port (#3258). [Yutetsu TAKATSUKASA] * Fix GCC 11 compile error (#3273). [HungMingWu] Verilator 4.216 2021-12-05 ========================== **Major:** * Add --lib-create, similar to --protect-lib but without protections. * Support tracing through --hierarchical/--lib-create libraries (#3200). **Minor:** * Internal code cleanups and improvements. [Geza Lore] * Improve --thread Verilation-time performance. * Support task name in $display %m (#3211). [Julie Schwartz] * Make 'bit', 'logic' and 'time' types unsigned by default. [Geza Lore] * Optimize $random concatenates/selects (#3114). * Fix array method names with parenthesis (#3181) (#3183). [Teng Huang] * Fix split_var assign merging (#3177) (#3179). [Yutetsu TAKATSUKASA] * Fix wrong bit op tree optimization (#3185). [Yutetsu TAKATSUKASA] * Fix some SliceSels not being constants (#3186) (#3218). [Michaël Lefebvre] * Fix nested generate if genblk naming (#3189). [yanx21] * Fix hang on recursive definition error (#3199). [Jonathan Kimmitt] * Fix display of signed without format (#3204). [Julie Schwartz] * Fix display of empty string constant (#3207) (#3215). [Julie Schwartz] * Fix incorrect width after and-or optimization (#3208). [Julie Schwartz] * Fix $fopen etc on integer arrays (#3214). [adrienlemasle] * Fix $size on dynamic strings (#3216). * Fix %0 format on $value$plusargs (#3217). * Fix timescale portability on Arm64 (#3222). Verilator 4.214 2021-10-17 ========================== **Major:** * Add profile-guided optimization of mtasks (#3150). **Minor:** * Verilator_gantt has removed the ASCII graphics, use the VCD output instead. * Verilator_gantt now shows the predicted mtask times, eval times, and additional statistics. * Verilator_gantt data files now include processor information, to allow later processing. * Support displaying x and z in $display task (#3107) (#3109). [Iru Cai] * Fix verilator_profcfunc profile accounting (#3115). * Fix display has no time units on class function (#3116). [Damien Pretet] * Fix removing if statement with side effect in condition (#3131). [Alexander Grobman] * Fix --waiver-output for multiline warnings (#2429) (#3141). [Keith Colbert] * Fix internal error on bad widths (#3140) (#3145). [Zhanglei Wang] * Fix crash on clang 12/13 (#3148). [Kuoping Hsu] * Fix cygwin compile error due to missing -std=gnu++14 (#3149). [Sun Kim] * Fix $urandom_range when the range is 0 ... UINT_MAX (#3161). [Iru Cai] * Fix constructor-parameter argument comma-separation in C++ (#3162). [Matthew Ballance] * Fix missing install of vl_file_copy/vl_hier_graph (#3165). [Popolon] * Fix calling new with arguments in same class (#3166). [Matthew Ballance] * Fix false EOFNEWLINE warning when DOS carriage returns present (#3171). Verilator 4.212 2021-09-01 ========================== **Minor:** * Fix re-evaluation of logic dependent on state set in DPI exports (#3091). [Geza Lore] * Support unpacked array localparams in tasks/functions (#3078). [Geza Lore] * Support timeunit/timeprecision in $unit. * Support assignment patterns as children of pins (#3041). [Krzysztof Bieganski, Antmicro Ltd] * Add --instr-count-dpi to tune assumed DPI import cost for multithreaded model scheduling. Default value changed to 200 (#3068). [Yinan Xu] * Output files are split based on the set of headers required in order to aid incremental compilation via ccache (#3071). [Geza Lore] * Parameter values are now emitted as 'static constexpr' instead of enum. C++ direct references to parameters might require updating (#3077). [Geza Lore] * Refactored Verilated include files; include verilated.h not verilated_heavy.h. * Add header guards on Dpi.h generated files (#2979). [Tood Strader] * Add XML ccall, constpool, initarray, and if/while begins (#3080). [Steven Hugg] * Add error when constant function under a generate (#3103). [Don Owen] * Fix -G to treat simple integer literals as signed (#3060). [Anikin1610] * Fix emitted string array initializers (#2895). [Iztok Jeras] * Fix bitop tree optimization dropping necessary & operator (#3096). [Flavien Solt] * Fix internal error on wide -x-initial unique (#3106). [Alexandre Joannou] * Fix traces to show array instances with brackets (#3092) (#3095). [Pieter Kapsenberg] Verilator 4.210 2021-07-07 ========================== **Major:** * Generated code is now emitted as global functions rather than methods. '$c' contents might need to be updated, see the docs (#3006). [Geza Lore] * The generated model class instantiated by the user is now an interface object and no longer the TOP module instance. User code with direct C++ member access to model internals, including verilator public_flat items will likely need to be updated. See the manual for instructions: https://verilator.org/guide/latest/connecting.html#porting-from-pre-4-210 (#3036). [Geza Lore] **Minor:** * Add --prof-c to pass profiling to compiler (#3059). [Alexander Grobman] * Optimize a lot more model variables into function locals (#3027). [Geza Lore] * Support middle-of-design nested top modules (#3026). [Dan Petrisko] * Remove deprecated --no-relative-cfuncs option (#3024). [Geza Lore] * Remove deprecated --inhibit-sim option (#3035). [Geza Lore] * Merge const static data globally into a new constant pool (#3013). [Geza Lore] * Allow configure override of AR program (#2999). [ahouska] * In XML, show pinIndex information (#2877). [errae233] * Fix error on unsupported recursive functions (#2957). [Trefor Southwell] * Fix type parameter specialization when struct names are same (#3055). [7FM] * Improve speed of table optimization (-OA) pass. [Geza Lore] Verilator 4.204 2021-06-12 ========================== **Minor:** * Add 'make ccache-report' (#3011). [Geza Lore] * Add --reloop-limit argument (#2943) (#2960). [Geza Lore] * Add --expand-limit argument (#3005). [Julien Margetts] * Add TRACE_THREADS to CMake (#2934). [Jonathan Drolet] * Optimize large lookup tables to static data (#2925). [Geza Lore] * Optimize reloop to accept constant index offsets (#2939). [Geza Lore] * Split always blocks to better respect --output-split-cfuncs. [Geza Lore] * Support ignoring "`pragma protect ..." (#2886). [Udi Finkelstein] * Support --trace-fst for SystemC with CMake (#2927). [Jonathan Drolet] * Update cmake latest C++ Standard Compilation flag (#2951). [Ameya Vikram Singh] * Prep work towards better ccache hashing/performance. [Geza Lore] * Fix assertion failure in bitOpTree optimization (#2891) (#2899). [Raynard Qiao] * Fix DPI functions not seen as vpiModule (#2893). [Todd Strader] * Fix bounds check in VL_SEL_IWII (#2910). [Krzysztof Bieganski, Antmicro Ltd] * Fix slowdown in elaboration (#2911). [Nathan Graybeal] * Fix initialization of assoc in assoc array (#2914). [myftptoyman] * Fix make support for gmake 3.x (#2920) (#2921). [Philipp Wagner] * Fix VPI memory access for packed arrays (#2922). [Todd Strader] * Fix MCD close also closing stdout (#2931). [Alexander Grobman] * Fix split procedures to better respect --output-split-cfuncs (#2942). [Geza Lore] * Fix to emit 'else if' without nesting (#2944). [Geza Lore] * Fix part select issues in LATCH warning (#2948) (#2938). [Julien Margetts] * Fix to not emit empty files with low split limits (#2961). [Geza Lore] * Fix merging of assignments in C++ code (#2970). [Rupert Swarbrick] * Fix unused variable warnings (#2991). [Pieter Kapsenberg] * Fix --protect-ids when using SV classes (#2994). [Geza Lore] * Fix constant function calls with uninitialized value (#2995). [yanx21] * Fix Makefiles to support Windows EXEEXT usage (#3008). [Miodrag Milanovic] Verilator 4.202 2021-04-24 ========================== **Major:** * Documentation has been rewritten into a book format. * Verilated signals now use VlWide and VlPacked in place of C arrays. **Minor:** * Add an URL on warnings to point to the manual's description. * Add EOFNEWLINE warning when missing a newline at EOF. * Changed TIMESCALEMOD from error into a warning. * Mark --no-relative-cfuncs as scheduled for deprecation. * Add --coverage-max-width (#2853). [xuejiazidi] * Add VerilatedCovContext::forcePerInstance (#2793). [Kevin Laeufer] * Add FST SystemC tracing (#2806). [Àlex Torregrosa] * Add PINNOTFOUND warning in place of error (#2868). [Udi Finkelstein] * Support overlaps in priority case statements (#2864). [Rupert Swarbrick] * Support for null ports (#2875). [Udi Finkelstein] * Fix class unpacked-array compile error (#2774). [Iru Cai] * Fix scope types in FST and VCD traces (#2805). [Àlex Torregrosa] * Fix exceeding command-line ar limit (#2834). [Yinan Xu] * Fix false $dumpfile warning on model save (#2834). [Yinan Xu] * Fix --timescale-override not suppressing TIMESCALEMOD (#2838). [Kaleb Barrett] * Fix false TIMESCALEMOD on generate-ignored instances (#2838). [Kaleb Barrett] * Fix --output-split with class extends (#2839). [Iru Cai] * Fix false WIDTHCONCAT on casted constant (#2849). [Rupert Swarbrick] * Fix tracing of long hashed names (#2854). [Graham Rushton] * Fix --public-flat-rw / DPI issue (#2858). [Todd Strader] * Fix interface localparam access (#2859). [Todd Strader] * Fix Cygwin example compile issues (#2856). [Mark Shaw] * Fix select of with index variable (#2880). [Alexander Grobman] * Fix cmake version number to be numeric (#2881). [Yuri Victorovich] * Fix MinGW not supporting 'localtime_r' (#2882). [HyungKi Jeong] * Fix cast from packed, typedef'ed interface signal (#2884). [Todd Strader] * Fix VPI package reported as vpiModule (#2885). [Todd Strader] * Fix dumping waveforms to multiple FST files (#2889). [David Metz] * Fix assertion failure in bitOpTree (#2892). [Yutetsu TAKATSUKASA] * Fix V3Premit infinite loop on always read-and-write (#2898). [Raynard Qiao] * Fix VPI packed vectors (#2900). [Todd Strader] * Fix VPI public interface parameters (#2901). [Todd Strader] Verilator 4.200 2021-03-12 ========================== **Announcement:** * --inhibit-sim is planned for deprecation, file a bug if this is still being used. **Major:** * Add simulation context (VerilatedContext) to allow multiple fully independent models to be in the same process. Please see the updated examples (#2660). * Add context->time() and context->timeInc() API calls, to set simulation time. These now are recommended in place of the legacy sc_time_stamp(). **Minor:** * Converted Asciidoc documentation into reStructuredText (RST) format. * Fix range inheritance on port without data type (#2753). [Embedded Go] * Fix slice-assign overflow (#2803) (#2811). [David Turner] * Fix interface array connection ordering broken in v4.110 (#2827). [Don Owen] * Fix or-reduction on different scopes broken in 4.110 (#2828). [Yinan Xu] * Fix MSVC++ compile error (#2831) (#2833). [Drew Taussig] Verilator 4.110 2021-02-25 ========================== **Major:** * Optimize bit operations and others (#2186) (#2632) (#2633) (#2751) (#2800) [Yutetsu TAKATSUKASA] **Minor:** * Support concat selection (#2721). * Support struct scopes when dumping structs to VCD (#2776) [Àlex Torregrosa] * Generate SELRANGE for potentially unreachable code (#2625) (#2754) [Pierre-Henri Horrein] * For --flatten, override inlining of public and no_inline modules (#2761) [James Hanlon] * Fix little endian interface pin swizzling (#2475). [Don Owen] * Fix range inheritance on port without data type (#2753). [Embedded Go] * Fix TIMESCALE warnings on primitives (#2763). [Xuanqi] * Fix to exclude strings from toggle coverage (#2766) (#2767) [Paul Wright] * Fix $fread extra semicolon inside statements. [Leendert van Doorn] * Fix class extends with VM_PARALLEL_BUILDS (#2775). [Iru Cai] * Fix shifts by > 32 bit values (#2785). [qrq992] * Fix examples not flushing vcd (#2787). [Richard E George] * Fix little endian packed array pattern assignment (#2795). [Àlex Torregrosa] Verilator 4.108 2021-01-10 ========================== **Major:** * Many VPI changes for IEEE compatibility, which may alter behavior from previous releases. * Support randomize() class method and rand (#2607). [Krzysztof Bieganski, Antmicro Ltd] **Minor:** * Support $cast and new CASTCONST warning. * Add --top option as alias of --top-module. * Add LATCH and NOLATCH warnings (#1609) (#2740). [Julien Margetts] * Remove Unix::Processors internal test dependency. * Report UNUSED on parameters, localparam and genvars (#2627). [Charles Eric LaForest] * Add error on real to non-real output pins (#2690). [Peter Monsson] * Support package imports before parameters in interfaces (#2714). [James Hanlon] * Support --sanitize in internal tests (#2705). [Yutetsu TAKATSUKASA] * Fix passing parameter type instantiations by position number. * Fix DPI open array handling issues. * Fix error when dotted refers to missing module (#2095). [Alexander Grobman] * Fix little endian packed array counting (#2499). [phantom-killua] * Fix showing reference locations for BLKANDNBLK (#2170). [Yuri Victorovich] * Fix genblk naming to match IEEE (#2686). [tinshark] * Fix VPI memory word indexing (#2695). [Marlon James] * Fix vpiLeftRange on little-endian memories (#2696). [Marlon James] * Fix VPI module tree (#2704). [Todd Strader] * Fix vpi_release_handle to be called implicitly per IEEE (#2706). * Fix to allow inheriting 'VerilatedVcdFile' class (#2720). [HyungKi Jeong] * Fix $urandom_range maximum value (#2723). [Nandu Raj] * Fix tracing empty sc module (#2729). * Fix generate for unrolling to be signed (#2730). [yanx21] * Fix to emit timescale in hierarchical blocks (#2735). [Yutetsu TAKATSUKASA] * Fix to ignore coverage on real ports (#2741) (#2745). [Paul Wright] Verilator 4.106 2020-12-02 ========================== **Major:** * Change -sv option to select 1800-2017 instead of 1800-2005. **Minor:** * Check for proper 'local' and 'protected' (#2228). * Support $random and $urandom seeds. * Support $monitor and $strobe. * Support complex function arguments. * Support 'super'. * Support 'with item.index'. * Fix the default GNU Make executable name on FreeBSD (#2553). [Yuri Victorovich] * Fix trace signal names getting hashed (#2643). [Barbara Gigerl] * Fix unpacked array parameters near functions (#2639). [Anderson Ignacio da Silva] * Fix access to non-overridden base class variable (#2654). [Tobias Rosenkranz] Verilator 4.104 2020-11-14 ========================== **Minor:** * Support queue and associative array 'with' statements (#2616). * Support queue slicing (#2326). * Support associative array pattern assignments and defaults. * Support static methods and typedefs in classes (#2615). [Krzysztof Bieganski, Antmicro Ltd] * Add error on typedef referencing self (#2539). [Cody Piersall] * With --debug, turn off address space layout randomization. * Fix iteration over mutating list bug in VPI (#2588). [Kaleb Barrett] * Fix cast width propagation (#2597). [flex-liu] * Fix return from callValueCbs (#2589) (#2605). [Marlon James] * Fix WIDTH warnings on comparisons with nullptr (#2602). [Rupert Swarbrick] * Fix fault when $fgets, $sscanf, etc used with string (#2604). [Yutetsu TAKATSUKASA] * Fix WIFEXITED missing from MinGW/MSYS2 (#2609). [Jean Berniolles] * Fix queue poping wrong value when otherwise unused (#2512). [nanduraj1] * Fix arrays of modport interfaces (#2614). [Thierry Tambe] * Fix split_var internal error (#2640) (#2641). [Yutetsu TAKATSUKASA] Verilator 4.102 2020-10-15 ========================== **Minor:** * Support const object new() assignments. * Support # as a comment in -f files (#2497). [phantom-killua] * Support 'this' (#2585). [Rafal Kapuscik] * Support defines for FST tracing (#2592). [Markus Krause] * Support non-overlapping implication inside properties (#1292). [Peter Monsson] * Fix timescale with --hierarchical (#2554). [Yutetsu TAKATSUKASA] * Fix cmake build with --hierarchical (#2560). [Yutetsu TAKATSUKASA] * Fix -G dropping public indication (#2561). [Andrew Goessling] * Fix $urandom_range passed variable (#2563). [nanduraj1] * Fix method calls to package class functions (#2565). [Peter Monsson] * Fix class wide member display (#2567). [Nandu Raj P] * Fix hierarchical references inside function (#2267) (#2572). [James Pallister] * Fix flushCall for backward compatibility (#2580). [chenguokai] * Fix preprocessor stringify of undefined macro. [Martin Whitaker] @ text @$NetBSD$ * Use gmake from pkgsrc. --- src/V3Options.cpp.orig 2025-12-18 08:45:06.787694634 +0000 +++ src/V3Options.cpp @@@@ -734,11 +734,7 @@@@ string V3Options::getenvBuiltins(const s } } -#ifdef __FreeBSD__ string V3Options::getenvMAKE() { return V3Os::getenvStr("MAKE", "gmake"); } -#else -string V3Options::getenvMAKE() { return V3Os::getenvStr("MAKE", "make"); } -#endif string V3Options::getenvMAKEFLAGS() { // return V3Os::getenvStr("MAKEFLAGS", ""); @