Axi5TransportInterface constructor

Axi5TransportInterface({
  1. required String prefix,
  2. required bool main,
  3. bool useCrediting = false,
  4. bool sharedCredits = false,
  5. int numRp = 0,
})

Constructor.

Implementation

Axi5TransportInterface({
  required super.prefix,
  required super.main,
  this.useCrediting = false,
  this.sharedCredits = false,
  this.numRp = 0,
}) {
  setPorts([
    if (!useCrediting) Logic.port('${prefix}READY'),
    if (useCrediting && numRp > 0) Logic.port('${prefix}CRDT', numRp),
    if (useCrediting && sharedCredits) Logic.port('${prefix}CRDTSH')
  ], [
    if (main) PairDirection.fromConsumer else PairDirection.fromProvider,
  ]);

  setPorts([
    if (useCrediting) Logic.port('${prefix}PENDING'),
    if (useCrediting && numRp > 0) Logic.port('${prefix}RP', log2Ceil(numRp)),
    if (useCrediting && sharedCredits) Logic.port('${prefix}SHAREDCRD')
  ], [
    if (main) PairDirection.fromProvider else PairDirection.fromConsumer,
  ]);
}