While I'm writing that here is another question Consider this: ``` helper_bit = Signal() m.d.comb += helper_bit.eq(something1|something2^something3) # Exact value unimportant with m.If(strobe): m.d.sync += output_value.eq( ~helper_bit ) ``` Vs this: ``` with m.If(strobe): helper_bit = Signal() m.d.comb += helper_bit.eq(something1|something2^something3) # Exact value unimportant m.d.sync += output_value.eq( ~helper_bit ) ``` From Amaranth's perspective is there a reason to prefer one over the other? From a coding perspective the second is cleaner But I think it might be selectively wiring that m.d.comb to only apply when strobe is high, which is unnecessary and might waste resources