Diagramma degli stati che descrive il comportamento della rete
A B ---- D A B C E C D F G D F E C F H D H G I A H G A L I B L I ABCDEFGHILABCDEFGHIL P Q Tabella degli stati derivabile dallo schema. Gli stati A,B,I,L fanno parte dello stato '0' della rete; gli stati C, D, E, F dello stato '1' e, infine, gli stati G,H dello stato '2'. Tramite un'opportuna tabella è possibile arrivare a determinare le coppie di state compatibili: AB, CE, FD, IL, GH.
Associo ad ogni coppia di stati compatibili un nome e una codifica binaria, poi li rappresento tramite tabella di transizione. Inoltre elimino tutte le possibili corse critiche. AB α IL β FD γ EC δ GH ε Y3 y2 y1
Dalla tabella è possibile sintetizzare le 3 variabili di stato e le uscite p e q: P <= (y3)!RES Q <= (!y3y2)!RES y3 <= (y2y1b + by3 + y3!y1!y2a)!RES y2 <= (!y3y2 + !y1!y3a)!RES y1 <= (!by2 + y2y1 + a!y2y1!y3 + y3a!b)!RES Ho inoltre aggiunto a tutti i segnali sintetizzati tramite sintesi diretta un segnale di reset, in modo che quando asserito porti tutte le variabili di stato e le uscite a 0; in altre parole inizializza la rete allo stato '0'.
Codice vhdl usato per risolvere l'esercizio, altro non è che la traduzione in vhdl della sintesi ottenuta attraverso la tabella delle transizioni.
Test Bench per testare il funzionamento della rete: Resetto inizialmente la rete tramite il segnale RES. La faccio passare attraverso le varie fasi di funzionamento.
Simulazione Behavioral, possiamo vedere chiaramente il passaggio fra le 3 fasi caratterizzate dalle uscite 00, 01 e 10.
Simulazione Timing, il comportamento della rete rimane identico, sono solamente presenti dei minimi ritardi nella variazione delle uscite.