100 likes | 241 Views
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 :
E N D
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.
Simulazione behavioral Nel caso del VHDL si è deciso di utilizzare il vettore sensori che risulta essere molto pratico nella stesura del codice.Anche in questo caso i risultati del test confermano la correttezza della rete. Non appena viene totalizzato un punteggio di almeno 5 punti l’uscita P diventa uguale a 1 attivando il corrispondente led, il quale rimarrà acceso, come previsto, per 3 periodi di clock per poi tornare a zero spegnendosi. Ricordiamo che è necessaria la condizione che i sensori d’ingresso durante i 3 periodi di clock rimangano a zero ovvero non sia in corso nessuna partita. La simulazione mette in evidenza anche il comportamento del reset il quale viene attivato automaticamente e fa si che si possa iniziare una nuova partita partendo dal punteggio 0. Inoltre si è voluto dimostrare il corretto funzionamento anche per sequenze di punteggi che superino il punteggio minimo e anche il comportamento della rete nel caso in cui una partita venga sospesa . In tal caso non appena venga ripreso il gioco è ancora valido il punteggio ottenuto prima della sospensione.
Simulazione post-route La simulazione Post-Route mette in evidenza alcuni ritardi dovuti ai componenti scelti per la realizzazione della rete e alle commutazioni dei segnali stessi. Si può concludere però che il risultato ottenuto da tale simulazione è soddisfacente e corretto in quanto l’uscita P commuta il suo stato con un ritardo inferiore ai 10 ns.
Test bench Si riporta il codice integrale utilizzato per testare la rete sincrona scritta interamente con il codice VHDL:
Si è optato di creare un process a parte per il clock per rendere più chiaro l’intero test e maggiormente visibili gli stimoli indotti alla rete Condizione necessaria esplicitata dal testo in cui viene ribadito che per tre periodi di clock, dopo il raggiungimento del punteggio minimo, è garantito che non è in atto nessuna partita