art-decomp 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/ad-kiss2vhdl +8 -0
- data/lib/art-decomp.rb +2 -0
- data/lib/art-decomp/bipainter.rb +36 -36
- data/lib/art-decomp/executable.rb +3 -3
- data/lib/art-decomp/fsm.rb +28 -3
- data/lib/art-decomp/graph.rb +19 -19
- data/lib/art-decomp/logging.rb +51 -34
- data/lib/art-decomp/uv_generator/braindead.rb +1 -2
- data/lib/art-decomp/vhdl.rb +72 -0
- data/spec/art-decomp/executable_spec.rb +2 -2
- data/spec/art-decomp/fsm_spec.rb +41 -0
- data/spec/art-decomp/logging_spec.rb +10 -24
- data/spec/art-decomp/vhdl_spec.rb +22 -0
- data/spec/fixtures/ex4.hot +44 -0
- data/spec/fixtures/ex4_hot.vhd +87 -0
- data/spec/fixtures/fsm.vhd +64 -0
- data/spec/fixtures/kirkman +374 -0
- data/spec/fixtures/mark1.hot +46 -0
- data/spec/fixtures/mark1.jed +48 -0
- data/spec/fixtures/mark1.nov +340 -0
- data/spec/fixtures/mark1.vhd +79 -0
- data/spec/fixtures/mark1.yml +86 -0
- data/spec/fixtures/mark1_hot.vhd +94 -0
- data/spec/fixtures/mark1_jed.vhd +94 -0
- data/spec/fixtures/mark1_nov.vhd +94 -0
- metadata +66 -30
@@ -0,0 +1,46 @@
|
|
1
|
+
.model jedi_output
|
2
|
+
.start_kiss
|
3
|
+
.i 5
|
4
|
+
.o 16
|
5
|
+
.s 15
|
6
|
+
.p 22
|
7
|
+
.r state1
|
8
|
+
0---- * state1 -11---1-00------
|
9
|
+
1---- state1 state3 -11---1-00------
|
10
|
+
1---- state2 state0 -11---1-00------
|
11
|
+
1---- state3 state4 101---1-01------
|
12
|
+
1-111 state4 state13 -11---1-00------
|
13
|
+
1-110 state4 state10 -11---1-00------
|
14
|
+
1-10- state4 state9 -11---1-00------
|
15
|
+
1-011 state4 state8 -11---1-00------
|
16
|
+
1-010 state4 state7 -11---1-00------
|
17
|
+
1-001 state4 state6 -11---1-00------
|
18
|
+
1-000 state4 state5 -11---1-00------
|
19
|
+
1---- state5 state14 0011--1-00------
|
20
|
+
1---- state6 state14 00100-0-00000011
|
21
|
+
1---- state7 state14 001---1100------
|
22
|
+
1---- state8 state14 010---1-00------
|
23
|
+
1---- state9 state14 001---1010000101
|
24
|
+
1---- state10 state11 -11---1-00100000
|
25
|
+
10--- state11 state13 -11---1-00------
|
26
|
+
11--- state11 state12 -11---1-00------
|
27
|
+
1---- state12 state13 -110110-00------
|
28
|
+
1---- state13 state14 -11---1-00------
|
29
|
+
1---- state14 state3 -110110-00------
|
30
|
+
.end_kiss
|
31
|
+
.code state1 100000000000000
|
32
|
+
.code state3 010000000000000
|
33
|
+
.code state2 001000000000000
|
34
|
+
.code state0 000100000000000
|
35
|
+
.code state4 000010000000000
|
36
|
+
.code state13 000001000000000
|
37
|
+
.code state10 000000100000000
|
38
|
+
.code state9 000000010000000
|
39
|
+
.code state8 000000001000000
|
40
|
+
.code state7 000000000100000
|
41
|
+
.code state6 000000000010000
|
42
|
+
.code state5 000000000001000
|
43
|
+
.code state14 000000000000100
|
44
|
+
.code state11 000000000000010
|
45
|
+
.code state12 000000000000001
|
46
|
+
.end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#
|
2
|
+
# JEDI, official release 1.2
|
3
|
+
#
|
4
|
+
# States.state1 0001
|
5
|
+
# States.state3 1111
|
6
|
+
# States.state2 0011
|
7
|
+
# States.state0 1101
|
8
|
+
# States.state4 1001
|
9
|
+
# States.state13 1010
|
10
|
+
# States.state10 1000
|
11
|
+
# States.state9 1100
|
12
|
+
# States.state8 0010
|
13
|
+
# States.state7 0000
|
14
|
+
# States.state6 0110
|
15
|
+
# States.state5 0100
|
16
|
+
# States.state14 1110
|
17
|
+
# States.state11 0111
|
18
|
+
# States.state12 1011
|
19
|
+
#
|
20
|
+
.type fr
|
21
|
+
.i 9
|
22
|
+
.o 20
|
23
|
+
.ilb v.0 v.1 v.2 v.3 v.4 v.5.0 v.5.1 v.5.2 v.5.3
|
24
|
+
.ob v.6.0 v.6.1 v.6.2 v.6.3 v.7 v.8 v.9 v.10 v.11 v.12 v.13 v.14 v.15 v.16 v.17 v.18 v.19 v.20 v.21 v.22
|
25
|
+
0-------- 0001-11---1-00------
|
26
|
+
1----0001 1111-11---1-00------
|
27
|
+
1----0011 1101-11---1-00------
|
28
|
+
1----1111 1001101---1-01------
|
29
|
+
1-1111001 1010-11---1-00------
|
30
|
+
1-1101001 1000-11---1-00------
|
31
|
+
1-10-1001 1100-11---1-00------
|
32
|
+
1-0111001 0010-11---1-00------
|
33
|
+
1-0101001 0000-11---1-00------
|
34
|
+
1-0011001 0110-11---1-00------
|
35
|
+
1-0001001 0100-11---1-00------
|
36
|
+
1----0100 11100011--1-00------
|
37
|
+
1----0110 111000100-0-00000011
|
38
|
+
1----0000 1110001---1100------
|
39
|
+
1----0010 1110010---1-00------
|
40
|
+
1----1100 1110001---1010000101
|
41
|
+
1----1000 0111-11---1-00100000
|
42
|
+
10---0111 1010-11---1-00------
|
43
|
+
11---0111 1011-11---1-00------
|
44
|
+
1----1011 1010-110110-00------
|
45
|
+
1----1010 1110-11---1-00------
|
46
|
+
1----1110 1111-110110-00------
|
47
|
+
-----0101 --------------------
|
48
|
+
.e
|
@@ -0,0 +1,340 @@
|
|
1
|
+
# c:/users/mariusz/sis/bin/nova.exe -t 1MARK1
|
2
|
+
.model 1MARK1.esp
|
3
|
+
.start_kiss
|
4
|
+
|
5
|
+
.i 5
|
6
|
+
.o 16
|
7
|
+
.p 22
|
8
|
+
.s 15
|
9
|
+
0---- * state1 -11---1-00------
|
10
|
+
1---- state1 state3 -11---1-00------
|
11
|
+
1---- state2 state0 -11---1-00------
|
12
|
+
1---- state3 state4 101---1-01------
|
13
|
+
1-111 state4 state13 -11---1-00------
|
14
|
+
1-110 state4 state10 -11---1-00------
|
15
|
+
1-10- state4 state9 -11---1-00------
|
16
|
+
1-011 state4 state8 -11---1-00------
|
17
|
+
1-010 state4 state7 -11---1-00------
|
18
|
+
1-001 state4 state6 -11---1-00------
|
19
|
+
1-000 state4 state5 -11---1-00------
|
20
|
+
1---- state5 state14 0011--1-00------
|
21
|
+
1---- state6 state14 00100-0-00000011
|
22
|
+
1---- state7 state14 001---1100------
|
23
|
+
1---- state8 state14 010---1-00------
|
24
|
+
1---- state9 state14 001---1010000101
|
25
|
+
1---- state10 state11 -11---1-00100000
|
26
|
+
10--- state11 state13 -11---1-00------
|
27
|
+
11--- state11 state12 -11---1-00------
|
28
|
+
1---- state12 state13 -110110-00------
|
29
|
+
1---- state13 state14 -11---1-00------
|
30
|
+
1---- state14 state3 -110110-00------
|
31
|
+
.end_kiss
|
32
|
+
#
|
33
|
+
# Prod.-terms of minimized MV cover = 19
|
34
|
+
# Prod.-terms of encoded cover = 20
|
35
|
+
# Pla area = 760
|
36
|
+
#
|
37
|
+
# .start_codes
|
38
|
+
.code * 1111
|
39
|
+
.code state1 0100
|
40
|
+
.code state2 1000
|
41
|
+
.code state3 1011
|
42
|
+
.code state4 1100
|
43
|
+
.code state5 0001
|
44
|
+
.code state6 0011
|
45
|
+
.code state7 0000
|
46
|
+
.code state8 0010
|
47
|
+
.code state9 1101
|
48
|
+
.code state10 1010
|
49
|
+
.code state11 0111
|
50
|
+
.code state12 1001
|
51
|
+
.code state13 0101
|
52
|
+
.code state14 0110
|
53
|
+
.code state0 1110
|
54
|
+
# .end_codes
|
55
|
+
#
|
56
|
+
# .start_network
|
57
|
+
.inputs v0 v1 v2 v3 v4
|
58
|
+
.outputs v9.4 v9.5 v9.6 v9.7 v9.8 v9.9 v9.10 v9.11 v9.12 \
|
59
|
+
v9.13 v9.14 v9.15 v9.16 v9.17 v9.18 v9.19
|
60
|
+
.latch v9.0 v5 1
|
61
|
+
.latch v9.1 v6 1
|
62
|
+
.latch v9.2 v7 1
|
63
|
+
.latch v9.3 v8 1
|
64
|
+
.latch_order v5 v6 v7 v8
|
65
|
+
.names v1 v2 v3 v4 v5 v6 v7 v8 v9.0
|
66
|
+
----01-0 1
|
67
|
+
----1011 1
|
68
|
+
----1000 1
|
69
|
+
1---0111 1
|
70
|
+
-110-1-0 1
|
71
|
+
-10-11-0 1
|
72
|
+
.names v1 v2 v3 v4 v5 v6 v7 v8 v9.1
|
73
|
+
----00-- 1
|
74
|
+
----111- 1
|
75
|
+
----1-10 1
|
76
|
+
----1011 1
|
77
|
+
----1101 1
|
78
|
+
----0101 1
|
79
|
+
----1001 1
|
80
|
+
----1000 1
|
81
|
+
0---0111 1
|
82
|
+
-10-11-0 1
|
83
|
+
-1-111-0 1
|
84
|
+
.names v2 v3 v4 v5 v6 v7 v8 v9.2
|
85
|
+
---00-- 1
|
86
|
+
---0-0- 1
|
87
|
+
0-1---0 1
|
88
|
+
---01-0 1
|
89
|
+
---1-10 1
|
90
|
+
---1101 1
|
91
|
+
---1000 1
|
92
|
+
110-1-0 1
|
93
|
+
.names v1 v2 v3 v4 v5 v6 v7 v8 v9.3
|
94
|
+
--0--1-0 1
|
95
|
+
----01-0 1
|
96
|
+
----1-10 1
|
97
|
+
----1001 1
|
98
|
+
1---0111 1
|
99
|
+
0---0111 1
|
100
|
+
-1-111-0 1
|
101
|
+
.names v5 v6 v7 v8 v9.4
|
102
|
+
1011 1
|
103
|
+
.names v1 v5 v6 v7 v8 v9.5
|
104
|
+
-111- 1
|
105
|
+
-01-0 1
|
106
|
+
--010 1
|
107
|
+
--100 1
|
108
|
+
-0101 1
|
109
|
+
-1001 1
|
110
|
+
-1000 1
|
111
|
+
10111 1
|
112
|
+
00111 1
|
113
|
+
.names v5 v6 v7 v8 v9.6
|
114
|
+
---1 1
|
115
|
+
0-0- 1
|
116
|
+
01-0 1
|
117
|
+
1-10 1
|
118
|
+
-100 1
|
119
|
+
1000 1
|
120
|
+
.names v5 v7 v9.7
|
121
|
+
00 1
|
122
|
+
.names v5 v6 v7 v8 v9.8
|
123
|
+
01-0 1
|
124
|
+
1001 1
|
125
|
+
.names v5 v6 v7 v8 v9.9
|
126
|
+
01-0 1
|
127
|
+
1001 1
|
128
|
+
.names v1 v5 v6 v7 v8 v9.10
|
129
|
+
-0-0- 1
|
130
|
+
-111- 1
|
131
|
+
--010 1
|
132
|
+
--100 1
|
133
|
+
-1011 1
|
134
|
+
-1101 1
|
135
|
+
-1000 1
|
136
|
+
10111 1
|
137
|
+
00111 1
|
138
|
+
.names v5 v7 v9.11
|
139
|
+
00 1
|
140
|
+
.names v5 v6 v7 v8 v9.12
|
141
|
+
1101 1
|
142
|
+
.names v5 v6 v7 v8 v9.13
|
143
|
+
1011 1
|
144
|
+
.names v5 v7 v8 v9.14
|
145
|
+
110 1
|
146
|
+
.names v9.15
|
147
|
+
.names v9.16
|
148
|
+
.names v5 v6 v7 v8 v9.17
|
149
|
+
1101 1
|
150
|
+
.names v5 v6 v9.18
|
151
|
+
00 1
|
152
|
+
.names v8 v9.19
|
153
|
+
1 1
|
154
|
+
.exdc
|
155
|
+
.inputs v0 v1 v2 v3 v4 v5 v6 v7 v8
|
156
|
+
.outputs v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6 v9.7 v9.8 v9.9 v9.10 v9.11 v9.12 \
|
157
|
+
v9.13 v9.14 v9.15 v9.16 v9.17 v9.18 v9.19
|
158
|
+
.names v0 v5 v6 v7 v8 v9.0
|
159
|
+
00--- 1
|
160
|
+
0-0-- 1
|
161
|
+
0--0- 1
|
162
|
+
0---0 1
|
163
|
+
1111- 1
|
164
|
+
-1110 1
|
165
|
+
.names v0 v5 v6 v7 v8 v9.1
|
166
|
+
00--- 1
|
167
|
+
0-0-- 1
|
168
|
+
0--0- 1
|
169
|
+
0---0 1
|
170
|
+
1111- 1
|
171
|
+
-1110 1
|
172
|
+
.names v0 v5 v6 v7 v8 v9.2
|
173
|
+
00--- 1
|
174
|
+
0-0-- 1
|
175
|
+
0--0- 1
|
176
|
+
0---0 1
|
177
|
+
1111- 1
|
178
|
+
-1110 1
|
179
|
+
.names v0 v5 v6 v7 v8 v9.3
|
180
|
+
00--- 1
|
181
|
+
0-0-- 1
|
182
|
+
0--0- 1
|
183
|
+
0---0 1
|
184
|
+
1111- 1
|
185
|
+
-1110 1
|
186
|
+
.names v0 v5 v6 v7 v8 v9.4
|
187
|
+
0---- 1
|
188
|
+
-01-- 1
|
189
|
+
-1--0 1
|
190
|
+
-100- 1
|
191
|
+
1111- 1
|
192
|
+
.names v0 v5 v6 v7 v8 v9.5
|
193
|
+
00--- 1
|
194
|
+
0-0-- 1
|
195
|
+
0--0- 1
|
196
|
+
0---0 1
|
197
|
+
1111- 1
|
198
|
+
-1110 1
|
199
|
+
.names v0 v5 v6 v7 v8 v9.6
|
200
|
+
00--- 1
|
201
|
+
0-0-- 1
|
202
|
+
0--0- 1
|
203
|
+
0---0 1
|
204
|
+
1111- 1
|
205
|
+
-1110 1
|
206
|
+
.names v0 v5 v6 v7 v8 v9.7
|
207
|
+
0---- 1
|
208
|
+
-1-1- 1
|
209
|
+
--10- 1
|
210
|
+
--1-1 1
|
211
|
+
--0-0 1
|
212
|
+
---00 1
|
213
|
+
.names v0 v5 v6 v7 v8 v9.8
|
214
|
+
0---- 1
|
215
|
+
-1-1- 1
|
216
|
+
-0-0- 1
|
217
|
+
--10- 1
|
218
|
+
--1-1 1
|
219
|
+
--0-0 1
|
220
|
+
---00 1
|
221
|
+
.names v0 v5 v6 v7 v8 v9.9
|
222
|
+
0---- 1
|
223
|
+
-1-1- 1
|
224
|
+
--01- 1
|
225
|
+
-0-0- 1
|
226
|
+
--10- 1
|
227
|
+
--1-1 1
|
228
|
+
--0-0 1
|
229
|
+
---00 1
|
230
|
+
.names v0 v5 v6 v7 v8 v9.10
|
231
|
+
00--- 1
|
232
|
+
0-0-- 1
|
233
|
+
0--0- 1
|
234
|
+
0---0 1
|
235
|
+
1111- 1
|
236
|
+
-1110 1
|
237
|
+
.names v0 v5 v6 v7 v8 v9.11
|
238
|
+
0---- 1
|
239
|
+
-01-- 1
|
240
|
+
-10-- 1
|
241
|
+
-0-1- 1
|
242
|
+
-0--1 1
|
243
|
+
-1--0 1
|
244
|
+
1111- 1
|
245
|
+
.names v0 v5 v6 v7 v8 v9.12
|
246
|
+
00--- 1
|
247
|
+
0-0-- 1
|
248
|
+
0--0- 1
|
249
|
+
0---0 1
|
250
|
+
1111- 1
|
251
|
+
-1110 1
|
252
|
+
.names v0 v5 v6 v7 v8 v9.13
|
253
|
+
00--- 1
|
254
|
+
0-0-- 1
|
255
|
+
0--0- 1
|
256
|
+
0---0 1
|
257
|
+
1111- 1
|
258
|
+
-1110 1
|
259
|
+
.names v0 v5 v6 v7 v8 v9.14
|
260
|
+
0---- 1
|
261
|
+
-01-- 1
|
262
|
+
-0-0- 1
|
263
|
+
--00- 1
|
264
|
+
-0--0 1
|
265
|
+
--1-0 1
|
266
|
+
-10-1 1
|
267
|
+
1111- 1
|
268
|
+
.names v0 v5 v6 v7 v8 v9.15
|
269
|
+
0---- 1
|
270
|
+
-01-- 1
|
271
|
+
--11- 1
|
272
|
+
-0-0- 1
|
273
|
+
--00- 1
|
274
|
+
-0--0 1
|
275
|
+
--1-0 1
|
276
|
+
-10-1 1
|
277
|
+
.names v0 v5 v6 v7 v8 v9.16
|
278
|
+
0---- 1
|
279
|
+
-01-- 1
|
280
|
+
--11- 1
|
281
|
+
-0-0- 1
|
282
|
+
--00- 1
|
283
|
+
-0--0 1
|
284
|
+
--1-0 1
|
285
|
+
-10-1 1
|
286
|
+
.names v0 v5 v6 v7 v8 v9.17
|
287
|
+
0---- 1
|
288
|
+
-01-- 1
|
289
|
+
--11- 1
|
290
|
+
-0-0- 1
|
291
|
+
--00- 1
|
292
|
+
-0--0 1
|
293
|
+
--1-0 1
|
294
|
+
-10-1 1
|
295
|
+
.names v0 v5 v6 v7 v8 v9.18
|
296
|
+
0---- 1
|
297
|
+
-01-- 1
|
298
|
+
--11- 1
|
299
|
+
-0-0- 1
|
300
|
+
--00- 1
|
301
|
+
-0--0 1
|
302
|
+
--1-0 1
|
303
|
+
-10-1 1
|
304
|
+
.names v0 v5 v6 v7 v8 v9.19
|
305
|
+
0---- 1
|
306
|
+
-01-- 1
|
307
|
+
--11- 1
|
308
|
+
-0-0- 1
|
309
|
+
--00- 1
|
310
|
+
-0--0 1
|
311
|
+
--1-0 1
|
312
|
+
-10-1 1
|
313
|
+
.end
|
314
|
+
# .end_network
|
315
|
+
.i 9
|
316
|
+
.o 20
|
317
|
+
.p 20
|
318
|
+
--110-1-0 10100000000000000000
|
319
|
+
--10-11-0 11000000000000000000
|
320
|
+
--1-111-0 01010000000000000000
|
321
|
+
--0-1---0 00100000000000000000
|
322
|
+
-1---0111 10010100001000000000
|
323
|
+
-0---0111 01010100001000000000
|
324
|
+
---0--1-0 00010000000000000000
|
325
|
+
-----0101 01000100000000000000
|
326
|
+
-----1011 11001000001001000000
|
327
|
+
-----1001 01010100110000000000
|
328
|
+
------010 00000100001000000000
|
329
|
+
-----1101 01100000001010000100
|
330
|
+
------100 00000110001000000000
|
331
|
+
-----00-- 01100000000000000010
|
332
|
+
-----111- 01000100001000000000
|
333
|
+
--------1 00000010000000000001
|
334
|
+
-----0-0- 00100011001100000000
|
335
|
+
-----1-10 01110010000000100000
|
336
|
+
-----1000 11100110001000000000
|
337
|
+
-----01-0 10110110110000000000
|
338
|
+
.e
|
339
|
+
#
|
340
|
+
# CPU time = 0.0 seconds
|
@@ -0,0 +1,79 @@
|
|
1
|
+
library ieee;
|
2
|
+
use ieee.numeric_std.all;
|
3
|
+
use ieee.std_logic_1164.all;
|
4
|
+
entity mark1 is
|
5
|
+
port(
|
6
|
+
clock: in std_logic;
|
7
|
+
input: in std_logic_vector(4 downto 0);
|
8
|
+
output: out std_logic_vector(15 downto 0)
|
9
|
+
);
|
10
|
+
end mark1;
|
11
|
+
architecture behaviour of mark1 is
|
12
|
+
type state is (state1, state2, state3, state4, state5, state6, state7, state8, state9, state10, state11, state12, state13, state14, state0);
|
13
|
+
signal current_state, next_state: state;
|
14
|
+
begin
|
15
|
+
process(clock) begin
|
16
|
+
if rising_edge(clock) then current_state <= next_state;
|
17
|
+
end if;
|
18
|
+
end process;
|
19
|
+
process(input, current_state) begin
|
20
|
+
next_state <= state1; output <= "----------------";
|
21
|
+
if std_match(input, "0----") then next_state <= state1; output <= "-11---1-00------";
|
22
|
+
else
|
23
|
+
case current_state is
|
24
|
+
when state1 =>
|
25
|
+
if std_match(input, "1----") then next_state <= state3; output <= "-11---1-00------";
|
26
|
+
end if;
|
27
|
+
when state2 =>
|
28
|
+
if std_match(input, "1----") then next_state <= state0; output <= "-11---1-00------";
|
29
|
+
end if;
|
30
|
+
when state3 =>
|
31
|
+
if std_match(input, "1----") then next_state <= state4; output <= "101---1-01------";
|
32
|
+
end if;
|
33
|
+
when state4 =>
|
34
|
+
if std_match(input, "1-111") then next_state <= state13; output <= "-11---1-00------";
|
35
|
+
elsif std_match(input, "1-110") then next_state <= state10; output <= "-11---1-00------";
|
36
|
+
elsif std_match(input, "1-10-") then next_state <= state9; output <= "-11---1-00------";
|
37
|
+
elsif std_match(input, "1-011") then next_state <= state8; output <= "-11---1-00------";
|
38
|
+
elsif std_match(input, "1-010") then next_state <= state7; output <= "-11---1-00------";
|
39
|
+
elsif std_match(input, "1-001") then next_state <= state6; output <= "-11---1-00------";
|
40
|
+
elsif std_match(input, "1-000") then next_state <= state5; output <= "-11---1-00------";
|
41
|
+
end if;
|
42
|
+
when state5 =>
|
43
|
+
if std_match(input, "1----") then next_state <= state14; output <= "0011--1-00------";
|
44
|
+
end if;
|
45
|
+
when state6 =>
|
46
|
+
if std_match(input, "1----") then next_state <= state14; output <= "00100-0-00000011";
|
47
|
+
end if;
|
48
|
+
when state7 =>
|
49
|
+
if std_match(input, "1----") then next_state <= state14; output <= "001---1100------";
|
50
|
+
end if;
|
51
|
+
when state8 =>
|
52
|
+
if std_match(input, "1----") then next_state <= state14; output <= "010---1-00------";
|
53
|
+
end if;
|
54
|
+
when state9 =>
|
55
|
+
if std_match(input, "1----") then next_state <= state14; output <= "001---1010000101";
|
56
|
+
end if;
|
57
|
+
when state10 =>
|
58
|
+
if std_match(input, "1----") then next_state <= state11; output <= "-11---1-00100000";
|
59
|
+
end if;
|
60
|
+
when state11 =>
|
61
|
+
if std_match(input, "10---") then next_state <= state13; output <= "-11---1-00------";
|
62
|
+
elsif std_match(input, "11---") then next_state <= state12; output <= "-11---1-00------";
|
63
|
+
end if;
|
64
|
+
when state12 =>
|
65
|
+
if std_match(input, "1----") then next_state <= state13; output <= "-110110-00------";
|
66
|
+
end if;
|
67
|
+
when state13 =>
|
68
|
+
if std_match(input, "1----") then next_state <= state14; output <= "-11---1-00------";
|
69
|
+
end if;
|
70
|
+
when state14 =>
|
71
|
+
if std_match(input, "1----") then next_state <= state3; output <= "-110110-00------";
|
72
|
+
end if;
|
73
|
+
when state0 =>
|
74
|
+
if std_match(input, "0----") then next_state <= state1; output <= "-11---1-00------";
|
75
|
+
end if;
|
76
|
+
end case;
|
77
|
+
end if;
|
78
|
+
end process;
|
79
|
+
end behaviour;
|