RecursiveModulePriorityEncoder constructor
RecursiveModulePriorityEncoder constructor builds a tree
of RecursiveModulePriorityEncoderNodes to compute the position
of the trailing 1 from the LSB of inp
.
Implementation
RecursiveModulePriorityEncoder(
super.inp, {
super.generateValid,
super.name = 'recursive_module_priority_encoder',
super.reserveName,
super.reserveDefinitionName,
String? definitionName,
}) : super(
definitionName: definitionName ??
'RecursiveModulePriorityEncoder_W${inp.width}') {
final topNode = RecursiveModulePriorityEncoderNode(inp);
final lo = topNode.ret;
if (valid != null) {
valid! <= topNode.ret.lt(inp.width);
}
final sz = output('out').width;
out <= ((lo.width < sz) ? lo.zeroExtend(sz) : lo.getRange(0, sz));
}