Commentary: Changes update

This commit is contained in:
Wilson Snyder 2026-04-03 20:16:23 -04:00
parent 00bf59ac92
commit de8d3c9356
5 changed files with 26 additions and 12 deletions

View File

@ -65,7 +65,9 @@ Verilator 5.047 devel
* Optimize DFG peephole until a fixed point (#7309). [Geza Lore, Testorrent USA, Inc.]
* Optimize comparisons with identical operands and $countones in DFG. [Geza Lore, Testorrent USA, Inc.]
* Optimize more patterns in DfgPeephole (#7332). [Geza Lore, Testorrent USA, Inc.]
* Optimize read references in DFG (#7354). [Geza Lore, Testorrent USA, Inc.]
* Fix recursive default assignment for sub-arrays (#4589) (#7202). [Julian Carrier]
* Fix virtual interface member trigger convergence (#5116) (#7323). [Yilou Wang]
* Fix shift width mismatch in constraint solver SMT emission (#5420) (#7265). [Yilou Wang]
* Fix randomize size+element queue constraints (#5582) (#7225). [Rahul Behl, Testorrent USA, Inc.]
* Fix null assignment to virtual interfaces (#5974) (#5990). [Maxim Fonarev]
@ -85,9 +87,11 @@ Verilator 5.047 devel
* Fix wide conditional short circuiting (#7155).
* Fix eliminating assignments to DPI-read variables (#7158). [Geza Lore, Testorrent USA, Inc.]
* Fix std::randomize() in static function with static class members (#7167) (#7169). [Yilou Wang]
* Fix resolving default/non-default type parameters (#7171) (#7346). [em2machine]
* Fix recursive constant function in $unit scope (#7173) (#7174).
* Fix class extend references between queues (#7195).
* Fix library/hier_block tracing when top name is empty (#7200). [Geza Lore, Testorrent USA, Inc.]
* Fix virtual interface select from sub-interface instance (#7203) (#7370) (#7203). [Yilou Wang]
* Fix VPI force of bit-selected signals (#7211) (#7301). [Christian Hecken]
* Fix wrong $bits() for parameterized interface struct typedefs (#7218) (#7219). [em2machine]
* Fix `dist` operator inside constraint if blocks (#7221) (#7224). [Rahul Behl, Testorrent USA, Inc.]
@ -96,6 +100,7 @@ Verilator 5.047 devel
* Fix internal error when derived class calls this.randomize() with inherited rand members (#7229) (#7234). [Yilou Wang]
* Fix enum range constraints missing for rand variables in sub-objects (#7230) (#7235). [Yilou Wang]
* Fix vpi_put_value release on non-continuous signal (#7231) (#7241). [Christian Hecken]
* Fix functions in generate block resulting in 'Broken link in node' (#7236) (#7367). [em2machine]
* Fix tracing of typedefed 1D packed arrays with --trace-structs (#7237). [Geza Lore, Testorrent USA, Inc.]
* Fix rand variable used as array index in constraint evaluated as constant (#7238) (#7247). [Yilou Wang]
* Fix --hierarchical dropping arguments in -f/-F files (#7240). [Clara Sparks]
@ -113,6 +118,10 @@ Verilator 5.047 devel
* Fix lost `$stop` on implied assertion `$error` failures.
* Fix wait() hang when interface uses process calls and VIF function (#7342). [Yilou Wang]
* Fix error on illegal nand/nor binary operators (#7353).
* Fix simple array assignment unrolling in slice optimization (#7359). [Geza Lore, Testorrent USA, Inc.]
* Fix missing temporary for DfgSplicePacked (#7361). [Geza Lore, Testorrent USA, Inc.]
* Fix virtual interface function calls binding to wrong instance (#7363). [Yilou Wang]
* Fix false ASSIGNIN on interface input port connections (#7365). [Yilou Wang]
Verilator 5.046 2026-02-28

View File

@ -8,16 +8,20 @@
// SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
package p;
class W #(type T = int);
class W #(
type T = int
);
T v;
endclass
class Holder #(type U = W#());
class Holder #(
type U = W#()
);
U u;
endclass
typedef Holder#() H_imp_t; // implicit default
typedef Holder#(W#(int)) H_exp_t; // explicit equivalent default
typedef Holder#() H_imp_t; // implicit default
typedef Holder#(W#(int)) H_exp_t; // explicit equivalent default
endpackage
module t;
@ -29,8 +33,8 @@ module t;
// verilator lint_off CASTCONST
// verilator lint_off WIDTHTRUNC
if (!$cast(exp, imp)) begin
// verilator lint_on WIDTHTRUNC
// verilator lint_on CASTCONST
// verilator lint_on WIDTHTRUNC
// verilator lint_on CASTCONST
$display("WRONG_TYPE");
$fatal;
end

View File

@ -11,13 +11,14 @@
// SPDX-FileCopyrightText: 2026 Wilson Snyder
// SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
module t(/*AUTOARG*/);
module t ( /*AUTOARG*/);
generate
if (1) begin : defs
function automatic logic foo;
foo = 1'b1;
endfunction
end else begin : defs
end
else begin : defs
function automatic logic foo;
foo = 1'b0;
endfunction

View File

@ -6,7 +6,7 @@
interface my_if;
logic clk = 0;
bit clk_active = 0;
bit clk_active = 0;
initial begin
wait (clk_active);
@ -27,8 +27,8 @@ class Driver;
endclass
module t;
my_if intf();
my_if intf_unused(); // Second instance triggered the bug
my_if intf ();
my_if intf_unused (); // Second instance triggered the bug
initial begin
automatic Driver d = new;

View File

@ -9,7 +9,7 @@ interface str_if;
endinterface
module t;
str_if sif();
str_if sif ();
virtual str_if vif = sif;
initial begin