<> <> 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.