SCLibGenCells4.mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Created by: Jacobi June 2, 1986 3:48:19 pm PDT
Last Edited by: Jacobi July 11, 1986 10:38:01 am PDT
Last Edited by: Louis Monier August 23, 1986 10:26:51 pm PDT
SCLibGenCells4:
CEDAR
PROGRAM
IMPORTS SCLibGen =
BEGIN
OPEN SCLibGen;
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;
CreateCellC2CG03A: GeneratorProc =
-- created by LMM; needs checking
BEGIN
Setup[design, "p1", "p1", "p1", "p1", "p4"];
MakeCont[row: 1, start: 2, n: 5];
MakeCont[row: 2, start: 1, n: 5];
MakeCont[row: 3, start: 2, n: 5];
MakeCont[row: 4, start: 3, n: 4];
MakeCont[row: 5, start: 2, n: 4];
HorizontalM[rowL: 1, rowR: 3, h: 6];
HorizontalM[rowL: 3, rowR: 5, h: 2, back: TRUE];
HorizontalM[rowL: 4, rowR: 5, h: 6];
VerticalM[row: 5, h1: 6, h2: 8];
SetN[];
MakeCont[row: 1, start: 2, n: 3];
MakeCont[row: 3, start: 1, n: 3];
MakeCont[row: 5, start: 2, n: 3];
HorizontalM[rowL: 1, rowR: 5, h: 4];
VerticalM[row: 5, h1: 4, h2: 5];
ContactM2[1, 2, 3, 4, 5];
Pins[5, "A", "B", "C", "D", "X"];
PinOrder["A B C D X Vdd Gnd"];
ob ← Finish["a22o2i.mask"];
END;
CreateCellC2CG13A: GeneratorProc =
-- created by LMM; needs checking
BEGIN
Setup[design, "p1", "p1", "p1", "p1", "p4"];
MakeCont[row: 1, start: 2, n: 5];
MakeCont[row: 3, start: 1, n: 5];
MakeCont[row: 5, start: 2, n: 5];
HorizontalM[rowL: 1, rowR: 5, h: 6];
VerticalM[row: 5, h1: 6, h2: 8];
SetN[];
MakeCont[row: 1, start: 2, n: 3];
MakeCont[row: 2, start: 1, n: 3];
MakeCont[row: 3, start: 2, n: 3];
MakeCont[row: 4, start: 3, n: 2];
MakeCont[row: 5, start: 2, n: 2];
HorizontalM[rowL: 1, rowR: 3, h: 4];
HorizontalM[rowL: 3, rowR: 5, h: 2, back: TRUE];
HorizontalM[rowL: 4, rowR: 5, h: 4];
VerticalM[row: 5, h1: 4, h2: 6];
ContactM2[1, 2, 3, 4, 5];
Pins[5, "A", "B", "C", "D", "X"];
PinOrder["A B C D X Vdd Gnd"];
ob ← Finish["o22a2i.mask"];
END;
CreateCellC2CG02A: GeneratorProc =
-- created by LMM; needs checking
BEGIN
Setup[design, "p1", "p1", "p1", "p4"];
MakeCont[row: 1, start: 2, n: 5];
MakeCont[row: 2, start: 1, n: 5];
MakeCont[row: 3, start: 2, n: 5];
MakeCont[row: 4, start: 2, n: 5];
HorizontalM[rowL: 1, rowR: 3, h: 6];
VerticalM[row: 4, h1: 6, h2: 8];
SetN[];
MakeCont[row: 1, start: 2, n: 3];
MakeCont[row: 3, start: 1, n: 3];
MakeCont[row: 4, start: 2, n: 3];
HorizontalM[rowL: 1, rowR: 4, h: 4];
VerticalM[row: 4, h1: 4, h2: 6];
ContactM2[1, 2, 3, 4];
Pins[4, "A", "B", "C", "X"];
PinOrder["A B C X Vdd Gnd"];
ob ← Finish["a21o2i.mask"];
END;
Register["Tristate", CreateCellTristate];
Register["InvBuffer", CreateCellInvBuffer];
Register["a22o2i", CreateCellC2CG03A];
Register["o22a2i", CreateCellC2CG13A];
Register["a21o2i", CreateCellC2CG02A];
END.