RippleCarryAdder constructor
Constructs an n-bit adder based on inputs List of inputs.
Implementation
RippleCarryAdder(super.a, super.b,
{super.carryIn,
super.name = 'ripple_carry_adder_carry_in',
super.reserveName,
super.reserveDefinitionName,
String? definitionName})
: super(
definitionName: definitionName ?? 'RippleCarryAdder_W${a.width}') {
Logic? carry;
final sumList = <Logic>[];
for (var i = 0; i < a.width; i++) {
final fullAdder =
FullAdder(a[i], b[i], carryIn: carry ?? (carryIn ?? Const(0)));
carry = fullAdder.sum[1];
sumList.add(fullAdder.sum[0]);
}
sumList.add(carry!);
sum <= sumList.rswizzle();
}