summaryrefslogtreecommitdiff
path: root/techlibs/common/cells.lib
blob: eb89036d7b06349f02550de16b6adb1d0a8a5a64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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"; }
	}
}