CreateCellTristate: GeneratorProc =
BEGIN
Setup[design, "p3", "p1", "p1", "p2", "p4"];
MakeCont[row: 2, start: 2, n: 6, back: TRUE];
HorizontalM[rowL: 2, rowR: 4, h: 7, back: TRUE];
MakeCont[row: 3, start: 1, n: 5];
MakeCont[row: 4, start: 2, n: 6, back: TRUE];
HorizontalM[rowL: 2, rowR: 3, h: 8];
MakeCont[row: 5, start: 3, n: 6];
MakeVia[row: 5, start: 2, n: 1];
SetN[];
MakeCont[row: 1, start: 2, n: 3, back: TRUE];
HorizontalM[rowL: 1, rowR: 5, h: 4, shortStart: FALSE];
MakeCont[row: 2, start: 2, n: 2, back: TRUE];
HorizontalM[rowL: 2, rowR: 4, h: 3, shortStart: FALSE, shortEnd: FALSE];
MakeCont[row: 3, start: 1, n: 2];
MakeCont[row: 4, start: 2, n: 2, back: TRUE];
MakeVia[row: 5, start: 4, n: 1];
PassMs[5];
ContactM2[1, 2, 4];
Pins[5 , "EN", "I", NIL, "NEN", "X"];
PinOrder["EN NEN I X Vdd Gnd"];
ob ← Finish["C2BD02A.mask"];
END;
CreateCellInvBuffer: GeneratorProc =
-- created by LMM; needs checking
BEGIN
Setup[design, "p1", "p1", "p4"];
MakeCont[row: 1, start: 1, n: 6];
MakeCont[row: 2, start: 2, n: 5];
MakeCont[row: 3, start: 1, n: 4];
HorizontalM[rowL: 2, rowR: 3, h: 6];
HorizontalM[rowL: 1, rowR: 2, h: 8];
VerticalM[row: 3, h1: 6, h2: 8];
SetN[];
MakeCont[row: 1, start: 1, n: 4];
MakeCont[row: 2, start: 2, n: 3];
MakeCont[row: 3, start: 1, n: 2];
HorizontalM[rowL: 2, rowR: 3, h: 4];
PassMs[3];
ContactM2[1, 3];
Pins[3, "I", NIL, "X"];
PinOrder["I X Vdd Gnd"];
ob ← Finish["C2IV00B.mask"];
END;