CacheMicroCodeC.mesa
Last Edited by: Barth, May 31, 1984 4:09:08 pm PDT
DIRECTORY CacheMicroMachine;
CacheMicroCodeC: CEDAR PROGRAM
IMPORTS CacheMicroMachine =
BEGIN OPEN CacheMicroMachine;
Master;
Sequence[0]; -- WriteQuad
Cycle[0, LIST[$GetAddress]];
Cycle[1, LIST[$DriveMCmd, $PageAccessToMDataI, $LowBitsZeroToMDataI, $MDataIToMData, $DriveMData, $SelVictimData, $ZeroMAdrCtr, $MAdrCtrToMAdr, $MBitsToMRAMReg, $MRAMRegToMDataI]];
Cycle[2, LIST[$DriveMCmdToDataTransport, $DriveMData, $IncMAdrCtr, $MAdrCtrToMAdr, $SelVictimData, $MBitsToMRAMReg, $MRAMRegToMDataI, $CheckParity, $SenseReady, $StopPipeNoReady]];
Cycle[3, LIST[$DriveMCmdToDataTransport, $DriveMData, $IncMAdrCtr, $MAdrCtrToMAdr, $SelVictimData, $MBitsToMRAMReg, $MRAMRegToMDataI, $CheckParity, $MDone]];
Cycle[4, LIST[$DriveMCmdToDataTransport, $DriveMData, $IncMAdrCtr, $MAdrCtrToMAdr, $SelVictimData, $MBitsToMRAMReg, $MRAMRegToMDataI, $CheckParity]];
Cycle[5, LIST[$DriveMCmdToDataTransport, $DriveMData, $CheckParity, $GetAdrRefresh, $Done]];
Sequence[1]; -- IORead, map operation
Cycle[0, LIST[$GetAddress]];
Cycle[1, LIST[$DriveMCmd, $PageAccessToMDataI, $MapBitsToMDataI, $MDataIToMData, $DriveMData, $ForceSlave, $ForceIdle, $Done]];
Cycle[2, LIST[$DriveMCmdToNoOp, $CheckFaults, $Refresh, $ReleaseMBus, $MDone, $SuppressPSample]];
Cycle[3, LIST[$DriveMCmdToNoOp, $GetAdrRefresh, $Done, $SuppressPSample]]; -- this is here for the same reason as cycle 3 of IORead, real io operation.
END.