mirror of https://github.com/YosysHQ/yosys.git
Fix setting bits of parameters in setundef pass
This commit also adds test that verifies correctness of this change.
This commit is contained in:
parent
cef87cc179
commit
8e508f2a2a
|
@ -243,7 +243,7 @@ struct SetundefPass : public Pass {
|
|||
{
|
||||
for (auto *cell : module->selected_cells()) {
|
||||
for (auto ¶meter : cell->parameters) {
|
||||
for (auto bit : parameter.second) {
|
||||
for (auto &bit : parameter.second.bits()) {
|
||||
if (bit > RTLIL::State::S1)
|
||||
bit = worker.next_bit();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
module foo #(parameter [1:0] a) (output [1:0] o);
|
||||
assign o = a;
|
||||
endmodule
|
||||
|
||||
module top(output [1:0] o);
|
||||
foo #(2'b0x) foo(o);
|
||||
always_comb begin
|
||||
assert(o == 2'b00);
|
||||
end
|
||||
endmodule
|
|
@ -0,0 +1,8 @@
|
|||
read_verilog -sv setundef.sv
|
||||
setundef -zero -params
|
||||
hierarchy -top top
|
||||
flatten
|
||||
proc
|
||||
async2sync
|
||||
write_json
|
||||
sat -seq 5 -prove-asserts
|
Loading…
Reference in New Issue