library(demo) { cell(NOT) { area: 3; pin(A) { direction: input; } pin(Y) { direction: output; function: "A'"; } } cell(BUF) { area: 6; pin(A) { direction: input; } pin(Y) { direction: output; function: "A"; } } cell(NAND) { area: 4; pin(A) { direction: input; } pin(B) { direction: input; } pin(Y) { direction: output; function: "(A*B)'"; } } cell(NOR) { area: 4; pin(A) { direction: input; } pin(B) { direction: input; } pin(Y) { direction: output; function: "(A+B)'"; } } cell(DFF) { area: 18; ff(IQ, IQN) { clocked_on: C; next_state: D; } pin(C) { direction: input; clock: true; } pin(D) { direction: input; } pin(Q) { direction: output; function: "IQ"; } } }