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; 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]; 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. Â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 Signal Type decls port indices: Ê Ô˜Icodešœ™Kšœ…™…K˜K˜šÏk ˜ K˜Ö—K˜šÐblœœ˜Kšœ¸˜¿—K˜šœ˜ K˜ —K˜šœ™Kšœœ˜)Kšœ œ˜%Kšœœ˜)K˜—K˜šÏn œœ˜Kš˜˜4K˜Kšœ,œ˜0K˜ Kšœ œ œ˜K˜Kšœœ˜'—Kšœ˜—K˜EK˜KšŸœœœ]˜€K˜Kšœœœ˜,š œœœ œœ˜2K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜K˜Kšœœœœ˜+K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜Kšœœœ œ˜DKšœœœ œ˜EKšœœœ œ˜CKšœœœ œ˜DKšœœœ œ˜EKšœœœ œ˜GKšœœœ œ˜FKšœœœ œ˜GK˜Kšœœ˜K˜Kšœœ˜"K˜Kšœœ˜K˜Kšœœ˜!K˜Kšœœ˜ K˜Kšœœ˜&K˜Kšœ!œ˜)K˜*K˜+K˜+K˜,K˜+K˜,K˜K˜K˜K˜!K˜K˜K˜.K˜/K˜.K˜/K˜.K˜/K˜Kšœ#œ˜+K˜K˜K˜K˜ K˜Kšœœ˜$K˜Kšœœ˜!K˜Kšœœ˜K˜Kšœœ˜#K˜Kšœœ˜$K˜Kšœœ˜#K˜Kšœœ˜!K˜Kšœ!œ˜)K˜Kšœœ˜"K˜Kšœœ˜"K˜Kšœœ˜$K˜Kšœœ˜K˜Kšœœ˜K˜K˜!K˜K˜$K˜K˜ K˜Kšœ#œ˜+K˜Kšœ$œ˜,K˜Kšœ œ˜)—K˜šœ ™ Kšœœ˜*Kšœœ˜+Kšœœ˜+Kšœœ˜,Kšœœ˜)Kšœœ˜*Kšœœ˜)Kšœœ˜*Kšœœ˜*Kšœœ˜+Kšœœ˜+Kšœœ˜,Kšœœ˜+Kšœœ˜,Kšœ œ˜.Kšœ!œ˜/Kšœ œ˜.Kšœ!œ˜/Kšœ œ˜.Kšœ!œ˜/—K˜š œœœ œœ˜2K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜!K˜Kšœœ˜K˜Kšœœ˜ K˜Kšœœ˜K˜Kšœœ˜%K˜Kšœ œ˜(K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜ K˜Kšœœ˜K˜Kšœœ˜ K˜Kšœœ˜!K˜Kšœœ˜ K˜Kšœœ˜!K˜Kšœœ˜ K˜Kšœœ˜!K˜Kšœ"œ˜*K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜#K˜Kšœœ˜ K˜Kšœœ˜K˜Kšœœ˜"K˜Kšœœ˜#K˜Kšœœ˜"K˜Kšœœ˜ K˜Kšœ œ˜(K˜Kšœœ˜!K˜Kšœœ˜!K˜Kšœœ˜#K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœœ˜K˜Kšœ"œ˜*K˜Kšœ#œ˜+K˜Kšœœ˜(—K˜K˜šŸœœÏc œ˜7Kšœœ˜4Kšœœ˜1Kšœœ˜1K˜—K˜šŸœœ) œ˜QKš ŸœœœœDœ ˜}K˜%K˜%K˜%K˜%K˜+K˜+K˜+K˜-K˜1K˜/K˜-K˜%K˜+K˜'K˜-K˜-K˜/K˜3K˜3K˜1K˜3K˜'K˜)K˜'K˜)K˜+K˜-K˜/K˜/K˜1K˜+K˜-K˜+K˜-K˜1K˜7K˜1K˜5K˜3K˜?K˜EK˜-K˜/K˜/K˜1K˜/K˜1K˜-K˜5K˜/K˜5K˜7K˜5K˜7K˜5K˜7K˜IK˜1K˜3K˜;K˜5K˜-K˜9K˜;K˜9K˜5K˜EK˜7K˜7K˜;K˜-K˜-K˜/K˜1K˜3K˜IK˜KK˜CK˜BK˜­K˜¶KšŸœœœœ—˜ÁK˜1K˜˜K˜-K˜3K˜5K˜AK˜?K˜;K˜)K˜/K˜7K˜1K˜AK˜EK˜GK˜7K˜=K˜?K˜3K˜AK˜3K˜5K˜5K˜3K˜3K˜?K˜/K˜1K˜7K˜5K˜7K˜3K˜)K˜5K˜5K˜;K˜=K˜7K˜7K˜=K˜1K˜3K˜=K˜;K˜KK˜QK˜?K˜1K˜5K˜AK˜1K˜/K˜?K˜?K˜5K˜=K˜;K˜9K˜AK˜kK˜9K˜AK˜;K˜;K˜=K˜EK˜QK˜1K˜MK˜=K˜CK˜GK˜7K˜ÀK˜/K˜7K˜-K˜;K˜=K˜1K˜1K˜3K˜AK˜¬K˜1K˜£K˜£K˜=K˜®K˜®K˜«K˜®K˜ŸK˜œK˜—K˜K˜K˜Kšœ˜—…—[Òih