CreateWholeChip:
PROC [innerCt: CellType]
RETURNS [cellType: CellType] = {
pads: Pads ← NIL;
pads ← AddPad[pads, "PadI-A", $In, 3 , ["toChip", "I-A"]];
pads ← AddPad[pads, "PhA", $Clk, 4, ["Clock", "phA"], ["nClock", "nPhA"]];
pads ← AddPad[pads, "PadI-B", $In, 6, ["toChip", "I-B"]];
pads ← AddPad[pads, "Vdd", $Vdd, 8];
pads ← AddPad[pads, "Gnd", $Gnd, 9];
pads ← AddPad[pads, "PhB", $Clk, 12, ["Clock", "phB"], ["nClock", "nPhB"]];
pads ← AddPad[pads, "PadGnd", $PadGnd, 13];
pads ← AddPad[pads, "PadI-C", $In, 15, ["toChip", "I-C"]];
pads ← AddPad[pads, "PadI-D", $IOTst, 19,
["toChip", "I-D"], ["fromChip", "Gnd"], ["enWA", "Gnd"], ["enWB", "Gnd"]];
pads ← AddPad[pads, NIL, $Logo, 23];
pads ← AddPad[pads, "PadOut", $Out, 24, ["fromChip", "Out"]];
pads ← AddPad[pads, "PadVdd", $PadVdd, 27];
cellType ← CreatePadFrame[
public: CoreCreate.Wires["PadI-A", "PhA", "PadI-B", "PhB", "PadI-C", "PadI-D", "PadOut", "PadVdd", "PadGnd", "Vdd", "Gnd"],
onlyInternal: CoreCreate.Wires["nPhA", "nPhB", "phB", "phA", "I-A", "I-B", "I-C", "I-D", "Out"],
name: "WholeChip",
innerInstance: CoreCreate.Instance[innerCt],
pads: pads,
params: [nbPadsX: 7, nbPadsY: 7, horizLayer: "met", vertLayer: "met2"]];
};