# results are in the range 0.25 to 0.999999999999
# sometimes the MSB will be zero, (0.5 * 0.5 = 0.25 which
# in binary is 0b010000) so to compensate for that we have
# to shift the mantissa up (and reduce the exponent by 1)
p = Signal(len(self.i.product), reset_less=True)
# results are in the range 0.25 to 0.999999999999
# sometimes the MSB will be zero, (0.5 * 0.5 = 0.25 which
# in binary is 0b010000) so to compensate for that we have
# to shift the mantissa up (and reduce the exponent by 1)
p = Signal(len(self.i.product), reset_less=True)