# Before: self.fsm.act('IDLE', port.source.connect(port.sink, omit = {'last', 'last_be'}), If(port.source.valid & port.source.ready & port.source.first & (port.source.data == self.addr), NextState('OUTPUT'), ).Else( port.sink.last.eq(port.source.last), port.sink.last_be.eq(port.source.last_be), ), ) # After: self.fsm.act('IDLE', port.source.connect(port.sink, omit = {'last', 'last_be'}), If(port.source.first & (port.source.data == self.addr), If(port.source.valid & port.source.ready , NextState('OUTPUT'), ), ).Else( port.sink.last.eq(port.source.last), port.sink.last_be.eq(port.source.last_be), ), )