Cassaforte Sincrona con Moduli La cassaforte, dotata di due tasti – ingressi, si apre solamente se gli ingressi hanno assunto nel tempo le configurazioni: 00-01-01-10. Qualsiasi violazione della sequenza riporta il sistema allo stato iniziale. Siccome gli ingressi sono campionati, la sequenza di ingresso 01-01 è possibile e ben significativa. Schematico Xilinx La rete è stata realizzata mediante sintesi diretta e non tramite sintesi formale. VHDL – parte 1 VHDL – parte 2 VHDL – parte 3 Simulazione Behavioral 00 01 01 10 Simulazione Post Route Leggero ritardo dovuto alle implementazioni fisice, quindi i componenti utilizzati. Spiegazione della rete La rete assume uscita Z uguale ad 1 solo quando gli ingressi assumono in sequenza le configurazioni 00-01-01-10. Gli ingressi possono anche cambiare in modo asincrono in quanto questi vengono campionati solo al successivo fronte di salita del Clock (sincrono). L’uscita assume valore 1 solamente al fronte successivo al riconoscimento della sequenza. I segnali interni QA,QB,QC rappresentano lo stato interno del contatore, mentre i segnali interni Y0,Y1,Y2 rappresentano la decodifica di X1 e X2. Funzionamento della rete Lo stato a riposo del contatore è la configurazione 100 (QC/QB/QA). Il contatore rimane nello stato 100 finchè non si presenta la configurazione di ingresso 00 che tramite il Load attivo porta direttamente lo stato del contatore a 000. Il contatore rimarrà in questo stato finchè non si presenterà la configurazione di ingresso 01 che permette la disattivazione del Load fa iniziare così il conteggio (Counter Eneble già attivo con l’azzeramento dell’and4). La successiva combinazione di ingresso 01 (unica corretta) permette al contatore di continuare a contare arrivando allo stato interno 010. Se la successiva combinazione di ingressi è 10 viene mantenuto il Load a 0 e il Counter Eneble a 1 e il contatore si porta allo stato finale 011 con successiva uscita a 1 al prossimo fronte positivo del clock. A questo punto il contatore si porterà sempre allo stato di riposo 100 che va ad attivare tramite il segnale Init_Val_100 l’and4 disattivando quindi il conteggio. Arrivata allo stato di riposo la rete si comporta come precedentemente descritto aspettando il segnale 00 per portarsi al primo stato 000 della sequenza corretta. Ogni configurazione di ingresso diversa da 00 durante la sequenza porta inevitabilmente il contatore al suo stato di riposo 100 attivando il Load. Il contatore rimane allo stato interno 000 per una sequenza lunga a piacere di ingressi 00.