args:
REF IFUArgs ←
NARROW[thisCell.type.typeData];
{OPEN args;
PrivateLookupNode: PROC [name: ROPE] RETURNS [node: Node] = {node ← RoseCreate.LookupNode[from: thisCell, path: LIST[name]]};
KBus: Node ← PrivateLookupNode["KBus"];
EUAluOp2AB: Node ← PrivateLookupNode["EUAluOp2AB"];
EUCondSel2AB: Node ← PrivateLookupNode["EUCondSel2AB"];
EUSt3AisCBus2BA: Node ← PrivateLookupNode["EUSt3AisCBus2BA"];
EUCondition2B: Node ← PrivateLookupNode["EUCondition2B"];
EURes3BisPBus3AB: Node ← PrivateLookupNode["EURes3BisPBus3AB"];
EUWriteToPBus3AB: Node ← PrivateLookupNode["EUWriteToPBus3AB"];
DPCmnd3A: Node ← PrivateLookupNode["DPCmnd3A"];
DPData: Node ← PrivateLookupNode["DPData"];
DPRejectB: Node ← PrivateLookupNode["DPRejectB"];
DPFaultB: Node ← PrivateLookupNode["DPFaultB"];
IPCmnd3A: Node ← PrivateLookupNode["IPCmnd3A"];
IPRejectB: Node ← PrivateLookupNode["IPRejectB"];
IPFaultB: Node ← PrivateLookupNode["IPFaultB"];
IPData: Node ← PrivateLookupNode["IPData"];
ResetAB: Node ← PrivateLookupNode["ResetAB"];
DHoldAB: Node ← PrivateLookupNode["DHoldAB"];
DShiftAB: Node ← PrivateLookupNode["DShiftAB"];
DExecuteAB: Node ← PrivateLookupNode["DExecuteAB"];
DNSelectAB: Node ← PrivateLookupNode["DNSelectAB"];
DDataInAB: Node ← PrivateLookupNode["DDataInAB"];
DDataOutAB: Node ← PrivateLookupNode["DDataOutAB"];
RescheduleAB: Node ← PrivateLookupNode["RescheduleAB"];
PhA: Node ← PrivateLookupNode["PhA"];
PhB: Node ← PrivateLookupNode["PhB"];
others: SymbolTable ← RoseCreate.GetOthers[otherss, "IFU"];
NodeCreateHack1: PROC [name: ROPE] RETURNS [node: Node] = {node ← to.class.NodeInstance[erInstance: to.instance, name: name, type: NumTypes.NumType[32], other: RoseCreate.GetOther[others, name]]};
XBus: Node ← NodeCreateHack1["XBus"];
NodeCreateHack2: PROC [name: ROPE] RETURNS [node: Node] = {node ← to.class.NodeInstance[erInstance: to.instance, name: name, type: NumTypes.boolType, other: RoseCreate.GetOther[others, name]]};
X2ASrcLit0BA: Node ← NodeCreateHack2["X2ASrcLit0BA"];
X2ASrcLit1BA: Node ← NodeCreateHack2["X2ASrcLit1BA"];
Stage1BHoldBA: Node ← NodeCreateHack2["Stage1BHoldBA"];
LoadStage1Ac: Node ← NodeCreateHack2["LoadStage1Ac"];
LoadStage1Bc: Node ← NodeCreateHack2["LoadStage1Bc"];
LoadStage2Ac: Node ← NodeCreateHack2["LoadStage2Ac"];
BubbleStage2A1BA: Node ← NodeCreateHack2["BubbleStage2A1BA"];
NormalStage2A1BA: Node ← NodeCreateHack2["NormalStage2A1BA"];
AbortStage2B2AB: Node ← NodeCreateHack2["AbortStage2B2AB"];
NormalStage2B2AB: Node ← NodeCreateHack2["NormalStage2B2AB"];
LoadStage3Ac: Node ← NodeCreateHack2["LoadStage3Ac"];
AbortStage3A2BA: Node ← NodeCreateHack2["AbortStage3A2BA"];
NormalStage3A2BA: Node ← NodeCreateHack2["NormalStage3A2BA"];
MicroExcptJmpAB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "MicroExcptJmpAB", type: EnumTypes.EnumType["IFUPLAMainControl.MicroExcptJmp"], other: RoseCreate.GetOther[others, "MicroExcptJmpAB"]];
ExceptionCodeAB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "ExceptionCodeAB", type: EnumTypes.EnumType["IFUPLAMainControl.ExceptionCode"], other: RoseCreate.GetOther[others, "ExceptionCodeAB"]];
NodeCreateHack3: PROC [name: ROPE] RETURNS [node: Node] = {node ← to.class.NodeInstance[erInstance: to.instance, name: name, type: NumTypes.NumType[8], other: RoseCreate.GetOther[others, name]]};
MicroCycleAB: Node ← NodeCreateHack3["MicroCycleAB"];
GetNextInstBA: Node ← NodeCreateHack2["GetNextInstBA"];
MacroJumpBA: Node ← NodeCreateHack2["MacroJumpBA"];
MicroCycleNextBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "MicroCycleNextBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.MicroCycleNext"], other: RoseCreate.GetOther[others, "MicroCycleNextBA"]];
InstReadyAB: Node ← NodeCreateHack2["InstReadyAB"];
OpAB: Node ← NodeCreateHack3["OpAB"];
AlphaAB: Node ← NodeCreateHack3["AlphaAB"];
BetaAB: Node ← NodeCreateHack3["BetaAB"];
GammaAB: Node ← NodeCreateHack3["GammaAB"];
DeltaAB: Node ← NodeCreateHack3["DeltaAB"];
OpBA: Node ← NodeCreateHack3["OpBA"];
AlphaBA: Node ← NodeCreateHack3["AlphaBA"];
BetaBA: Node ← NodeCreateHack3["BetaBA"];
OpLengthBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "OpLengthBA", type: NumTypes.NumType[3], other: RoseCreate.GetOther[others, "OpLengthBA"]];
JumpOffsetSelAB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "JumpOffsetSelAB", type: EnumTypes.EnumType["IFUPLAFetchPreDecode.JumpOffsetSel"], other: RoseCreate.GetOther[others, "JumpOffsetSelAB"]];
RschWaiting2BA: Node ← NodeCreateHack2["RschWaiting2BA"];
UserMode0AB: Node ← NodeCreateHack2["UserMode0AB"];
TrapsEnbled2BA: Node ← NodeCreateHack2["TrapsEnbled2BA"];
ClearTrapsEnbledBA: Node ← NodeCreateHack2["ClearTrapsEnbledBA"];
ClearUserModeBA: Node ← NodeCreateHack2["ClearUserModeBA"];
KPadsIn0BA: Node ← NodeCreateHack2["KPadsIn0BA"];
KPadsIn3BA: Node ← NodeCreateHack2["KPadsIn3BA"];
X2ALitSourceBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "X2ALitSourceBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.X2ALitSource"], other: RoseCreate.GetOther[others, "X2ALitSourceBA"]];
PCBusB: Node ← NodeCreateHack1["PCBusB"];
PCStkTopAB: Node ← NodeCreateHack1["PCStkTopAB"];
PCForLogAB: Node ← NodeCreateHack1["PCForLogAB"];
PCPipe3BA: Node ← NodeCreateHack1["PCPipe3BA"];
PCNextBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "PCNextBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.PCNext"], other: RoseCreate.GetOther[others, "PCNextBA"]];
PCBusSrcB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "PCBusSrcB", type: EnumTypes.EnumType["IFUPLAInstrDecode.PCBusSrc"], other: RoseCreate.GetOther[others, "PCBusSrcB"]];
PCPipeSrcBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "PCPipeSrcBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.PCPipeSrc"], other: RoseCreate.GetOther[others, "PCPipeSrcBA"]];
Push0BA: Node ← NodeCreateHack2["Push0BA"];
Pop0BA: Node ← NodeCreateHack2["Pop0BA"];
Push2BA: Node ← NodeCreateHack2["Push2BA"];
Push3BA: Node ← NodeCreateHack2["Push3BA"];
Pop3BA: Node ← NodeCreateHack2["Pop3BA"];
PushPendingAB: Node ← NodeCreateHack2["PushPendingAB"];
PopPendingAB: Node ← NodeCreateHack2["PopPendingAB"];
PushPendingBA: Node ← NodeCreateHack2["PushPendingBA"];
PopPendingBA: Node ← NodeCreateHack2["PopPendingBA"];
IStkNearlyFullBA: Node ← NodeCreateHack2["IStkNearlyFullBA"];
LBusB: Node ← NodeCreateHack3["LBusB"];
LStkTopAB: Node ← NodeCreateHack3["LStkTopAB"];
LPipe3BA: Node ← NodeCreateHack3["LPipe3BA"];
LAB: Node ← NodeCreateHack3["LAB"];
SAB: Node ← NodeCreateHack3["SAB"];
DeltaSBA: Node ← NodeCreateHack3["DeltaSBA"];
PopSa0BA: Node ← NodeCreateHack2["PopSa0BA"];
PopSb0BA: Node ← NodeCreateHack2["PopSb0BA"];
PushSc0BA: Node ← NodeCreateHack2["PushSc0BA"];
LSourceLtBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "LSourceLtBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.LSourceLt"], other: RoseCreate.GetOther[others, "LSourceLtBA"]];
LSourceRtBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "LSourceRtBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.LSourceRt"], other: RoseCreate.GetOther[others, "LSourceRtBA"]];
SSourceLtBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "SSourceLtBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.SSourceLt"], other: RoseCreate.GetOther[others, "SSourceLtBA"]];
SSourceRtBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "SSourceRtBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.SSourceRt"], other: RoseCreate.GetOther[others, "SSourceRtBA"]];
NodeCreateHack4: PROC [name: ROPE] RETURNS [node: Node] = {node ← to.class.NodeInstance[erInstance: to.instance, name: name, type: EnumTypes.EnumType["IFUPLAInstrDecode.ABCSourceLt"], other: RoseCreate.GetOther[others, name]]};
ASourceLtBA: Node ← NodeCreateHack4["ASourceLtBA"];
NodeCreateHack5: PROC [name: ROPE] RETURNS [node: Node] = {node ← to.class.NodeInstance[erInstance: to.instance, name: name, type: EnumTypes.EnumType["IFUPLAInstrDecode.ABCSourceRt"], other: RoseCreate.GetOther[others, name]]};
ASourceRtBA: Node ← NodeCreateHack5["ASourceRtBA"];
ASourceOffBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "ASourceOffBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.PlusOffset"], other: RoseCreate.GetOther[others, "ASourceOffBA"]];
BSourceLtBA: Node ← NodeCreateHack4["BSourceLtBA"];
BSourceRtBA: Node ← NodeCreateHack5["BSourceRtBA"];
BSourceOffBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "BSourceOffBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.PlusOffset"], other: RoseCreate.GetOther[others, "BSourceOffBA"]];
CSourceLtBA: Node ← NodeCreateHack4["CSourceLtBA"];
CSourceRtBA: Node ← NodeCreateHack5["CSourceRtBA"];
CSourceOffBA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "CSourceOffBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.MinusOffset"], other: RoseCreate.GetOther[others, "CSourceOffBA"]];
X1ASrcStackBA: Node ← NodeCreateHack2["X1ASrcStackBA"];
X1ADstStackBA: Node ← NodeCreateHack2["X1ADstStackBA"];
XBusStackEldestBA: Node ← NodeCreateHack2["XBusStackEldestBA"];
XBusStackLBA: Node ← NodeCreateHack2["XBusStackLBA"];
X1ASrcSLimitAc: Node ← NodeCreateHack2["X1ASrcSLimitAc"];
X1ADstSLimitAc: Node ← NodeCreateHack2["X1ADstSLimitAc"];
X2ASrcStatusBA: Node ← NodeCreateHack2["X2ASrcStatusBA"];
X1ADstStatusBA: Node ← NodeCreateHack2["X1ADstStatusBA"];
AReg0BA: Node ← NodeCreateHack3["AReg0BA"];
BReg0BA: Node ← NodeCreateHack3["BReg0BA"];
CReg0BA: Node ← NodeCreateHack3["CReg0BA"];
ARegIsC2BA: Node ← NodeCreateHack2["ARegIsC2BA"];
ARegIsC3BA: Node ← NodeCreateHack2["ARegIsC3BA"];
BRegIsC2BA: Node ← NodeCreateHack2["BRegIsC2BA"];
BRegIsC3BA: Node ← NodeCreateHack2["BRegIsC3BA"];
ALUOpNeedsField0BA: Node ← NodeCreateHack2["ALUOpNeedsField0BA"];
ALUOpNeedsField1BA: Node ← NodeCreateHack2["ALUOpNeedsField1BA"];
C0IsFieldCtlBA: Node ← NodeCreateHack2["C0IsFieldCtlBA"];
C2IsFieldCtlAB: Node ← NodeCreateHack2["C2IsFieldCtlAB"];
C3IsFieldCtlAB: Node ← NodeCreateHack2["C3IsFieldCtlAB"];
CRegIsField3B: Node ← NodeCreateHack2["CRegIsField3B"];
EUAluLeftSrc1B: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUAluLeftSrc1B", type: EnumTypes.EnumType["Dragon.ALULeftSources"], other: RoseCreate.GetOther[others, "EUAluLeftSrc1B"]];
EUAluRightSrc1B: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUAluRightSrc1B", type: EnumTypes.EnumType["Dragon.ALURightSources"], other: RoseCreate.GetOther[others, "EUAluRightSrc1B"]];
EUStore2ASrc1B: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUStore2ASrc1B", type: EnumTypes.EnumType["Dragon.Store2ASources"], other: RoseCreate.GetOther[others, "EUStore2ASrc1B"]];
EStkOverflow1BA: Node ← NodeCreateHack2["EStkOverflow1BA"];
EStkOverflow2BA: Node ← NodeCreateHack2["EStkOverflow2BA"];
DPCmnd0BA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "DPCmnd0BA", type: EnumTypes.EnumType["Dragon.PBusCommands"], other: RoseCreate.GetOther[others, "DPCmnd0BA"]];
DPCmndRd0BA: Node ← NodeCreateHack2["DPCmndRd0BA"];
DPCmndRd2BA: Node ← NodeCreateHack2["DPCmndRd2BA"];
DPCmndRd3BA: Node ← NodeCreateHack2["DPCmndRd3BA"];
KIsRtOp0BA: Node ← NodeCreateHack2["KIsRtOp0BA"];
KIsRtOp1BA: Node ← NodeCreateHack2["KIsRtOp1BA"];
FCtlIsRtOp0BA: Node ← NodeCreateHack2["FCtlIsRtOp0BA"];
FCtlIsRtOp1BA: Node ← NodeCreateHack2["FCtlIsRtOp1BA"];
EUAluOp0BA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUAluOp0BA", type: EnumTypes.EnumType["Dragon.ALUOps"], other: RoseCreate.GetOther[others, "EUAluOp0BA"]];
EUCondSel0BA: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUCondSel0BA", type: EnumTypes.EnumType["Dragon.CondSelects"], other: RoseCreate.GetOther[others, "EUCondSel0BA"]];
EUCondSel3AB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUCondSel3AB", type: EnumTypes.EnumType["Dragon.CondSelects"], other: RoseCreate.GetOther[others, "EUCondSel3AB"]];
NodeCreateHack6: PROC [name: ROPE] RETURNS [node: Node] = {node ← to.class.NodeInstance[erInstance: to.instance, name: name, type: EnumTypes.EnumType["IFUPLAMainControl.CondEffect"], other: RoseCreate.GetOther[others, name]]};
EUCondEffect0BA: Node ← NodeCreateHack6["EUCondEffect0BA"];
EUCondEffect1BA: Node ← NodeCreateHack6["EUCondEffect1BA"];
EUCondEffect2AB: Node ← NodeCreateHack6["EUCondEffect2AB"];
EUCondEffect2BA: Node ← NodeCreateHack6["EUCondEffect2BA"];
EUSt3AisCBus1BA: Node ← NodeCreateHack2["EUSt3AisCBus1BA"];
EUAluLeftSrc1AB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUAluLeftSrc1AB", type: EnumTypes.EnumType["Dragon.ALULeftSources"], other: RoseCreate.GetOther[others, "EUAluLeftSrc1AB"]];
EUAluRightSrc1AB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUAluRightSrc1AB", type: EnumTypes.EnumType["Dragon.ALURightSources"], other: RoseCreate.GetOther[others, "EUAluRightSrc1AB"]];
EUStore2ASrc1AB: Node ← to.class.NodeInstance[erInstance: to.instance, name: "EUStore2ASrc1AB", type: EnumTypes.EnumType["Dragon.Store2ASources"], other: RoseCreate.GetOther[others, "EUStore2ASrc1AB"]];
DPRejectedBA: Node ← NodeCreateHack2["DPRejectedBA"];
IPFaulted0BA: Node ← NodeCreateHack2["IPFaulted0BA"];
IPFaulted2BA: Node ← NodeCreateHack2["IPFaulted2BA"];
InstStarting0BA: Node ← NodeCreateHack2["InstStarting0BA"];
InstStarting2BA: Node ← NodeCreateHack2["InstStarting2BA"];
RescheduleBA: Node ← NodeCreateHack2["RescheduleBA"];
ResetBA: Node ← NodeCreateHack2["ResetBA"];
DHold0BA: Node ← NodeCreateHack2["DHold0BA"];
DHold1AB: Node ← NodeCreateHack2["DHold1AB"];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "logger", typeName: IFUData3.IFULogger[[logRef:logRef, lizardSimRef:lizardSimRef]].name, other: RoseCreate.GetOther[others, "logger"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "fetch", typeName: "Fetch", other: RoseCreate.GetOther[others, "fetch"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "x2ALitGen", typeName: "X2ALitGen", other: RoseCreate.GetOther[others, "x2ALitGen"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "pcForm", typeName: "PCForm", other: RoseCreate.GetOther[others, "pcForm"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "stack", typeName: "Stack", other: RoseCreate.GetOther[others, "stack"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "lFormation", typeName: "LFormation", other: RoseCreate.GetOther[others, "lFormation"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "sFormation", typeName: "SFormation", other: RoseCreate.GetOther[others, "sFormation"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "sLimitTest", typeName: "SLimitTest", other: RoseCreate.GetOther[others, "sLimitTest"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "sDelta", typeName: "SDelta", other: RoseCreate.GetOther[others, "sDelta"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "aBCFormation", typeName: "ABCFormation", other: RoseCreate.GetOther[others, "aBCFormation"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "ifuStatus", typeName: "IFUStatus", other: RoseCreate.GetOther[others, "ifuStatus"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "kBusPads", typeName: "KBusPads", other: RoseCreate.GetOther[others, "kBusPads"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "mainControl", typeName: "MainControl", other: RoseCreate.GetOther[others, "mainControl"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "microCycle", typeName: "MicroCycle", other: RoseCreate.GetOther[others, "microCycle"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "instrDecode", typeName: "InstrDecode", other: RoseCreate.GetOther[others, "instrDecode"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "interlock", typeName: "Interlock", other: RoseCreate.GetOther[others, "interlock"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "controlPipe", typeName: "ControlPipe", other: RoseCreate.GetOther[others, "controlPipe"], interfaceNodes: ""];
[] ← to.class.CellInstance[erInstance: to.instance, instanceName: "misc", typeName: "Misc", other: RoseCreate.GetOther[others, "misc"], interfaceNodes: ""];
};