DESCRIZIONE DEL PROBLEMA Si vuole realizzare una rete per un gioco di “ tiro al bersaglio” durante una festa per bambini. Il bambino vincerà un premio ogni volta che riesce a totalizzare almeno 5 punti. Il gioco funziona nel seguente modo : Il bersaglio è popolato da due sensori A e B progettati in modo tale che le loro configurazioni dividano l’area del bersaglio in varie zone a cui attribuire un punteggio nel seguente modo: per la configurazione 00 non viene colpito il bersaglio, dunque vengono totalizzati 0 punti. Se la freccetta colpisce il bersaglio e i sensori segnano la configurazione 01 il bambino guadagna 1 punto, se invece i sensori hanno valore 10 il bambino guadagna 2 punti, mentre se viene colpito il centro del bersaglio dove i sensori hanno configurazione 11 il bambino guadagna 5 punti. Le configurazioni previste durano un intervallo di clock. Quando il contatore segna almeno 5 punti l’uscita della rete P, sale a 1 ed illumina un led per indicare che il bambino ha diritto al premio. Tale uscita rimane alta per 3 periodi di clock dove sicuramente il gioco sarà interrotto(A=0 e B=0). Ogni volta che vengono superati i 5 punti e passati i 3 periodi di clock la rete si resetta per ricominciare il gioco e l’uscita torna a 0 spegnendo il led. SCHEMATICO È stato interamente realizzato con un approccio di tipo diretto: Decoder 2-4 utile per l’accumulo Registro necessario per accumulare i punti realizzati Full-Adder a 4 bit necessario per sommare i punti totalizzati Funge da reset per il registro d’accumulo quando il decoder=1 e nello stesso tempo abilita il contatore per mantenere l’uscita Dopo aver raggiunto il punteggio minimo devo attivare il led . Il punteggio è compreso tra un minimo di 5 e un massimo di 9 quindi uso un decoder a 4 bit. Contatore a 2 bit che mantiene per 3 periodi di clock l’uscita. SIMULAZIONE BEHAVIORAL Reset asincrono Centro il bersaglio al primo colpo quindi raggiungo subito i 5 punti e P=1 e rimane accesa per 3 impulsi di clock successivi. 130.000 ns Il punteggio totale si ferma a 3 perché si è smesso di giocare e P=0 finché non riprende il gioco con un punteggio utile. Combinazione di punteggi 01-1011 =8 quindi P=1 al primo fronte positivo di clock dopo aver raggiunto il punteggio minimo Viene inoltre rispettata la clausola secondo la quale mentre il led è acceso (P=1) nei 3 periodi di clock il gioco è fermo, quindi A=0 e B=0. Possiamo concludere che la rete si comporta esattamente come atteso. SIMULAZIONE POST-ROUTE Il risultato è accettabile e il ritardo è di 7,500 ns rispetto alla simulazione Behavioral Dettaglio della simulazione Behavioral Anche questo risultato è accettabile nonostante il ritardo TEST BENCH Viene riportato qui di seguito il codice integrale usato per testare il corretto funzionamento della rete Si è optato di utilizzare una costante di tempo per poterla comodamente utilizzare in seguito rendendo il codice più scorrevole Indispensabile per rispettare la consegna del testo in cui si imponeva che le configurazioni d’ingresso durassero un intervallo di clock