move NOT into carrysum so that variable name
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 8 Apr 2022 08:15:43 +0000 (09:15 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 8 Apr 2022 08:15:43 +0000 (09:15 +0100)
"different" preserves its meaning compared to the reference code

src/nmigen_gf/hdl/cldivrem.py

index 01f8c208094796dc9d542a9bbaa80bf71631289c..77c4b1423cccd903637e0f04034a8280f3b2f794 100644 (file)
@@ -92,12 +92,12 @@ class EqualLeadingZeroCount(Elaboratable):
         m.d.comb += both_ones.eq(self.a & self.b)
         # `different` is set if there are a different number of leading
         # zeros so far
-        m.d.comb += different.eq(~(self.a ^ self.b))
+        m.d.comb += different.eq(self.a ^ self.b)
 
         # now [ab]use add: the last bit [carry-out] is the result
         csum = Signal(self.width + 1)
         carry_in = 1  # both have no leading zeros so far, so set carry
-        m.d.comb += csum.eq(both_ones + different + carry_in)
+        m.d.comb += csum.eq(both_ones + (~different) + carry_in)
         m.d.comb += self.out.eq(csum[self.width])  # out is carry-out
 
         return m