source: vis_dev/vis-2.1/examples/dcnew/dcnew.mv @ 15

Last change on this file since 15 was 11, checked in by cecile, 13 years ago

Add vis

File size: 37.3 KB
Line 
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
45good
46# non-blocking assignments for initial
47# assign r_state  = $NDset ( 0,1 )
48.names r_state
49good
50faulty1
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
55good
56# state  == 0
57.names state _n5 _n4
58.def 0
59- =state 1
60.mv _n6 2 conduct open
61.names _n6
62conduct
63.mv _n7 2 conduct open
64.names _n7
65open
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
75faulty1
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
85faulty1
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
93good
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
1161 - - =state$_n10$raw_n14
1170 - - =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
144good
145# non-blocking assignments for initial
146# charger  = 0
147.mv charger$raw_n1f 2 discharged charged
148.names charger$raw_n1f
149discharged
150# non-blocking assignments for initial
151# assign r_state  = $NDset ( 0,1,2 )
152.names r_state
153good
154faulty1
155faulty2
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
160faulty1
161# state  == 1
162.names state _n24 _n23
163.def 0
164- =state 1
165.mv _n26 3 good faulty1 faulty2
166.names _n26
167faulty2
168# state  == 2
169.names state _n26 _n25
170.def 0
171- =state 1
172.mv _n27 2 discharged charged
173.names _n27
174charged
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
182discharged
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
192faulty1
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
202faulty1
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
210faulty2
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
220faulty2
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
228good
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
241on
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
251charged
252.mv _n43 2 lit unlit
253.names _n43
254lit
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
264discharged
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
2981 - - =charger$_n3a$raw_n5b
2990 - - =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
3071 - - =state$_n3a$raw_n58
3080 - - =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
333good
334# non-blocking assignments for initial
335# assign r_state  = $NDset ( 0,1,2 )
336.names r_state
337good
338faulty1
339faulty2
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
344faulty1
345# state  == 1
346.names state _n73 _n72
347.def 0
348- =state 1
349.mv _n75 3 good faulty1 faulty2
350.names _n75
351faulty2
352# state  == 2
353.names state _n75 _n74
354.def 0
355- =state 1
356.mv _n77 3 good faulty1 faulty2
357.names _n77
358good
359# state  == 0
360.names state _n77 _n76
361.def 0
362- =state 1
363.mv _n79 2 discharged charged
364.names _n79
365charged
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
3731 1 1
374.mv _n7b 2 pulling neutral
375.names _n7b
376pulling
377.mv _n7c 2 pulling neutral
378.names _n7c
379neutral
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
387pulling
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
395neutral
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
405faulty1
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
415faulty1
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
423faulty2
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
433faulty2
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
441good
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
4651 - - =state$_n91$raw_n95
4660 - - =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
496good
497# non-blocking assignments for initial
498# assign r_state  = $NDset ( 0,1,2 )
499.names r_state
500good
501faulty1
502faulty2
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
507faulty1
508# state  == 1
509.names state _na5 _na4
510.def 0
511- =state 1
512.mv _na7 3 good faulty1 faulty2
513.names _na7
514faulty2
515# state  == 2
516.names state _na7 _na6
517.def 0
518- =state 1
519.mv _na9 3 good faulty1 faulty2
520.names _na9
521good
522# state  == 0
523.names state _na9 _na8
524.def 0
525- =state 1
526.mv _nab 3 B middle C
527.names _nab
528C
529# contact  == 2
530.names contact _nab _naa
531.def 0
532- =contact 1
533.mv _nad 2 conduct open
534.names _nad
535conduct
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
5431 1 1
544.mv _nb0 2 on off
545.names _nb0
546on
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
553charged
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
5610 0 0
562# (contact  == 2) && (wire3  == 0) && ((ts_power  == 0) | (charger  == 1))
563.names _nae _nb3 _nb4
564.def 0
5651 1 1
566# state  == 0 && ((contact  == 2) && (wire3  == 0) && ((ts_power  == 0) | (charger  == 1)))
567.names _na8 _nb4 _nb5
568.def 0
5691 1 1
570.mv _nb6 2 lit unlit
571.names _nb6
572lit
573.mv _nb7 2 lit unlit
574.names _nb7
575unlit
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
583lit
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
591unlit
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
601faulty1
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
611faulty1
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
619faulty2
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
629faulty2
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
637good
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
6611 - - =state$_ncc$raw_nd0
6620 - - =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
686good
687# non-blocking assignments for initial
688# assign r_state  = $NDset ( 0,1,2 )
689.names r_state
690good
691faulty1
692faulty2
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
697faulty1
698# state  == 1
699.names state _ne3 _ne2
700.def 0
701- =state 1
702.mv _ne5 3 good faulty1 faulty2
703.names _ne5
704faulty2
705# state  == 2
706.names state _ne5 _ne4
707.def 0
708- =state 1
709.mv _ne7 3 good faulty1 faulty2
710.names _ne7
711good
712# state  == 0
713.names state _ne7 _ne6
714.def 0
715- =state 1
716.mv _ne9 2 pulling neutral
717.names _ne9
718pulling
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
7261 1 1
727.mv _neb 3 B middle C
728.names _neb
729C
730.mv _nec 3 B middle C
731.names _nec
732B
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
740C
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
748B
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
758faulty1
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
768faulty1
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
776faulty2
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
786faulty2
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
794good
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
8181 - - =state$_n101$raw_n105
8190 - - =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
850t1
851# non-blocking assignments for initial
852# assign r1_train  = $NDset ( 0,1 )
853.names r1_train
854t1
855t2
856# assign r2_train  = $NDset ( 1,2 )
857.names r2_train
858t2
859t3
860# assign r3_train  = $NDset ( 2,3 )
861.names r3_train
862t3
863t4
864# assign r4_train  = $NDset ( 3,4 )
865.names r4_train
866t4
867t5
868# assign r5_train  = $NDset ( 4,5 )
869.names r5_train
870t5
871t6
872# assign r6_train  = $NDset ( 5,6 )
873.names r6_train
874t6
875t7
876# assign r7_train  = $NDset ( 6,7 )
877.names r7_train
878t7
879t8
880# assign r8_train  = $NDset ( 7,8 )
881.names r8_train
882t8
883t9
884# assign r9_train  = $NDset ( 8,9 )
885.names r9_train
886t9
887t10
888# assign r10_train  = $NDset ( 9,0 )
889.names r10_train
890t10
891t1
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
896t1
897# train  == 0
898.names train _n127 _n126
899.def 0
900- =train 1
901.mv _n128 3 present1 present2 absent
902.names _n128
903absent
904.mv _n129 3 present1 present2 absent
905.names _n129
906present1
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
916t1
917.names train _n12d _n12c
918.def 0
919- =train 1
920.names _n12c  _n12b
9211 1
9220 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
929t2
930.names train _n131 _n130
931.def 0
932- =train 1
933.names _n130  _n12f
9341 1
9350 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
942t3
943.names train _n135 _n134
944.def 0
945- =train 1
946.names _n134  _n133
9471 1
9480 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
955t4
956.names train _n139 _n138
957.def 0
958- =train 1
959.names _n138  _n137
9601 1
9610 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
968t5
969.names train _n13d _n13c
970.def 0
971- =train 1
972.names _n13c  _n13b
9731 1
9740 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
981t6
982.names train _n141 _n140
983.def 0
984- =train 1
985.names _n140  _n13f
9861 1
9870 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
994t7
995.names train _n145 _n144
996.def 0
997- =train 1
998.names _n144  _n143
9991 1
10000 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
1007t8
1008.names train _n149 _n148
1009.def 0
1010- =train 1
1011.names _n148  _n147
10121 1
10130 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
1020t9
1021.names train _n14d _n14c
1022.def 0
1023- =train 1
1024.names _n14c  _n14b
10251 1
10260 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
1033t10
1034.names train _n151 _n150
1035.def 0
1036- =train 1
1037.names _n150  _n14f
10381 1
10390 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
11021 - - =train$_n12b$raw_n176
11030 - - =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
1131good
1132# non-blocking assignments for initial
1133# assign r_state  = $NDset ( 0,1,2 )
1134.names r_state
1135good
1136faulty1
1137faulty2
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
1142faulty1
1143# state  == 1
1144.names state _n197 _n196
1145.def 0
1146- =state 1
1147.mv _n199 3 good faulty1 faulty2
1148.names _n199
1149faulty2
1150# state  == 2
1151.names state _n199 _n198
1152.def 0
1153- =state 1
1154.mv _n19b 3 good faulty1 faulty2
1155.names _n19b
1156good
1157# state  == 0
1158.names state _n19b _n19a
1159.def 0
1160- =state 1
1161.mv _n19d 2 conduct open
1162.names _n19d
1163conduct
1164# wire1  == 0
1165.names wire1 _n19d _n19c
1166.def 0
1167- =wire1 1
1168.mv _n19f 2 conduct open
1169.names _n19f
1170conduct
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
11781 1 1
1179.mv _n1a2 3 present1 present2 absent
1180.names _n1a2
1181absent
1182# train  != 2
1183.names train _n1a2 _n1a1
1184.def 1
1185- =train 0
1186.mv _n1a4 3 B middle C
1187.names _n1a4
1188B
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
11960 0 0
1197# (wire1  == 0) && (wire2  == 0) && ((train  != 2) | (contact  == 0))
1198.names _n1a0 _n1a5 _n1a6
1199.def 0
12001 1 1
1201# state  == 0 && ((wire1  == 0) && (wire2  == 0) && ((train  != 2) | (contact  == 0)))
1202.names _n19a _n1a6 _n1a7
1203.def 0
12041 1 1
1205.mv _n1a8 2 on off
1206.names _n1a8
1207on
1208.mv _n1a9 2 on off
1209.names _n1a9
1210off
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
1218off
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
1226on
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
1236faulty1
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
1246faulty1
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
1254faulty2
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
1264faulty2
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
1272good
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
12961 - - =state$_n1be$raw_n1c2
12970 - - =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
1320stop1
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
1326go3
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
1333go4
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
13410 0 0
1342.mv _n1d6 2 go stop
1343.names _n1d6
1344go
1345.mv _n1d7 2 go stop
1346.names _n1d7
1347stop
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
1357stop1
1358.names state _n1db _n1da
1359.def 0
1360- =state 1
1361.names _n1da  _n1d9
13621 1
13630 0
1364.mv _n1dd 2 lit unlit
1365.names _n1dd
1366lit
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
1376stop2
1377# state  = 0
1378.mv state$_n1dc_n1e0$false 6 stop1 stop2 go1 go2 go3 go4
1379.names state$_n1dc_n1e0$false
1380stop1
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
1388stop2
1389.names state _n1e7 _n1e6
1390.def 0
1391- =state 1
1392.names _n1e6  _n1e5
13931 1
13940 0
1395.mv _n1e9 2 lit unlit
1396.names _n1e9
1397unlit
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
1407go1
1408# state  = 0
1409.mv state$_n1e8_n1ec$false 6 stop1 stop2 go1 go2 go3 go4
1410.names state$_n1e8_n1ec$false
1411stop1
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
1419go1
1420.names state _n1f3 _n1f2
1421.def 0
1422- =state 1
1423.names _n1f2  _n1f1
14241 1
14250 0
1426.mv _n1f5 2 lit unlit
1427.names _n1f5
1428lit
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
1438go2
1439# state  = 0
1440.mv state$_n1f4_n1f8$false 6 stop1 stop2 go1 go2 go3 go4
1441.names state$_n1f4_n1f8$false
1442stop1
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
1450go2
1451.names state _n1ff _n1fe
1452.def 0
1453- =state 1
1454.names _n1fe  _n1fd
14551 1
14560 0
1457.mv _n201 2 lit unlit
1458.names _n201
1459unlit
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
1469go3
1470# state  = 0
1471.mv state$_n200_n204$false 6 stop1 stop2 go1 go2 go3 go4
1472.names state$_n200_n204$false
1473stop1
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
1481go3
1482.names state _n20b _n20a
1483.def 0
1484- =state 1
1485.names _n20a  _n209
14861 1
14870 0
1488.mv _n20d 2 lit unlit
1489.names _n20d
1490lit
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
1500go4
1501# state  = 0
1502.mv state$_n20c_n210$false 6 stop1 stop2 go1 go2 go3 go4
1503.names state$_n20c_n210$false
1504stop1
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
1512go4
1513.names state _n217 _n216
1514.def 0
1515- =state 1
1516.names _n216  _n215
15171 1
15180 0
1519.mv _n219 2 lit unlit
1520.names _n219
1521unlit
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
1531go3
1532# state  = 0
1533.mv state$_n218_n21c$false 6 stop1 stop2 go1 go2 go3 go4
1534.names state$_n218_n21c$false
1535stop1
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
15851 - - =state$_n1d9$raw_n234
15860 - - =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
1607good
1608# non-blocking assignments for initial
1609.mv _n23f 3 present1 present2 absent
1610.names _n23f
1611present2
1612# train  == 1
1613.names train _n23f _n23e
1614.def 0
1615- =train 1
1616.mv _n241 2 go stop
1617.names _n241
1618go
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
16261 1 1
1627.mv _n244 2 good bad
1628.names _n244
1629bad
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
16370 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
1643bad
1644# state  = 0
1645.mv state$_n245_n248$false 2 good bad
1646.names state$_n245_n248$false
1647good
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
16601 - - =state$_n245$raw_n24a
16610 - - =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
Note: See TracBrowser for help on using the repository browser.