always @ (RSTDAC_B or EN or DSR or DSR_B )
begin
if (RSTDAC_B === 1'b0) begin stepp = 1'b0; stepn = 1'b0; end
else if (RSTDAC_B === 1'b1) begin
if (EN & DSR === 1'b1) begin stepn = 1'b1;end
else if (EN & DSR_B === 1'b1) begin stepp = 1'b1;end
end
end
The code above is from a Dynamic Register Module instantiated 8 times in the design. The intention is that when EN(able) is high then either stepp or stepn is high depending on if DSR or DSR_B is high. I am seeing that when DSR_B goes high, stepp and stepn BOTH go high in 6 out of 8 instances. In 2 instances, the design behaves as intended and only stepp goes high when EN & DSR_B are high.
I have seen this happen on multiple tools so I don't think its the tool's fault. Thanks