-
Notifications
You must be signed in to change notification settings - Fork 2
/
controllore.blif
106 lines (76 loc) · 2.8 KB
/
controllore.blif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
.model Controllore
.inputs BANCOMAT_INSERITO CIFRA4 CIFRA3 CIFRA2 CIFRA1 CASH_OK
.outputs REINSERIRE_CODICE ABILITAZIONE_EROGAZIONE BLOCCO_BANCOMAT CHECK_DISPONIBILITA
.start_kiss
.i 6 #numero di segnali di ingresso
.o 4 #numero di segnali di uscita
.s 19 #numero di stati
.p 57 #numero di transizioni
.r INSERIMENTO #stato di reset
#tabella delle transizioni
#parte relativa all'inserimento del bancomat
0----- INSERIMENTO INSERIMENTO 0000
1----- INSERIMENTO T1_CODICE1 0000
#tutti i casi in cui si sbaglia almeno una cifra
----0- T1_CODICE1 T1_CODICE1_ERRORE 0000
---1-- T1_CODICE1 T1_CODICE1_ERRORE 0000
--0--- T1_CODICE1 T1_CODICE1_ERRORE 0000
-1---- T1_CODICE1 T1_CODICE1_ERRORE 0000
----0- T1_CODICE2 T1_CODICE2_ERRORE 0000
---1-- T1_CODICE2 T1_CODICE2_ERRORE 0000
--0--- T1_CODICE2 T1_CODICE2_ERRORE 0000
-1---- T1_CODICE2 T1_CODICE2_ERRORE 0000
----1- T1_CODICE3 T2_CODICE1 1000
---1-- T1_CODICE3 T2_CODICE1 1000
--1--- T1_CODICE3 T2_CODICE1 1000
-1---- T1_CODICE3 T2_CODICE1 1000
----0- T2_CODICE1 T2_CODICE1_ERRORE 0000
---1-- T2_CODICE1 T2_CODICE1_ERRORE 0000
--0--- T2_CODICE1 T2_CODICE1_ERRORE 0000
-1---- T2_CODICE1 T2_CODICE1_ERRORE 0000
----0- T2_CODICE2 T2_CODICE2_ERRORE 0000
---1-- T2_CODICE2 T2_CODICE2_ERRORE 0000
--0--- T2_CODICE2 T2_CODICE2_ERRORE 0000
-1---- T2_CODICE2 T2_CODICE2_ERRORE 0000
----1- T2_CODICE3 T3_CODICE1 1000
---1-- T2_CODICE3 T3_CODICE1 1000
--1--- T2_CODICE3 T3_CODICE1 1000
-1---- T2_CODICE3 T3_CODICE1 1000
----0- T3_CODICE1 T3_CODICE1_ERRORE 0000
---1-- T3_CODICE1 T3_CODICE1_ERRORE 0000
--0--- T3_CODICE1 T3_CODICE1_ERRORE 0000
-1---- T3_CODICE1 T3_CODICE1_ERRORE 0000
----0- T3_CODICE2 T3_CODICE2_ERRORE 0000
---1-- T3_CODICE2 T3_CODICE2_ERRORE 0000
--0--- T3_CODICE2 T3_CODICE2_ERRORE 0000
-1---- T3_CODICE2 T3_CODICE2_ERRORE 0000
----1- T3_CODICE3 BLOCCO 0010
---1-- T3_CODICE3 BLOCCO 0010
--1--- T3_CODICE3 BLOCCO 0010
-1---- T3_CODICE3 BLOCCO 0010
#errori di mezzo
------ T1_CODICE1_ERRORE T1_CODICE2_ERRORE 0000
------ T1_CODICE2_ERRORE T2_CODICE1 1000
------ T2_CODICE1_ERRORE T2_CODICE2_ERRORE 0000
------ T2_CODICE2_ERRORE T3_CODICE1 1000
------ T3_CODICE1_ERRORE T3_CODICE2_ERRORE 0000
------ T3_CODICE2_ERRORE BLOCCO 0010
#quando il codice viene inserito correttamente
-0101- T1_CODICE1 T1_CODICE2 0000
-0101- T1_CODICE2 T1_CODICE3 0000
-0000- T1_CODICE3 RICHIESTA 0001
-0101- T2_CODICE1 T2_CODICE2 0000
-0101- T2_CODICE2 T2_CODICE3 0000
-0000- T2_CODICE3 RICHIESTA 0001
-0101- T3_CODICE1 T3_CODICE2 0000
-0101- T3_CODICE2 T3_CODICE3 0000
-0000- T3_CODICE3 RICHIESTA 0001
#blocco dal quale non è più possibile uscire
------ BLOCCO BLOCCO 0010
#parte relativa al controllo della quantità di denaro
-----0 RICHIESTA INSERIMENTO 0000
-----1 RICHIESTA EROGAZIONE 0100
#transizione dal'ultimo stato allo stato iniziale
------ EROGAZIONE INSERIMENTO 0000
.end_kiss
.end