TESTO
Su un fiume, che regola l'uscita di barche da un porto, si trova un ponte mobile a una
corsia che collega tra di loro due strade a doppio senso di marcia. L'attraversamento
del ponte è gestito da due semafori che, a intervalli regolari, consentono il transito
da una o dall'altra sponda. Un sensore rileva il passaggio delle barche che
contemporaneamente blocca il traffico delle auto e consente l'apertura del ponte.
Inoltre, è stato calcolato che una barca impiega per passare al più 10 minuti, al
termine dei quali, se non ve ne sono altre in transito, viene consentita la chiusura del
ponte e la riapertura del traffico.
Il programma da me svolto gira, ma non in maniera corretta. Nonostante io ritenga di aver
individuato il problema (slide 4-5), non sono in grado di modificarlo.
Sperando in sede di esame di arrivare ad una soluzione, Le propongo ugualmente l’elaborato
poiché non mi sembra di essere così lontano dalla impostazione ottimale.
Codice
Test
Simulazione
Dal momento che il sensore si attiva i semafori si spengono e il ponte si apre; tuttavia il
sensore torna a zero perché la barca ha finito di passargli davanti e il conteggio si blocca e
il ponte rimane aperto.
L’errore è quasi sicuramente nella riga:
Tuttavia non so come risolvere il problema. Ho tentato di sostituire lo statement con
“(sensore‘event) and (sensore = ‘1’)” ma il compilatore dava errore.
“(sensore’last_value)”, ma ottenevo soltanto un ponte che dal primo fronte positivo di sensore
non faceva altro che chiudersi e aprirsi dopo ogni conteggio.
Scarica

Presentazione_SincronoVHDL