| /* Primitive cells, Clifford Wolf, http://http://www.clifford.at/yosys */ |
| |
| library(demo) { |
| cell(BUF) { |
| area: 6; |
| pin(A) { direction: input; } |
| pin(Y) { direction: output; |
| function: "A"; } |
| } |
| cell(NOT) { |
| area: 3; |
| 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"; } |
| } |
| cell(DFFSR) { |
| area: 18; |
| ff("IQ", "IQN") { clocked_on: C; |
| next_state: D; |
| preset: S; |
| clear: R; } |
| pin(C) { direction: input; |
| clock: true; } |
| pin(D) { direction: input; } |
| pin(Q) { direction: output; |
| function: "IQ"; } |
| pin(S) { direction: input; } |
| pin(R) { direction: input; } |
| } |
| } |