swap method

  1. @protected
(FloatingPoint, FloatingPoint) swap(
  1. Logic swap,
  2. (FloatingPoint, FloatingPoint) toSwap
)

Swapping two FloatingPoint structures based on a conditional

Implementation

@protected
(FloatingPoint, FloatingPoint) swap(
    Logic swap, (FloatingPoint, FloatingPoint) toSwap) {
  final in1 = toSwap.$1.named('swapIn_${toSwap.$1.name}');
  final in2 = toSwap.$2.named('swapIn_${toSwap.$2.name}');

  final out1 = mux(swap, in2, in1).named('swapOut_larger');
  final out2 = mux(swap, in1, in2).named('swapOut_smaller');
  final first = a.clone(name: 'larger')..gets(out1);
  final second = a.clone(name: 'smaller')..gets(out2);
  return (first, second);
}