Progetto VHDL: Esempio 1 Reti Asincrone Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale d’uscita Z può modificare il suo valore solo quando si verifica o un fronte di salita di X1 o un fronte di salita di X2: nel primo caso si deve avere Z=1, nel secondo Z=0.
Diagramma degli stati primitivo
Tabella degli Stati X1/X2 00 01 11 10 Z A E - B H C 1 D F G H C 1 D F G X sono gli stati stabili
Tabella triangolare delle implicazioni Classi Massime di Compatibilità [AE] a [BH] b [CD] c [FG] d B C BD D ---- E CF BD CF F G H EG A
Rete risultante 00 01 11 10 a d b c 1 00,01 10, 00 10 b a 01 11 c 1 00,01 10, 00 10 b a 01 11 Questa rete può avere il rischio di corse critiche in quanto ci sono due stati stabili per ogni colonna! 11 01,00 10,00 c d 11,10 01,11
Codifica ridondante X1/X2 Y3/Y2/Y1 00 01 11 10 Z a 000 010 001 b 100 1 b 100 1 e 011 - d c f 101 g 111 h 110 Essendoci due stati stabili per ogni colonna c’è ancora il rischio di corse critiche.
Eliminazione corse critiche X1/X2 00 01 11 10 Z a 000 010 001 b 101 1 011 - d c 100 111 110 Y3/Y2/Y1
X1/X2 Y2/Y1 00 01 11 10 a 000 010 001 b 101 - d 011 Y2/Y1 Y3 = 0 Y3 00 01 11 10 1 - X1/X2 Y2/Y1 00 01 11 10 c 000 100 - Y3 = 1 Z = Y1 + Y2 Y1=X1!X2!Y3+X1Y1!Y3+!X2Y1+!X2Y2 Y2=Y2!Y1+X1X2!Y1!Y3 Y3=X1X2Y1+X1Y3
Codice VHDL parte 1 (Main)
Codice VHDL parte 2 (Testbench)
Simulazione Behavioral Fronte di salita di X1 che porta a 1 l’uscita Fronte di salita di X2 che porta a 0 l’uscita
Simulazione Post Route La simulazione Post Route mostra come le uscite vengano ritardate di un piccolo intervallo di tempo dovuto alle implementazioni fisiche (componenti fisici) utilizzate.