op = Signal()
on = Signal()
m.d.pos += op.eq(i0 ^ on)
m.d.neg += on.eq(i1 ^ op)
m.d.comb += out.eq(op ^ on)