Swizzle constructor Null safety
Constructs a Module which concatenates signals
into one large out.
Implementation
Swizzle(List<Logic> signals, {super.name = 'swizzle'}) {
var idx = 0;
var outputWidth = 0;
for (final signal in signals.reversed) {
//reverse so bit 0 is the last thing in the input list
final inputName = Module.unpreferredName('in${idx++}');
_swizzleInputs.add(
addInput(inputName, signal, width: signal.width),
);
outputWidth += signal.width;
}
addOutput(_out, width: outputWidth);
_execute(); // for initial values
for (final swizzleInput in _swizzleInputs) {
swizzleInput.glitch.listen((args) {
_execute();
});
}
}