def addc(i1, i2, carry): return (Cat(C(1), i1) + Cat(carry, i2))[1:] def prefetch(self, m): m.d.comb += [self.a.eq(self.r_pc), self.rw.eq(1), self.sync.eq(0)] m.d.phi2 += self.r_pc.eq(self.r_pc + 1) with m.If(~self.irq | ~self.nmi | self.nmi_pending): m.d.phi2 += self.ir.eq(0x00) m.d.phi2 += self.irq_taken.eq(1) with m.Else(): m.d.phi2 += self.ir.eq(self.di) m.d.phi2 += self.step.eq(0)