aboutsummaryrefslogtreecommitdiffstats
path: root/data/cells_cmos.v
diff options
context:
space:
mode:
Diffstat (limited to 'data/cells_cmos.v')
-rw-r--r--data/cells_cmos.v38
1 files changed, 38 insertions, 0 deletions
diff --git a/data/cells_cmos.v b/data/cells_cmos.v
new file mode 100644
index 0000000..b33ffef
--- /dev/null
+++ b/data/cells_cmos.v
@@ -0,0 +1,38 @@
+
+module NOT(A, Y);
+input A;
+output Y;
+assign Y = ~A;
+endmodule
+
+module NAND(A, B, Y);
+input A, B;
+output Y;
+assign Y = ~(A & B);
+endmodule
+
+module NOR(A, B, Y);
+input A, B;
+output Y;
+assign Y = ~(A | B);
+endmodule
+
+module DFF(C, D, Q);
+input C, D;
+output reg Q;
+always @(posedge C)
+ Q <= D;
+endmodule
+
+module DFFSR(C, D, Q, S, R);
+input C, D, S, R;
+output reg Q;
+always @(posedge C, posedge S, posedge R)
+ if (S)
+ Q <= 1'b1;
+ else if (R)
+ Q <= 1'b0;
+ else
+ Q <= D;
+endmodule
+