<<[Indigo]Cache>Rosemary>Cache.df=>CacheMicroCodeA.Mesa>> <> DIRECTORY CacheMicroMachine; CacheMicroCodeA: CEDAR PROGRAM IMPORTS CacheMicroMachine = BEGIN OPEN CacheMicroMachine; <> < the decoder emits a pulse with timing identical to PhA.>> < the decoder emits a pulse with timing identical to PhB.>> < the decoder emits a level which changes on the rising edge of PhB.>> < the decoder emits a level which changes on the rising edge of PhA.>> < the decoder emits a pulse with timing identical to PhA during the PhA following the first PhA that the word comes out of the ROM.>> LogicBlock["CachePInterfacePCtl"]; NewDecode[$StartWordMachine, BA]; LogicBlock["CacheEntry"]; NewDecode[$SenseRMatch, B]; NewDecode[$SelPageFlags, BA]; NewDecode[$FinishSharedStore, AB]; LogicBlock["CacheMInterfaceMCAMDriver"]; NewDecode[$CAMRegSenseMDataI, B]; NewDecode[$ACAMRegDriveCAMBits, A]; NewDecode[$BCAMRegDriveCAMBits, AB]; NewDecode[$FormAddress, BA]; NewDecode[$PageDriveMDataI, A]; NewDecode[$BlockDriveMDataI, A]; LogicBlock["CacheMInterfaceMRAMDriver"]; NewDecode[$DriveMBits, DA]; NewDecode[$DriveMBitsNoMatch, DA]; NewDecode[$SenseMBits, A]; NewDecode[$DriveMDataI, A]; NewDecode[$SenseMDataI, B]; NewDecode[$DrivePBits, B]; NewDecode[$SensePBits, B]; LogicBlock["CacheMInterfaceMEntryCtl"]; NewDecode[$SetShared, DA]; NewDecode[$ResetMaster, DA]; NewDecode[$SetRPDirtyVPValid, DA]; NewDecode[$FlagLatch, B]; NewDecode[$SetFlags, DA]; NewDecode[$IncrementVictim, BA]; NewDecode[$IncrementMAdrCtr, B]; NewDecode[$ZeroMAdrCtr, B]; NewDecode[$SampleDirtyBits, B]; NewDecode[$DeleteDirtyBit, B]; NewDecode[$VictimSelect, BA]; NewDecode[$RefreshToDecoder, BA]; NewDecode[$IfGrantThenGetAdrElseRefreshToDecoder, BA]; NewDecode[$RefreshIfRefVirtual, BA]; NewDecode[$FetchAddress, BA]; NewDecode[$DirtyBitsToMQSel, BA]; NewDecode[$SamplePAdr2831, B]; NewDecode[$SampleMAdr2831, B]; NewDecode[$Adr2829ToMQSel, BA]; NewDecode[$AddressBitsToMDataI, A]; NewDecode[$VictimAddressBitsToMDataI, A]; NewDecode[$SelectRP, BA]; NewDecode[$SelectVPVictimOrOrphan, BA]; NewDecode[$SelectRealData, BA]; NewDecode[$SelVictimOrOrphan, BA]; NewDecode[$SenseVictim, BA]; LogicBlock["CacheMInterfaceMSequencer"]; NewDecode[$SuppressPSample, AB]; NewDecode[$MIsDone, AB]; NewDecode[$SetWantWS, A]; NewDecode[$CheckFaults, AB]; NewDecode[$SenseShared, B]; NewDecode[$ReleaseMBus, BA]; NewDecode[$ForceIdle, AB]; NewDecode[$Done, AB]; NewDecode[$ForceSlave, BA]; NewDecode[$SenseReady, BA]; NewDecode[$MDataIToFaults, B]; NewDecode[$MapBitsToMDataI, A]; NewDecode[$ACheckParity, DA]; NewDecode[$BCheckParity, B]; NewDecode[$SampleRealMatch, A]; NewDecode[$MCmdDrive, A]; NewDecode[$MDataDrive, A]; NewDecode[$DriveSharedHigh, A]; NewDecode[$DriveSharedLow, A]; NewDecode[$MasterEnableMBusDrive, AB]; NewDecode[$MCmdDriveToDataTransport, AB]; NewDecode[$MCmdDriveToNoOp, AB]; NewDecode[$MDataDriveDelayed, DA]; -- Both MRAMDriver and MSequencer END.