Diagramma degli stati primitivo (Mealy) SE,P
Tabella degli stati primitiva / Ricerca stati compatibili SE 00 01 11 10 A A,0 -,- B,0 B C,- G,0 C C,1 D,1 D E,1 E F,1 F G,- G H,0 H B AC C X -- D CE E F G H A Classi massime di compatibilità che soddisfano copertura e chiusura: [A,G,H] => α [B] => β [C,D,E,F] => γ
Assegnazione. Tabella transizioni ridotta 00 01 11 10 A A,0 -,- B,0 B C,- G,0 C C,1 D,1 D E,1 E F,1 F G,- G H,0 H SE SE 00 01 11 10 α α,0 β,0 β γ,- -,- γ γ,1 α,- y1 y2 00 01 11 10 00,0 01,0 11,- --,- 11,1 00,- È presente una corsa critica perché c’è un cambiamento contemporaneo di 2 variabili di stato SE y1 y2 00 01 11 10 00,0 01,0 11,- --,- 11,1 10,- 00,- y1 = !Sy2 + y1y2 y2 = S!E + !Sy2 P = y1 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’.