<> <> <> 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: BOOL _ TRUE] 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_0, dr: Ports.Drive _ none, pwrVal: Ports.Level _ L] RETURNS[wire: Core.Wire]; END.