Axi4ReadInterface constructor
Construct a new instance of an AXI4 interface.
Default values in constructor are from official spec.
Implementation
Axi4ReadInterface({
this.idWidth = 4,
this.addrWidth = 32,
this.lenWidth = 8,
this.dataWidth = 64,
this.aruserWidth = 32,
this.ruserWidth = 32,
this.useLock = true,
this.useLast = true,
}) {
_validateParameters();
setPorts([
if (idWidth > 0) Logic.port('ARID', idWidth),
Logic.port('ARADDR', addrWidth),
if (lenWidth > 0) Logic.port('ARLEN', lenWidth),
if (sizeWidth > 0) Logic.port('ARSIZE', sizeWidth),
if (burstWidth > 0) Logic.port('ARBURST', burstWidth),
if (useLock) Logic.port('ARLOCK'),
if (cacheWidth > 0) Logic.port('ARCACHE', cacheWidth),
Logic.port('ARPROT', protWidth),
if (qosWidth > 0) Logic.port('ARQOS', qosWidth),
if (regionWidth > 0) Logic.port('ARREGION', regionWidth),
if (aruserWidth > 0) Logic.port('ARUSER', aruserWidth),
Logic.port('ARVALID'),
Logic.port('RREADY'),
], [
Axi4Direction.fromMain,
]);
setPorts([
if (idWidth > 0) Logic.port('RID', idWidth),
Logic.port('RDATA', dataWidth),
if (rrespWidth > 0) Logic.port('RRESP', rrespWidth),
if (useLast) Logic.port('RLAST'),
if (ruserWidth > 0) Logic.port('RUSER', ruserWidth),
Logic.port('RVALID'),
Logic.port('ARREADY'),
], [
Axi4Direction.fromSubordinate,
]);
}