- m.d.comb += [
- not_a_term.bit_select(bit_width * 2 * i, bit_width * 2)
- .eq(Mux(a_enabled,
- Cat(Repl(0, bit_width),
- ~self.a.bit_select(bit_width * i, bit_width)),
- 0)),
-
- neg_lsb_a_term.bit_select(bit_width * 2 * i, bit_width * 2)
- .eq(Cat(Repl(0, bit_width), a_enabled)),
-
- not_b_term.bit_select(bit_width * 2 * i, bit_width * 2)
- .eq(Mux(b_enabled,
- Cat(Repl(0, bit_width),
- ~self.b.bit_select(bit_width * i, bit_width)),
- 0)),
-
- neg_lsb_b_term.bit_select(bit_width * 2 * i, bit_width * 2)
- .eq(Cat(Repl(0, bit_width), b_enabled))]
+ nat.append(Mux(a_enabled,
+ Cat(Repl(0, bit_width),
+ ~self.a.bit_select(bit_width * i, bit_width)),
+ 0))
+
+ nla.append(Cat(Repl(0, bit_width), a_enabled,
+ Repl(0, bit_width-1)))
+
+ nbt.append(Mux(b_enabled,
+ Cat(Repl(0, bit_width),
+ ~self.b.bit_select(bit_width * i, bit_width)),
+ 0))
+
+ nlb.append(Cat(Repl(0, bit_width), b_enabled,
+ Repl(0, bit_width-1)))
+
+ m.d.comb += [not_a_term.eq(Cat(*nat)),
+ not_b_term.eq(Cat(*nbt)),
+ neg_lsb_a_term.eq(Cat(*nla)),
+ neg_lsb_b_term.eq(Cat(*nlb)),
+ ]