Diagramma degli stati primitivo (Mealy)
SE,P
Tabella degli stati primitiva / Ricerca stati compatibili
SE
00 01 11 10
-,- B,0
B
AC
C
X
--
D
X
CE CE
E
X
X
--
--
A
A,0 -,-
B
C,-
C
C,1 D,1 -,-
-,-
D
E,1 D,1 -,-
-,-
E
E,1 -,-
-,-
F,1
F
X
X
--
CE CE
F
C,1 -,-
G,- F,1
G
--
--
X
X
--
--
G
-,- H,0 G,0 -,-
H
--
X
X
X
X
X
--
H
A,0 H,0 -,-
A
B
C
D
E
F
G
-,- G,0 B,0
-,-
Classi massime di compatibilità
che soddisfano copertura e chiusura:
[A,G,H] => α
[B] => β
[C,D,E,F] => γ
Assegnazione. Tabella transizioni ridotta
SE
00 01 11 10
A
A,0 -,-
B
C,-
C
C,1 D,1 -,-
D
SE
SE
-,- B,0
00 01 11 10
y1 y2
α
α,0 α,0 α,0 β,0
00
00,0 00,0 00,0 01,0
-,-
β
γ,-
-,- α,0 β,0
01
11,-
E,1 D,1 -,-
-,-
γ
γ,1 γ,1 α,- γ,1
11
11,1 11,1 00,- 11,1
E
E,1 -,-
-,-
F,1
10
--,-
F
C,1 -,-
G,- F,1
-,- G,0 B,0
G
-,- H,0 G,0 -,-
H
A,0 H,0 -,-
y1 = !Sy2 + y1y2
y2 = S!E + !Sy2
P = y1
-,-
00
01
--,--,-
11
10
00,0 01,0
--,-
--,-
È presente una corsa critica perché c’è un
cambiamento contemporaneo di 2 variabili di stato
SE
y1 y2
00
01
11
10
00
00,0 00,0 00,0 01,0
01
11,-
11
11,1 11,1 10,- 11,1
10
--,-
--,-
--,-
00,0 01,0
00,-
--,-
Inserita una transizione per permettere il cambiamento
di una variabile di stato alla volta e assicurare un
corretto funzionamento del progetto
Schematico Xilinx
y1 = !Sy2 + y1y2
y2 = S!E + !Sy2
P = y1
Schematico Xilinx – Circuito a NOR
Ho realizzato lo stesso circuito utilizzando soltanto porte NOR (porta
UNIVERSALE come NAND): dopo aver convertito ogni porta logica, ho
semplificato al meglio il circuito.
Ho anche verificato che, in questo caso, il circuito con soli NOR è «più
conveniente» di un circuito con soli NAND.
Questa conversione è molto utile perché si può risparmiare sul numero
di circuiti integrati, dato che ogni circuito integrato è composto da sole
porte dello stesso tipo.
È in ogni caso molto utile perché non ho bisogno di avere più tipi di
porte: posso costruire il mio circuito utilizzando «un solo tipo di
mattone».
Simulazione Post-Route
La simulazione, tramite Testbench VHDL, prevede che vengano dati «10 pesci in ingresso» al sistema di dimensioni grandi o piccole,
attraverso un algoritmo di generazione pseudo-casuale (nel test VHDL viene utilizzata la libreria «ieee.math_real»).
Si può vedere dal grafico che, non appena il circuito è in grado di stabilire la dimensione del pesce che sta passando sul nastro trasportatore
(e questo avviene subito dopo che la configurazione passa da SE = «10» allo stato successivo), questo commuta il prima possibile,
e ragionevolmente, lo stato di P (il segnale che gestisce il deviatore pilotato).
Come si può osservare, al passaggio di un pesce piccolo (SE = «10»  SE = «00») l’uscita commuta in P = ‘1’, altrimenti, al passaggio di un
pesce grande (di lunghezza >= L; SE = «10»  SE = «11») l’uscita P va a ‘0’.
Scarica

Presentazione