Added cells.lib
authorClifford Wolf <clifford@clifford.at>
Fri, 16 Jan 2015 14:50:42 +0000 (15:50 +0100)
committerClifford Wolf <clifford@clifford.at>
Fri, 16 Jan 2015 14:50:42 +0000 (15:50 +0100)
techlibs/common/Makefile.inc
techlibs/common/cells.lib [new file with mode: 0644]

index dc1e0ef66170b443461cf2ed7153be8601bad56e..d2ce61cf621cd57fb061dc171d58ab72cb6e3ddc 100644 (file)
@@ -15,4 +15,5 @@ $(eval $(call add_share_file,share,techlibs/common/techmap.v))
 $(eval $(call add_share_file,share,techlibs/common/blackbox.v))
 $(eval $(call add_share_file,share,techlibs/common/pmux2mux.v))
 $(eval $(call add_share_file,share,techlibs/common/adff2dff.v))
+$(eval $(call add_share_file,share,techlibs/common/cells.lib))
 
diff --git a/techlibs/common/cells.lib b/techlibs/common/cells.lib
new file mode 100644 (file)
index 0000000..eb89036
--- /dev/null
@@ -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"; }
+       }
+}