DIRECTORY SCLibGen; SCLibGenCells2: CEDAR PROGRAM IMPORTS SCLibGen = BEGIN OPEN SCLibGen; CreateCellDLatch1: GeneratorProc = BEGIN Setup[design, "p1", "p4", "p1", "p1", "p1", "p1", "p4", "p1", "p4", "p1", "p1", "p4"]; MakeCont[row: 1, start: 1, n: 6]; MakeCont[row: 2, start: 2, n: 7]; MakeCont[row: 3, start: 2, n: 4]; MakeCont[row: 4, start: 1, n: 2]; MakeCont[row: 5, start: 2, n: 5]; MakeCont[row: 6, start: 5, n: 2]; MakeCont[row: 7, start: 2, n: 4]; MakeCont[row: 8, start: 1, n: 5]; MakeCont[row: 9, start: 8, n: 1]; MakeCont[row: 10, start: 2, n: 3]; MakeVia[row: 10, start: 5, n: 1]; MakeCont[row: 11, start: 1, n: 5]; MakeCont[row: 12, start: 2, n: 6]; HorizontalM[rowL: 2, rowR: 4, h: 6]; HorizontalM[rowL: 6, rowR: 11, h: 6]; HorizontalM[rowL: 3, rowR: 7, h: 4, back: TRUE]; HorizontalM[rowL: 9, rowR: 10, h: 8, back: TRUE]; VerticalM[row: 4, h1: 6, h2: 7, front: TRUE]; VerticalM[row: 7, h1: 6, h2: 9]; VerticalM[row: 8, h1: 6, h2: 7, front: TRUE]; VerticalM[row: 11, h1: 6, h2: 7, front: TRUE]; SetN[]; MakeCont[row: 1, start: 1, n: 1]; MakeVia[row: 1, start: 3, n: 1, back: TRUE]; MakeCont[row: 2, start: 4, n: 1]; MakeCont[row: 3, start: 4, n: 1]; MakeCont[row: 5, start: 1, n: 1]; MakeVia[row: 5, start: 3, n: 1, back: TRUE]; MakeVia[row: 6, start: 3, n: 1, back: TRUE]; MakeCont[row: 7, start: 4, n: 1]; MakeCont[row: 8, start: 1, n: 1]; MakeCont[row: 9, start: 2, n: 3]; MakeCont[row: 10, start: 2, n: 2]; MakeVia[row: 10, start: 4, n: 1]; MakeCont[row: 11, start: 1, n: 4]; MakeCont[row: 12, start: 2, n: 3]; HorizontalM[rowL: 1, rowR: 5, h: 3, back: TRUE]; HorizontalM[rowL: 6, rowR: 9, h: 3, back: TRUE]; HorizontalM[rowL: 3, rowR: 7, h: 4]; PassMs[2, 7, 9, 12]; ContactM2[1, 3, 5, 6, 12]; Pins[12, "NCK", NIL, "D", NIL, NIL, NIL, NIL, NIL, NIL, "NQ", NIL, "Q"]; PinOrder["NCK D Q NQ Vdd Gnd"]; ob _ Finish["C2LT01A.mask"]; END; CreateCellDLatch2: GeneratorProc = BEGIN Setup[design, "p1", "p4", "p1", "p1", "p1", "p4", "p1", "p1", "p1", "p4", "p1", "p1", "p4"]; MakeCont[row: 1, start: 1, n: 1]; MakeVia[row: 1, start: 3, n: 1, back: TRUE]; HorizontalM[rowL: 1, rowR: 7, h: 2]; MakeCont[row: 2, start: 5, n: 4]; HorizontalM[rowL: 2, rowR: 3, h: 8]; MakeCont[row: 3, start: 5, n: 3, back: TRUE]; HorizontalM[rowL: 3, rowR: 5, h: 7, back: TRUE]; MakeCont[row: 4, start: 1, n: 1]; MakeVia[row: 4, start: 4, n: 1, back: TRUE]; HorizontalM[rowL: 4, rowR: 8, h: 3]; MakeCont[row: 5, start: 6, n: 2, back: TRUE]; MakeCont[row: 6, start: 5, n: 1]; MakeVia[row: 6, start: 6, n: 1]; HorizontalM[rowL: 6, rowR: 12, h: 5, back: TRUE]; MakeCont[row: 7, start: 7, n: 1, back: TRUE]; HorizontalM[rowL: 7, rowR: 9, h: 7, back: TRUE]; MakeVia[row: 7, start: 2, n: 1]; MakeCont[row: 8, start: 1, n: 1]; MakeVia[row: 8, start: 3, n: 1]; MakeCont[row: 9, start: 7, n: 1, back: TRUE]; MakeVia[row: 9, start: 5, n: 1, back: TRUE]; MakeCont[row: 10, start: 7, n: 2]; HorizontalM[rowL: 10, rowR: 11, h: 8]; MakeCont[row: 11, start: 2, n: 1]; MakeVia[row: 11, start: 3, n: 1]; MakeCont[row: 12, start: 1, n: 3]; MakeCont[row: 13, start: 2, n: 6]; VerticalM[row: 12, h1: 5, h2: 8, front: TRUE]; SetN[]; MakeCont[row: 1, start: 1, n: 4]; MakeCont[row: 2, start: 2, n: 3]; MakeCont[row: 3, start: 2, n: 3]; MakeCont[row: 5, start: 1, n: 1]; MakeCont[row: 6, start: 3, n: 1]; MakeVia[row: 6, start: 2, n: 1]; MakeCont[row: 7, start: 2, n: 3]; MakeCont[row: 9, start: 1, n: 3]; MakeCont[row: 10, start: 2, n: 3]; MakeCont[row: 11, start: 2, n: 2]; MakeVia[row: 11, start: 4, n: 1]; MakeCont[row: 12, start: 1, n: 4]; MakeCont[row: 13, start: 2, n: 3]; HorizontalM[rowL: 3, rowR: 6, h: 3]; HorizontalM[rowL: 5, rowR: 10, h: 4]; PassMs[2, 5, 10, 13]; ContactM2[1, 4, 7, 8, 9, 13]; Pins[13, "D", NIL, NIL, "CK", NIL, NIL, NIL, NIL, NIL, NIL, "Q", NIL, "NQ"]; PinOrder["CK D Q NQ Vdd Gnd"]; ob _ Finish["C2LT02A.mask"]; END; XLatch: PROC [n: INT] = { MakeCont[row: 1, start: 1, n: 6]; MakeCont[row: 2, start: 2, n: 7]; HorizontalM[rowL: 2, rowR: 4, h: 7, back: TRUE]; MakeCont[row: 3, start: 2, n: 4]; MakeCont[row: 4, start: 1, n: 2]; VerticalM[row: 4, h1: 7, h2: 8, front: TRUE]; MakeCont[row: 5, start: 2, n: 5]; MakeCont[row: 6, start: 6, n: 2, back: TRUE]; MakeCont[row: n+2, start: 8, n: 1]; HorizontalM[rowL: n+2, rowR: n+3, h: 8, back: TRUE]; MakeCont[row: n+3, start: 2, n: 3]; MakeVia[row: n+3, start: 5, n: 1]; MakeCont[row: n+4, start: 1, n: 5]; VerticalM[row: n+4, h1: 7, h2: 8, front: TRUE]; MakeCont[row: n+5, start: 2, n: 6]; SetN[]; MakeCont[row: 1, start: 1, n: 1]; MakeVia[row: 1, start: 3, n: 1, back: TRUE]; HorizontalM[rowL: 1, rowR: 5, h: 2]; MakeCont[row: 2, start: 4, n: 1]; MakeCont[row: 3, start: 4, n: 1]; MakeCont[row: 5, start: 1, n: 1]; MakeVia[row: 5, start: 3, n: 1, back: TRUE]; MakeVia[row: 6, start: 3, n: 1, back: TRUE]; MakeCont[row: n+3, start: 2, n: 2]; MakeVia[row: n+3, start: 4, n: 1]; MakeCont[row: n+4, start: 1, n: 4]; MakeCont[row: n+5, start: 2, n: 3]; ContactM2[1, 3 , 5, 6, n+5]; PassMs[2, n+2, n+5]; }; CreateCellDLatch3: GeneratorProc = BEGIN Setup[design, "p1", "p4", "p1", "p1", "p1", "p1", "p4", "p1", "p4", "p1", "p4", "p1", "p1", "p4"]; MakeCont[row: 7, start: 2, n: 4]; MakeCont[row: 8, start: 2, n: 5]; MakeCont[row: 9, start: 2, n: 7]; HorizontalM[rowL: 3, rowR: 7, h: 4]; HorizontalM[rowL: 6, rowR: 8, h: 6]; HorizontalM[rowL: 9, rowR: 13, h: 7, back: TRUE]; MakeCont[row: 10, start: 1, n: 5]; VerticalM[row: 10, h1: 7, h2: 9]; XLatch[9]; MakeCont[row: 7, start: 4, n: 1]; MakeCont[row: 8, start: 4, n: 1]; MakeCont[row: 9, start: 1, n: 1]; HorizontalM[rowL: 3, rowR: 9, h: 4, shortEnd: FALSE]; HorizontalM[rowL: 6, rowR: 11, h: 2]; MakeCont[row: 10, start: 1, n: 1]; MakeCont[row: 11, start: 2, n: 3]; MakeCont[row: 12, start: 2, n: 2]; PassMs[9]; ContactM2[8]; Pins[14, NIL, NIL, "D", NIL, "NCK", NIL, NIL, "P", NIL, NIL, NIL, "NQ", NIL, "Q"]; PinOrder["NCK D P Q NQ Vdd Gnd"]; ob _ Finish["C2LT03A.mask"]; END; CreateCellDLatch4: GeneratorProc = BEGIN Setup[design, "p1", "p4", "p1", "p1", "p1", "p1", "p4", "p1", "p1", "p4", "p1", "p1", "p4"]; MakeCont[row: 7, start: 2, n: 4]; MakeCont[row: 8, start: 1, n: 5]; HorizontalM[rowL: 3, rowR: 7, h: 4]; HorizontalM[rowL: 6, rowR: 12, h: 7, back: TRUE]; VerticalM[row: 7, h1: 7, h2: 9]; VerticalM[row: 8, h1: 7, h2: 9]; MakeVia[row: 9, start: 8, n: 1]; XLatch[8]; HorizontalM[rowL: 3, rowR: 7, h: 4]; MakeCont[row: 7, start: 4, n: 1]; MakeCont[row: 8, start: 1, n: 1]; HorizontalM[rowL: 6, rowR: 10, h: 2, shortEnd: FALSE]; VerticalM[row: 10, h1: 2, h2: 5]; MakeCont[row: 9, start: 2, n: 3, back: TRUE]; MakeCont[row: 10, start: 1, n: 1]; PassMs[7]; Pins[13 , NIL, NIL, "D", NIL, "NCK", NIL, NIL, NIL, "R", NIL, "NQ", NIL, "Q"]; PinOrder["NCK D R Q NQ X Vdd Gnd"]; ob _ Finish["C2LT04A.mask"]; END; Register["DLatch1", CreateCellDLatch1]; Register["DLatch2", CreateCellDLatch2]; Register["DLatch3", CreateCellDLatch3]; Register["DLatch4", CreateCellDLatch4]; END. όSCLibGenCells2.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:35:33 am PDT Last Edited by: Louis Monier July 15, 1986 11:44:39 am PDT ΚΠ˜šœ™Icode™>K™.K™4K™:—šΟk ˜ Jšœ ˜ —J˜šΟbœœ˜Jšœ ˜—Jš˜Jšœ ˜J˜šΠbnœ˜"Jš˜JšœV˜VJ˜Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ"˜"Jšœ!˜!Jšœ"˜"Jšœ"˜"Jšœ$˜$Jšœ%˜%Jšœ0˜0Jšœ1˜1Jšœ'œ˜-Jšœ ˜ Jšœ'œ˜-Jšœ(œ˜.J™J˜Jšœ!˜!Jšœ,˜,Jšœ!˜!Jšœ"˜"Jšœ!˜!Jšœ,˜,Jšœ,˜,Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ"˜"Jšœ!˜!Jšœ"˜"Jšœ"˜"J˜Jšœ0˜0Jšœ0˜0Jšœ$˜$J˜Jšœ˜Jšœ˜Jšœœœœœœœœœ˜HJšœ˜Jšœ˜Jšœ˜J˜—šŸœ˜"Jš˜Jšœ\˜\J˜Jšœ!˜!Jšœ&œ˜,Jšœ$˜$Jšœ!˜!Jšœ$˜$Jšœ'œ˜-Jšœ*œ˜0Jšœ!˜!Jšœ&œ˜,Jšœ$˜$Jšœ'œ˜-Jšœ!˜!Jšœ ˜ Jšœ+œ˜1Jšœ'œ˜-Jšœ*œ˜0Jšœ ˜ Jšœ!˜!Jšœ ˜ Jšœ'œ˜-Jšœ&œ˜,Jšœ"˜"Jšœ&˜&Jšœ"˜"Jšœ!˜!Jšœ"˜"Jšœ"˜"J˜Jšœ(œ˜.J™J˜Jšœ!˜!Jšœ!˜!Jšœ"˜"Jšœ!˜!Jšœ!˜!Jšœ ˜ Jšœ!˜!Jšœ!˜!Jšœ"˜"Jšœ"˜"Jšœ!˜!Jšœ"˜"Jšœ"˜"J˜Jšœ$˜$Jšœ%˜%J˜Jšœ˜Jšœ˜Jšœœ œœœœœœœ˜LJšœ˜Jšœ˜Jšœ˜J˜—šΟnœœœ˜Jšœ!˜!Jšœ!˜!Jšœ0˜0Jšœ!˜!Jšœ!˜!Jšœ'œ˜-Jšœ!˜!Jšœ-˜-J˜Jšœ#˜#Jšœ4˜4Jšœ#˜#Jšœ"˜"Jšœ#˜#Jšœ)œ˜/Jšœ#˜#J˜Jšœ˜J˜Jšœ!˜!Jšœ&œ˜,Jšœ$˜$Jšœ!˜!Jšœ"˜"Jšœ!˜!Jšœ&œ˜,Jšœ&œ˜,J˜Jšœ#˜#Jšœ"˜"Jšœ#˜#Jšœ#˜#J˜Jšœ˜Jšœ˜Jšœ˜—J˜šŸœ˜"Jš˜Jšœb˜bJ˜Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ$˜$Jšœ$˜$Jšœ1˜1Jšœ"˜"Jšœ!˜!J™Jšœ ˜ J˜Jšœ!˜!Jšœ!˜!Jšœ!˜!Jšœ.œ˜5Jšœ%˜%Jšœ"˜"Jšœ"˜"Jšœ"˜"J˜Jšœ ˜ Jšœ ˜ Jšœ œœœ œœœœœœ˜RJšœ!˜!Jšœ˜Jšœ˜J˜—šŸœ˜"Jš˜Jšœ\˜\J˜Jšœ!˜!Jšœ!˜!Jšœ$˜$Jšœ1˜1Jšœ ˜ Jšœ ˜ Jšœ ˜ J™Jšœ ˜ J˜Jšœ$˜$Jšœ!˜!Jšœ!˜!Jšœ/œ˜6Jšœ!˜!Jšœ-˜-Jšœ"˜"J˜Jšœ ˜ Jšœ œœœ œœœ œ ˜NJšœ#˜#Jšœ˜Jšœ˜J˜—Jšœ'˜'Jšœ'˜'Jšœ'˜'Jšœ'˜'Jšœ˜—…—ξ"Ί