aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs/common/cells.lib
diff options
context:
space:
mode:
Diffstat (limited to 'techlibs/common/cells.lib')
-rw-r--r--techlibs/common/cells.lib108
1 files changed, 108 insertions, 0 deletions
diff --git a/techlibs/common/cells.lib b/techlibs/common/cells.lib
new file mode 100644
index 000000000..eb89036d7
--- /dev/null
+++ b/techlibs/common/cells.lib
@@ -0,0 +1,108 @@
+library(yosys_cells) {
+ cell(DFF_N) {
+ ff(IQ, IQN) {
+ clocked_on: "!C";
+ next_state: "D";
+ }
+ pin(D) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_P) {
+ ff(IQ, IQN) {
+ clocked_on: "C";
+ next_state: "D";
+ }
+ pin(D) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_NN0) {
+ ff(IQ, IQN) {
+ clocked_on: "!C";
+ next_state: "D";
+ clear: "!R";
+ }
+ pin(D) { direction: input; }
+ pin(R) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_NN1) {
+ ff(IQ, IQN) {
+ clocked_on: "!C";
+ next_state: "D";
+ preset: "!R";
+ }
+ pin(D) { direction: input; }
+ pin(R) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_NP0) {
+ ff(IQ, IQN) {
+ clocked_on: "!C";
+ next_state: "D";
+ clear: "R";
+ }
+ pin(D) { direction: input; }
+ pin(R) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_NP1) {
+ ff(IQ, IQN) {
+ clocked_on: "!C";
+ next_state: "D";
+ preset: "R";
+ }
+ pin(D) { direction: input; }
+ pin(R) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_PN0) {
+ ff(IQ, IQN) {
+ clocked_on: "C";
+ next_state: "D";
+ clear: "!R";
+ }
+ pin(D) { direction: input; }
+ pin(R) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_PN1) {
+ ff(IQ, IQN) {
+ clocked_on: "C";
+ next_state: "D";
+ preset: "!R";
+ }
+ pin(D) { direction: input; }
+ pin(R) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_PP0) {
+ ff(IQ, IQN) {
+ clocked_on: "C";
+ next_state: "D";
+ clear: "R";
+ }
+ pin(D) { direction: input; }
+ pin(R) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+ cell(DFF_PP1) {
+ ff(IQ, IQN) {
+ clocked_on: "C";
+ next_state: "D";
+ preset: "R";
+ }
+ pin(D) { direction: input; }
+ pin(R) { direction: input; }
+ pin(C) { direction: input; clock: true; }
+ pin(Q) { direction: output; function: "IQ"; }
+ }
+}