CsrBackdoorInterface constructor

CsrBackdoorInterface({
  1. required CsrInstanceConfig config,
})

Constructs a new interface of specified dataWidth and conditionally instantiates read and writes ports based on hasRead and hasWrite.

Implementation

CsrBackdoorInterface({
  required this.config,
})  : dataWidth = config.width,
      hasRead = config.isBackdoorReadable,
      hasWrite = config.isBackdoorWritable {
  if (hasRead) {
    setPorts([
      Csr(config),
    ], [
      CsrBackdoorPortGroup.read,
    ]);
  }

  if (hasWrite) {
    setPorts([
      Logic.port('${config.name}_wrEn'),
      Logic.port('${config.name}_wrData', dataWidth),
    ], [
      CsrBackdoorPortGroup.write,
    ]);
  }
}