mirror of
https://github.com/YosysHQ/yosys
synced 2025-09-02 00:00:44 +00:00
sv: auto add nosync to certain always_comb local vars
If a local variable is always assigned before it is used, then adding nosync prevents latches from being needlessly generated.
This commit is contained in:
parent
828e85068f
commit
aa35f24290
10 changed files with 265 additions and 0 deletions
17
tests/verilog/always_comb_latch_4.ys
Normal file
17
tests/verilog/always_comb_latch_4.ys
Normal file
|
@ -0,0 +1,17 @@
|
|||
read_verilog -sv <<EOF
|
||||
module top;
|
||||
parameter AVOID_LATCH = 0;
|
||||
logic x, z;
|
||||
assign z = 1'b1;
|
||||
always_comb begin
|
||||
logic y;
|
||||
if (z)
|
||||
y = 0;
|
||||
for (int i = 1; i == AVOID_LATCH; i++)
|
||||
y = 1;
|
||||
x = z ? y : 1'b0;
|
||||
end
|
||||
endmodule
|
||||
EOF
|
||||
logger -expect error "^Latch inferred for signal `\\top\.\$unnamed_block\$3\.y' from always_comb process" 1
|
||||
proc
|
Loading…
Add table
Add a link
Reference in a new issue