1 // A cell library for redstone circuits
5 pin(A) { direction: input; }
6 pin(Y) { direction: output; function: "A"; }
8 // @TODO: Nail down how we count area.
11 pin(A) { direction: input; }
12 pin(Y) { direction: output; function: "!A"; }
16 pin(A) { direction: input; }
17 pin(B) { direction: input; }
18 pin(Y) { direction: output; function: "A & B"; }
22 pin(A,B) { direction: input; }
23 pin(Y) { direction: output; function: "!(A & B)"; }
27 pin(A) { direction: input; }
28 pin(B) { direction: input; }
29 pin(Y) { direction: output; function: "A | B"; }
33 pin(A) { direction: input; }
34 pin(B) { direction: input; }
35 pin(Y) { direction: output; function: "!(A | B)"; }
39 pin(A) { direction: input; }
40 pin(B) { direction: input; }
41 pin(C) { direction: input; }
42 pin(Y) { direction: output; function: "A & B & C"; }
46 pin(A) { direction: input; }
47 pin(B) { direction: input; }
48 pin(C) { direction: input; }
49 pin(Y) { direction: output; function: "!(A & B & C)"; }
53 pin(A) { direction: input; }
54 pin(B) { direction: input; }
55 pin(C) { direction: input; }
56 pin(Y) { direction: output; function: "A | B | C"; }
60 pin(A) { direction: input; }
61 pin(B) { direction: input; }
62 pin(C) { direction: input; }
63 pin(Y) { direction: output; function: "!(A | B | C)"; }
67 ff(IQ, IQN) { clocked_on: C; next_state: D; }
68 pin(C) { direction: input; clock: true; }
69 pin(D) { direction: input; }
70 pin(Q) { direction: output; function: "IQ"; }
74 ff(IQ, IQN) { clocked_on: "!C"; next_state: D; }
75 pin(C) { direction: input; clock: true; }
76 pin(D) { direction: input; }
77 pin(Q) { direction: output; function: "IQ"; }
79 // @TODO: Is there a good DFFE design?