-- File: FSMPads - Created by SETAR 24-Jun-86 14:50:04

DIRECTORY
Core,
CoreClasses,
CoreProperties,
Rope,
SCTestUtil,
FSMPadsOps;

FSMPads: CEDAR PROGRAM

IMPORTS CoreProperties, SCTestUtil, FSMPadsOps
EXPORTS SCTestUtil, FSMPadsOps =

BEGIN OPEN SCTestUtil;

CellInstance: TYPE = CoreClasses.CellInstance;

initialized: BOOLEAN ← FALSE;

ct: PUBLIC FSMPadsOps.CellTypeArray;

InitializeTypes: PROC [] = {
  c2PD38AWires: Core.Wire ← CreateWire[LIST["I", "EN", "X", "Gnd", "Vdd", "PAD", ]];
  c2PD37AWires: Core.Wire ← CreateWire[LIST["I", "EN", "X", "Gnd", "Vdd", "PAD", ]];
  c2IV00BWires: Core.Wire ← CreateWire[LIST["I", "X", "Vdd", "Gnd"]];
  c2AN02AWires: Core.Wire ← CreateWire[LIST["IXA", "IXB", "X", "Vdd", "Gnd"]];
  c2NO02BWires: Core.Wire ← CreateWire[LIST["IXA", "IXB", "X", "Vdd", "Gnd"]];
  c2NO03BWires: Core.Wire ← CreateWire[LIST["IXA", "IXB", "X", "IXC", "Vdd", "Gnd"]];
  c2NA03AWires: Core.Wire ← CreateWire[LIST["IXA", "IXB", "IXC", "X", "Vdd", "Gnd"]];
  c2OR02AWires: Core.Wire ← CreateWire[LIST["IXA", "IXB", "X", "Vdd", "Gnd"]];
  c2NO04BWires: Core.Wire ← CreateWire[LIST["IXA", "IXB", "IXC", "IXD", "X", "Vdd", "Gnd"]];
  ct[c2PD38A] ← CreateRecordCell["C2PD38A", c2PD38AWires, c2PD38AWires, NIL];
  ct[c2PD37A] ← CreateRecordCell["C2PD37A", c2PD37AWires, c2PD37AWires, NIL];
  ct[c2IV00B] ← CreateRecordCell["C2IV00B", c2IV00BWires, c2IV00BWires, NIL];
  ct[c2AN02A] ← CreateRecordCell["C2AN02A", c2AN02AWires, c2AN02AWires, NIL];
  ct[c2NO02B] ← CreateRecordCell["C2NO02B", c2NO02BWires, c2NO02BWires, NIL];
  ct[c2NO03B] ← CreateRecordCell["C2NO03B", c2NO03BWires, c2NO03BWires, NIL];
  ct[c2NA03A] ← CreateRecordCell["C2NA03A", c2NA03AWires, c2NA03AWires, NIL];
  ct[c2OR02A] ← CreateRecordCell["C2OR02A", c2OR02AWires, c2OR02AWires, NIL];
  ct[c2NO04B] ← CreateRecordCell["C2NO04B", c2NO04BWires, c2NO04BWires, NIL];
};

CreateCoreForLogic: PUBLIC PROC [] RETURNS [Core.CellType] = BEGIN
instList: LIST OF CellInstance ← NIL;
  FSMTEST: Core.CellType;
pubWires: Core.Wire ← CreateWire[FSMPadsOps.MakepubWires1[]];
internWires: Core.Wire ← SCTestUtil.UnionWire[pubWires, CreateWire[FSMPadsOps.MakeinternWires1[]]];
IF NOT initialized THEN {InitializeTypes[]; initialized ← TRUE};
instList ← AppendInstList[instList, FSMPadsOps.MakeInsts2[internWires]];
  FSMTEST ← CreateRecordCell["FSMTEST", pubWires, internWires, instList];
  ct[fSMTEST] ← FSMTEST;
  RETURN[FSMTEST];
  END;

CreateCoreForPadFrame: PUBLIC PROC [] RETURNS [Core.CellType] = BEGIN
instList: LIST OF CellInstance ← NIL;
  FSMPads: Core.CellType;
internWires: Core.Wire ← CreateWire[FSMPadsOps.MakeinternWires3[]];
IF NOT initialized THEN {InitializeTypes[]; initialized ← TRUE};
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "Gnd", "unconnected", "unconnected", "unconnected"], ct[c2PD38A], "c2PD38AInst42", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "Vdd", "unconnected", "unconnected", "unconnected"], ct[c2PD38A], "c2PD38AInst41", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w20", "unconnected", "unconnected", "unconnected"], ct[c2PD38A], "c2PD38AInst40", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w19", "unconnected", "unconnected", "unconnected"], ct[c2PD38A], "c2PD38AInst39", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w18", "unconnected", "unconnected", "unconnected"], ct[c2PD38A], "c2PD38AInst38", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w17", "unconnected", "unconnected", "unconnected"], ct[c2PD38A], "c2PD38AInst37", internWires], instList];
  instList ← CONS[CreateInstance[LIST["w35", "unconnected", "unconnected", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst16", internWires], instList];
  instList ← CONS[CreateInstance[LIST["w33", "unconnected", "unconnected", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst15", internWires], instList];
  instList ← CONS[CreateInstance[LIST["w36", "unconnected", "unconnected", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst14", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w27", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst13", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w29", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst9", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w21", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst7", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w32", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst6", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w24", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst5", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w25", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst4", internWires], instList];
  instList ← CONS[CreateInstance[LIST["unconnected", "unconnected", "w26", "unconnected", "unconnected", "unconnected"], ct[c2PD37A], "c2PD37AInst3", internWires], instList];
  instList ← CONS[CreateInstance[LIST["w33", "w17", "w18", "w19", "w20", "w21", "w32", "w29", "w35", "w36", "w24", "w25", "w26", "w27", "Vdd", "Gnd"], ct[fSMTEST], "fSMTESTInst2", internWires], instList];
  FSMPads ← CreateRecordCell["FSMPads", NIL, internWires, instList];
CoreProperties.PutWireProp[internWires[12], $Power]; 
CoreProperties.PutWireProp[internWires[13], $Power]; 
  RETURN[FSMPads];
  END;

END.