<> <> <> <> IFUPLAMainPipeControl: CEDAR DEFINITIONS = BEGIN <> MainPipeControlIn: TYPE = RECORD [ -- default must be zero reset: BOOL _ FALSE, dPReject: BOOL _ FALSE, dPFaulted: BOOL _ FALSE, protMicroCycle: BOOL _ FALSE, microExcptJmpBubble: BOOL _ FALSE, -- feedback stage2BAbort: BOOL _ FALSE, -- feedback stage1BHold: BOOL _ FALSE, condEffect1: CondEffect _ VAL[0], -- for detecting bubble in 1B condEffect2: CondEffect _ VAL[0], eUCondition2: BOOL _ FALSE, trapsEnbled2: BOOL _ FALSE, eStkOverflow2: BOOL _ FALSE, instStarting2: BOOL _ FALSE, rschWaiting2: BOOL _ FALSE, push2: BOOL _ FALSE, instFault2: BOOL _ FALSE, iStkNearlyFull: BOOL _ FALSE, x2ASrcLit1: BOOL _ FALSE]; MainPipeControlOut: TYPE = RECORD [ <> stage2A: NormalBubble _ normal, stage3A: NormalAbort _ normal, loadStage1: BOOL _ FALSE, loadStage2: BOOL _ FALSE, loadStage3: BOOL _ FALSE, x2ASrcLit2: BOOL _ FALSE, <> stage1BHolding: BOOL _ FALSE, notBcLoadStage1: BOOL _ FALSE, -- really just stage1BHolding again stage2B: NormalAbort _ normal, -- feedback stage2BAbort stage3BCPipe: NormalAbort _ normal, microExcptJmp: MicroExcptJmp _ none, -- feedback microExcptJmpBubble except: Exception _ [specialCode, none] ]; NormalBubble: TYPE = MACHINE DEPENDENT {normal(0), bubble(1)}; NormalAbort: TYPE = MACHINE DEPENDENT {normal(0), abort(1)}; CondEffect: TYPE = MACHINE DEPENDENT {macroTrap(0), macroJump, microJump, bubble(3)}; MicroExcptJmp: TYPE = MACHINE DEPENDENT { none(0), -- microcycle as proposed by instrDecode microJump(3), -- microcycle = 64 bubble(5), -- microcycle = 112 resetting(9), -- microcycle = 116 trap(17), -- microcycle = 120 cJump(33)}; -- microcycle = 124 Exception: TYPE = RECORD [type: ExceptType, code: ExceptCode _ none]; -- for Trap PC generator ExceptType: TYPE = MACHINE DEPENDENT {specialCode(0), condCode(3), dpFault(5)}; ExceptCode: TYPE = MACHINE DEPENDENT { none (0), ipFault (1), bubble (2), cJump (3), reseting (6), reset (7), iStkOFlow (8), eStkOFlow (9), rschlWait (0AH), trapCycle1 (0BH)}; <<>> <> <> < no other bit is true).>> <> <<>> END.