createModule method
override
Creates a Module instance as configured.
Implementation
@override
Module createModule() {
final aSign = Logic();
final bSign = Logic();
final a = Logic(width: widthKnob.value);
final b = Logic(width: widthKnob.value);
Adder adderGen(Logic lhs, Logic rhs, {Logic? carryIn}) => adderSelectKnob
.selectedAdder()(lhs, rhs, carryIn: carryIn, name: 'sign_add');
return implementationKnob.value == SignMagnitudeAdderImplementation.single
? SignMagnitudeAdder(
aSign,
a,
bSign,
b,
largestMagnitudeFirst: largestMagnitudeFirstKnob.value,
generateEndAroundCarry: generateEndAroundCarryKnob.value,
adderGen: adderGen,
)
: SignMagnitudeDualAdder(aSign, a, bSign, b, adderGen: adderGen);
}