LtiLrChannelInterface constructor

LtiLrChannelInterface({
  1. required LtiLrChannelConfig config,
  2. int vcCount = 1,
  3. bool debugMixInEnable = false,
  4. bool idMixInEnable = false,
  5. bool userMixInEnable = false,
})

Constructor.

Implementation

LtiLrChannelInterface({
  required LtiLrChannelConfig config,
  super.vcCount = 1,
  this.debugMixInEnable = false,
  this.idMixInEnable = false,
  this.userMixInEnable = false,
})  : userWidth = config.userWidth,
      idWidth = config.idWidth,
      useIdUnq = false,
      addrWidth = config.addrWidth,
      protWidth = 0,
      rmeSupport = false,
      instPrivPresent = false,
      pasWidth = config.pasWidth,
      loopWidth = config.loopWidth,
      tracePresent = false,
      respWidth = 3,
      useBusy = false,
      mpamWidth = config.mpamWidth,
      mecIdWidth = config.mecIdWidth,
      ctagWidth = config.ctagWidth,
      super(
        prefix: 'LR',
        main: false,
      ) {
  setPorts([
    Logic.port('${prefix}ADDR', addrWidth),
    Logic.port('${prefix}CTAG', ctagWidth),
    Logic.port('${prefix}ATTR', 4),
    Logic.port('${prefix}HWATTR', 4),
    if (mpamWidth > 0) Logic.port('${prefix}MPAM', mpamWidth),
    if (mecIdWidth > 0) Logic.port('${prefix}MECID', mecIdWidth),
    Logic.port('${prefix}SIZE', 6),
  ], [
    PairDirection.fromConsumer,
  ]);
  makeResponsePorts();
  makeProtPorts();
  if (userMixInEnable) {
    makeUserPorts();
  }
  if (idMixInEnable) {
    makeIdPorts();
  }
  if (debugMixInEnable) {
    makeDebugPorts();
  }
}