From: Luke Kenneth Casson Leighton Date: Sun, 7 Jul 2019 16:08:20 +0000 (+0100) Subject: exclude stuff that is just multiplying by zero X-Git-Tag: ls180-24jan2020~888 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=593cbdc9351dad59632696022f648ea421412b51;p=ieee754fpu.git exclude stuff that is just multiplying by zero --- diff --git a/src/ieee754/div_rem_sqrt_rsqrt/core.py b/src/ieee754/div_rem_sqrt_rsqrt/core.py index f87077df..0f76d712 100644 --- a/src/ieee754/div_rem_sqrt_rsqrt/core.py +++ b/src/ieee754/div_rem_sqrt_rsqrt/core.py @@ -309,20 +309,23 @@ class DivPipeCoreCalculateStage(Elaboratable): # UDivRem div_rhs = self.i.compare_rhs - div_factor1 = self.i.divisor_radicand * shifted_trial_bits2 - div_rhs += div_factor1 << self.core_config.fract_width + if tb != 0: # no point adding stuff that's multiplied by zero + div_factor1 = self.i.divisor_radicand * shifted_trial_bits2 + div_rhs += div_factor1 << self.core_config.fract_width # SqrtRem sqrt_rhs = self.i.compare_rhs - sqrt_factor1 = self.i.quotient_root * shifted_trial_bits2 - sqrt_rhs += sqrt_factor1 << self.core_config.fract_width - sqrt_factor2 = shifted_trial_bits_sqrd - sqrt_rhs += sqrt_factor2 << self.core_config.fract_width + if tb != 0: # no point adding stuff that's multiplied by zero + sqrt_factor1 = self.i.quotient_root * shifted_trial_bits2 + sqrt_rhs += sqrt_factor1 << self.core_config.fract_width + sqrt_factor2 = shifted_trial_bits_sqrd + sqrt_rhs += sqrt_factor2 << self.core_config.fract_width # RSqrtRem rsqrt_rhs = self.i.compare_rhs - rsqrt_rhs += self.i.root_times_radicand * shifted_trial_bits2 - rsqrt_rhs += self.i.divisor_radicand * shifted_trial_bits_sqrd + if tb != 0: # no point adding stuff that's multiplied by zero + rsqrt_rhs += self.i.root_times_radicand * shifted_trial_bits2 + rsqrt_rhs += self.i.divisor_radicand * shifted_trial_bits_sqrd trial_compare_rhs = Signal.like( self.o.compare_rhs, name=f"trial_compare_rhs_{trial_bits}")