IFUPublic.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Don Curry April 2, 1987 9:36:54 am PST
DIRECTORY Core, Ports, Rope, IFUPLAInstrDecode, IFUPLAFetchControl, IFUPLAPass, IFUPLAStackControl, IFUPLAMainPipeControl, IFUPLAInterlock;
IFUPublic: CEDAR DEFINITIONS
= BEGIN
CurrentIFUVersion: NAT[0..256) = 2;
II: TYPE = {
KBus,
EUAluOp, EUCondSel, EUCondition, EURdFromPBus, EUWriteToPBus,
UserMode,
DPCmd,  DPReject, DPFault,
IPCmdFetch, IPReject, IPFaulting, IPData,
DShA, DShB, DShRd, DShWt, DShIn, DShOut,
Reset, Reschedule,
Clk, PhAOut, PhBOut, PhA, PhB,
VbbGen, Vbb, Vdd, Gnd, PadVdd, PadGnd};
ScanRef:   TYPE = REF ScanRec;
ScanRec:   TYPE = MACHINE DEPENDENT RECORD[
ILIn:  IFUPLAInterlock.InterlockIn,
ILOut: IFUPLAInterlock.InterlockOut,
MPIn: IFUPLAMainPipeControl.MainPipeControlIn,
MPOut: IFUPLAMainPipeControl.MainPipeControlOut,
SBIn:  IFUPLAStackControl.StackBControlIn,
SBOut: IFUPLAStackControl.StackBControlOut,
SAIn:  IFUPLAStackControl.StackAControlIn,
SAOut: IFUPLAStackControl.StackAControlOut,
SDIn:  IFUPLAStackControl.StackDecodeIn,
SROut: IFUPLAStackControl.StackDecodeRdOut,
SLOut: IFUPLAStackControl.StackDecodeWtLOut,
SPOut: IFUPLAStackControl.StackDecodeWtPOut,
LtIO:  IFUPLAPass.LtDrPadIO,
FCIn:  IFUPLAFetchControl.FetchControlIn,
FCOut: IFUPLAFetchControl.FetchControlOut,
FWIn: IFUPLAFetchControl.FetchWtDecodeIn,
FWOut: IFUPLAFetchControl.FetchWtDecodeOut,
FRIn:  IFUPLAFetchControl.FetchRdDecodeIn,
FROut: IFUPLAFetchControl.FetchRdDecodeOut,
RtIO:  IFUPLAPass.RtDrPadIO,
IDOut0: IFUPLAInstrDecode.InstrDecodeOut0,
IDOut1: IFUPLAInstrDecode.InstrDecodeOut1,
IDOut2: IFUPLAInstrDecode.InstrDecodeOut2,
IDOut3: IFUPLAInstrDecode.InstrDecodeOut3,
IDOut4: IFUPLAInstrDecode.InstrDecodeOut4,
IDOut5: IFUPLAInstrDecode.InstrDecodeOut5,
IDOut6: IFUPLAInstrDecode.InstrDecodeOut6,
IDIn:  IFUPLAInstrDecode.InstrDecodeIn,
Debug: LONG CARDINAL ];
IfuInitializedPublic: PROC[init: BOOLTRUE] RETURNS[public: Core.Wire];
scanDrInv: ScanRef;      -- True for elements which are stored inverted
ScanDrInv: PROC[scan: ScanRef ← NIL] -- Inverts elements which are stored inverted
RETURNS[IFUPublic.ScanRef];
SetScanBit: PROC[scan: ScanRef, bit: NAT,     val: BOOL]; -- applies scanDrInv
GetScanBit: PROC[scan: ScanRef, bit: NAT] RETURNS[ val: BOOL]; -- applies scanDrInv
PortWire: PROC
[init: BOOL, name: Rope.ROPE, size: NAT𡤀, dr: Ports.Drive ← none, pwrVal: Ports.Level ← L]
RETURNS[wire: Core.Wire];
END.