self.b = FPNumIn(None, width)
self.z = FPNumOut(width, False)
self.out_do_z = Signal(reset_less=True)
+ self.oz = Signal(width, reset_less=True)
self.mid = Signal(id_wid, reset_less=True)
def eq(self, i):
- return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z),
+ return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z), self.oz.eq(i.oz),
self.a.eq(i.a), self.b.eq(i.b), self.mid.eq(i.mid)]
m.d.comb += self.o.mid.eq(self.i.mid)
m.d.comb += self.o.z.eq(self.i.z)
m.d.comb += self.o.out_do_z.eq(self.i.out_do_z)
+ m.d.comb += self.o.oz.eq(self.i.z.v)
return m
def __init__(self, width, id_wid):
self.z = FPNumBase(width, False)
self.out_do_z = Signal(reset_less=True)
+ self.oz = Signal(width, reset_less=True)
self.tot = Signal(self.z.m_width + 4, reset_less=True)
self.mid = Signal(id_wid, reset_less=True)
def eq(self, i):
- return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z),
+ return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z), self.oz.eq(i.oz),
self.tot.eq(i.tot), self.mid.eq(i.mid)]
self.o.z.s.eq(self.i.b.s)
]
with m.Else():
- m.d.comb += self.o.z.eq(self.i.z)
+ m.d.comb += self.o.oz.eq(self.i.z.v)
m.d.comb += self.o.out_do_z.eq(self.i.out_do_z)
m.d.comb += self.o.mid.eq(self.i.mid)
def __init__(self, width, id_wid):
self.z = FPNumBase(width, False)
self.out_do_z = Signal(reset_less=True)
+ self.oz = Signal(width, reset_less=True)
self.of = Overflow()
self.mid = Signal(id_wid, reset_less=True)
def eq(self, i):
- return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z),
+ return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z), self.oz.eq(i.oz),
self.of.eq(i.of), self.mid.eq(i.mid)]
]
m.d.comb += self.o.out_do_z.eq(self.i.out_do_z)
+ m.d.comb += self.o.oz.eq(self.i.oz)
m.d.comb += self.o.mid.eq(self.i.mid)
return m
self.roundz = Signal(reset_less=True)
self.z = FPNumBase(width, False)
self.out_do_z = Signal(reset_less=True)
+ self.oz = Signal(width, reset_less=True)
self.mid = Signal(id_wid, reset_less=True)
def eq(self, i):
- return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z),
+ return [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z), self.oz.eq(i.oz),
self.roundz.eq(i.roundz), self.mid.eq(i.mid)]
m.d.comb += self.o.mid.eq(self.i.mid)
m.d.comb += self.o.out_do_z.eq(self.i.out_do_z)
+ m.d.comb += self.o.oz.eq(self.i.oz)
return m