LtiLaChannelInterface constructor
Constructor.
Implementation
LtiLaChannelInterface({
required LtiLaChannelConfig config,
super.vcCount = 1,
this.debugMixInEnable = false,
this.idMixInEnable = false,
this.userMixInEnable = false,
this.mmuMixInEnable = false,
}) : userWidth = config.userWidth,
idWidth = config.idWidth,
useIdUnq = false,
addrWidth = config.addrWidth,
protWidth = 0,
rmeSupport = config.rmeSupport,
instPrivPresent = config.instPrivPresent,
pasWidth = config.pasWidth,
loopWidth = config.loopWidth,
tracePresent = false,
secSidWidth = config.secSidWidth,
sidWidth = config.sidWidth,
ssidWidth = config.ssidWidth,
useFlow = config.useFlow,
supportGdi = config.supportGdi,
supportRmeAndPasMmu = config.supportRmeAndPasMmu,
ogWidth = config.ogWidth,
tlBlockWidth = config.tlBlockWidth,
useIdent = config.useIdent,
untranslatedTransVersion =
4, // must have ability to support PM/PASUNKNOWN
super(
prefix: 'LA',
main: true,
) {
setPorts([
Logic.port('${prefix}ADDR', addrWidth),
Logic.port('${prefix}TRANS', 4),
Logic.port('${prefix}ATTR', 4),
if (tlBlockWidth > 0) Logic.port('${prefix}TLBLOCK', tlBlockWidth),
Logic.port('${prefix}OGV'),
if (ogWidth > 0) Logic.port('${prefix}OG', ogWidth),
if (useIdent) Logic.port('${prefix}IDENT'),
], [
PairDirection.fromProvider,
]);
makeProtPorts();
if (userMixInEnable) {
makeUserPorts();
}
if (idMixInEnable) {
makeIdPorts();
}
if (debugMixInEnable) {
makeDebugPorts();
}
if (mmuMixInEnable) {
makeMmuPorts();
}
}