self.i.divisor_radicand << (self.core_config.fract_width * 2))
with m.Else(): # DivPipeCoreOperation.RSqrtRem
m.d.comb += self.o.compare_lhs.eq(
- 1 << (self.core_config.fract_width * 2))
+ 1 << (self.core_config.fract_width * 2)) # XXX reduced from 3
m.d.comb += self.o.compare_rhs.eq(0)
m.d.comb += self.o.operation.eq(self.i.operation)
m.d.comb += am0.eq(Cat(self.i.a.m, 0)<<(extra-3))
m.d.comb += self.o.z.e.eq(-((self.i.a.e+1) >> 1)+4)
with m.Else():
- m.d.comb += am0.eq(Cat(0, self.i.a.m)<<(extra-3))
- m.d.comb += self.o.z.e.eq((self.i.a.e >> 1)+2)
+ m.d.comb += am0.eq(Cat(self.i.a.m)<<(extra-2))
+ m.d.comb += self.o.z.e.eq(-(self.i.a.e >> 1)+4)
m.d.comb += [self.o.z.s.eq(self.i.a.s),
self.o.divisor_radicand.eq(am0),