RecursivePriorityEncoder constructor

RecursivePriorityEncoder(
  1. Logic inp, {
  2. bool generateValid = false,
  3. String name = 'recursive_priority_encoder',
  4. bool reserveName = false,
  5. bool reserveDefinitionName = false,
  6. String? definitionName,
})

RecursivePriorityEncoder constructor

Implementation

RecursivePriorityEncoder(
  super.inp, {
  super.generateValid,
  super.name = 'recursive_priority_encoder',
  super.reserveName,
  super.reserveDefinitionName,
  String? definitionName,
}) : super(
          definitionName:
              definitionName ?? 'RecursivePriorityEncoder_W${inp.width}') {
  final lo = recurseFinder(inp.elements);
  valid?.gets(lo.lt(inp.width));
  final sz = output('out').width;
  out <= ((lo.width < sz) ? lo.zeroExtend(sz) : lo.getRange(0, sz));
}