ParallelPrefixOrScan constructor

ParallelPrefixOrScan(
  1. Logic inp, {
  2. ParallelPrefix ppGen(
    1. List<Logic> inps,
    2. Logic op(
      1. Logic term1,
      2. Logic term2
      )
    ) = KoggeStone.new,
  3. String name = 'parallel_prefix_orscan',
})

OrScan constructor

Implementation

ParallelPrefixOrScan(Logic inp,
    {ParallelPrefix Function(
            List<Logic> inps, Logic Function(Logic term1, Logic term2) op)
        ppGen = KoggeStone.new,
    super.name = 'parallel_prefix_orscan'})
    : super(definitionName: 'ParallelPrefixOrScan_W${inp.width}') {
  inp = addInput('inp', inp, width: inp.width);
  final u = ppGen(inp.elements, (a, b) => a | b);
  addOutput('out', width: inp.width) <= u.val.rswizzle();
}