CreateCellDLatch: GeneratorProc =
BEGIN
Setup[design, "p1", "p1", "p2", "connectDiffN", "p3", "connectDiffP", "weakP1", "weakP1", "p4", "p1", "p4"];
MakeCont[row: 1, start: 2, n: 3, back: TRUE];
MakeVia[row: 1, start: 5, n: 1, back: TRUE];
MakeCont[row: 1, start: 6, n: 1, back: TRUE];
HorizontalM[rowL: 1, rowR: 4, h: 7, back: TRUE, shortEnd: FALSE];
VerticalM[row: 1, h1: 7, h2: 8, front: FALSE];
VerticalM[row: 4, h1: 7, h2: 8, front: FALSE];
MakeCont[row: 2, start: 1, n: 5];
MakeCont[row: 4, start: 2, n: 5, back: TRUE];
HorizontalM[rowL: 4, rowR: 5, h: 5];
MakeCont[row: 5, start: 6, n: 1, back: TRUE];
MakeVia[row: 5, start: 5, n: 1, back: TRUE];
HorizontalM[rowL: 5, rowR: 7, h: 7, back: TRUE];
VerticalM[row: 5, h1: 7, h2: 8, front: FALSE];
MakeCont[row: 6, start: 6, n: 1, back: TRUE];
VerticalM[row: 6, h1: 0, h2: 4, front: FALSE];
VerticalM[row: 6, h1: 0, h2: 4, front: TRUE];
HorizontalM[rowL: 6, rowR: 8, h: 8];
MakeCont[row: 7, start: 6, n: 1, back: TRUE];
MakeVia[row: 7, start: 7, n: 1, back: TRUE];
MakeCont[row: 8, start: 1, n: 6];
MakeCont[row: 9, start: 2, n: 6];
SetN[];
MakeCont[row: 1, start: 2, n: 1];
MakeVia[row: 1, start: 3, n: 1];
MakeCont[row: 1, start: 4, n: 1];
HorizontalM[rowL: 1, rowR: 3, h: 4];
MakeCont[row: 2, start: 1, n: 3];
MakeCont[row: 5, start: 2, n: 1];
MakeVia[row: 5, start: 3, n: 1];
MakeCont[row: 5, start: 4, n: 1];
HorizontalM[rowL: 5, rowR: 6, h: 4, shortEnd: FALSE];
MakeCont[row: 6, start: 3, n: 1, back: TRUE];
VerticalM[row: 6, h1: 0, h2: 2, front: FALSE];
VerticalM[row: 6, h1: 0, h2: 2, front: TRUE];
MakeCont[row: 7, start: 3, n: 1, back: TRUE];
MakeVia[row: 7, start: 4, n: 1];
VerticalM[row: 7, h1: 3, h2: 3];
MakeCont[row: 8, start: 1, n: 4];
MakeCont[row: 9, start: 2, n: 3, back: TRUE];
ContactM2[2, 4, 9];
PassMs[3, 6, 9];
Pins[9, NIL, "D", NIL, "S", NIL, NIL, NIL, NIL, "Q"];
PinOrder["D S Q Vdd Gnd"];
ob ← Finish["my-DLatch "];
END;