<> <> <> <> <> DIRECTORY SCLibGen; 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; Register["Tristate", CreateCellTristate]; Register["InvBuffer", CreateCellInvBuffer]; END.