CacheMInterface.Mesa
created by RoseTranslate from CacheMInterface.Rose of February 1, 1985 9:19:18 am PST for curry.pa at February 1, 1985 9:19:32 am PST
DIRECTORY
RoseTypes, RoseCreate, Dragon, SwitchTypes, EnumTypes, NumTypes, CacheMInterfaceMCAMDriver, CacheMInterfaceMRAMDriver, CacheMInterfaceMEntryCtl, CacheMInterfaceMSequencer, CacheMInterfaceMPads, CacheMInterfaceMROM;
CacheMInterface: CEDAR PROGRAM
IMPORTS RoseCreate, EnumTypes, NumTypes, CacheMInterfaceMCAMDriver, CacheMInterfaceMRAMDriver, CacheMInterfaceMEntryCtl, CacheMInterfaceMSequencer, CacheMInterfaceMPads, CacheMInterfaceMROM =
BEGIN OPEN
RoseTypes;
Signal Type decls
MBusCommands: TYPE = Dragon.MBusCommands;
PBusFaults: TYPE = Dragon.PBusFaults;
PBusCommands: TYPE = Dragon.PBusCommands;
RegisterCells: PROC =
BEGIN
[] ← RoseCreate.RegisterCellType[name: "MInterface",
expandProc: MInterfaceExpand,
ioCreator: CreateMInterfaceIO, initializer: NIL,
evals: [],
blackBox: NIL, stateToo: NIL,
ports: CreateMInterfacePorts[],
drivePrototype: NEW [MInterfaceDrive]];
END;
otherss: SymbolTable ← RoseCreate.GetOtherss["CacheMInterface.pass"];
CreateMInterfacePorts: PROC RETURNS [ports: Ports] = {ports ← RoseCreate.PortsFromFile["CacheMInterface.MInterface.rosePorts"]};
MInterfaceIORef: TYPE = REF MInterfaceIORec;
MInterfaceIORec: TYPE = MACHINE DEPENDENT RECORD [
fill0(0:0..14): [0..32767],
PhA(0:15..15): BOOLEAN,
fill1(1:0..14): [0..32767],
PhB(1:15..15): BOOLEAN,
fill2(2:0..14): [0..32767],
Vdd(2:15..15): BOOLEAN,
fill3(3:0..14): [0..32767],
Gnd(3:15..15): BOOLEAN,
fill4(4:0..14): [0..32767],
PadVdd(4:15..15): BOOLEAN,
fill5(5:0..14): [0..32767],
PadGnd(5:15..15): BOOLEAN,
fill6(6:0..11): [0..4095],
MCmdAB(6:12..15): MBusCommands,
MDataAB(7:0..31): ARRAY [0..2) OF CARDINAL,
fill8(9:0..14): [0..32767],
MParityAB(9:15..15): BOOLEAN,
fill9(10:0..14): [0..32767],
MNShared(10:15..15): BOOLEAN,
fill10(11:0..14): [0..32767],
MNError(11:15..15): BOOLEAN,
fill11(12:0..14): [0..32767],
MRq(12:15..15): BOOLEAN,
fill12(13:0..14): [0..32767],
MNewRq(13:15..15): BOOLEAN,
fill13(14:0..14): [0..32767],
MGnt(14:15..15): BOOLEAN,
fill14(15:0..14): [0..32767],
ResetAB(15:15..15): BOOLEAN,
fill15(16:0..14): [0..32767],
DHoldAB(16:15..15): BOOLEAN,
fill16(17:0..14): [0..32767],
DShiftAB(17:15..15): BOOLEAN,
fill17(18:0..14): [0..32767],
DExecuteAB(18:15..15): BOOLEAN,
fill18(19:0..14): [0..32767],
DNSelectAB(19:15..15): BOOLEAN,
fill19(20:0..14): [0..32767],
DDataInAB(20:15..15): BOOLEAN,
fill20(21:0..14): [0..32767],
DDataOutAB(21:15..15): BOOLEAN,
fill21(22:0..14): [0..32767],
PhAb(22:15..15): BOOLEAN,
fill22(23:0..14): [0..32767],
nPhAb(23:15..15): BOOLEAN,
fill23(24:0..14): [0..32767],
PhBb(24:15..15): BOOLEAN,
fill24(25:0..14): [0..32767],
nPhBb(25:15..15): BOOLEAN,
fill25(26:0..14): [0..32767],
Resetb(26:15..15): BOOLEAN,
CAMPage(27:0..383): PACKED ARRAY [0 .. 23] OF SwitchTypes.SwitchVal,
nCAMPage(51:0..383): PACKED ARRAY [0 .. 23] OF SwitchTypes.SwitchVal,
CAMBlock(75:0..63): PACKED ARRAY [0 .. 3] OF SwitchTypes.SwitchVal,
nCAMBlock(79:0..63): PACKED ARRAY [0 .. 3] OF SwitchTypes.SwitchVal,
PBitsB(83:0..2111): PACKED ARRAY [0 .. 131] OF SwitchTypes.SwitchVal,
nPBitsB(215:0..2111): PACKED ARRAY [0 .. 131] OF SwitchTypes.SwitchVal,
MBitsA(347:0..2111): PACKED ARRAY [0 .. 131] OF SwitchTypes.SwitchVal,
nMBitsA(479:0..2111): PACKED ARRAY [0 .. 131] OF SwitchTypes.SwitchVal,
fill34(611:0..14): [0..32767],
nVQMatchB(611:15..15): BOOLEAN,
fill35(612:0..14): [0..32767],
nQuadSharedB(612:15..15): BOOLEAN,
fill36(613:0..14): [0..32767],
nRQMatchA(613:15..15): BOOLEAN,
fill37(614:0..14): [0..32767],
nPageDirtyB(614:15..15): BOOLEAN,
fill38(615:0..14): [0..32767],
nMapValidB(615:15..15): BOOLEAN,
fill39(616:0..14): [0..32767],
nRealBlockMatchA(616:15..15): BOOLEAN,
fill40(617:0..14): [0..32767],
nVirtualBlockMatchB(617:15..15): BOOLEAN,
QValidA(618:0..15): SwitchTypes.SwitchVal,
nQValidA(619:0..15): SwitchTypes.SwitchVal,
QSharedA(620:0..15): SwitchTypes.SwitchVal,
nQSharedA(621:0..15): SwitchTypes.SwitchVal,
QMasterA(622:0..15): SwitchTypes.SwitchVal,
nQMasterA(623:0..15): SwitchTypes.SwitchVal,
fill47(624:0..11): [0..4095],
MQSelBA(624:12..15): [0..15],
fill48(625:0..11): [0..4095],
MatchQSelBA(625:12..15): [0..15],
fill49(626:0..11): [0..4095],
nQDirtyB(626:12..15): [0..15],
RPValidBitA(627:0..15): SwitchTypes.SwitchVal,
nRPValidBitA(628:0..15): SwitchTypes.SwitchVal,
RPDirtyBitA(629:0..15): SwitchTypes.SwitchVal,
nRPDirtyBitA(630:0..15): SwitchTypes.SwitchVal,
VPValidBitA(631:0..15): SwitchTypes.SwitchVal,
nVPValidBitA(632:0..15): SwitchTypes.SwitchVal,
fill56(633:0..14): [0..32767],
ForceAllDataSelectsBA(633:15..15): BOOLEAN,
fill57(634:0..8): [0..511],
CellAdrBA(634:9..15): [0..127],
fill58(635:0..8): [0..511],
nCellAdrBA(635:9..15): [0..127],
fill59(636:0..14): [0..32767],
SelOrphanAdrBA(636:15..15): BOOLEAN,
fill60(637:0..14): [0..32767],
SelMapAdrBA(637:15..15): BOOLEAN,
fill61(638:0..14): [0..32767],
SelVPBA(638:15..15): BOOLEAN,
fill62(639:0..14): [0..32767],
SelRPVictimBA(639:15..15): BOOLEAN,
fill63(640:0..14): [0..32767],
SelRPDecoderBA(640:15..15): BOOLEAN,
fill64(641:0..14): [0..32767],
SelRealDataBA(641:15..15): BOOLEAN,
fill65(642:0..14): [0..32767],
SelDecodeBA(642:15..15): BOOLEAN,
fill66(643:0..14): [0..32767],
FinishSharedStoreAB(643:15..15): BOOLEAN,
fill67(644:0..14): [0..32767],
SenseRMatchB(644:15..15): BOOLEAN,
fill68(645:0..14): [0..32767],
SenseVictimA(645:15..15): BOOLEAN,
fill69(646:0..14): [0..32767],
SelPageFlagsBA(646:15..15): BOOLEAN,
fill70(647:0..14): [0..32767],
MDoneAB(647:15..15): BOOLEAN,
fill71(648:0..14): [0..32767],
MHeldAB(648:15..15): BOOLEAN,
fill72(649:0..11): [0..4095],
MFaultAB(649:12..15): PBusFaults,
fill73(650:0..11): [0..4095],
PCmdToMAB(650:12..15): PBusCommands,
fill74(651:0..11): [0..4095],
PAdr2831AB(651:12..15): [0..15],
fill75(652:0..14): [0..32767],
DriveVirtualPageAdrBA(652:15..15): BOOLEAN,
fill76(653:0..14): [0..32767],
DriveVirtualBlockAdrBA(653:15..15): BOOLEAN,
fill77(654:0..14): [0..32767],
StartWordMachineBA(654:15..15): BOOLEAN];
port indices:
MInterfaceCAMPagePortIndex: CARDINAL = 26;
MInterfaceNCAMPagePortIndex: CARDINAL = 27;
MInterfaceCAMBlockPortIndex: CARDINAL = 28;
MInterfaceNCAMBlockPortIndex: CARDINAL = 29;
MInterfacePBitsBPortIndex: CARDINAL = 30;
MInterfaceNPBitsBPortIndex: CARDINAL = 31;
MInterfaceMBitsAPortIndex: CARDINAL = 32;
MInterfaceNMBitsAPortIndex: CARDINAL = 33;
MInterfaceQValidAPortIndex: CARDINAL = 41;
MInterfaceNQValidAPortIndex: CARDINAL = 42;
MInterfaceQSharedAPortIndex: CARDINAL = 43;
MInterfaceNQSharedAPortIndex: CARDINAL = 44;
MInterfaceQMasterAPortIndex: CARDINAL = 45;
MInterfaceNQMasterAPortIndex: CARDINAL = 46;
MInterfaceRPValidBitAPortIndex: CARDINAL = 50;
MInterfaceNRPValidBitAPortIndex: CARDINAL = 51;
MInterfaceRPDirtyBitAPortIndex: CARDINAL = 52;
MInterfaceNRPDirtyBitAPortIndex: CARDINAL = 53;
MInterfaceVPValidBitAPortIndex: CARDINAL = 54;
MInterfaceNVPValidBitAPortIndex: CARDINAL = 55;
MInterfaceDrive: TYPE = MACHINE DEPENDENT RECORD [
fill0(0:0..14): [0 .. 32768),
PhA(0:15..15): BOOLEAN,
fill1(1:0..14): [0 .. 32768),
PhB(1:15..15): BOOLEAN,
fill2(2:0..14): [0 .. 32768),
Vdd(2:15..15): BOOLEAN,
fill3(3:0..14): [0 .. 32768),
Gnd(3:15..15): BOOLEAN,
fill4(4:0..14): [0 .. 32768),
PadVdd(4:15..15): BOOLEAN,
fill5(5:0..14): [0 .. 32768),
PadGnd(5:15..15): BOOLEAN,
fill6(6:0..14): [0 .. 32768),
MCmdAB(6:15..15): BOOLEAN,
fill7(7:0..14): [0 .. 32768),
MDataAB(7:15..15): BOOLEAN,
fill8(8:0..14): [0 .. 32768),
MParityAB(8:15..15): BOOLEAN,
fill9(9:0..14): [0 .. 32768),
MNShared(9:15..15): BOOLEAN,
fill10(10:0..14): [0 .. 32768),
MNError(10:15..15): BOOLEAN,
fill11(11:0..14): [0 .. 32768),
MRq(11:15..15): BOOLEAN,
fill12(12:0..14): [0 .. 32768),
MNewRq(12:15..15): BOOLEAN,
fill13(13:0..14): [0 .. 32768),
MGnt(13:15..15): BOOLEAN,
fill14(14:0..14): [0 .. 32768),
ResetAB(14:15..15): BOOLEAN,
fill15(15:0..14): [0 .. 32768),
DHoldAB(15:15..15): BOOLEAN,
fill16(16:0..14): [0 .. 32768),
DShiftAB(16:15..15): BOOLEAN,
fill17(17:0..14): [0 .. 32768),
DExecuteAB(17:15..15): BOOLEAN,
fill18(18:0..14): [0 .. 32768),
DNSelectAB(18:15..15): BOOLEAN,
fill19(19:0..14): [0 .. 32768),
DDataInAB(19:15..15): BOOLEAN,
fill20(20:0..14): [0 .. 32768),
DDataOutAB(20:15..15): BOOLEAN,
fill21(21:0..14): [0 .. 32768),
PhAb(21:15..15): BOOLEAN,
fill22(22:0..14): [0 .. 32768),
nPhAb(22:15..15): BOOLEAN,
fill23(23:0..14): [0 .. 32768),
PhBb(23:15..15): BOOLEAN,
fill24(24:0..14): [0 .. 32768),
nPhBb(24:15..15): BOOLEAN,
fill25(25:0..14): [0 .. 32768),
Resetb(25:15..15): BOOLEAN,
fill26(26:0..14): [0 .. 32768),
CAMPage(26:15..15): BOOLEAN,
fill27(27:0..14): [0 .. 32768),
nCAMPage(27:15..15): BOOLEAN,
fill28(28:0..14): [0 .. 32768),
CAMBlock(28:15..15): BOOLEAN,
fill29(29:0..14): [0 .. 32768),
nCAMBlock(29:15..15): BOOLEAN,
fill30(30:0..14): [0 .. 32768),
PBitsB(30:15..15): BOOLEAN,
fill31(31:0..14): [0 .. 32768),
nPBitsB(31:15..15): BOOLEAN,
fill32(32:0..14): [0 .. 32768),
MBitsA(32:15..15): BOOLEAN,
fill33(33:0..14): [0 .. 32768),
nMBitsA(33:15..15): BOOLEAN,
fill34(34:0..14): [0 .. 32768),
nVQMatchB(34:15..15): BOOLEAN,
fill35(35:0..14): [0 .. 32768),
nQuadSharedB(35:15..15): BOOLEAN,
fill36(36:0..14): [0 .. 32768),
nRQMatchA(36:15..15): BOOLEAN,
fill37(37:0..14): [0 .. 32768),
nPageDirtyB(37:15..15): BOOLEAN,
fill38(38:0..14): [0 .. 32768),
nMapValidB(38:15..15): BOOLEAN,
fill39(39:0..14): [0 .. 32768),
nRealBlockMatchA(39:15..15): BOOLEAN,
fill40(40:0..14): [0 .. 32768),
nVirtualBlockMatchB(40:15..15): BOOLEAN,
fill41(41:0..14): [0 .. 32768),
QValidA(41:15..15): BOOLEAN,
fill42(42:0..14): [0 .. 32768),
nQValidA(42:15..15): BOOLEAN,
fill43(43:0..14): [0 .. 32768),
QSharedA(43:15..15): BOOLEAN,
fill44(44:0..14): [0 .. 32768),
nQSharedA(44:15..15): BOOLEAN,
fill45(45:0..14): [0 .. 32768),
QMasterA(45:15..15): BOOLEAN,
fill46(46:0..14): [0 .. 32768),
nQMasterA(46:15..15): BOOLEAN,
fill47(47:0..14): [0 .. 32768),
MQSelBA(47:15..15): BOOLEAN,
fill48(48:0..14): [0 .. 32768),
MatchQSelBA(48:15..15): BOOLEAN,
fill49(49:0..14): [0 .. 32768),
nQDirtyB(49:15..15): BOOLEAN,
fill50(50:0..14): [0 .. 32768),
RPValidBitA(50:15..15): BOOLEAN,
fill51(51:0..14): [0 .. 32768),
nRPValidBitA(51:15..15): BOOLEAN,
fill52(52:0..14): [0 .. 32768),
RPDirtyBitA(52:15..15): BOOLEAN,
fill53(53:0..14): [0 .. 32768),
nRPDirtyBitA(53:15..15): BOOLEAN,
fill54(54:0..14): [0 .. 32768),
VPValidBitA(54:15..15): BOOLEAN,
fill55(55:0..14): [0 .. 32768),
nVPValidBitA(55:15..15): BOOLEAN,
fill56(56:0..14): [0 .. 32768),
ForceAllDataSelectsBA(56:15..15): BOOLEAN,
fill57(57:0..14): [0 .. 32768),
CellAdrBA(57:15..15): BOOLEAN,
fill58(58:0..14): [0 .. 32768),
nCellAdrBA(58:15..15): BOOLEAN,
fill59(59:0..14): [0 .. 32768),
SelOrphanAdrBA(59:15..15): BOOLEAN,
fill60(60:0..14): [0 .. 32768),
SelMapAdrBA(60:15..15): BOOLEAN,
fill61(61:0..14): [0 .. 32768),
SelVPBA(61:15..15): BOOLEAN,
fill62(62:0..14): [0 .. 32768),
SelRPVictimBA(62:15..15): BOOLEAN,
fill63(63:0..14): [0 .. 32768),
SelRPDecoderBA(63:15..15): BOOLEAN,
fill64(64:0..14): [0 .. 32768),
SelRealDataBA(64:15..15): BOOLEAN,
fill65(65:0..14): [0 .. 32768),
SelDecodeBA(65:15..15): BOOLEAN,
fill66(66:0..14): [0 .. 32768),
FinishSharedStoreAB(66:15..15): BOOLEAN,
fill67(67:0..14): [0 .. 32768),
SenseRMatchB(67:15..15): BOOLEAN,
fill68(68:0..14): [0 .. 32768),
SenseVictimA(68:15..15): BOOLEAN,
fill69(69:0..14): [0 .. 32768),
SelPageFlagsBA(69:15..15): BOOLEAN,
fill70(70:0..14): [0 .. 32768),
MDoneAB(70:15..15): BOOLEAN,
fill71(71:0..14): [0 .. 32768),
MHeldAB(71:15..15): BOOLEAN,
fill72(72:0..14): [0 .. 32768),
MFaultAB(72:15..15): BOOLEAN,
fill73(73:0..14): [0 .. 32768),
PCmdToMAB(73:15..15): BOOLEAN,
fill74(74:0..14): [0 .. 32768),
PAdr2831AB(74:15..15): BOOLEAN,
fill75(75:0..14): [0 .. 32768),
DriveVirtualPageAdrBA(75:15..15): BOOLEAN,
fill76(76:0..14): [0 .. 32768),
DriveVirtualBlockAdrBA(76:15..15): BOOLEAN,
fill77(77:0..14): [0 .. 32768),
StartWordMachineBA(77:15..15): BOOLEAN];
CreateMInterfaceIO: PROC [cell: Cell] --IOCreator-- = {
cell.realCellStuff.switchIO ← NEW [MInterfaceIORec];
cell.realCellStuff.newIO ← NEW [MInterfaceIORec];
cell.realCellStuff.oldIO ← NEW [MInterfaceIORec];
};
MInterfaceExpand: PROC [thisCell: Cell, to: ExpansionReceiver] --ExpandProc-- = {
PrivateLookupNode: PROC [name: ROPE] RETURNS [node: Node] = {node ← RoseCreate.LookupNode[from: thisCell, path: LIST[name]]};
PhA: Node ← PrivateLookupNode["PhA"];
PhB: Node ← PrivateLookupNode["PhB"];
Vdd: Node ← PrivateLookupNode["Vdd"];
Gnd: Node ← PrivateLookupNode["Gnd"];
PadVdd: Node ← PrivateLookupNode["PadVdd"];
PadGnd: Node ← PrivateLookupNode["PadGnd"];
MCmdAB: Node ← PrivateLookupNode["MCmdAB"];
MDataAB: Node ← PrivateLookupNode["MDataAB"];
MParityAB: Node ← PrivateLookupNode["MParityAB"];
MNShared: Node ← PrivateLookupNode["MNShared"];
MNError: Node ← PrivateLookupNode["MNError"];
MRq: Node ← PrivateLookupNode["MRq"];
MNewRq: Node ← PrivateLookupNode["MNewRq"];
MGnt: Node ← PrivateLookupNode["MGnt"];
ResetAB: Node ← PrivateLookupNode["ResetAB"];
DHoldAB: Node ← PrivateLookupNode["DHoldAB"];
DShiftAB: Node ← PrivateLookupNode["DShiftAB"];
DExecuteAB: Node ← PrivateLookupNode["DExecuteAB"];
DNSelectAB: Node ← PrivateLookupNode["DNSelectAB"];
DDataInAB: Node ← PrivateLookupNode["DDataInAB"];
DDataOutAB: Node ← PrivateLookupNode["DDataOutAB"];
PhAb: Node ← PrivateLookupNode["PhAb"];
nPhAb: Node ← PrivateLookupNode["nPhAb"];
PhBb: Node ← PrivateLookupNode["PhBb"];
nPhBb: Node ← PrivateLookupNode["nPhBb"];
Resetb: Node ← PrivateLookupNode["Resetb"];
CAMPage: Node ← PrivateLookupNode["CAMPage"];
nCAMPage: Node ← PrivateLookupNode["nCAMPage"];
CAMBlock: Node ← PrivateLookupNode["CAMBlock"];
nCAMBlock: Node ← PrivateLookupNode["nCAMBlock"];
PBitsB: Node ← PrivateLookupNode["PBitsB"];
nPBitsB: Node ← PrivateLookupNode["nPBitsB"];
MBitsA: Node ← PrivateLookupNode["MBitsA"];
nMBitsA: Node ← PrivateLookupNode["nMBitsA"];
nVQMatchB: Node ← PrivateLookupNode["nVQMatchB"];
nQuadSharedB: Node ← PrivateLookupNode["nQuadSharedB"];
nRQMatchA: Node ← PrivateLookupNode["nRQMatchA"];
nPageDirtyB: Node ← PrivateLookupNode["nPageDirtyB"];
nMapValidB: Node ← PrivateLookupNode["nMapValidB"];
nRealBlockMatchA: Node ← PrivateLookupNode["nRealBlockMatchA"];
nVirtualBlockMatchB: Node ← PrivateLookupNode["nVirtualBlockMatchB"];
QValidA: Node ← PrivateLookupNode["QValidA"];
nQValidA: Node ← PrivateLookupNode["nQValidA"];
QSharedA: Node ← PrivateLookupNode["QSharedA"];
nQSharedA: Node ← PrivateLookupNode["nQSharedA"];
QMasterA: Node ← PrivateLookupNode["QMasterA"];
nQMasterA: Node ← PrivateLookupNode["nQMasterA"];
MQSelBA: Node ← PrivateLookupNode["MQSelBA"];
MatchQSelBA: Node ← PrivateLookupNode["MatchQSelBA"];
nQDirtyB: Node ← PrivateLookupNode["nQDirtyB"];
RPValidBitA: Node ← PrivateLookupNode["RPValidBitA"];
nRPValidBitA: Node ← PrivateLookupNode["nRPValidBitA"];
RPDirtyBitA: Node ← PrivateLookupNode["RPDirtyBitA"];
nRPDirtyBitA: Node ← PrivateLookupNode["nRPDirtyBitA"];
VPValidBitA: Node ← PrivateLookupNode["VPValidBitA"];
nVPValidBitA: Node ← PrivateLookupNode["nVPValidBitA"];
ForceAllDataSelectsBA: Node ← PrivateLookupNode["ForceAllDataSelectsBA"];
CellAdrBA: Node ← PrivateLookupNode["CellAdrBA"];
nCellAdrBA: Node ← PrivateLookupNode["nCellAdrBA"];
SelOrphanAdrBA: Node ← PrivateLookupNode["SelOrphanAdrBA"];
SelMapAdrBA: Node ← PrivateLookupNode["SelMapAdrBA"];
SelVPBA: Node ← PrivateLookupNode["SelVPBA"];
SelRPVictimBA: Node ← PrivateLookupNode["SelRPVictimBA"];
SelRPDecoderBA: Node ← PrivateLookupNode["SelRPDecoderBA"];
SelRealDataBA: Node ← PrivateLookupNode["SelRealDataBA"];
SelDecodeBA: Node ← PrivateLookupNode["SelDecodeBA"];
FinishSharedStoreAB: Node ← PrivateLookupNode["FinishSharedStoreAB"];
SenseRMatchB: Node ← PrivateLookupNode["SenseRMatchB"];
SenseVictimA: Node ← PrivateLookupNode["SenseVictimA"];
SelPageFlagsBA: Node ← PrivateLookupNode["SelPageFlagsBA"];
MDoneAB: Node ← PrivateLookupNode["MDoneAB"];
MHeldAB: Node ← PrivateLookupNode["MHeldAB"];
MFaultAB: Node ← PrivateLookupNode["MFaultAB"];
PCmdToMAB: Node ← PrivateLookupNode["PCmdToMAB"];
PAdr2831AB: Node ← PrivateLookupNode["PAdr2831AB"];
DriveVirtualPageAdrBA: Node ← PrivateLookupNode["DriveVirtualPageAdrBA"];
DriveVirtualBlockAdrBA: Node ← PrivateLookupNode["DriveVirtualBlockAdrBA"];
StartWordMachineBA: Node ← PrivateLookupNode["StartWordMachineBA"];
others: SymbolTable ← RoseCreate.GetOthers[otherss, "MInterface"];
MCmdIn: Node ← to.class.NodeInstance[erInstance: to.instance, name: "MCmdIn", type: EnumTypes.EnumType["Dragon.MBusCommands"], other: RoseCreate.GetOther[others, "MCmdIn"]];
MCmdOutAB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "MCmdOutAB", type: EnumTypes.EnumType["Dragon.MBusCommands"], other: RoseCreate.GetOther[others, "MCmdOutAB"]];
NodeCreateHack1: PROC [name: ROPE] RETURNS [node: Node] = {node ← to.class.NodeInstance[erInstance: to.instance, name: name, type: NumTypes.boolType, other: RoseCreate.GetOther[others, name]]};
MCmdDriveC: Node ← NodeCreateHack1["MCmdDriveC"];
MDataI: Node ← to.class.NodeInstance[erInstance: to.instance, name: "MDataI", type: NumTypes.NumType[32], other: RoseCreate.GetOther[others, "MDataI"]];
MParityI: Node ← NodeCreateHack1["MParityI"];
MDataDriveC: Node ← NodeCreateHack1["MDataDriveC"];
MSharedSense: Node ← NodeCreateHack1["MSharedSense"];
MNSharedDriveHighC: Node ← NodeCreateHack1["MNSharedDriveHighC"];
MNSharedDriveLowC: Node ← NodeCreateHack1["MNSharedDriveLowC"];
MNErrorDriveLow: Node ← NodeCreateHack1["MNErrorDriveLow"];
MRqIBA: Node ← NodeCreateHack1["MRqIBA"];
MNewRqIBA: Node ← NodeCreateHack1["MNewRqIBA"];
MNewRqEnableC: Node ← NodeCreateHack1["MNewRqEnableC"];
MGntSenseA: Node ← NodeCreateHack1["MGntSenseA"];
CAMRegSenseMDataIB: Node ← NodeCreateHack1["CAMRegSenseMDataIB"];
ACAMRegDriveCAMBitsA: Node ← NodeCreateHack1["ACAMRegDriveCAMBitsA"];
BCAMRegDriveCAMBitsAB: Node ← NodeCreateHack1["BCAMRegDriveCAMBitsAB"];
FormAddressBA: Node ← NodeCreateHack1["FormAddressBA"];
PageDriveMDataIA: Node ← NodeCreateHack1["PageDriveMDataIA"];
BlockDriveMDataIA: Node ← NodeCreateHack1["BlockDriveMDataIA"];
DriveMBitsA: Node ← NodeCreateHack1["DriveMBitsA"];
DriveMBitsNoMatchA: Node ← NodeCreateHack1["DriveMBitsNoMatchA"];
SenseMBitsA: Node ← NodeCreateHack1["SenseMBitsA"];
DriveMDataIA: Node ← NodeCreateHack1["DriveMDataIA"];
SenseMDataIB: Node ← NodeCreateHack1["SenseMDataIB"];
DrivePBitsB: Node ← NodeCreateHack1["DrivePBitsB"];
SensePBitsB: Node ← NodeCreateHack1["SensePBitsB"];
SuppressPSampleAB: Node ← NodeCreateHack1["SuppressPSampleAB"];
MIsDoneAB: Node ← NodeCreateHack1["MIsDoneAB"];
SetWantWSA: Node ← NodeCreateHack1["SetWantWSA"];
CheckFaultsAB: Node ← NodeCreateHack1["CheckFaultsAB"];
SenseSharedB: Node ← NodeCreateHack1["SenseSharedB"];
ReleaseMBusBA: Node ← NodeCreateHack1["ReleaseMBusBA"];
ForceIdleAB: Node ← NodeCreateHack1["ForceIdleAB"];
DoneAB: Node ← NodeCreateHack1["DoneAB"];
ForceSlaveBA: Node ← NodeCreateHack1["ForceSlaveBA"];
SenseReadyBA: Node ← NodeCreateHack1["SenseReadyBA"];
MDataIToFaultsB: Node ← NodeCreateHack1["MDataIToFaultsB"];
MapBitsToMDataIA: Node ← NodeCreateHack1["MapBitsToMDataIA"];
ACheckParityA: Node ← NodeCreateHack1["ACheckParityA"];
BCheckParityB: Node ← NodeCreateHack1["BCheckParityB"];
SampleRealMatchA: Node ← NodeCreateHack1["SampleRealMatchA"];
MCmdDriveA: Node ← NodeCreateHack1["MCmdDriveA"];
MDataDriveA: Node ← NodeCreateHack1["MDataDriveA"];
DriveSharedHighA: Node ← NodeCreateHack1["DriveSharedHighA"];
DriveSharedLowA: Node ← NodeCreateHack1["DriveSharedLowA"];
MasterEnableMBusDriveAB: Node ← NodeCreateHack1["MasterEnableMBusDriveAB"];
MCmdDriveToDataTransportAB: Node ← NodeCreateHack1["MCmdDriveToDataTransportAB"];
MCmdDriveToNoOpAB: Node ← NodeCreateHack1["MCmdDriveToNoOpAB"];
SetSharedA: Node ← NodeCreateHack1["SetSharedA"];
ResetMasterA: Node ← NodeCreateHack1["ResetMasterA"];
SetRPDirtyVPValidA: Node ← NodeCreateHack1["SetRPDirtyVPValidA"];
FlagLatchB: Node ← NodeCreateHack1["FlagLatchB"];
SetFlagsA: Node ← NodeCreateHack1["SetFlagsA"];
IncrementVictimBA: Node ← NodeCreateHack1["IncrementVictimBA"];
IncrementMAdrCtrB: Node ← NodeCreateHack1["IncrementMAdrCtrB"];
ZeroMAdrCtrB: Node ← NodeCreateHack1["ZeroMAdrCtrB"];
SampleDirtyBitsB: Node ← NodeCreateHack1["SampleDirtyBitsB"];
DeleteDirtyBitB: Node ← NodeCreateHack1["DeleteDirtyBitB"];
VictimSelectBA: Node ← NodeCreateHack1["VictimSelectBA"];
RefreshToDecoderBA: Node ← NodeCreateHack1["RefreshToDecoderBA"];
IfGrantThenGetAdrElseRefreshToDecoderBA: Node ← NodeCreateHack1["IfGrantThenGetAdrElseRefreshToDecoderBA"];
FetchAddressBA: Node ← NodeCreateHack1["FetchAddressBA"];
DirtyBitsToMQSelBA: Node ← NodeCreateHack1["DirtyBitsToMQSelBA"];
SamplePAdr2831B: Node ← NodeCreateHack1["SamplePAdr2831B"];
SampleMAdr2831B: Node ← NodeCreateHack1["SampleMAdr2831B"];
Adr2829ToMQSelBA: Node ← NodeCreateHack1["Adr2829ToMQSelBA"];
AddressBitsToMDataIA: Node ← NodeCreateHack1["AddressBitsToMDataIA"];
VictimAddressBitsToMDataIA: Node ← NodeCreateHack1["VictimAddressBitsToMDataIA"];
SelectRPBA: Node ← NodeCreateHack1["SelectRPBA"];
SelectVPVictimOrOrphanBA: Node ← NodeCreateHack1["SelectVPVictimOrOrphanBA"];
SelectRealDataBA: Node ← NodeCreateHack1["SelectRealDataBA"];
SelVictimOrOrphanBA: Node ← NodeCreateHack1["SelVictimOrOrphanBA"];
RefreshIfRefVirtualBA: Node ← NodeCreateHack1["RefreshIfRefVirtualBA"];
SenseVictimBA: Node ← NodeCreateHack1["SenseVictimBA"];
GetAdrCmdBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "GetAdrCmdBA", type: EnumTypes.EnumType["CacheOps.PreFetchAdrCmd"], other: RoseCreate.GetOther[others, "GetAdrCmdBA"]];
IsCleanBA: Node ← NodeCreateHack1["IsCleanBA"];
LatchSharedBA: Node ← NodeCreateHack1["LatchSharedBA"];
MasterBA: Node ← NodeCreateHack1["MasterBA"];
MatchRealQuadAB: Node ← NodeCreateHack1["MatchRealQuadAB"];
MatchRealBlockAB: Node ← NodeCreateHack1["MatchRealBlockAB"];
ContinueBA: Node ← NodeCreateHack1["ContinueBA"];
OneDirtyBA: Node ← NodeCreateHack1["OneDirtyBA"];
SomeDirtyBA: Node ← NodeCreateHack1["SomeDirtyBA"];
MDataDriveDelayedA: Node ← NodeCreateHack1["MDataDriveDelayedA"];
ROMSequenceBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "ROMSequenceBA", type: NumTypes.NumType[7], other: RoseCreate.GetOther[others, "ROMSequenceBA"]];
ROMSlaveBA: Node ← NodeCreateHack1["ROMSlaveBA"];
ROMCycleBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "ROMCycleBA", type: NumTypes.NumType[7], other: RoseCreate.GetOther[others, "ROMCycleBA"]];
MAdr3031BA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "MAdr3031BA", type: NumTypes.NumType[2], other: RoseCreate.GetOther[others, "MAdr3031BA"]];
MRamRegParityOut: Node ← NodeCreateHack1["MRamRegParityOut"];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "mCAMDriver", typeName: "MCAMDriver", other: RoseCreate.GetOther[others, "mCAMDriver"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "mRAMDriver", typeName: "MRAMDriver", other: RoseCreate.GetOther[others, "mRAMDriver"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "mEntryCtl", typeName: "MEntryCtl", other: RoseCreate.GetOther[others, "mEntryCtl"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "mSequencer", typeName: "MSequencer", other: RoseCreate.GetOther[others, "mSequencer"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "mPads", typeName: "MPads", other: RoseCreate.GetOther[others, "mPads"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "mROM", typeName: "MROM", other: RoseCreate.GetOther[others, "mROM"], interfaceNodes: ""];
};
RegisterCells[];
END.