1 / 16

Moka Programmabile

Moka Programmabile. Rete sequenziale sincrona per la gestione di una moka programmabile. VHDL. Segnali - lista. INPUT SET_CLOCK SET_TIMER SWITCH_HMS UP PRESS CK. OUTPUT SECONDS(7:0) MINUTES(7:0 ) HOURS(7:0) TIMERS(7:0) TIMERM(7:0) TIMERH(7:0) ERROR HEAT.

megara
Download Presentation

Moka Programmabile

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Moka Programmabile Rete sequenziale sincrona per la gestione di una moka programmabile. VHDL

  2. Segnali - lista • INPUT • SET_CLOCK • SET_TIMER • SWITCH_HMS • UP • PRESS • CK • OUTPUT • SECONDS(7:0) • MINUTES(7:0) • HOURS(7:0) • TIMERS(7:0) • TIMERM(7:0) • TIMERH(7:0) • ERROR • HEAT

  3. Segnali - descrizione • INPUT • SET_CLOCK: finché il suo valore logico è '1', da la possibilità di impostare l'orario corrente all'interno della moka mediante ilpulsante di selezione SWITCH_HMS e il pulsante UP. • SET_TIMER: finché il suo valore logico è '1', da la possibilità diimpostare l'orario del timer (l'orario in cui fare il caffè),anch'esso utilizza i pulsanti SWITCH_HMS e UP. • SWITCH_HMS: permette di spostare la selezione del “campo”(Hours, Minutes, Seconds) da aggiornare.Il cambiamento di “campo” si ha al rilascio del bottone. • UP: permette (al rilascio) di aumentare di 1 il valore del “campo”attualmente selezionato. • PRESS: quando il suo valore logico è '1', indica che la moka èpresente sulla piastra. • CK: segnale di clock. Che per un corretto funzionamento dell'orologiodeve essere alla frequenza di 100 Hz. • OUTPUT • SECONDS(7:0): secondi dell'orologio reale. • MINUTES(7:0): minuti dell'orologio reale. • HOURS(7:0): ore dell'orologio reale. • TimerS(7:0): secondi in cui la moka dovrà partire • TimerM(7:0): minuti in cui la moka dovrà partire • TimerH(7:0): ora in cui la moka dovrà partire • ERROR: il suo valore logico va a '1' se durante le fasi diSET_CLOCK/SET_TIMER si è acceduto il limite per un campo(23 per le ore, 59 per minuti e secondi). • HEAT: il suo valore logico va a '1' quando l'orario corrente divental'orario impostato nel timer e permane ad 1 finché il caffènon è pronto (cioè, per 10 minuti).

  4. VHDL - introduzione Per la realizzazione della Moka Programmabile in VHDL sono stati creati 4 process: • digitalClock • digitalClockChecker • heatStarted • updateOutSignals Dato che in VHDL è impossibile poter modificare il valore di un segnale d’uscita da due o più processi differenti (in quanto fisicamente impossibile), ho optato per la seguente scelta: Uso di segnali interni per ogni modulo (e ogni modulo è specializzato in un compito) e update dei segnali d’uscita (reali) da un processo a parte, che non fa altro che prendere i valori dei segnali interni e assegnarli alle corrispondenti uscite.

  5. VHDL - digitalClock Il processo digitalClock è l’incaricato della gestione dei segnali interni dell’orologio reale. I sui compiti sono: • scandire correttamente l’orario • fornire ad ogni minuto un impulso di clock su un segnale interno (utilizzato in un modulo seguente) • aggiornare i segnali interni dell’orario nel caso di modifica dell’orario da parte dell’utilizzatore della moka (modifica fatta tramite il processo digitalClockChecker). Il codice del processo nel file MokaProgrammabile.vdh è commentato.

  6. VHDL - DigitalClockChecker Questo process è incaricato di: • Aggiornare i segnali interni dell’orario • Impostare e memorizzare il timer (ora in cui fare il caffè) • Controllare la validità dell’orario impostato • Segnalare eventuali errori di validità In questo processè stato fatto un grande utilizzo di variabili interne al process stesso e di costanti per migliorare la leggibilità del codice. Inoltre è stato definito un tipo di dato per gli stati del pulsante SWITCH_HMS e del pulsante UP, per evitare l’utilizzo di tipi di dato predefiniti che per lo scopo in questione sarebbero stati inutilmente capienti. Il codice del processo nel file MokaProgrammabile.vdh è commentato.

  7. VHDL - updateOutSignals E’ il processo incaricato di gestire i segnali interni modificati in altri processi e di aggiornare l’output sue segnali di uscita corretti. Il codice del processo nel file MokaProgrammabile.vdh è commentato.

  8. Simulazione - introduzione Il testbench della moka programmabile realizzata in VHDL è lo stesso utilizzato per la realizzazione mediante schematico. Sono stati utilizzati gli stessi nomi e gli stessi colori. Le due simulazioni sono identiche. Il testbench consiste nel: • Impostare un orario per l’orologio (reale) • Impostare un orario per il timer (ora per fare il caffè) • Verifica del funzionamento della piastra (heat = ‘1’ per 10 minuti) • Verifica della correttezza della scandire del tempo

  9. Simulazione – Panoramica globale • Si può notare come la piastra HEAT si accenda per 10 minuti. Nelle prossime slidessi analizzerà nel dettaglio l’impostazione dell’orario (quindi test del processo DigitalClockChecker), dello scorrere del tempo (quindi processo DigitalClock) e si mostrerà che la piastra si è accesa all’orario prestabilito.

  10. Simulazione – impostazione orario Il segnale SET_CLOCK è attivo mentre il segnale SET_TIMERè attivo (come da vincoli, si immagini che fisicamente l’attivazione dei due pulsanti in contemporanea sia impossibile). Alla pressione del tasto UP ciò che è stato selezionato mediante switch_hms viene incrementato di 1. Si può notare come il tempo di pressione sia di UP, che di SWITCH_HMS, non sia rilevante(Le onde create con UP sono tutte uguali solo perché a livello di codice, sono state generate mediante un ciclo for). Sono state impostate come orario attuale le 12:05.

  11. Simulazione – impostazione timer (ora per fare il caffè) I vincoli sono quelli della slide precedente, e anche il funzionamento. Ora è attivo l’ingresso SET_TIMER, così facendo viene impostata l’ora del timer. Sono state impostate le 12:10. Quindi, tra 5 minuti esatti la piastra HEAT dovrà andare a 1 e rimanere tale per 10 minuti. Giusto il tempo di fare il caffè.

  12. Simulazione – l’ora del caffè Nell’istante in cui le ore ed i minuti si eguagliano (da notare in quest’immagine il cambio di minuto da 9 a 10) con quelli del timer, il segnale HEAT va ad 1. E come si può notare dalla slide «Simulazione – panoramica globale», dura esattamente 10 minuti d’orologio.

  13. Simulazione – trascorsa un’ora A verifica del funzionamento del componente DigitalClock, si può notare comeallo trascorrere dell 59-esimo secondo del 59-esimo minuto, l’orario passi dalle 12 alle 13. Il numero di secondi trascorsi nella simulazione non è 3600 dato che l’orario iniziale non erano le 12:00 ma le 12:05, quindi 3600 – (5*60) = 3600 – 300 = 3300. Il secondo di scarto è dato dal tempo impiegato nella simulazione per impostare l’orario. Le simulazione presenti sono tutte behavioral, quindi non tengono conto dei ritardi Instrinsici della tecnologia usata.

  14. Simulazione – post route • Della simulazione post routemostrerò semplicemente il confronto tra le due immagini «globali» della simulazione. Così da evidenziare le differenze. • La simulazione post route è state eseguita per soli 1600 secondi, in quanto il tempo di simulazione sarebbe risultato eccessivo.

  15. Simulazione - confronto Behavioral: Post Route:

  16. Simulazione - differenze • La differenza più evidente è che nella simulazione post routeil cambio tra un minuto e l’altro non è immediato.Si generano delle forme d’onda «rapide» di transizione tra un valore e l’altro, anziché essere «pulite» come nella simulazione behavioral. • Ulteriori differenze non sono visibili dalle immagini, non solo per il fatto che essendo immagini globali sono poco dettagliate, ma soprattutto perché l’uso di un segnale di clock a 100Hz («lento»), minimizza le differenze, in quanto la rete ha tempo di stabilizzarsi tra due fronti positivi, evitando così casi di meta-stabilità.

More Related