1 | # vl2mv dcnew.v |
---|
2 | # version: 0.2 |
---|
3 | # date: 11:13:36 12/11/95 (PST) |
---|
4 | .model dchek |
---|
5 | # I/O ports |
---|
6 | |
---|
7 | .mv interpretation 2 go stop |
---|
8 | .mv charger 2 discharged charged |
---|
9 | .mv ts_power 2 on off |
---|
10 | .mv track3 2 conduct open |
---|
11 | .mv train 3 present1 present2 absent |
---|
12 | .mv contact 3 B middle C |
---|
13 | .mv lamp 2 lit unlit |
---|
14 | .mv relay 2 pulling neutral |
---|
15 | .mv track2 2 conduct open |
---|
16 | .mv track1 2 conduct open |
---|
17 | .subckt track_mod trk1 track=track1 |
---|
18 | .subckt track_mod trk2 track=track2 |
---|
19 | .subckt track_mod trk3 track=track3 |
---|
20 | .subckt charger_mod chg ts_power=ts_power lamp=lamp out=charger |
---|
21 | .subckt relay_mod rly charger=charger relay=relay |
---|
22 | .subckt lamp_mod lmp contact=contact wire3=track3 ts_power=ts_power charger=charger lamp=lamp |
---|
23 | .subckt contact_mod cnt relay=relay contact=contact |
---|
24 | .subckt train_mod trn out=train |
---|
25 | .subckt track_system_mod tsm wire1=track1 wire2=track2 train=train contact=contact ts_power=ts_power |
---|
26 | .subckt interpretation_mod int lamp=lamp out=interpretation |
---|
27 | .subckt property_mod prop train=train interpretation=interpretation |
---|
28 | # conflict arbitrators |
---|
29 | # non-blocking assignments |
---|
30 | # latches |
---|
31 | # quasi-continuous assignment |
---|
32 | .end |
---|
33 | |
---|
34 | |
---|
35 | .model track_mod |
---|
36 | # I/O ports |
---|
37 | .outputs track |
---|
38 | |
---|
39 | .mv r_state 3 good faulty1 faulty2 |
---|
40 | .mv state 3 good faulty1 faulty2 |
---|
41 | .mv track 2 conduct open |
---|
42 | # state = 0 |
---|
43 | .mv state$raw_n0 3 good faulty1 faulty2 |
---|
44 | .names state$raw_n0 |
---|
45 | good |
---|
46 | # non-blocking assignments for initial |
---|
47 | # assign r_state = $NDset ( 0,1 ) |
---|
48 | .names r_state |
---|
49 | good |
---|
50 | faulty1 |
---|
51 | # assign track = (state == good ) ? 0 : 1 |
---|
52 | .mv track$raw_n3 2 conduct open |
---|
53 | .mv _n5 3 good faulty1 faulty2 |
---|
54 | .names _n5 |
---|
55 | good |
---|
56 | # state == 0 |
---|
57 | .names state _n5 _n4 |
---|
58 | .def 0 |
---|
59 | - =state 1 |
---|
60 | .mv _n6 2 conduct open |
---|
61 | .names _n6 |
---|
62 | conduct |
---|
63 | .mv _n7 2 conduct open |
---|
64 | .names _n7 |
---|
65 | open |
---|
66 | # (state == 0) ? 0 : 1 |
---|
67 | .mv _n8 2 conduct open |
---|
68 | .names _n6 _n7 _n4 _n8 |
---|
69 | - - 0 =_n7 |
---|
70 | - - 1 =_n6 |
---|
71 | .names _n8 track$raw_n3 |
---|
72 | - =_n8 |
---|
73 | .mv _na 3 good faulty1 faulty2 |
---|
74 | .names _na |
---|
75 | faulty1 |
---|
76 | # state == 1 |
---|
77 | .names state _na _n9 |
---|
78 | .def 0 |
---|
79 | - =state 1 |
---|
80 | .names _n9 _nb |
---|
81 | - =_n9 |
---|
82 | # state = 1 |
---|
83 | .mv state$_n9_nc$true 3 good faulty1 faulty2 |
---|
84 | .names state$_n9_nc$true |
---|
85 | faulty1 |
---|
86 | # if/else (state == 1) |
---|
87 | .mv state$_n9$raw_nf 3 good faulty1 faulty2 |
---|
88 | .names state$_n9_nc$true state _n9 state$_n9$raw_nf |
---|
89 | - - 0 =state |
---|
90 | - - 1 =state$_n9_nc$true |
---|
91 | .mv _n11 3 good faulty1 faulty2 |
---|
92 | .names _n11 |
---|
93 | good |
---|
94 | # state == 0 |
---|
95 | .names state$_n9$raw_nf _n11 _n10 |
---|
96 | .def 0 |
---|
97 | - =state$_n9$raw_nf 1 |
---|
98 | .names _n10 _n12 |
---|
99 | - =_n10 |
---|
100 | # state = r_state |
---|
101 | .mv state$_n10_n13$true 3 good faulty1 faulty2 |
---|
102 | .names r_state state$_n10_n13$true |
---|
103 | - =r_state |
---|
104 | # if/else (state == 0) |
---|
105 | .mv state$_n10$raw_n14 3 good faulty1 faulty2 |
---|
106 | .names state$_n10_n13$true state$_n9$raw_nf _n10 state$_n10$raw_n14 |
---|
107 | - - 0 =state$_n9$raw_nf |
---|
108 | - - 1 =state$_n10_n13$true |
---|
109 | # conflict arbitrators |
---|
110 | .names _nb _n12 _n18 |
---|
111 | .def 0 |
---|
112 | 1 - 1 |
---|
113 | - 1 1 |
---|
114 | .mv _n19 3 good faulty1 faulty2 |
---|
115 | .names _n18 state$_n10$raw_n14 state _n19 |
---|
116 | 1 - - =state$_n10$raw_n14 |
---|
117 | 0 - - =state |
---|
118 | .names track$raw_n3 track |
---|
119 | - =track$raw_n3 |
---|
120 | # non-blocking assignments |
---|
121 | # latches |
---|
122 | .r state$raw_n0 state |
---|
123 | - =state$raw_n0 |
---|
124 | .latch _n19 state |
---|
125 | # quasi-continuous assignment |
---|
126 | .end |
---|
127 | |
---|
128 | |
---|
129 | .model charger_mod |
---|
130 | # I/O ports |
---|
131 | .outputs out |
---|
132 | .inputs ts_power |
---|
133 | .inputs lamp |
---|
134 | |
---|
135 | .mv out 2 discharged charged |
---|
136 | .mv charger 2 discharged charged |
---|
137 | .mv r_state 3 good faulty1 faulty2 |
---|
138 | .mv state 3 good faulty1 faulty2 |
---|
139 | .mv ts_power 2 on off |
---|
140 | .mv lamp 2 lit unlit |
---|
141 | # state = 0 |
---|
142 | .mv state$raw_n1e 3 good faulty1 faulty2 |
---|
143 | .names state$raw_n1e |
---|
144 | good |
---|
145 | # non-blocking assignments for initial |
---|
146 | # charger = 0 |
---|
147 | .mv charger$raw_n1f 2 discharged charged |
---|
148 | .names charger$raw_n1f |
---|
149 | discharged |
---|
150 | # non-blocking assignments for initial |
---|
151 | # assign r_state = $NDset ( 0,1,2 ) |
---|
152 | .names r_state |
---|
153 | good |
---|
154 | faulty1 |
---|
155 | faulty2 |
---|
156 | # assign out = state == faulty1 ? 0 : state == faulty2 ? 1 : charger |
---|
157 | .mv out$raw_n22 2 discharged charged |
---|
158 | .mv _n24 3 good faulty1 faulty2 |
---|
159 | .names _n24 |
---|
160 | faulty1 |
---|
161 | # state == 1 |
---|
162 | .names state _n24 _n23 |
---|
163 | .def 0 |
---|
164 | - =state 1 |
---|
165 | .mv _n26 3 good faulty1 faulty2 |
---|
166 | .names _n26 |
---|
167 | faulty2 |
---|
168 | # state == 2 |
---|
169 | .names state _n26 _n25 |
---|
170 | .def 0 |
---|
171 | - =state 1 |
---|
172 | .mv _n27 2 discharged charged |
---|
173 | .names _n27 |
---|
174 | charged |
---|
175 | # state == 2 ? 1 : charger |
---|
176 | .mv _n28 2 discharged charged |
---|
177 | .names _n27 charger _n25 _n28 |
---|
178 | - - 0 =charger |
---|
179 | - - 1 =_n27 |
---|
180 | .mv _n29 2 discharged charged |
---|
181 | .names _n29 |
---|
182 | discharged |
---|
183 | # state == 1 ? 0 : state == 2 ? 1 : charger |
---|
184 | .mv _n2a 2 discharged charged |
---|
185 | .names _n29 _n28 _n23 _n2a |
---|
186 | - - 0 =_n28 |
---|
187 | - - 1 =_n29 |
---|
188 | .names _n2a out$raw_n22 |
---|
189 | - =_n2a |
---|
190 | .mv _n2c 3 good faulty1 faulty2 |
---|
191 | .names _n2c |
---|
192 | faulty1 |
---|
193 | # state == 1 |
---|
194 | .names state _n2c _n2b |
---|
195 | .def 0 |
---|
196 | - =state 1 |
---|
197 | .names _n2b _n2d |
---|
198 | - =_n2b |
---|
199 | # state = 1 |
---|
200 | .mv state$_n2b_n2e$true 3 good faulty1 faulty2 |
---|
201 | .names state$_n2b_n2e$true |
---|
202 | faulty1 |
---|
203 | # if/else (state == 1) |
---|
204 | .mv state$_n2b$raw_n31 3 good faulty1 faulty2 |
---|
205 | .names state$_n2b_n2e$true state _n2b state$_n2b$raw_n31 |
---|
206 | - - 0 =state |
---|
207 | - - 1 =state$_n2b_n2e$true |
---|
208 | .mv _n33 3 good faulty1 faulty2 |
---|
209 | .names _n33 |
---|
210 | faulty2 |
---|
211 | # state == 2 |
---|
212 | .names state$_n2b$raw_n31 _n33 _n32 |
---|
213 | .def 0 |
---|
214 | - =state$_n2b$raw_n31 1 |
---|
215 | .names _n32 _n34 |
---|
216 | - =_n32 |
---|
217 | # state = 2 |
---|
218 | .mv state$_n32_n35$true 3 good faulty1 faulty2 |
---|
219 | .names state$_n32_n35$true |
---|
220 | faulty2 |
---|
221 | # if/else (state == 2) |
---|
222 | .mv state$_n32$raw_n36 3 good faulty1 faulty2 |
---|
223 | .names state$_n32_n35$true state$_n2b$raw_n31 _n32 state$_n32$raw_n36 |
---|
224 | - - 0 =state$_n2b$raw_n31 |
---|
225 | - - 1 =state$_n32_n35$true |
---|
226 | .mv _n3b 3 good faulty1 faulty2 |
---|
227 | .names _n3b |
---|
228 | good |
---|
229 | # state == 0 |
---|
230 | .names state$_n32$raw_n36 _n3b _n3a |
---|
231 | .def 0 |
---|
232 | - =state$_n32$raw_n36 1 |
---|
233 | .names _n3a _n3c |
---|
234 | - =_n3a |
---|
235 | # state = r_state |
---|
236 | .mv state$_n3a_n3d$true 3 good faulty1 faulty2 |
---|
237 | .names r_state state$_n3a_n3d$true |
---|
238 | - =r_state |
---|
239 | .mv _n3f 2 on off |
---|
240 | .names _n3f |
---|
241 | on |
---|
242 | # ts_power == 0 |
---|
243 | .names ts_power _n3f _n3e |
---|
244 | .def 0 |
---|
245 | - =ts_power 1 |
---|
246 | .names _n3e _n40 |
---|
247 | - =_n3e |
---|
248 | # charger = 1 |
---|
249 | .mv charger$_n3e_n41$true 2 discharged charged |
---|
250 | .names charger$_n3e_n41$true |
---|
251 | charged |
---|
252 | .mv _n43 2 lit unlit |
---|
253 | .names _n43 |
---|
254 | lit |
---|
255 | # lamp == 0 |
---|
256 | .names lamp _n43 _n42 |
---|
257 | .def 0 |
---|
258 | - =lamp 1 |
---|
259 | .names _n42 _n44 |
---|
260 | - =_n42 |
---|
261 | # charger = 0 |
---|
262 | .mv charger$_n42_n45$true 2 discharged charged |
---|
263 | .names charger$_n42_n45$true |
---|
264 | discharged |
---|
265 | # charger = charger |
---|
266 | .mv charger$_n42_n46$false 2 discharged charged |
---|
267 | .names charger charger$_n42_n46$false |
---|
268 | - =charger |
---|
269 | # if/else (lamp == 0) |
---|
270 | .mv charger$_n42$raw_n49 2 discharged charged |
---|
271 | .names charger$_n42_n45$true charger$_n42_n46$false _n42 charger$_n42$raw_n49 |
---|
272 | - - 0 =charger$_n42_n46$false |
---|
273 | - - 1 =charger$_n42_n45$true |
---|
274 | # if/else (ts_power == 0) |
---|
275 | .mv charger$_n3e$raw_n51 2 discharged charged |
---|
276 | .names charger$_n3e_n41$true charger$_n42$raw_n49 _n3e charger$_n3e$raw_n51 |
---|
277 | - - 0 =charger$_n42$raw_n49 |
---|
278 | - - 1 =charger$_n3e_n41$true |
---|
279 | # if/else (state == 0) |
---|
280 | .mv state$_n3a$raw_n58 3 good faulty1 faulty2 |
---|
281 | .names state$_n3a_n3d$true state$_n32$raw_n36 _n3a state$_n3a$raw_n58 |
---|
282 | - - 0 =state$_n32$raw_n36 |
---|
283 | - - 1 =state$_n3a_n3d$true |
---|
284 | .mv charger$_n3a$raw_n5b 2 discharged charged |
---|
285 | .names charger$_n3e$raw_n51 charger _n3a charger$_n3a$raw_n5b |
---|
286 | - - 0 =charger |
---|
287 | - - 1 =charger$_n3e$raw_n51 |
---|
288 | # conflict arbitrators |
---|
289 | .names out$raw_n22 out |
---|
290 | - =out$raw_n22 |
---|
291 | .names _n3c _n40 _n44 _n5e |
---|
292 | .def 0 |
---|
293 | 1 1 - 1 |
---|
294 | 1 0 1 1 |
---|
295 | 1 0 0 1 |
---|
296 | .mv _n5f 2 discharged charged |
---|
297 | .names _n5e charger$_n3a$raw_n5b charger _n5f |
---|
298 | 1 - - =charger$_n3a$raw_n5b |
---|
299 | 0 - - =charger |
---|
300 | .names _n2d _n34 _n3c _n66 |
---|
301 | .def 0 |
---|
302 | 1 - - 1 |
---|
303 | - 1 - 1 |
---|
304 | - - 1 1 |
---|
305 | .mv _n67 3 good faulty1 faulty2 |
---|
306 | .names _n66 state$_n3a$raw_n58 state _n67 |
---|
307 | 1 - - =state$_n3a$raw_n58 |
---|
308 | 0 - - =state |
---|
309 | # non-blocking assignments |
---|
310 | # latches |
---|
311 | .r charger$raw_n1f charger |
---|
312 | - =charger$raw_n1f |
---|
313 | .latch _n5f charger |
---|
314 | .r state$raw_n1e state |
---|
315 | - =state$raw_n1e |
---|
316 | .latch _n67 state |
---|
317 | # quasi-continuous assignment |
---|
318 | .end |
---|
319 | |
---|
320 | |
---|
321 | .model relay_mod |
---|
322 | # I/O ports |
---|
323 | .inputs charger |
---|
324 | .outputs relay |
---|
325 | |
---|
326 | .mv charger 2 discharged charged |
---|
327 | .mv r_state 3 good faulty1 faulty2 |
---|
328 | .mv state 3 good faulty1 faulty2 |
---|
329 | .mv relay 2 pulling neutral |
---|
330 | # state = 0 |
---|
331 | .mv state$raw_n6e 3 good faulty1 faulty2 |
---|
332 | .names state$raw_n6e |
---|
333 | good |
---|
334 | # non-blocking assignments for initial |
---|
335 | # assign r_state = $NDset ( 0,1,2 ) |
---|
336 | .names r_state |
---|
337 | good |
---|
338 | faulty1 |
---|
339 | faulty2 |
---|
340 | # assign relay = state == faulty1 ? 1 : state == faulty2 ? 0 : state == good && charger == charged ? 0 : 1 |
---|
341 | .mv relay$raw_n71 2 pulling neutral |
---|
342 | .mv _n73 3 good faulty1 faulty2 |
---|
343 | .names _n73 |
---|
344 | faulty1 |
---|
345 | # state == 1 |
---|
346 | .names state _n73 _n72 |
---|
347 | .def 0 |
---|
348 | - =state 1 |
---|
349 | .mv _n75 3 good faulty1 faulty2 |
---|
350 | .names _n75 |
---|
351 | faulty2 |
---|
352 | # state == 2 |
---|
353 | .names state _n75 _n74 |
---|
354 | .def 0 |
---|
355 | - =state 1 |
---|
356 | .mv _n77 3 good faulty1 faulty2 |
---|
357 | .names _n77 |
---|
358 | good |
---|
359 | # state == 0 |
---|
360 | .names state _n77 _n76 |
---|
361 | .def 0 |
---|
362 | - =state 1 |
---|
363 | .mv _n79 2 discharged charged |
---|
364 | .names _n79 |
---|
365 | charged |
---|
366 | # charger == 1 |
---|
367 | .names charger _n79 _n78 |
---|
368 | .def 0 |
---|
369 | - =charger 1 |
---|
370 | # state == 0 && charger == 1 |
---|
371 | .names _n76 _n78 _n7a |
---|
372 | .def 0 |
---|
373 | 1 1 1 |
---|
374 | .mv _n7b 2 pulling neutral |
---|
375 | .names _n7b |
---|
376 | pulling |
---|
377 | .mv _n7c 2 pulling neutral |
---|
378 | .names _n7c |
---|
379 | neutral |
---|
380 | # state == 0 && charger == 1 ? 0 : 1 |
---|
381 | .mv _n7d 2 pulling neutral |
---|
382 | .names _n7b _n7c _n7a _n7d |
---|
383 | - - 0 =_n7c |
---|
384 | - - 1 =_n7b |
---|
385 | .mv _n7e 2 pulling neutral |
---|
386 | .names _n7e |
---|
387 | pulling |
---|
388 | # state == 2 ? 0 : state == 0 && charger == 1 ? 0 : 1 |
---|
389 | .mv _n7f 2 pulling neutral |
---|
390 | .names _n7e _n7d _n74 _n7f |
---|
391 | - - 0 =_n7d |
---|
392 | - - 1 =_n7e |
---|
393 | .mv _n80 2 pulling neutral |
---|
394 | .names _n80 |
---|
395 | neutral |
---|
396 | # state == 1 ? 1 : state == 2 ? 0 : state == 0 && charger == 1 ? 0 : 1 |
---|
397 | .mv _n81 2 pulling neutral |
---|
398 | .names _n80 _n7f _n72 _n81 |
---|
399 | - - 0 =_n7f |
---|
400 | - - 1 =_n80 |
---|
401 | .names _n81 relay$raw_n71 |
---|
402 | - =_n81 |
---|
403 | .mv _n83 3 good faulty1 faulty2 |
---|
404 | .names _n83 |
---|
405 | faulty1 |
---|
406 | # state == 1 |
---|
407 | .names state _n83 _n82 |
---|
408 | .def 0 |
---|
409 | - =state 1 |
---|
410 | .names _n82 _n84 |
---|
411 | - =_n82 |
---|
412 | # state = 1 |
---|
413 | .mv state$_n82_n85$true 3 good faulty1 faulty2 |
---|
414 | .names state$_n82_n85$true |
---|
415 | faulty1 |
---|
416 | # if/else (state == 1) |
---|
417 | .mv state$_n82$raw_n88 3 good faulty1 faulty2 |
---|
418 | .names state$_n82_n85$true state _n82 state$_n82$raw_n88 |
---|
419 | - - 0 =state |
---|
420 | - - 1 =state$_n82_n85$true |
---|
421 | .mv _n8a 3 good faulty1 faulty2 |
---|
422 | .names _n8a |
---|
423 | faulty2 |
---|
424 | # state == 2 |
---|
425 | .names state$_n82$raw_n88 _n8a _n89 |
---|
426 | .def 0 |
---|
427 | - =state$_n82$raw_n88 1 |
---|
428 | .names _n89 _n8b |
---|
429 | - =_n89 |
---|
430 | # state = 2 |
---|
431 | .mv state$_n89_n8c$true 3 good faulty1 faulty2 |
---|
432 | .names state$_n89_n8c$true |
---|
433 | faulty2 |
---|
434 | # if/else (state == 2) |
---|
435 | .mv state$_n89$raw_n8d 3 good faulty1 faulty2 |
---|
436 | .names state$_n89_n8c$true state$_n82$raw_n88 _n89 state$_n89$raw_n8d |
---|
437 | - - 0 =state$_n82$raw_n88 |
---|
438 | - - 1 =state$_n89_n8c$true |
---|
439 | .mv _n92 3 good faulty1 faulty2 |
---|
440 | .names _n92 |
---|
441 | good |
---|
442 | # state == 0 |
---|
443 | .names state$_n89$raw_n8d _n92 _n91 |
---|
444 | .def 0 |
---|
445 | - =state$_n89$raw_n8d 1 |
---|
446 | .names _n91 _n93 |
---|
447 | - =_n91 |
---|
448 | # state = r_state |
---|
449 | .mv state$_n91_n94$true 3 good faulty1 faulty2 |
---|
450 | .names r_state state$_n91_n94$true |
---|
451 | - =r_state |
---|
452 | # if/else (state == 0) |
---|
453 | .mv state$_n91$raw_n95 3 good faulty1 faulty2 |
---|
454 | .names state$_n91_n94$true state$_n89$raw_n8d _n91 state$_n91$raw_n95 |
---|
455 | - - 0 =state$_n89$raw_n8d |
---|
456 | - - 1 =state$_n91_n94$true |
---|
457 | # conflict arbitrators |
---|
458 | .names _n84 _n8b _n93 _n99 |
---|
459 | .def 0 |
---|
460 | 1 - - 1 |
---|
461 | - 1 - 1 |
---|
462 | - - 1 1 |
---|
463 | .mv _n9a 3 good faulty1 faulty2 |
---|
464 | .names _n99 state$_n91$raw_n95 state _n9a |
---|
465 | 1 - - =state$_n91$raw_n95 |
---|
466 | 0 - - =state |
---|
467 | .names relay$raw_n71 relay |
---|
468 | - =relay$raw_n71 |
---|
469 | # non-blocking assignments |
---|
470 | # latches |
---|
471 | .r state$raw_n6e state |
---|
472 | - =state$raw_n6e |
---|
473 | .latch _n9a state |
---|
474 | # quasi-continuous assignment |
---|
475 | .end |
---|
476 | |
---|
477 | |
---|
478 | .model lamp_mod |
---|
479 | # I/O ports |
---|
480 | .inputs charger |
---|
481 | .inputs wire3 |
---|
482 | .inputs ts_power |
---|
483 | .outputs lamp |
---|
484 | .inputs contact |
---|
485 | |
---|
486 | .mv charger 2 discharged charged |
---|
487 | .mv wire3 2 conduct open |
---|
488 | .mv r_state 3 good faulty1 faulty2 |
---|
489 | .mv state 3 good faulty1 faulty2 |
---|
490 | .mv ts_power 2 on off |
---|
491 | .mv lamp 2 lit unlit |
---|
492 | .mv contact 3 B middle C |
---|
493 | # state = 0 |
---|
494 | .mv state$raw_na0 3 good faulty1 faulty2 |
---|
495 | .names state$raw_na0 |
---|
496 | good |
---|
497 | # non-blocking assignments for initial |
---|
498 | # assign r_state = $NDset ( 0,1,2 ) |
---|
499 | .names r_state |
---|
500 | good |
---|
501 | faulty1 |
---|
502 | faulty2 |
---|
503 | # assign lamp = state == faulty1 ? 1 : state == faulty2 ? 0 : state == good && ((contact == C ) && (wire3 == conduct ) && ((ts_power == on ) | (charger == charged ))) ? 0 : 1 |
---|
504 | .mv lamp$raw_na3 2 lit unlit |
---|
505 | .mv _na5 3 good faulty1 faulty2 |
---|
506 | .names _na5 |
---|
507 | faulty1 |
---|
508 | # state == 1 |
---|
509 | .names state _na5 _na4 |
---|
510 | .def 0 |
---|
511 | - =state 1 |
---|
512 | .mv _na7 3 good faulty1 faulty2 |
---|
513 | .names _na7 |
---|
514 | faulty2 |
---|
515 | # state == 2 |
---|
516 | .names state _na7 _na6 |
---|
517 | .def 0 |
---|
518 | - =state 1 |
---|
519 | .mv _na9 3 good faulty1 faulty2 |
---|
520 | .names _na9 |
---|
521 | good |
---|
522 | # state == 0 |
---|
523 | .names state _na9 _na8 |
---|
524 | .def 0 |
---|
525 | - =state 1 |
---|
526 | .mv _nab 3 B middle C |
---|
527 | .names _nab |
---|
528 | C |
---|
529 | # contact == 2 |
---|
530 | .names contact _nab _naa |
---|
531 | .def 0 |
---|
532 | - =contact 1 |
---|
533 | .mv _nad 2 conduct open |
---|
534 | .names _nad |
---|
535 | conduct |
---|
536 | # wire3 == 0 |
---|
537 | .names wire3 _nad _nac |
---|
538 | .def 0 |
---|
539 | - =wire3 1 |
---|
540 | # (contact == 2) && (wire3 == 0) |
---|
541 | .names _naa _nac _nae |
---|
542 | .def 0 |
---|
543 | 1 1 1 |
---|
544 | .mv _nb0 2 on off |
---|
545 | .names _nb0 |
---|
546 | on |
---|
547 | # ts_power == 0 |
---|
548 | .names ts_power _nb0 _naf |
---|
549 | .def 0 |
---|
550 | - =ts_power 1 |
---|
551 | .mv _nb2 2 discharged charged |
---|
552 | .names _nb2 |
---|
553 | charged |
---|
554 | # charger == 1 |
---|
555 | .names charger _nb2 _nb1 |
---|
556 | .def 0 |
---|
557 | - =charger 1 |
---|
558 | # (ts_power == 0) | (charger == 1) |
---|
559 | .names _naf _nb1 _nb3 |
---|
560 | .def 1 |
---|
561 | 0 0 0 |
---|
562 | # (contact == 2) && (wire3 == 0) && ((ts_power == 0) | (charger == 1)) |
---|
563 | .names _nae _nb3 _nb4 |
---|
564 | .def 0 |
---|
565 | 1 1 1 |
---|
566 | # state == 0 && ((contact == 2) && (wire3 == 0) && ((ts_power == 0) | (charger == 1))) |
---|
567 | .names _na8 _nb4 _nb5 |
---|
568 | .def 0 |
---|
569 | 1 1 1 |
---|
570 | .mv _nb6 2 lit unlit |
---|
571 | .names _nb6 |
---|
572 | lit |
---|
573 | .mv _nb7 2 lit unlit |
---|
574 | .names _nb7 |
---|
575 | unlit |
---|
576 | # state == 0 && ((contact == 2) && (wire3 == 0) && ((ts_power == 0) | (charger == 1))) ? 0 : 1 |
---|
577 | .mv _nb8 2 lit unlit |
---|
578 | .names _nb6 _nb7 _nb5 _nb8 |
---|
579 | - - 0 =_nb7 |
---|
580 | - - 1 =_nb6 |
---|
581 | .mv _nb9 2 lit unlit |
---|
582 | .names _nb9 |
---|
583 | lit |
---|
584 | # state == 2 ? 0 : state == 0 && ((contact == 2) && (wire3 == 0) && ((ts_power == 0) | (charger == 1))) ? 0 : 1 |
---|
585 | .mv _nba 2 lit unlit |
---|
586 | .names _nb9 _nb8 _na6 _nba |
---|
587 | - - 0 =_nb8 |
---|
588 | - - 1 =_nb9 |
---|
589 | .mv _nbb 2 lit unlit |
---|
590 | .names _nbb |
---|
591 | unlit |
---|
592 | # state == 1 ? 1 : state == 2 ? 0 : state == 0 && ((contact == 2) && (wire3 == 0) && ((ts_power == 0) | (charger == 1))) ? 0 : 1 |
---|
593 | .mv _nbc 2 lit unlit |
---|
594 | .names _nbb _nba _na4 _nbc |
---|
595 | - - 0 =_nba |
---|
596 | - - 1 =_nbb |
---|
597 | .names _nbc lamp$raw_na3 |
---|
598 | - =_nbc |
---|
599 | .mv _nbe 3 good faulty1 faulty2 |
---|
600 | .names _nbe |
---|
601 | faulty1 |
---|
602 | # state == 1 |
---|
603 | .names state _nbe _nbd |
---|
604 | .def 0 |
---|
605 | - =state 1 |
---|
606 | .names _nbd _nbf |
---|
607 | - =_nbd |
---|
608 | # state = 1 |
---|
609 | .mv state$_nbd_nc0$true 3 good faulty1 faulty2 |
---|
610 | .names state$_nbd_nc0$true |
---|
611 | faulty1 |
---|
612 | # if/else (state == 1) |
---|
613 | .mv state$_nbd$raw_nc3 3 good faulty1 faulty2 |
---|
614 | .names state$_nbd_nc0$true state _nbd state$_nbd$raw_nc3 |
---|
615 | - - 0 =state |
---|
616 | - - 1 =state$_nbd_nc0$true |
---|
617 | .mv _nc5 3 good faulty1 faulty2 |
---|
618 | .names _nc5 |
---|
619 | faulty2 |
---|
620 | # state == 2 |
---|
621 | .names state$_nbd$raw_nc3 _nc5 _nc4 |
---|
622 | .def 0 |
---|
623 | - =state$_nbd$raw_nc3 1 |
---|
624 | .names _nc4 _nc6 |
---|
625 | - =_nc4 |
---|
626 | # state = 2 |
---|
627 | .mv state$_nc4_nc7$true 3 good faulty1 faulty2 |
---|
628 | .names state$_nc4_nc7$true |
---|
629 | faulty2 |
---|
630 | # if/else (state == 2) |
---|
631 | .mv state$_nc4$raw_nc8 3 good faulty1 faulty2 |
---|
632 | .names state$_nc4_nc7$true state$_nbd$raw_nc3 _nc4 state$_nc4$raw_nc8 |
---|
633 | - - 0 =state$_nbd$raw_nc3 |
---|
634 | - - 1 =state$_nc4_nc7$true |
---|
635 | .mv _ncd 3 good faulty1 faulty2 |
---|
636 | .names _ncd |
---|
637 | good |
---|
638 | # state == 0 |
---|
639 | .names state$_nc4$raw_nc8 _ncd _ncc |
---|
640 | .def 0 |
---|
641 | - =state$_nc4$raw_nc8 1 |
---|
642 | .names _ncc _nce |
---|
643 | - =_ncc |
---|
644 | # state = r_state |
---|
645 | .mv state$_ncc_ncf$true 3 good faulty1 faulty2 |
---|
646 | .names r_state state$_ncc_ncf$true |
---|
647 | - =r_state |
---|
648 | # if/else (state == 0) |
---|
649 | .mv state$_ncc$raw_nd0 3 good faulty1 faulty2 |
---|
650 | .names state$_ncc_ncf$true state$_nc4$raw_nc8 _ncc state$_ncc$raw_nd0 |
---|
651 | - - 0 =state$_nc4$raw_nc8 |
---|
652 | - - 1 =state$_ncc_ncf$true |
---|
653 | # conflict arbitrators |
---|
654 | .names _nbf _nc6 _nce _nd4 |
---|
655 | .def 0 |
---|
656 | 1 - - 1 |
---|
657 | - 1 - 1 |
---|
658 | - - 1 1 |
---|
659 | .mv _nd5 3 good faulty1 faulty2 |
---|
660 | .names _nd4 state$_ncc$raw_nd0 state _nd5 |
---|
661 | 1 - - =state$_ncc$raw_nd0 |
---|
662 | 0 - - =state |
---|
663 | .names lamp$raw_na3 lamp |
---|
664 | - =lamp$raw_na3 |
---|
665 | # non-blocking assignments |
---|
666 | # latches |
---|
667 | .r state$raw_na0 state |
---|
668 | - =state$raw_na0 |
---|
669 | .latch _nd5 state |
---|
670 | # quasi-continuous assignment |
---|
671 | .end |
---|
672 | |
---|
673 | |
---|
674 | .model contact_mod |
---|
675 | # I/O ports |
---|
676 | .outputs contact |
---|
677 | .inputs relay |
---|
678 | |
---|
679 | .mv r_state 3 good faulty1 faulty2 |
---|
680 | .mv state 3 good faulty1 faulty2 |
---|
681 | .mv contact 3 B middle C |
---|
682 | .mv relay 2 pulling neutral |
---|
683 | # state = 0 |
---|
684 | .mv state$raw_nde 3 good faulty1 faulty2 |
---|
685 | .names state$raw_nde |
---|
686 | good |
---|
687 | # non-blocking assignments for initial |
---|
688 | # assign r_state = $NDset ( 0,1,2 ) |
---|
689 | .names r_state |
---|
690 | good |
---|
691 | faulty1 |
---|
692 | faulty2 |
---|
693 | # assign contact = state == faulty1 ? 0 : state == faulty2 ? 2 : state == good && relay == pulling ? 2 : 0 |
---|
694 | .mv contact$raw_ne1 3 B middle C |
---|
695 | .mv _ne3 3 good faulty1 faulty2 |
---|
696 | .names _ne3 |
---|
697 | faulty1 |
---|
698 | # state == 1 |
---|
699 | .names state _ne3 _ne2 |
---|
700 | .def 0 |
---|
701 | - =state 1 |
---|
702 | .mv _ne5 3 good faulty1 faulty2 |
---|
703 | .names _ne5 |
---|
704 | faulty2 |
---|
705 | # state == 2 |
---|
706 | .names state _ne5 _ne4 |
---|
707 | .def 0 |
---|
708 | - =state 1 |
---|
709 | .mv _ne7 3 good faulty1 faulty2 |
---|
710 | .names _ne7 |
---|
711 | good |
---|
712 | # state == 0 |
---|
713 | .names state _ne7 _ne6 |
---|
714 | .def 0 |
---|
715 | - =state 1 |
---|
716 | .mv _ne9 2 pulling neutral |
---|
717 | .names _ne9 |
---|
718 | pulling |
---|
719 | # relay == 0 |
---|
720 | .names relay _ne9 _ne8 |
---|
721 | .def 0 |
---|
722 | - =relay 1 |
---|
723 | # state == 0 && relay == 0 |
---|
724 | .names _ne6 _ne8 _nea |
---|
725 | .def 0 |
---|
726 | 1 1 1 |
---|
727 | .mv _neb 3 B middle C |
---|
728 | .names _neb |
---|
729 | C |
---|
730 | .mv _nec 3 B middle C |
---|
731 | .names _nec |
---|
732 | B |
---|
733 | # state == 0 && relay == 0 ? 2 : 0 |
---|
734 | .mv _ned 3 B middle C |
---|
735 | .names _neb _nec _nea _ned |
---|
736 | - - 0 =_nec |
---|
737 | - - 1 =_neb |
---|
738 | .mv _nee 3 B middle C |
---|
739 | .names _nee |
---|
740 | C |
---|
741 | # state == 2 ? 2 : state == 0 && relay == 0 ? 2 : 0 |
---|
742 | .mv _nef 3 B middle C |
---|
743 | .names _nee _ned _ne4 _nef |
---|
744 | - - 0 =_ned |
---|
745 | - - 1 =_nee |
---|
746 | .mv _nf0 3 B middle C |
---|
747 | .names _nf0 |
---|
748 | B |
---|
749 | # state == 1 ? 0 : state == 2 ? 2 : state == 0 && relay == 0 ? 2 : 0 |
---|
750 | .mv _nf1 3 B middle C |
---|
751 | .names _nf0 _nef _ne2 _nf1 |
---|
752 | - - 0 =_nef |
---|
753 | - - 1 =_nf0 |
---|
754 | .names _nf1 contact$raw_ne1 |
---|
755 | - =_nf1 |
---|
756 | .mv _nf3 3 good faulty1 faulty2 |
---|
757 | .names _nf3 |
---|
758 | faulty1 |
---|
759 | # state == 1 |
---|
760 | .names state _nf3 _nf2 |
---|
761 | .def 0 |
---|
762 | - =state 1 |
---|
763 | .names _nf2 _nf4 |
---|
764 | - =_nf2 |
---|
765 | # state = 1 |
---|
766 | .mv state$_nf2_nf5$true 3 good faulty1 faulty2 |
---|
767 | .names state$_nf2_nf5$true |
---|
768 | faulty1 |
---|
769 | # if/else (state == 1) |
---|
770 | .mv state$_nf2$raw_nf8 3 good faulty1 faulty2 |
---|
771 | .names state$_nf2_nf5$true state _nf2 state$_nf2$raw_nf8 |
---|
772 | - - 0 =state |
---|
773 | - - 1 =state$_nf2_nf5$true |
---|
774 | .mv _nfa 3 good faulty1 faulty2 |
---|
775 | .names _nfa |
---|
776 | faulty2 |
---|
777 | # state == 2 |
---|
778 | .names state$_nf2$raw_nf8 _nfa _nf9 |
---|
779 | .def 0 |
---|
780 | - =state$_nf2$raw_nf8 1 |
---|
781 | .names _nf9 _nfb |
---|
782 | - =_nf9 |
---|
783 | # state = 2 |
---|
784 | .mv state$_nf9_nfc$true 3 good faulty1 faulty2 |
---|
785 | .names state$_nf9_nfc$true |
---|
786 | faulty2 |
---|
787 | # if/else (state == 2) |
---|
788 | .mv state$_nf9$raw_nfd 3 good faulty1 faulty2 |
---|
789 | .names state$_nf9_nfc$true state$_nf2$raw_nf8 _nf9 state$_nf9$raw_nfd |
---|
790 | - - 0 =state$_nf2$raw_nf8 |
---|
791 | - - 1 =state$_nf9_nfc$true |
---|
792 | .mv _n102 3 good faulty1 faulty2 |
---|
793 | .names _n102 |
---|
794 | good |
---|
795 | # state == 0 |
---|
796 | .names state$_nf9$raw_nfd _n102 _n101 |
---|
797 | .def 0 |
---|
798 | - =state$_nf9$raw_nfd 1 |
---|
799 | .names _n101 _n103 |
---|
800 | - =_n101 |
---|
801 | # state = r_state |
---|
802 | .mv state$_n101_n104$true 3 good faulty1 faulty2 |
---|
803 | .names r_state state$_n101_n104$true |
---|
804 | - =r_state |
---|
805 | # if/else (state == 0) |
---|
806 | .mv state$_n101$raw_n105 3 good faulty1 faulty2 |
---|
807 | .names state$_n101_n104$true state$_nf9$raw_nfd _n101 state$_n101$raw_n105 |
---|
808 | - - 0 =state$_nf9$raw_nfd |
---|
809 | - - 1 =state$_n101_n104$true |
---|
810 | # conflict arbitrators |
---|
811 | .names _nf4 _nfb _n103 _n109 |
---|
812 | .def 0 |
---|
813 | 1 - - 1 |
---|
814 | - 1 - 1 |
---|
815 | - - 1 1 |
---|
816 | .mv _n10a 3 good faulty1 faulty2 |
---|
817 | .names _n109 state$_n101$raw_n105 state _n10a |
---|
818 | 1 - - =state$_n101$raw_n105 |
---|
819 | 0 - - =state |
---|
820 | .names contact$raw_ne1 contact |
---|
821 | - =contact$raw_ne1 |
---|
822 | # non-blocking assignments |
---|
823 | # latches |
---|
824 | .r state$raw_nde state |
---|
825 | - =state$raw_nde |
---|
826 | .latch _n10a state |
---|
827 | # quasi-continuous assignment |
---|
828 | .end |
---|
829 | |
---|
830 | |
---|
831 | .model train_mod |
---|
832 | # I/O ports |
---|
833 | .outputs out |
---|
834 | |
---|
835 | .mv r9_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
836 | .mv r8_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
837 | .mv r6_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
838 | .mv r5_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
839 | .mv out 3 present1 present2 absent |
---|
840 | .mv r10_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
841 | .mv r3_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
842 | .mv r2_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
843 | .mv r4_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
844 | .mv r1_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
845 | .mv train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
846 | .mv r7_train 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
847 | # train = 0 |
---|
848 | .mv train$raw_n110 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
849 | .names train$raw_n110 |
---|
850 | t1 |
---|
851 | # non-blocking assignments for initial |
---|
852 | # assign r1_train = $NDset ( 0,1 ) |
---|
853 | .names r1_train |
---|
854 | t1 |
---|
855 | t2 |
---|
856 | # assign r2_train = $NDset ( 1,2 ) |
---|
857 | .names r2_train |
---|
858 | t2 |
---|
859 | t3 |
---|
860 | # assign r3_train = $NDset ( 2,3 ) |
---|
861 | .names r3_train |
---|
862 | t3 |
---|
863 | t4 |
---|
864 | # assign r4_train = $NDset ( 3,4 ) |
---|
865 | .names r4_train |
---|
866 | t4 |
---|
867 | t5 |
---|
868 | # assign r5_train = $NDset ( 4,5 ) |
---|
869 | .names r5_train |
---|
870 | t5 |
---|
871 | t6 |
---|
872 | # assign r6_train = $NDset ( 5,6 ) |
---|
873 | .names r6_train |
---|
874 | t6 |
---|
875 | t7 |
---|
876 | # assign r7_train = $NDset ( 6,7 ) |
---|
877 | .names r7_train |
---|
878 | t7 |
---|
879 | t8 |
---|
880 | # assign r8_train = $NDset ( 7,8 ) |
---|
881 | .names r8_train |
---|
882 | t8 |
---|
883 | t9 |
---|
884 | # assign r9_train = $NDset ( 8,9 ) |
---|
885 | .names r9_train |
---|
886 | t9 |
---|
887 | t10 |
---|
888 | # assign r10_train = $NDset ( 9,0 ) |
---|
889 | .names r10_train |
---|
890 | t10 |
---|
891 | t1 |
---|
892 | # assign out = (train == t1 ) ? 2 : 0 |
---|
893 | .mv out$raw_n125 3 present1 present2 absent |
---|
894 | .mv _n127 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
895 | .names _n127 |
---|
896 | t1 |
---|
897 | # train == 0 |
---|
898 | .names train _n127 _n126 |
---|
899 | .def 0 |
---|
900 | - =train 1 |
---|
901 | .mv _n128 3 present1 present2 absent |
---|
902 | .names _n128 |
---|
903 | absent |
---|
904 | .mv _n129 3 present1 present2 absent |
---|
905 | .names _n129 |
---|
906 | present1 |
---|
907 | # (train == 0) ? 2 : 0 |
---|
908 | .mv _n12a 3 present1 present2 absent |
---|
909 | .names _n128 _n129 _n126 _n12a |
---|
910 | - - 0 =_n129 |
---|
911 | - - 1 =_n128 |
---|
912 | .names _n12a out$raw_n125 |
---|
913 | - =_n12a |
---|
914 | .mv _n12d 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
915 | .names _n12d |
---|
916 | t1 |
---|
917 | .names train _n12d _n12c |
---|
918 | .def 0 |
---|
919 | - =train 1 |
---|
920 | .names _n12c _n12b |
---|
921 | 1 1 |
---|
922 | 0 0 |
---|
923 | # train = r1_train |
---|
924 | .mv train$_n12b_n12e$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
925 | .names r1_train train$_n12b_n12e$true |
---|
926 | - =r1_train |
---|
927 | .mv _n131 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
928 | .names _n131 |
---|
929 | t2 |
---|
930 | .names train _n131 _n130 |
---|
931 | .def 0 |
---|
932 | - =train 1 |
---|
933 | .names _n130 _n12f |
---|
934 | 1 1 |
---|
935 | 0 0 |
---|
936 | # train = r2_train |
---|
937 | .mv train$_n12f_n132$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
938 | .names r2_train train$_n12f_n132$true |
---|
939 | - =r2_train |
---|
940 | .mv _n135 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
941 | .names _n135 |
---|
942 | t3 |
---|
943 | .names train _n135 _n134 |
---|
944 | .def 0 |
---|
945 | - =train 1 |
---|
946 | .names _n134 _n133 |
---|
947 | 1 1 |
---|
948 | 0 0 |
---|
949 | # train = r3_train |
---|
950 | .mv train$_n133_n136$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
951 | .names r3_train train$_n133_n136$true |
---|
952 | - =r3_train |
---|
953 | .mv _n139 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
954 | .names _n139 |
---|
955 | t4 |
---|
956 | .names train _n139 _n138 |
---|
957 | .def 0 |
---|
958 | - =train 1 |
---|
959 | .names _n138 _n137 |
---|
960 | 1 1 |
---|
961 | 0 0 |
---|
962 | # train = r4_train |
---|
963 | .mv train$_n137_n13a$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
964 | .names r4_train train$_n137_n13a$true |
---|
965 | - =r4_train |
---|
966 | .mv _n13d 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
967 | .names _n13d |
---|
968 | t5 |
---|
969 | .names train _n13d _n13c |
---|
970 | .def 0 |
---|
971 | - =train 1 |
---|
972 | .names _n13c _n13b |
---|
973 | 1 1 |
---|
974 | 0 0 |
---|
975 | # train = r5_train |
---|
976 | .mv train$_n13b_n13e$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
977 | .names r5_train train$_n13b_n13e$true |
---|
978 | - =r5_train |
---|
979 | .mv _n141 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
980 | .names _n141 |
---|
981 | t6 |
---|
982 | .names train _n141 _n140 |
---|
983 | .def 0 |
---|
984 | - =train 1 |
---|
985 | .names _n140 _n13f |
---|
986 | 1 1 |
---|
987 | 0 0 |
---|
988 | # train = r6_train |
---|
989 | .mv train$_n13f_n142$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
990 | .names r6_train train$_n13f_n142$true |
---|
991 | - =r6_train |
---|
992 | .mv _n145 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
993 | .names _n145 |
---|
994 | t7 |
---|
995 | .names train _n145 _n144 |
---|
996 | .def 0 |
---|
997 | - =train 1 |
---|
998 | .names _n144 _n143 |
---|
999 | 1 1 |
---|
1000 | 0 0 |
---|
1001 | # train = r7_train |
---|
1002 | .mv train$_n143_n146$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1003 | .names r7_train train$_n143_n146$true |
---|
1004 | - =r7_train |
---|
1005 | .mv _n149 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1006 | .names _n149 |
---|
1007 | t8 |
---|
1008 | .names train _n149 _n148 |
---|
1009 | .def 0 |
---|
1010 | - =train 1 |
---|
1011 | .names _n148 _n147 |
---|
1012 | 1 1 |
---|
1013 | 0 0 |
---|
1014 | # train = r8_train |
---|
1015 | .mv train$_n147_n14a$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1016 | .names r8_train train$_n147_n14a$true |
---|
1017 | - =r8_train |
---|
1018 | .mv _n14d 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1019 | .names _n14d |
---|
1020 | t9 |
---|
1021 | .names train _n14d _n14c |
---|
1022 | .def 0 |
---|
1023 | - =train 1 |
---|
1024 | .names _n14c _n14b |
---|
1025 | 1 1 |
---|
1026 | 0 0 |
---|
1027 | # train = r9_train |
---|
1028 | .mv train$_n14b_n14e$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1029 | .names r9_train train$_n14b_n14e$true |
---|
1030 | - =r9_train |
---|
1031 | .mv _n151 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1032 | .names _n151 |
---|
1033 | t10 |
---|
1034 | .names train _n151 _n150 |
---|
1035 | .def 0 |
---|
1036 | - =train 1 |
---|
1037 | .names _n150 _n14f |
---|
1038 | 1 1 |
---|
1039 | 0 0 |
---|
1040 | # train = r10_train |
---|
1041 | .mv train$_n14f_n152$true 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1042 | .names r10_train train$_n14f_n152$true |
---|
1043 | - =r10_train |
---|
1044 | # case (train ) |
---|
1045 | .mv train$_n14f$raw_n155 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1046 | .names train$_n14f_n152$true train _n14f train$_n14f$raw_n155 |
---|
1047 | - - 0 =train |
---|
1048 | - - 1 =train$_n14f_n152$true |
---|
1049 | .mv train$_n14b$raw_n156 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1050 | .names train$_n14b_n14e$true train$_n14f$raw_n155 _n14b train$_n14b$raw_n156 |
---|
1051 | - - 0 =train$_n14f$raw_n155 |
---|
1052 | - - 1 =train$_n14b_n14e$true |
---|
1053 | .mv train$_n147$raw_n15a 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1054 | .names train$_n147_n14a$true train$_n14b$raw_n156 _n147 train$_n147$raw_n15a |
---|
1055 | - - 0 =train$_n14b$raw_n156 |
---|
1056 | - - 1 =train$_n147_n14a$true |
---|
1057 | .mv train$_n143$raw_n15e 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1058 | .names train$_n143_n146$true train$_n147$raw_n15a _n143 train$_n143$raw_n15e |
---|
1059 | - - 0 =train$_n147$raw_n15a |
---|
1060 | - - 1 =train$_n143_n146$true |
---|
1061 | .mv train$_n13f$raw_n162 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1062 | .names train$_n13f_n142$true train$_n143$raw_n15e _n13f train$_n13f$raw_n162 |
---|
1063 | - - 0 =train$_n143$raw_n15e |
---|
1064 | - - 1 =train$_n13f_n142$true |
---|
1065 | .mv train$_n13b$raw_n166 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1066 | .names train$_n13b_n13e$true train$_n13f$raw_n162 _n13b train$_n13b$raw_n166 |
---|
1067 | - - 0 =train$_n13f$raw_n162 |
---|
1068 | - - 1 =train$_n13b_n13e$true |
---|
1069 | .mv train$_n137$raw_n16a 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1070 | .names train$_n137_n13a$true train$_n13b$raw_n166 _n137 train$_n137$raw_n16a |
---|
1071 | - - 0 =train$_n13b$raw_n166 |
---|
1072 | - - 1 =train$_n137_n13a$true |
---|
1073 | .mv train$_n133$raw_n16e 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1074 | .names train$_n133_n136$true train$_n137$raw_n16a _n133 train$_n133$raw_n16e |
---|
1075 | - - 0 =train$_n137$raw_n16a |
---|
1076 | - - 1 =train$_n133_n136$true |
---|
1077 | .mv train$_n12f$raw_n172 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1078 | .names train$_n12f_n132$true train$_n133$raw_n16e _n12f train$_n12f$raw_n172 |
---|
1079 | - - 0 =train$_n133$raw_n16e |
---|
1080 | - - 1 =train$_n12f_n132$true |
---|
1081 | .mv train$_n12b$raw_n176 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1082 | .names train$_n12b_n12e$true train$_n12f$raw_n172 _n12b train$_n12b$raw_n176 |
---|
1083 | - - 0 =train$_n12f$raw_n172 |
---|
1084 | - - 1 =train$_n12b_n12e$true |
---|
1085 | # conflict arbitrators |
---|
1086 | .names out$raw_n125 out |
---|
1087 | - =out$raw_n125 |
---|
1088 | .names _n12b _n12f _n133 _n137 _n13b _n13f _n143 _n147 _n14b _n14f _n17a |
---|
1089 | .def 0 |
---|
1090 | 1 - - - - - - - - - 1 |
---|
1091 | 0 1 - - - - - - - - 1 |
---|
1092 | 0 0 1 - - - - - - - 1 |
---|
1093 | 0 0 0 1 - - - - - - 1 |
---|
1094 | 0 0 0 0 1 - - - - - 1 |
---|
1095 | 0 0 0 0 0 1 - - - - 1 |
---|
1096 | 0 0 0 0 0 0 1 - - - 1 |
---|
1097 | 0 0 0 0 0 0 0 1 - - 1 |
---|
1098 | 0 0 0 0 0 0 0 0 1 - 1 |
---|
1099 | 0 0 0 0 0 0 0 0 0 1 1 |
---|
1100 | .mv _n17b 10 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 |
---|
1101 | .names _n17a train$_n12b$raw_n176 train _n17b |
---|
1102 | 1 - - =train$_n12b$raw_n176 |
---|
1103 | 0 - - =train |
---|
1104 | # non-blocking assignments |
---|
1105 | # latches |
---|
1106 | .r train$raw_n110 train |
---|
1107 | - =train$raw_n110 |
---|
1108 | .latch _n17b train |
---|
1109 | # quasi-continuous assignment |
---|
1110 | .end |
---|
1111 | |
---|
1112 | |
---|
1113 | .model track_system_mod |
---|
1114 | # I/O ports |
---|
1115 | .inputs wire1 |
---|
1116 | .inputs wire2 |
---|
1117 | .outputs ts_power |
---|
1118 | .inputs train |
---|
1119 | .inputs contact |
---|
1120 | |
---|
1121 | .mv wire1 2 conduct open |
---|
1122 | .mv wire2 2 conduct open |
---|
1123 | .mv r_state 3 good faulty1 faulty2 |
---|
1124 | .mv state 3 good faulty1 faulty2 |
---|
1125 | .mv ts_power 2 on off |
---|
1126 | .mv train 3 present1 present2 absent |
---|
1127 | .mv contact 3 B middle C |
---|
1128 | # state = 0 |
---|
1129 | .mv state$raw_n192 3 good faulty1 faulty2 |
---|
1130 | .names state$raw_n192 |
---|
1131 | good |
---|
1132 | # non-blocking assignments for initial |
---|
1133 | # assign r_state = $NDset ( 0,1,2 ) |
---|
1134 | .names r_state |
---|
1135 | good |
---|
1136 | faulty1 |
---|
1137 | faulty2 |
---|
1138 | # assign ts_power = state == faulty1 ? 0 : state == faulty2 ? 1 : state == good && ((wire1 == conduct ) && (wire2 == conduct ) && ((train != absent ) | (contact == B ))) ? 0 : 1 |
---|
1139 | .mv ts_power$raw_n195 2 on off |
---|
1140 | .mv _n197 3 good faulty1 faulty2 |
---|
1141 | .names _n197 |
---|
1142 | faulty1 |
---|
1143 | # state == 1 |
---|
1144 | .names state _n197 _n196 |
---|
1145 | .def 0 |
---|
1146 | - =state 1 |
---|
1147 | .mv _n199 3 good faulty1 faulty2 |
---|
1148 | .names _n199 |
---|
1149 | faulty2 |
---|
1150 | # state == 2 |
---|
1151 | .names state _n199 _n198 |
---|
1152 | .def 0 |
---|
1153 | - =state 1 |
---|
1154 | .mv _n19b 3 good faulty1 faulty2 |
---|
1155 | .names _n19b |
---|
1156 | good |
---|
1157 | # state == 0 |
---|
1158 | .names state _n19b _n19a |
---|
1159 | .def 0 |
---|
1160 | - =state 1 |
---|
1161 | .mv _n19d 2 conduct open |
---|
1162 | .names _n19d |
---|
1163 | conduct |
---|
1164 | # wire1 == 0 |
---|
1165 | .names wire1 _n19d _n19c |
---|
1166 | .def 0 |
---|
1167 | - =wire1 1 |
---|
1168 | .mv _n19f 2 conduct open |
---|
1169 | .names _n19f |
---|
1170 | conduct |
---|
1171 | # wire2 == 0 |
---|
1172 | .names wire2 _n19f _n19e |
---|
1173 | .def 0 |
---|
1174 | - =wire2 1 |
---|
1175 | # (wire1 == 0) && (wire2 == 0) |
---|
1176 | .names _n19c _n19e _n1a0 |
---|
1177 | .def 0 |
---|
1178 | 1 1 1 |
---|
1179 | .mv _n1a2 3 present1 present2 absent |
---|
1180 | .names _n1a2 |
---|
1181 | absent |
---|
1182 | # train != 2 |
---|
1183 | .names train _n1a2 _n1a1 |
---|
1184 | .def 1 |
---|
1185 | - =train 0 |
---|
1186 | .mv _n1a4 3 B middle C |
---|
1187 | .names _n1a4 |
---|
1188 | B |
---|
1189 | # contact == 0 |
---|
1190 | .names contact _n1a4 _n1a3 |
---|
1191 | .def 0 |
---|
1192 | - =contact 1 |
---|
1193 | # (train != 2) | (contact == 0) |
---|
1194 | .names _n1a1 _n1a3 _n1a5 |
---|
1195 | .def 1 |
---|
1196 | 0 0 0 |
---|
1197 | # (wire1 == 0) && (wire2 == 0) && ((train != 2) | (contact == 0)) |
---|
1198 | .names _n1a0 _n1a5 _n1a6 |
---|
1199 | .def 0 |
---|
1200 | 1 1 1 |
---|
1201 | # state == 0 && ((wire1 == 0) && (wire2 == 0) && ((train != 2) | (contact == 0))) |
---|
1202 | .names _n19a _n1a6 _n1a7 |
---|
1203 | .def 0 |
---|
1204 | 1 1 1 |
---|
1205 | .mv _n1a8 2 on off |
---|
1206 | .names _n1a8 |
---|
1207 | on |
---|
1208 | .mv _n1a9 2 on off |
---|
1209 | .names _n1a9 |
---|
1210 | off |
---|
1211 | # state == 0 && ((wire1 == 0) && (wire2 == 0) && ((train != 2) | (contact == 0))) ? 0 : 1 |
---|
1212 | .mv _n1aa 2 on off |
---|
1213 | .names _n1a8 _n1a9 _n1a7 _n1aa |
---|
1214 | - - 0 =_n1a9 |
---|
1215 | - - 1 =_n1a8 |
---|
1216 | .mv _n1ab 2 on off |
---|
1217 | .names _n1ab |
---|
1218 | off |
---|
1219 | # state == 2 ? 1 : state == 0 && ((wire1 == 0) && (wire2 == 0) && ((train != 2) | (contact == 0))) ? 0 : 1 |
---|
1220 | .mv _n1ac 2 on off |
---|
1221 | .names _n1ab _n1aa _n198 _n1ac |
---|
1222 | - - 0 =_n1aa |
---|
1223 | - - 1 =_n1ab |
---|
1224 | .mv _n1ad 2 on off |
---|
1225 | .names _n1ad |
---|
1226 | on |
---|
1227 | # state == 1 ? 0 : state == 2 ? 1 : state == 0 && ((wire1 == 0) && (wire2 == 0) && ((train != 2) | (contact == 0))) ? 0 : 1 |
---|
1228 | .mv _n1ae 2 on off |
---|
1229 | .names _n1ad _n1ac _n196 _n1ae |
---|
1230 | - - 0 =_n1ac |
---|
1231 | - - 1 =_n1ad |
---|
1232 | .names _n1ae ts_power$raw_n195 |
---|
1233 | - =_n1ae |
---|
1234 | .mv _n1b0 3 good faulty1 faulty2 |
---|
1235 | .names _n1b0 |
---|
1236 | faulty1 |
---|
1237 | # state == 1 |
---|
1238 | .names state _n1b0 _n1af |
---|
1239 | .def 0 |
---|
1240 | - =state 1 |
---|
1241 | .names _n1af _n1b1 |
---|
1242 | - =_n1af |
---|
1243 | # state = 1 |
---|
1244 | .mv state$_n1af_n1b2$true 3 good faulty1 faulty2 |
---|
1245 | .names state$_n1af_n1b2$true |
---|
1246 | faulty1 |
---|
1247 | # if/else (state == 1) |
---|
1248 | .mv state$_n1af$raw_n1b5 3 good faulty1 faulty2 |
---|
1249 | .names state$_n1af_n1b2$true state _n1af state$_n1af$raw_n1b5 |
---|
1250 | - - 0 =state |
---|
1251 | - - 1 =state$_n1af_n1b2$true |
---|
1252 | .mv _n1b7 3 good faulty1 faulty2 |
---|
1253 | .names _n1b7 |
---|
1254 | faulty2 |
---|
1255 | # state == 2 |
---|
1256 | .names state$_n1af$raw_n1b5 _n1b7 _n1b6 |
---|
1257 | .def 0 |
---|
1258 | - =state$_n1af$raw_n1b5 1 |
---|
1259 | .names _n1b6 _n1b8 |
---|
1260 | - =_n1b6 |
---|
1261 | # state = 2 |
---|
1262 | .mv state$_n1b6_n1b9$true 3 good faulty1 faulty2 |
---|
1263 | .names state$_n1b6_n1b9$true |
---|
1264 | faulty2 |
---|
1265 | # if/else (state == 2) |
---|
1266 | .mv state$_n1b6$raw_n1ba 3 good faulty1 faulty2 |
---|
1267 | .names state$_n1b6_n1b9$true state$_n1af$raw_n1b5 _n1b6 state$_n1b6$raw_n1ba |
---|
1268 | - - 0 =state$_n1af$raw_n1b5 |
---|
1269 | - - 1 =state$_n1b6_n1b9$true |
---|
1270 | .mv _n1bf 3 good faulty1 faulty2 |
---|
1271 | .names _n1bf |
---|
1272 | good |
---|
1273 | # state == 0 |
---|
1274 | .names state$_n1b6$raw_n1ba _n1bf _n1be |
---|
1275 | .def 0 |
---|
1276 | - =state$_n1b6$raw_n1ba 1 |
---|
1277 | .names _n1be _n1c0 |
---|
1278 | - =_n1be |
---|
1279 | # state = r_state |
---|
1280 | .mv state$_n1be_n1c1$true 3 good faulty1 faulty2 |
---|
1281 | .names r_state state$_n1be_n1c1$true |
---|
1282 | - =r_state |
---|
1283 | # if/else (state == 0) |
---|
1284 | .mv state$_n1be$raw_n1c2 3 good faulty1 faulty2 |
---|
1285 | .names state$_n1be_n1c1$true state$_n1b6$raw_n1ba _n1be state$_n1be$raw_n1c2 |
---|
1286 | - - 0 =state$_n1b6$raw_n1ba |
---|
1287 | - - 1 =state$_n1be_n1c1$true |
---|
1288 | # conflict arbitrators |
---|
1289 | .names _n1b1 _n1b8 _n1c0 _n1c6 |
---|
1290 | .def 0 |
---|
1291 | 1 - - 1 |
---|
1292 | - 1 - 1 |
---|
1293 | - - 1 1 |
---|
1294 | .mv _n1c7 3 good faulty1 faulty2 |
---|
1295 | .names _n1c6 state$_n1be$raw_n1c2 state _n1c7 |
---|
1296 | 1 - - =state$_n1be$raw_n1c2 |
---|
1297 | 0 - - =state |
---|
1298 | .names ts_power$raw_n195 ts_power |
---|
1299 | - =ts_power$raw_n195 |
---|
1300 | # non-blocking assignments |
---|
1301 | # latches |
---|
1302 | .r state$raw_n192 state |
---|
1303 | - =state$raw_n192 |
---|
1304 | .latch _n1c7 state |
---|
1305 | # quasi-continuous assignment |
---|
1306 | .end |
---|
1307 | |
---|
1308 | |
---|
1309 | .model interpretation_mod |
---|
1310 | # I/O ports |
---|
1311 | .outputs out |
---|
1312 | .inputs lamp |
---|
1313 | |
---|
1314 | .mv out 2 go stop |
---|
1315 | .mv state 6 stop1 stop2 go1 go2 go3 go4 |
---|
1316 | .mv lamp 2 lit unlit |
---|
1317 | # state = 0 |
---|
1318 | .mv state$raw_n1cf 6 stop1 stop2 go1 go2 go3 go4 |
---|
1319 | .names state$raw_n1cf |
---|
1320 | stop1 |
---|
1321 | # non-blocking assignments for initial |
---|
1322 | # assign out = state == go3 | state == go4 ? 0 : 1 |
---|
1323 | .mv out$raw_n1d0 2 go stop |
---|
1324 | .mv _n1d2 6 stop1 stop2 go1 go2 go3 go4 |
---|
1325 | .names _n1d2 |
---|
1326 | go3 |
---|
1327 | # state == 4 |
---|
1328 | .names state _n1d2 _n1d1 |
---|
1329 | .def 0 |
---|
1330 | - =state 1 |
---|
1331 | .mv _n1d4 6 stop1 stop2 go1 go2 go3 go4 |
---|
1332 | .names _n1d4 |
---|
1333 | go4 |
---|
1334 | # state == 5 |
---|
1335 | .names state _n1d4 _n1d3 |
---|
1336 | .def 0 |
---|
1337 | - =state 1 |
---|
1338 | # state == 4 | state == 5 |
---|
1339 | .names _n1d1 _n1d3 _n1d5 |
---|
1340 | .def 1 |
---|
1341 | 0 0 0 |
---|
1342 | .mv _n1d6 2 go stop |
---|
1343 | .names _n1d6 |
---|
1344 | go |
---|
1345 | .mv _n1d7 2 go stop |
---|
1346 | .names _n1d7 |
---|
1347 | stop |
---|
1348 | # state == 4 | state == 5 ? 0 : 1 |
---|
1349 | .mv _n1d8 2 go stop |
---|
1350 | .names _n1d6 _n1d7 _n1d5 _n1d8 |
---|
1351 | - - 0 =_n1d7 |
---|
1352 | - - 1 =_n1d6 |
---|
1353 | .names _n1d8 out$raw_n1d0 |
---|
1354 | - =_n1d8 |
---|
1355 | .mv _n1db 6 stop1 stop2 go1 go2 go3 go4 |
---|
1356 | .names _n1db |
---|
1357 | stop1 |
---|
1358 | .names state _n1db _n1da |
---|
1359 | .def 0 |
---|
1360 | - =state 1 |
---|
1361 | .names _n1da _n1d9 |
---|
1362 | 1 1 |
---|
1363 | 0 0 |
---|
1364 | .mv _n1dd 2 lit unlit |
---|
1365 | .names _n1dd |
---|
1366 | lit |
---|
1367 | # lamp == 0 |
---|
1368 | .names lamp _n1dd _n1dc |
---|
1369 | .def 0 |
---|
1370 | - =lamp 1 |
---|
1371 | .names _n1dc _n1de |
---|
1372 | - =_n1dc |
---|
1373 | # state = 1 |
---|
1374 | .mv state$_n1dc_n1df$true 6 stop1 stop2 go1 go2 go3 go4 |
---|
1375 | .names state$_n1dc_n1df$true |
---|
1376 | stop2 |
---|
1377 | # state = 0 |
---|
1378 | .mv state$_n1dc_n1e0$false 6 stop1 stop2 go1 go2 go3 go4 |
---|
1379 | .names state$_n1dc_n1e0$false |
---|
1380 | stop1 |
---|
1381 | # if/else (lamp == 0) |
---|
1382 | .mv state$_n1dc$raw_n1e2 6 stop1 stop2 go1 go2 go3 go4 |
---|
1383 | .names state$_n1dc_n1df$true state$_n1dc_n1e0$false _n1dc state$_n1dc$raw_n1e2 |
---|
1384 | - - 0 =state$_n1dc_n1e0$false |
---|
1385 | - - 1 =state$_n1dc_n1df$true |
---|
1386 | .mv _n1e7 6 stop1 stop2 go1 go2 go3 go4 |
---|
1387 | .names _n1e7 |
---|
1388 | stop2 |
---|
1389 | .names state _n1e7 _n1e6 |
---|
1390 | .def 0 |
---|
1391 | - =state 1 |
---|
1392 | .names _n1e6 _n1e5 |
---|
1393 | 1 1 |
---|
1394 | 0 0 |
---|
1395 | .mv _n1e9 2 lit unlit |
---|
1396 | .names _n1e9 |
---|
1397 | unlit |
---|
1398 | # lamp == 1 |
---|
1399 | .names lamp _n1e9 _n1e8 |
---|
1400 | .def 0 |
---|
1401 | - =lamp 1 |
---|
1402 | .names _n1e8 _n1ea |
---|
1403 | - =_n1e8 |
---|
1404 | # state = 2 |
---|
1405 | .mv state$_n1e8_n1eb$true 6 stop1 stop2 go1 go2 go3 go4 |
---|
1406 | .names state$_n1e8_n1eb$true |
---|
1407 | go1 |
---|
1408 | # state = 0 |
---|
1409 | .mv state$_n1e8_n1ec$false 6 stop1 stop2 go1 go2 go3 go4 |
---|
1410 | .names state$_n1e8_n1ec$false |
---|
1411 | stop1 |
---|
1412 | # if/else (lamp == 1) |
---|
1413 | .mv state$_n1e8$raw_n1ee 6 stop1 stop2 go1 go2 go3 go4 |
---|
1414 | .names state$_n1e8_n1eb$true state$_n1e8_n1ec$false _n1e8 state$_n1e8$raw_n1ee |
---|
1415 | - - 0 =state$_n1e8_n1ec$false |
---|
1416 | - - 1 =state$_n1e8_n1eb$true |
---|
1417 | .mv _n1f3 6 stop1 stop2 go1 go2 go3 go4 |
---|
1418 | .names _n1f3 |
---|
1419 | go1 |
---|
1420 | .names state _n1f3 _n1f2 |
---|
1421 | .def 0 |
---|
1422 | - =state 1 |
---|
1423 | .names _n1f2 _n1f1 |
---|
1424 | 1 1 |
---|
1425 | 0 0 |
---|
1426 | .mv _n1f5 2 lit unlit |
---|
1427 | .names _n1f5 |
---|
1428 | lit |
---|
1429 | # lamp == 0 |
---|
1430 | .names lamp _n1f5 _n1f4 |
---|
1431 | .def 0 |
---|
1432 | - =lamp 1 |
---|
1433 | .names _n1f4 _n1f6 |
---|
1434 | - =_n1f4 |
---|
1435 | # state = 3 |
---|
1436 | .mv state$_n1f4_n1f7$true 6 stop1 stop2 go1 go2 go3 go4 |
---|
1437 | .names state$_n1f4_n1f7$true |
---|
1438 | go2 |
---|
1439 | # state = 0 |
---|
1440 | .mv state$_n1f4_n1f8$false 6 stop1 stop2 go1 go2 go3 go4 |
---|
1441 | .names state$_n1f4_n1f8$false |
---|
1442 | stop1 |
---|
1443 | # if/else (lamp == 0) |
---|
1444 | .mv state$_n1f4$raw_n1fa 6 stop1 stop2 go1 go2 go3 go4 |
---|
1445 | .names state$_n1f4_n1f7$true state$_n1f4_n1f8$false _n1f4 state$_n1f4$raw_n1fa |
---|
1446 | - - 0 =state$_n1f4_n1f8$false |
---|
1447 | - - 1 =state$_n1f4_n1f7$true |
---|
1448 | .mv _n1ff 6 stop1 stop2 go1 go2 go3 go4 |
---|
1449 | .names _n1ff |
---|
1450 | go2 |
---|
1451 | .names state _n1ff _n1fe |
---|
1452 | .def 0 |
---|
1453 | - =state 1 |
---|
1454 | .names _n1fe _n1fd |
---|
1455 | 1 1 |
---|
1456 | 0 0 |
---|
1457 | .mv _n201 2 lit unlit |
---|
1458 | .names _n201 |
---|
1459 | unlit |
---|
1460 | # lamp == 1 |
---|
1461 | .names lamp _n201 _n200 |
---|
1462 | .def 0 |
---|
1463 | - =lamp 1 |
---|
1464 | .names _n200 _n202 |
---|
1465 | - =_n200 |
---|
1466 | # state = 4 |
---|
1467 | .mv state$_n200_n203$true 6 stop1 stop2 go1 go2 go3 go4 |
---|
1468 | .names state$_n200_n203$true |
---|
1469 | go3 |
---|
1470 | # state = 0 |
---|
1471 | .mv state$_n200_n204$false 6 stop1 stop2 go1 go2 go3 go4 |
---|
1472 | .names state$_n200_n204$false |
---|
1473 | stop1 |
---|
1474 | # if/else (lamp == 1) |
---|
1475 | .mv state$_n200$raw_n206 6 stop1 stop2 go1 go2 go3 go4 |
---|
1476 | .names state$_n200_n203$true state$_n200_n204$false _n200 state$_n200$raw_n206 |
---|
1477 | - - 0 =state$_n200_n204$false |
---|
1478 | - - 1 =state$_n200_n203$true |
---|
1479 | .mv _n20b 6 stop1 stop2 go1 go2 go3 go4 |
---|
1480 | .names _n20b |
---|
1481 | go3 |
---|
1482 | .names state _n20b _n20a |
---|
1483 | .def 0 |
---|
1484 | - =state 1 |
---|
1485 | .names _n20a _n209 |
---|
1486 | 1 1 |
---|
1487 | 0 0 |
---|
1488 | .mv _n20d 2 lit unlit |
---|
1489 | .names _n20d |
---|
1490 | lit |
---|
1491 | # lamp == 0 |
---|
1492 | .names lamp _n20d _n20c |
---|
1493 | .def 0 |
---|
1494 | - =lamp 1 |
---|
1495 | .names _n20c _n20e |
---|
1496 | - =_n20c |
---|
1497 | # state = 5 |
---|
1498 | .mv state$_n20c_n20f$true 6 stop1 stop2 go1 go2 go3 go4 |
---|
1499 | .names state$_n20c_n20f$true |
---|
1500 | go4 |
---|
1501 | # state = 0 |
---|
1502 | .mv state$_n20c_n210$false 6 stop1 stop2 go1 go2 go3 go4 |
---|
1503 | .names state$_n20c_n210$false |
---|
1504 | stop1 |
---|
1505 | # if/else (lamp == 0) |
---|
1506 | .mv state$_n20c$raw_n212 6 stop1 stop2 go1 go2 go3 go4 |
---|
1507 | .names state$_n20c_n20f$true state$_n20c_n210$false _n20c state$_n20c$raw_n212 |
---|
1508 | - - 0 =state$_n20c_n210$false |
---|
1509 | - - 1 =state$_n20c_n20f$true |
---|
1510 | .mv _n217 6 stop1 stop2 go1 go2 go3 go4 |
---|
1511 | .names _n217 |
---|
1512 | go4 |
---|
1513 | .names state _n217 _n216 |
---|
1514 | .def 0 |
---|
1515 | - =state 1 |
---|
1516 | .names _n216 _n215 |
---|
1517 | 1 1 |
---|
1518 | 0 0 |
---|
1519 | .mv _n219 2 lit unlit |
---|
1520 | .names _n219 |
---|
1521 | unlit |
---|
1522 | # lamp == 1 |
---|
1523 | .names lamp _n219 _n218 |
---|
1524 | .def 0 |
---|
1525 | - =lamp 1 |
---|
1526 | .names _n218 _n21a |
---|
1527 | - =_n218 |
---|
1528 | # state = 4 |
---|
1529 | .mv state$_n218_n21b$true 6 stop1 stop2 go1 go2 go3 go4 |
---|
1530 | .names state$_n218_n21b$true |
---|
1531 | go3 |
---|
1532 | # state = 0 |
---|
1533 | .mv state$_n218_n21c$false 6 stop1 stop2 go1 go2 go3 go4 |
---|
1534 | .names state$_n218_n21c$false |
---|
1535 | stop1 |
---|
1536 | # if/else (lamp == 1) |
---|
1537 | .mv state$_n218$raw_n21e 6 stop1 stop2 go1 go2 go3 go4 |
---|
1538 | .names state$_n218_n21b$true state$_n218_n21c$false _n218 state$_n218$raw_n21e |
---|
1539 | - - 0 =state$_n218_n21c$false |
---|
1540 | - - 1 =state$_n218_n21b$true |
---|
1541 | # case (state ) |
---|
1542 | .mv state$_n215$raw_n223 6 stop1 stop2 go1 go2 go3 go4 |
---|
1543 | .names state$_n218$raw_n21e state _n215 state$_n215$raw_n223 |
---|
1544 | - - 0 =state |
---|
1545 | - - 1 =state$_n218$raw_n21e |
---|
1546 | .mv state$_n209$raw_n224 6 stop1 stop2 go1 go2 go3 go4 |
---|
1547 | .names state$_n20c$raw_n212 state$_n215$raw_n223 _n209 state$_n209$raw_n224 |
---|
1548 | - - 0 =state$_n215$raw_n223 |
---|
1549 | - - 1 =state$_n20c$raw_n212 |
---|
1550 | .mv state$_n1fd$raw_n228 6 stop1 stop2 go1 go2 go3 go4 |
---|
1551 | .names state$_n200$raw_n206 state$_n209$raw_n224 _n1fd state$_n1fd$raw_n228 |
---|
1552 | - - 0 =state$_n209$raw_n224 |
---|
1553 | - - 1 =state$_n200$raw_n206 |
---|
1554 | .mv state$_n1f1$raw_n22c 6 stop1 stop2 go1 go2 go3 go4 |
---|
1555 | .names state$_n1f4$raw_n1fa state$_n1fd$raw_n228 _n1f1 state$_n1f1$raw_n22c |
---|
1556 | - - 0 =state$_n1fd$raw_n228 |
---|
1557 | - - 1 =state$_n1f4$raw_n1fa |
---|
1558 | .mv state$_n1e5$raw_n230 6 stop1 stop2 go1 go2 go3 go4 |
---|
1559 | .names state$_n1e8$raw_n1ee state$_n1f1$raw_n22c _n1e5 state$_n1e5$raw_n230 |
---|
1560 | - - 0 =state$_n1f1$raw_n22c |
---|
1561 | - - 1 =state$_n1e8$raw_n1ee |
---|
1562 | .mv state$_n1d9$raw_n234 6 stop1 stop2 go1 go2 go3 go4 |
---|
1563 | .names state$_n1dc$raw_n1e2 state$_n1e5$raw_n230 _n1d9 state$_n1d9$raw_n234 |
---|
1564 | - - 0 =state$_n1e5$raw_n230 |
---|
1565 | - - 1 =state$_n1dc$raw_n1e2 |
---|
1566 | # conflict arbitrators |
---|
1567 | .names out$raw_n1d0 out |
---|
1568 | - =out$raw_n1d0 |
---|
1569 | .names _n1d9 _n1de _n1e5 _n1ea _n1f1 _n1f6 _n1fd _n202 _n209 _n20e _n215 _n21a _n238 |
---|
1570 | .def 0 |
---|
1571 | 1 1 - - - - - - - - - - 1 |
---|
1572 | 1 0 - - - - - - - - - - 1 |
---|
1573 | 0 - 1 1 - - - - - - - - 1 |
---|
1574 | 0 - 1 0 - - - - - - - - 1 |
---|
1575 | 0 - 0 - 1 1 - - - - - - 1 |
---|
1576 | 0 - 0 - 1 0 - - - - - - 1 |
---|
1577 | 0 - 0 - 0 - 1 1 - - - - 1 |
---|
1578 | 0 - 0 - 0 - 1 0 - - - - 1 |
---|
1579 | 0 - 0 - 0 - 0 - 1 1 - - 1 |
---|
1580 | 0 - 0 - 0 - 0 - 1 0 - - 1 |
---|
1581 | 0 - 0 - 0 - 0 - 0 - 1 1 1 |
---|
1582 | 0 - 0 - 0 - 0 - 0 - 1 0 1 |
---|
1583 | .mv _n239 6 stop1 stop2 go1 go2 go3 go4 |
---|
1584 | .names _n238 state$_n1d9$raw_n234 state _n239 |
---|
1585 | 1 - - =state$_n1d9$raw_n234 |
---|
1586 | 0 - - =state |
---|
1587 | # non-blocking assignments |
---|
1588 | # latches |
---|
1589 | .r state$raw_n1cf state |
---|
1590 | - =state$raw_n1cf |
---|
1591 | .latch _n239 state |
---|
1592 | # quasi-continuous assignment |
---|
1593 | .end |
---|
1594 | |
---|
1595 | |
---|
1596 | .model property_mod |
---|
1597 | # I/O ports |
---|
1598 | .inputs interpretation |
---|
1599 | .inputs train |
---|
1600 | |
---|
1601 | .mv interpretation 2 go stop |
---|
1602 | .mv state 2 good bad |
---|
1603 | .mv train 3 present1 present2 absent |
---|
1604 | # state = 0 |
---|
1605 | .mv state$raw_n23d 2 good bad |
---|
1606 | .names state$raw_n23d |
---|
1607 | good |
---|
1608 | # non-blocking assignments for initial |
---|
1609 | .mv _n23f 3 present1 present2 absent |
---|
1610 | .names _n23f |
---|
1611 | present2 |
---|
1612 | # train == 1 |
---|
1613 | .names train _n23f _n23e |
---|
1614 | .def 0 |
---|
1615 | - =train 1 |
---|
1616 | .mv _n241 2 go stop |
---|
1617 | .names _n241 |
---|
1618 | go |
---|
1619 | # interpretation == 0 |
---|
1620 | .names interpretation _n241 _n240 |
---|
1621 | .def 0 |
---|
1622 | - =interpretation 1 |
---|
1623 | # (train == 1) && (interpretation == 0) |
---|
1624 | .names _n23e _n240 _n242 |
---|
1625 | .def 0 |
---|
1626 | 1 1 1 |
---|
1627 | .mv _n244 2 good bad |
---|
1628 | .names _n244 |
---|
1629 | bad |
---|
1630 | # state == 1 |
---|
1631 | .names state _n244 _n243 |
---|
1632 | .def 0 |
---|
1633 | - =state 1 |
---|
1634 | # ((train == 1) && (interpretation == 0)) | (state == 1) |
---|
1635 | .names _n242 _n243 _n245 |
---|
1636 | .def 1 |
---|
1637 | 0 0 0 |
---|
1638 | .names _n245 _n246 |
---|
1639 | - =_n245 |
---|
1640 | # state = 1 |
---|
1641 | .mv state$_n245_n247$true 2 good bad |
---|
1642 | .names state$_n245_n247$true |
---|
1643 | bad |
---|
1644 | # state = 0 |
---|
1645 | .mv state$_n245_n248$false 2 good bad |
---|
1646 | .names state$_n245_n248$false |
---|
1647 | good |
---|
1648 | # if/else (((train == 1) && (interpretation == 0)) | (state == 1)) |
---|
1649 | .mv state$_n245$raw_n24a 2 good bad |
---|
1650 | .names state$_n245_n247$true state$_n245_n248$false _n245 state$_n245$raw_n24a |
---|
1651 | - - 0 =state$_n245_n248$false |
---|
1652 | - - 1 =state$_n245_n247$true |
---|
1653 | # conflict arbitrators |
---|
1654 | .names _n246 _n24d |
---|
1655 | .def 0 |
---|
1656 | 1 1 |
---|
1657 | 0 1 |
---|
1658 | .mv _n24e 2 good bad |
---|
1659 | .names _n24d state$_n245$raw_n24a state _n24e |
---|
1660 | 1 - - =state$_n245$raw_n24a |
---|
1661 | 0 - - =state |
---|
1662 | # non-blocking assignments |
---|
1663 | # latches |
---|
1664 | .r state$raw_n23d state |
---|
1665 | - =state$raw_n23d |
---|
1666 | .latch _n24e state |
---|
1667 | # quasi-continuous assignment |
---|
1668 | .end |
---|
1669 | |
---|
1670 | |
---|