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.valid, super.name = 'recursive_module_priority_encoder'})
: super(definitionName: 'RecursiveModulePriorityEncoder_W${inp.width}') {
final topNode = RecursiveModulePriorityEncoderNode(inp.elements);
final lo = topNode.ret;
if (valid != null) {
valid! <= topNode.ret.lt(inp.width);
}
final sz = output('out').width;
output('out') <= ((lo.width < sz) ? lo.zeroExtend(sz) : lo.getRange(0, sz));
}