From 593cbdc9351dad59632696022f648ea421412b51 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Sun, 7 Jul 2019 17:08:20 +0100 Subject: [PATCH] exclude stuff that is just multiplying by zero --- src/ieee754/div_rem_sqrt_rsqrt/core.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) 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}") -- 2.30.2