library(demo) { cell(NAND4) { area: 15; pin(A) { direction: input; } pin(B) { direction: input; } pin(C) { direction: input; } pin(D) { direction: input; } pin(Y) { direction: output; function: "(A*B*C*D)'"; } } cell(NAND3) { area: 12; pin(A) { direction: input; } pin(B) { direction: input; } pin(C) { direction: input; } pin(Y) { direction: output; function: "(A*B*C)'"; } } cell(NAND2) { area: 10; pin(A) { direction: input; } pin(B) { direction: input; } pin(Y) { direction: output; function: "(A*B)'"; } } cell(AND4) { area: 20; pin(A) { direction: input; } pin(B) { direction: input; } pin(C) { direction: input; } pin(D) { direction: input; } pin(Y) { direction: output; function: "(A*B*C*D)"; } } cell(AND3) { area: 15; pin(A) { direction: input; } pin(B) { direction: input; } pin(C) { direction: input; } pin(Y) { direction: output; function: "(A*B*C)"; } } cell(AND2) { area: 12; pin(A) { direction: input; } pin(B) { direction: input; } pin(Y) { direction: output; function: "(A*B)"; } } cell(NOR4) { area: 20; pin(A) { direction: input; } pin(B) { direction: input; } pin(C) { direction: input; } pin(D) { direction: input; } pin(Y) { direction: output; function: "(A+B+C+D)'"; } } cell(NOR3) { area: 15; pin(A) { direction: input; } pin(B) { direction: input; } pin(C) { direction: input; } pin(Y) { direction: output; function: "(A+B+C)'"; } } cell(NOR2) { area: 10; pin(A) { direction: input; } pin(B) { direction: input; } pin(Y) { direction: output; function: "(A+B)'"; } } cell(OR4) { area: 20; pin(A) { direction: input; } pin(B) { direction: input; } pin(C) { direction: input; } pin(D) { direction: input; } pin(Y) { direction: output; function: "(A+B+C+D)"; } } cell(OR3) { area: 15; pin(A) { direction: input; } pin(B) { direction: input; } pin(C) { direction: input; } pin(Y) { direction: output; function: "(A+B+C)"; } } cell(OR2) { area: 10; pin(A) { direction: input; } pin(B) { direction: input; } pin(Y) { direction: output; function: "(A+B)"; } } cell(XNOR2) { area: 25; pin(A) { direction: input; } pin(B) { direction: input; } pin(Y) { direction: output; function: "(A^B)'"; } } cell(XOR2) { area: 25; pin(A) { direction: input; } pin(B) { direction: input; } pin(Y) { direction: output; function: "(A^B)"; } } cell(BUF) { area: 12; pin(A) { direction: input; } pin(Y) { direction: output; function: "A"; } } cell(NOT) { area: 6; pin(A) { direction: input; } pin(Y) { direction: output; function: "A'"; } } }