createModule method

  1. @override
Module createModule()
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);
}