/
s1494_hot.tdf
265 lines (263 loc) · 17.5 KB
/
s1494_hot.tdf
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
SUBDESIGN s1494_hot (
clk: INPUT;
i[7..0]: INPUT;
o[18..0]: OUTPUT;
)
VARIABLE
ss: MACHINE OF BITS (q[47..0]) WITH STATES (000000 = B"100000000000000000000000000000000000000000000000", 000010 = B"000000000000000000000000000000000000000100000000", 000011 = B"000000000000000000010000000000000000000000000000", 000100 = B"000000010000000000000000000000000000000000000000", 000110 = B"000000000000000000000000000000000000000000010000", 000111 = B"000000000000000000000000000000000000000010000000", 001000 = B"000000000000000000000000000000000000001000000000", 001010 = B"000000000000000000000000000000000100000000000000", 001011 = B"000000000000000000000000000000000000100000000000", 001100 = B"000000000001000000000000000000000000000000000000", 001110 = B"010000000000000000000000000000000000000000000000", 001111 = B"000000000000000000000000000000000000000000100000", 010000 = B"000100000000000000000000000000000000000000000000", 010001 = B"000000000000010000000000000000000000000000000000", 010010 = B"000000000000000000000000000000001000000000000000", 010011 = B"000000100000000000000000000000000000000000000000", 010100 = B"000010000000000000000000000000000000000000000000", 010101 = B"000000000000000001000000000000000000000000000000", 010110 = B"000000000100000000000000000000000000000000000000", 010111 = B"000000001000000000000000000000000000000000000000", 011000 = B"001000000000000000000000000000000000000000000000", 011010 = B"000000000000000000000100000000000000000000000000", 011011 = B"000000000000100000000000000000000000000000000000", 011100 = B"000000000000000000000000001000000000000000000000", 011101 = B"000000000000000100000000000000000000000000000000", 011110 = B"000000000000000000000000000000100000000000000000", 011111 = B"000000000000000000000000000000000000000000000100", 100000 = B"000000000000000000000000010000000000000000000000", 100010 = B"000000000000000000000000000010000000000000000000", 100011 = B"000000000010000000000000000000000000000000000000", 100100 = B"000000000000000000000000000000000010000000000000", 100110 = B"000000000000001000000000000000000000000000000000", 100111 = B"000000000000000000000001000000000000000000000000", 101000 = B"000000000000000000000000000001000000000000000000", 101010 = B"000000000000000000000000000100000000000000000000", 101011 = B"000000000000000000000000000000000000000001000000", 101100 = B"000000000000000000000000000000000000000000000001", 101110 = B"000000000000000010000000000000000000000000000000", 110000 = B"000000000000000000000000000000010000000000000000", 110010 = B"000000000000000000000000100000000000000000000000", 110011 = B"000001000000000000000000000000000000000000000000", 110100 = B"000000000000000000000000000000000000010000000000", 110110 = B"000000000000000000000000000000000000000000001000", 111000 = B"000000000000000000000000000000000001000000000000", 111010 = B"000000000000000000000010000000000000000000000000", 111011 = B"000000000000000000001000000000000000000000000000", 111100 = B"000000000000000000000000000000000000000000000010", 111110 = B"000000000000000000100000000000000000000000000000");
BEGIN
ss.clk = clk;
TABLE
i[7..0], ss => ss, o[18..0];
B"0X01XXXX", 000000 => 000000, B"1000000001000000001";
B"0X00XXXX", 000000 => 000000, B"1000000000100000001";
B"0X10XXXX", 000000 => 000000, B"0000000000000000000";
B"0X11XXXX", 000000 => 000000, B"0001001100111110001";
B"1X01XXXX", 000000 => 000000, B"1000000001000000001";
B"1X00XXXX", 000000 => 000000, B"1000000000100000001";
B"1X11XXXX", 000000 => 001110, B"0001001100111110001";
B"1X10XXXX", 000000 => 000000, B"0000000000000000000";
B"1XXX0XXX", 001110 => 011000, B"0000000000100100101";
B"11XX1XXX", 001110 => 010000, B"1000010010100000101";
B"10XX1XXX", 001110 => 011000, B"0000000000100100101";
B"00XXXXXX", 001110 => 000000, B"0000000000100100101";
B"01XX1XXX", 001110 => 000000, B"1000010010100000101";
B"01XX0XXX", 001110 => 000000, B"0000000000100100101";
B"0X00X000", 011000 => 000000, B"1000000000110000110";
B"0X00X010", 011000 => 000000, B"1000000000100000110";
B"0X00X110", 011000 => 000000, B"1000000100100000110";
B"0X00X100", 011000 => 000000, B"1000000100110000110";
B"0X01X100", 011000 => 000000, B"1000001101010000110";
B"0X01X110", 011000 => 000000, B"1000001101000000110";
B"0X01X010", 011000 => 000000, B"1000001001000000110";
B"0X01X000", 011000 => 000000, B"1000001001010000110";
B"0X0XXX01", 011000 => 000000, B"0100000000111111100";
B"0X0XXX11", 011000 => 000000, B"0100000000101111100";
B"0X10X000", 011000 => 000000, B"0000001000010000000";
B"0X10X010", 011000 => 000000, B"0000001000000000000";
B"0X11X0X0", 011000 => 000000, B"0000001000110110110";
B"0X10X110", 011000 => 000000, B"0000001100000000000";
B"0X10X100", 011000 => 000000, B"0000001100010000000";
B"0X11X1X0", 011000 => 000000, B"0000001100110110110";
B"0X1XXX01", 011000 => 000000, B"0100000000111111100";
B"0X1XXX11", 011000 => 000000, B"0100000000101111100";
B"1XX1XX01", 011000 => 010100, B"0100000000111111100";
B"1XX1XX11", 011000 => 010100, B"0100000000101111100";
B"1X11X0X0", 011000 => 110011, B"0000001000110110110";
B"1X11X1X0", 011000 => 110011, B"0000001100110110110";
B"1X01X110", 011000 => 010100, B"1000001101000000110";
B"1X01X100", 011000 => 010100, B"1000001101010000110";
B"1X01X010", 011000 => 010100, B"1000001001000000110";
B"1X01X000", 011000 => 010100, B"1000001001010000110";
B"1XX0XX11", 011000 => 010100, B"0100000000101111100";
B"1XX0XX01", 011000 => 010100, B"0100000000111111100";
B"1X10X100", 011000 => 010100, B"0000001100010000000";
B"1X10X110", 011000 => 010100, B"0000001100000000000";
B"1X10X000", 011000 => 010100, B"0000001000010000000";
B"1X10X010", 011000 => 010100, B"0000001000000000000";
B"1X00X110", 011000 => 010100, B"1000000100100000110";
B"1X00X100", 011000 => 010100, B"1000000100110000110";
B"1X00X000", 011000 => 010100, B"1000000000110000110";
B"1X00X010", 011000 => 010100, B"1000000000100000110";
B"0XXXXXXX", 010100 => 000000, B"0000000000100100101";
B"1XXXXXXX", 010100 => 010011, B"0000000000100100101";
B"0XXXX0XX", 010011 => 000000, B"1000000000111100001";
B"0XXXX1XX", 010011 => 000000, B"1000000100111100001";
B"1XXXX1XX", 010011 => 000100, B"1000000100111100001";
B"1XXXX0XX", 010011 => 000100, B"1000000000111100001";
B"0XXXXXXX", 000100 => 000000, B"0000000000100100101";
B"10XXX11X", 000100 => 010111, B"0000000000100100101";
B"11XX011X", 000100 => 010111, B"0000000000100100101";
B"11XX111X", 000100 => 010110, B"0000000000100100101";
B"11XXX01X", 000100 => 100011, B"0000000000100100101";
B"10XXX01X", 000100 => 010111, B"0000000000100100101";
B"1XXXXX0X", 000100 => 010111, B"0000000000100100101";
B"0XXXX1XX", 010111 => 000000, B"0000000100101011000";
B"0XXXX0XX", 010111 => 000000, B"0000000000101011000";
B"1XXXX0XX", 010111 => 001100, B"0000000000101011000";
B"1XXXX1XX", 010111 => 001100, B"0000000100101011000";
B"1XXXX1XX", 001100 => 011011, B"0000000000100100101";
B"1XXXX0XX", 001100 => 010001, B"0000000000100100101";
B"0XXXXXXX", 001100 => 000000, B"0000000000100100101";
B"0XXXX11X", 011011 => 000000, B"0000000100101110100";
B"0XXXX10X", 011011 => 000000, B"0000000100111110100";
B"0XXXX01X", 011011 => 000000, B"0000000000101110100";
B"0XXXX00X", 011011 => 000000, B"0000000000111110100";
B"1XXXX11X", 011011 => 100110, B"0000000100101110100";
B"1XXXX10X", 011011 => 100110, B"0000000100111110100";
B"1XXXX01X", 011011 => 100110, B"0000000000101110100";
B"1XXXX00X", 011011 => 100110, B"0000000000111110100";
B"1XXXXXXX", 100110 => 011101, B"0000000000100100101";
B"0XXXXXXX", 100110 => 000000, B"0000000000100100101";
B"0XXXX01X", 011101 => 000000, B"0000000000110011010";
B"0XXXX00X", 011101 => 000000, B"0000000000100011010";
B"0XXXX10X", 011101 => 000000, B"0000000100100011010";
B"0XXXX11X", 011101 => 000000, B"0000000100110011010";
B"1XXXX11X", 011101 => 101110, B"0000000100110011010";
B"1XXXX10X", 011101 => 101110, B"0000000100100011010";
B"1XXXX01X", 011101 => 101110, B"0000000000110011010";
B"1XXXX00X", 011101 => 101110, B"0000000000100011010";
B"1XXXXXXX", 101110 => 010101, B"0000000000100100101";
B"0XXXXXXX", 101110 => 000000, B"0000000000100100101";
B"1XXXX0XX", 010101 => 111110, B"1000000000110100110";
B"1XXXX1XX", 010101 => 111110, B"1000000100110100110";
B"0XXXX0XX", 010101 => 000000, B"1000000000110100110";
B"0XXXX1XX", 010101 => 000000, B"1000000100110100110";
B"01XXXX0X", 111110 => 000000, B"0000000000100100101";
B"00XX1X0X", 111110 => 000000, B"0000100000100100101";
B"00XX0X0X", 111110 => 000000, B"0000000000100100101";
B"11XXXX01", 111110 => 000011, B"0000000000100100101";
B"11XX0X00", 111110 => 000011, B"0000000000100100101";
B"11XX1X00", 111110 => 111011, B"0000000000100100101";
B"10XX0X0X", 111110 => 000011, B"0000000000100100101";
B"10XX1X00", 111110 => 011010, B"0000100000100100101";
B"10XX1X01", 111110 => 111010, B"0000100000100100101";
B"0XXX1X1X", 111110 => 000000, B"0000100000100100101";
B"0XXX0X1X", 111110 => 000000, B"0000000000100100101";
B"1XXX0X1X", 111110 => 000011, B"0000000000100100101";
B"1XXX1X10", 111110 => 011010, B"0000100000100100101";
B"1XXX1X11", 111110 => 111010, B"0000100000100100101";
B"0XXXX0X1", 000011 => 000000, B"0000000000111110001";
B"0XXXX1X1", 000011 => 000000, B"0000000100111110001";
B"0XXXX0X0", 000011 => 000000, B"1000000000111110001";
B"0XXXX1X0", 000011 => 000000, B"0000000100111110001";
B"1XXXX0X1", 000011 => 001110, B"0000000000111110001";
B"1XXXX1X1", 000011 => 001110, B"0000000100111110001";
B"1XXXX0X0", 000011 => 001110, B"1000000000111110001";
B"1XXXX1X0", 000011 => 001110, B"0000000100111110001";
B"1XXXX0XX", 111011 => 100111, B"1000000000111110001";
B"0XXXX0XX", 111011 => 000000, B"1000000000111110001";
B"1XXXX1XX", 111011 => 010000, B"0000010110111110001";
B"0XXXX1XX", 111011 => 000000, B"0000010110111110001";
B"1XXXXXXX", 100111 => 111011, B"0000000000100100101";
B"0XXXXXXX", 100111 => 000000, B"0000000000100100101";
B"XXXXXXXX", 010000 => 000000, B"0000000000101110100";
B"1XXXX01X", 011010 => 110010, B"0000000000100101001";
B"1XXXX00X", 011010 => 110010, B"0000000000110101001";
B"1XXXX1XX", 011010 => 100000, B"0000000100111110001";
B"0XXXX01X", 011010 => 000000, B"0000000000100101001";
B"0XXXX00X", 011010 => 000000, B"0000000000110101001";
B"0XXXX1XX", 011010 => 000000, B"0000000100111110001";
B"0XXXXXXX", 110010 => 000000, B"0000000000100100101";
B"1XXXX00X", 110010 => 011100, B"0000000000100100101";
B"1XXXX01X", 110010 => 011010, B"0000000000100100101";
B"1XXXX11X", 110010 => 011100, B"0000000000100100101";
B"1XXXX10X", 110010 => 011010, B"0000000000100100101";
B"1XXXX10X", 011100 => 101010, B"0000000100101111100";
B"1XXXX11X", 011100 => 101010, B"0000000100111111100";
B"1XXXX00X", 011100 => 100010, B"0000000000101111100";
B"1XXXX01X", 011100 => 100010, B"0000000000111111100";
B"0XXXX10X", 011100 => 000000, B"0000000100101111100";
B"0XXXX11X", 011100 => 000000, B"0000000100111111100";
B"0XXXX00X", 011100 => 000000, B"0000000000101111100";
B"0XXXX01X", 011100 => 000000, B"0000000000111111100";
B"0XXXXXXX", 101010 => 000000, B"0000000000100100101";
B"1XXXXXXX", 101010 => 111010, B"0000000000100100101";
B"1XXXXXXX", 111010 => 100000, B"0000000000111110001";
B"0XXXXXXX", 111010 => 000000, B"0000000000111110001";
B"11XXXXXX", 100000 => 101000, B"0100000000100100101";
B"01XXXXXX", 100000 => 000000, B"0100000000100100101";
B"00XX0XXX", 100000 => 000000, B"0000000000100100101";
B"00XX1XXX", 100000 => 000000, B"0000010000100100101";
B"10XX0XXX", 100000 => 011110, B"0000000000100100101";
B"10XX1XXX", 100000 => 110000, B"0000010000100100101";
B"1XXXXXXX", 101000 => 010010, B"1000000000111100001";
B"0XXXXXXX", 101000 => 000000, B"1000000000111100001";
B"0XXXXXXX", 010010 => 000000, B"0000000000100100101";
B"1XXX1XXX", 010010 => 001010, B"0000000000100100101";
B"1XXX0XXX", 010010 => 011110, B"0000000000100100101";
B"1XXXX1XX", 001010 => 100100, B"0000000100110110110";
B"1XXXX0XX", 001010 => 111000, B"0000000000110101001";
B"0XXXX1XX", 001010 => 000000, B"0000000100110110110";
B"0XXXX0XX", 001010 => 000000, B"0000000000110101001";
B"0XXXXXXX", 100100 => 000000, B"0010000000100100101";
B"1XXXXXXX", 100100 => 001011, B"0010000000100100101";
B"0XXXX0XX", 001011 => 000000, B"0000000000101110110";
B"0XXXX1XX", 001011 => 000000, B"0000000100101110110";
B"1XXXX0XX", 001011 => 110100, B"0000000000101110110";
B"1XXXX1XX", 001011 => 110100, B"0000000100101110110";
B"0XXXXXXX", 110100 => 000000, B"0010000000100100101";
B"1XXXXXXX", 110100 => 011011, B"0010000000100100101";
B"1XXXX0XX", 111000 => 001000, B"0000000000100100101";
B"1XXX11XX", 111000 => 001000, B"0000000000100100101";
B"1XXX01XX", 111000 => 001010, B"0000000000100100101";
B"0XXXXXXX", 111000 => 000000, B"0000000000100100101";
B"1XXXX1XX", 001000 => 100100, B"0000000100110110110";
B"1XXXX0XX", 001000 => 100100, B"0000000000110110110";
B"0XXXX0XX", 001000 => 000000, B"0000000000110110110";
B"0XXXX1XX", 001000 => 000000, B"0000000100110110110";
B"0XXXX1XX", 011110 => 000000, B"0000000100111110001";
B"0X11X0XX", 011110 => 000000, B"0000001000110110110";
B"0X10X00X", 011110 => 000000, B"0000001000000000000";
B"0X10X01X", 011110 => 000000, B"0000001000010000000";
B"0X00X00X", 011110 => 000000, B"1000000000100000110";
B"0X00X01X", 011110 => 000000, B"1000000000110000110";
B"0X01X01X", 011110 => 000000, B"1000001001010000110";
B"0X01X00X", 011110 => 000000, B"1000001001000000110";
B"1XXXX1XX", 011110 => 100000, B"0000000100111110001";
B"1X00X00X", 011110 => 000010, B"1000000000100000110";
B"1X00X01X", 011110 => 000010, B"1000000000110000110";
B"1X01X01X", 011110 => 000010, B"1000001001010000110";
B"1X01X00X", 011110 => 000010, B"1000001001000000110";
B"1X11X0XX", 011110 => 110011, B"0000001000110110110";
B"1X10X00X", 011110 => 000010, B"0000001000000000000";
B"1X10X01X", 011110 => 000010, B"0000001000010000000";
B"1XXXX0XX", 000010 => 011110, B"0010000000100100101";
B"1XXXX1XX", 000010 => 011110, B"0000000000100100101";
B"0XXXX0XX", 000010 => 000000, B"0010000000100100101";
B"0XXXX1XX", 000010 => 000000, B"0000000000100100101";
B"1XXXXXXX", 110011 => 000111, B"0000000000100100101";
B"0XXXXXXX", 110011 => 000000, B"0000000000100100101";
B"0XXXX1XX", 000111 => 000000, B"0000000100101110110";
B"0XXXX0XX", 000111 => 000000, B"0000000000101110110";
B"1XXXX1XX", 000111 => 101011, B"0000000100101110110";
B"1XXXX0XX", 000111 => 101011, B"0000000000101110110";
B"0XXXXXXX", 101011 => 000000, B"0000000000100100101";
B"1XXXXXXX", 101011 => 001111, B"0000000000100100101";
B"1XXXX1XX", 001111 => 000100, B"0010000100111001110";
B"1XXXX0XX", 001111 => 000100, B"0010000000111001110";
B"0XXXX1XX", 001111 => 000000, B"0010000100111001110";
B"0XXXX0XX", 001111 => 000000, B"0010000000111001110";
B"0XXXXXXX", 110000 => 000000, B"1000000000110100110";
B"1XXXXXXX", 110000 => 000110, B"1000000000110100110";
B"1XXX01XX", 000110 => 011000, B"0001000000100100101";
B"1XXX00XX", 000110 => 011000, B"0010000000100100101";
B"1XXX10XX", 000110 => 011110, B"0010000000100100101";
B"1XXX11XX", 000110 => 011110, B"0001000000100100101";
B"0XXXX0XX", 000110 => 000000, B"0010000000100100101";
B"0XXXX1XX", 000110 => 000000, B"0001000000100100101";
B"1XXXXXXX", 100010 => 011010, B"0000000000100100101";
B"0XXXXXXX", 100010 => 000000, B"0000000000100100101";
B"1XXXX0XX", 010001 => 110110, B"1000000000111110100";
B"1XXXX1XX", 010001 => 110110, B"1000000100111110100";
B"0XXXX1XX", 010001 => 000000, B"1000000100111110100";
B"0XXXX0XX", 010001 => 000000, B"1000000000111110100";
B"0XXXXXXX", 110110 => 000000, B"0000000000100100101";
B"1XXXXXXX", 110110 => 011111, B"0000000000100100101";
B"0XXXX11X", 011111 => 000000, B"1000000100111011010";
B"0XXXX10X", 011111 => 000000, B"1000000100101011010";
B"0XXXX00X", 011111 => 000000, B"1000000000101011010";
B"0XXXX01X", 011111 => 000000, B"1000000000111011010";
B"1XXXX10X", 011111 => 101110, B"1000000100101011010";
B"1XXXX11X", 011111 => 101110, B"1000000100111011010";
B"1XXXX00X", 011111 => 101110, B"1000000000101011010";
B"1XXXX01X", 011111 => 101110, B"1000000000111011010";
B"1XXXX1XX", 010110 => 111100, B"0001000100111110001";
B"1X00X0XX", 010110 => 101100, B"1000000000100000110";
B"1X01X0XX", 010110 => 101100, B"1000001001000000110";
B"1X10X0XX", 010110 => 101100, B"0000001000000000000";
B"1X11X0XX", 010110 => 110011, B"0000001000110110110";
B"0X00X0XX", 010110 => 000000, B"1000000000100000110";
B"0X01X0XX", 010110 => 000000, B"1000001001000000110";
B"0X0XX1XX", 010110 => 000000, B"0001000100111110001";
B"0X1XX1XX", 010110 => 000000, B"0001000100111110001";
B"0X10X0XX", 010110 => 000000, B"0000001000000000000";
B"0X11X0XX", 010110 => 000000, B"0000001000110110110";
B"1XXXXXXX", 111100 => 100011, B"0100000000100100101";
B"0XXXXXXX", 111100 => 000000, B"0100000000100100101";
B"0XXXXXXX", 100011 => 000000, B"0000000000110110110";
B"1XXXXXXX", 100011 => 110011, B"0000000000110110110";
B"0XXXXXXX", 101100 => 000000, B"0000000000100100101";
B"1XXXXXXX", 101100 => 010110, B"0000000000100100101";
END TABLE;
END;