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 CsrInstanceConfig config,
})  : _config = config.clone(),
      dataWidth = config.width,
      hasRead = config.isBackdoorReadable,
      hasWrite = config.isBackdoorWritable {
  if (hasRead) {
    setPorts([
      Csr(_config),
    ], [
      CsrBackdoorPortGroup.read,
    ]);
  }

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