Upload
pietronella-monti
View
221
Download
1
Embed Size (px)
Citation preview
Rete Asincrona● Una rete sequenziale asincrona è dotata di due ingressi E, X
e di una uscita Z.
● L'uscita Z deve diventare 1 solamente quando durante l'ultima attivazione di X, E ha avuto, come ultimo fronte, un fronte positivo, in caso di fronte negativo invece l'uscita passa a 0. Il cambiamento eventuale dell'uscita avverrà solamente al fronte positivo di X.
● Si progetti la rete utilizzando la sintesi di Mealy, si semplifichino gli stati, si eliminano eventuali corse critiche e si riassuma il tutto
X
E
Z
Diagramma degli Stati
A
00,0
B
01,0
D
11,011,0
C O
00,0 01,0
10,0 00,0
11,0
10,010,0 11,0
01,0
01,0
E
10,0
10,0
F
G H
I
L
M N P
11,1
00,010,0
01,1
11,1
00,1
01,1
10,100,1
10,1
11,1
11,101,1
00,110,1
00,1
11,0
01,0
00,001,1
00,1
10,1
11,1
01,1
00,1 10,1
Spiegazione diagramma stati● Partiamo dallo stato A stabile per 00. Se l'uscita E varia, devo cambiare stato, ma non sono
ancora sulla strada giusta, mi porto infatti negli stati A e C. Avendo un fronte di X posso continuare: se E è a 1 (Stato O) prima dovrà tornare a 0 (Stato B) e se avrò un ulteriore fronte arrivo nello stato D. Qui ho un punto chiave: se E ritorna a zero ritorno in B, ma se cambia X continuo con lo stato E.
● Sono nella condizione voluta, ho appena registrato un fronte positivo di E mentre X era 1, quindi appena si riattiverà X l'uscita andrà ad 1. Intanto che aspetto tale fronte, degli sbalzi di E non cambiano niente, semplicemente vado in degli stati “logicamente simili” (Stato E e G).
● X ha un fronte positivo e l'uscita va quindi a 1. In questo periodo se cambia semplicemente la X senza che la E cambi, non succede niente, ma se ho un fronte di discesa di E seguito anche da X l'uscita dovrà tornare a 0. ritornando quindi negli stati iniziali (Stato B o O)
● Si noti che mentre il segnale X è 1 se ho un numero di cambi pari di E l'uscita non varia, saltello semplicemente fra due stati. Ad esempio se sono in F e la E va a zero, potrei tornare a zero, ma se subito ritorna a 1 non ho nessun problema, la stessa cosa vale anche in B e D. Devo infatti aspettare che la X decresca per vedere come comportarmi.
Tabella degli stati
A A,0 B,0 -,- C,0
B A,0 B,0 D,0 -,-
C A,0 -,- O,0 C,0
D -,- B,0 D,0 E,0
E G,0 -,- F,1 E,0
F -,- M,1 F,1 I,1
G G,0 H,1 -,- E,0
H L,1 H,1 F,1 -,-
I L,1 -,- F,1 I,1
L L,1 H,1 -,- I,1
M N,1 M,1 F,1 -,-
N N,1 B,0 -,- P,1
O -,- B,0 O,0 C,0
P N,1 -,- O,0 P,1
00 01 11 10
Tabella TriangolareB
C DO
D CE DOCE
E AGCE
DF
F
G AGCE
H MH
I
L MH
M LN LN MH
N PI
O DO CE
P PI
A B C D E F G H I L M N O
XX
X
X
X
X X
X XX X X
XXX XX
X X X X X X XXXX
XXXX
XXXXXXX
X XX
XXXXXXXX
X X X X X X X X X
XX XXXXX
X X X X X X X X X
XX
X X X
Classi Di Compatibilità
[AB] [AC] [AO] [BD] [CO] [EG] [FI] [FM] [HI] [HL] [IL] [NP]
Classi Massime Di Compatibilità
[ACO] [BD] [EG] [FM] [HIL] [NP]
Queste classi di compatibilità soddisfano le condizioni di copertura e di chiusura
Codifica degli Stati + Corse
00 01 11 10
[ACO] α α,0 β,0 α,0 α,0
[BD] β α,0 β,0 β,0 γ,0
[EG] γ γ,0 ε,1 δ,1 γ,0
[FM] δ ζ,1 δ,1 δ,1 ε,1
[HIL] ε ε,1 ε,1 δ,1 ε,1
[NP] ζ ζ,1 β,0 α,0 ζ,1
00 01 11 10
α 000 000,0 001,0 000,0 000,0
β 001 000,0 001,0 001,0 101,0
011 -,- -,- -,- -,-
010 -,- -,- -,- -,-
ε 100 100,1 100,1 111,1 100,1
γ 101 101,0 100,1 111,1 101,0
δ 111 110,1 111,1 111,1 100,1
ζ 110 110,1 001,0 000,0 110,1
Corsa
Ho deciso di utilizzare queste codifiche per gli stati perchè sembrano ridurre ilnumero di corse da risolvere.In verde sono evidenziate le corse che si presentano
Risoluzione corse00 01 11 10
α 0000 0000,0 0001,0 0000,0 0000,0
β 0001 0000,0 0001,0 0001,0 0101,0
0011 -,- 0001,0 -,- -,-
0010 -,- 0011,0 0000,0 -,-
ε 0100 0100,1 0100,1 0101,1 0100,1
γ 0101 0101,0 0100,1 0111,1 0101,0
δ 0111 0110,1 0111,1 0111,1 1111,1
ζ 0110 0110,1 0010,0 0010,0 0110,1
1000 -,- -,- -,- -,-
1001 -,- -,- -,- -,-
1011 -,- -,- -,- -,-
1010 -,- -,- -,- -,-
1100 -,- -,- -,- 0100,1
1101 -,- -,- -,- -,-
1111 -,- -,- -,- 1110,1
1110 -,- -,- -,- 1100,1
Per risolvere le corse ho dovutoaggiungere una quarta variabile di stato
Y1 = Y3Y1 + !X2X1Y3Y4
00 01 11 10 00 01 11 10
00 0 0 0 0 00 0 0 0 0
01 0 0 0 0 01 0 0 0 0
11 - 0 - - 11 0 0 0 1
10 - 0 0 - 10 0 0 0 0
Y1Y2 = 00 Y1Y2 = 01
00 01 11 10 00 01 11 10
00 - - - - 00 - - - 0
01 - - - - 01 - - - -
11 - - - - 11 - - - 1
10 - - - - 10 - - - 1
Y1Y2 = 10 Y1Y2 = 11
X1X2
X1X2
X1X2
X1X2Y3Y4
Y3Y4Y3Y4
Y3Y4
Y2 = Y4X1!X2 + !X2Y2 + Y2!Y3+Y4Y2
00 01 11 10 00 01 11 10
00 0 0 0 0 00 1 1 1 1
01 0 0 0 1 01 1 1 1 1
11 - 0 - - 11 1 1 1 1
10 - 0 0 - 10 1 0 0 1
Y1Y2 = 00 Y1Y2 = 01
00 01 11 10 00 01 11 10
00 - - - - 00 - - - 1
01 - - - - 01 - - - -
11 - - - - 11 - - - 1
10 - - - - 10 - - - 1
Y1Y2 = 10 Y1Y2 = 11
X1X2
X1X2
X1X2
X1X2Y3Y4
Y3Y4Y3Y4
Y3Y4
Y3 = X1X2Y2Y4 + Y2Y3Y4 + !Y1Y3!Y4
00 01 11 10 00 01 11 10
00 0 0 0 0 00 0 0 0 0
01 0 0 0 0 01 0 0 1 0
11 - 0 - - 11 1 1 1 1
10 - 1 - - 10 1 1 1 1
Y1Y2 = 00 Y1Y2 = 01
00 01 11 10 00 01 11 10
00 - - - - 00 - - - 0
01 - - - - 01 - - - -
11 - - - - 11 - - - 1
10 - - - - 10 - - - 0
Y1Y2 = 10 Y1Y2 = 11
X1X2
X1X2
X1X2
X1X2Y3Y4
Y3Y4Y3Y4
Y3Y4
Y4 = !X1X2!Y2 + X1Y4!Y1 + X2Y3Y4 + X1X2Y2!Y3 + !X2Y2Y3Y4
00 01 11 10 00 01 11 10
00 0 1 0 0 00 0 0 1 0
01 0 1 1 1 01 1 0 1 1
11 - 1 - - 11 0 1 1 1
10 - 1 0 - 10 0 0 0 0
Y1Y2 = 00 Y1Y2 = 01
00 01 11 10 00 01 11 10
00 - - - - 00 - - - 0
01 - - - - 01 - - - -
11 - - - - 11 - - - 0
10 - - - - 10 - - - 0
Y1Y2 = 10 Y1Y2 = 11
X1X2
X1X2
X1X2
X1X2Y3Y4
Y3Y4Y3Y4
Y3Y4
Schematico