| `celldefine |
| module FAKELIB_NAND2(output OUT, input IN0,IN1 ); |
| assign OUT = ~(IN0 & IN1); |
| endmodule |
| module FAKELIB_NAND4(output OUT, input IN0,IN1,IN2,IN3 ); |
| assign OUT = ~(IN0 & IN1 & IN2 & IN3); |
| endmodule |
| module FAKELIB_NOR2(output OUT, input IN0,IN1 ); |
| assign OUT = ~(IN1 | IN0); |
| endmodule |
| module FAKELIB_INV(output OUT, input IN ); |
| assign OUT = ~IN; |
| endmodule |
| module FAKELIB_BUF(output OUT, input IN ); |
| assign OUT = IN; |
| endmodule |
| module FAKELIB_BUF_BIGLOAD(output OUT, input IN ); |
| assign OUT = IN; |
| endmodule |
| module FAKELIB_DFF(output reg Q, input CLK, RST_N, SET_N, D ); |
| FAKELIB_DFF_PRIMITIVE dff(Q, CLK, RST_N, SET_N, D); |
| endmodule |
| // ... more standard cells ... |
| `endcelldefine |
| primitive FAKELIB_DFF_PRIMITIVE(output reg Q, input CLK, RST_N, SET_N, D ); |
| table |
| // CLK RST_N SET_N D : Q(state) : Q(next) |
| ? 0 ? ? : ? : 0; |
| ? 1 0 ? : ? : 1; |
| p 1 1 0 : ? : 0; |
| p 1 1 1 : ? : 1; |
| (?0) 1 1 ? : ? : -; |
| ? 1 1 * : ? : -; |
| endtable |
| endprimitive |