Sistema di regolazione del volume Il progetto consiste nella sintesi e nella realizzazione attraverso Xilinx di un sistema per la regolazione del volume, di un lettore di musica digitale. Il sistema è composto da tre pulsanti: ‘+’, ‘-’ ed ‘■’. In posizione di riposo nessuno dei tre pulsanti risulta premuto (- + ■ = 000) e in ogni istante al più può essere premuto un solo pulsante. Non è possibile il rilascio di un pulsante e la contemporanea pressione di un altro. 1 Le uscite sono due: A e D, utilizzate per impartire i comandi di aumento (AD=10) o diminuzione (AD=01) del volume. Se non è in corso nessuna regolazione del volume e nessun pulsante è premuto oppure viene premuto il pulsante ‘■’ deve essere mantenuto il volume impostato (AD=00). 2 Se non è in corso nessuna regolazione del volume, agendo sul pulsante ‘+’ (rispettivamente ‘–‘), deve essere attivato il comando di aumento (risp. diminuzione) del volume non appena il pulsante ‘+’ (risp. ‘–‘) viene rilasciato. Il comando di aumento (risp. diminuzione) del volume viene disattivato mediante le seguenti due modalità: agendo nuovamente sul pulsante ‘+’ (risp. ‘-‘) non appena questo viene rilasciato oppure agendo sul pulsante ‘■’ non appena questo viene premuto. 3 Infine, se viene premuto il pulsante ‘–‘ (risp. +) mentre è in corso una fase di aumento (risp. diminuzione) del volume deve essere immediatamente interrotto l’aumento (risp. diminuzione) del volume e deve essere impartito il comando di diminuzione (risp. aumento) del volume non appena il pulsante ‘–‘ (risp. ‘+’) viene rilasciato. 4 DIAGRAMMA DEGLI STATI 5 Il Diagramma degli stati è stato fatto con il modello di Mealy. Dal diagramma passiamo alla tabella degli stati e quindi successivamente si va alla ricerca delle classi di compatibilità, costruendo la tabella triangolare delle implicazioni. 6 TABELLA TRIANGOLARE DELLE IMPLICAZIONI 7 CLASSI DI COMPATIBILITA’ Le classi di compatibilità sono [AE] ,[B] ,[C] ,[DEH] ,[F] ,[G] e sono tutte neccessarie per la copertura [AE] = α [B] = β [C] = χ [DEH] = δ [F] = φ [G] = λ 8 Diamo una codifica binaria agli stati 9 10 Corse Critiche Ci servono 3 variabili di stato, per coprire tutti gli stati. Riusciamo a risolvere tutte le corse critiche, tranne in una casella, indicato nello schema precedente Successivamente ci ricaviamo le espressione di Y1, Y2, Y3, A e D. 11 Espressioni: Y1 = (y3 !y2 !X2 !X1) or (!y3 !y2 X3) or (!y3 y1 !X3 !X2) Y2 = (X1 y1) or (!y3 y2 X1) or (!y3 y2 y1) or (!y3 y2 X3) or (!y3 y1 !X3 !x2) Y3 = (y3 y2 X1) or (!y3 y1 X1) or (!y2 !y1 X1) or (y3 y1 X2) or (y3 !X3 !X2 !X1) D = (Y3 !Y2 Y1) or (!Y3 Y2 !Y1 X1) A = (Y2 Y1) or (Y2 X3) 12 Lo Schematico in Xilinx 13 TestBench: segnali di prova 14 Simulazione Behavioural 15 Simulazione Behavioural In rosso è indicato il segnale di reset (res) In verde i segnali di ingresso (X1,X2, e X3) In giallo i segnali di stato (Y1, Y2 E Y3) In blu i segnali di uscita (A e D) 16 Simulazione Behavioural Al primo step, il res è uguale a 1, e resetta il sistema. Successivamente dopo l’ingresso (X1=X2=X3=0 che significa nessun tasto premuto) si preme il pulsante di aumento del volume (X3=1) e soltanto al rilascio, l’uscita indica l’aumento del volume (A=1,D=0). Poi viene premuto il tasto per la diminuzione del volume (X1=1), e dopo il rilascio l’uscita indica la diminuzione del volume (A=0, D=1). Infine viene premuto il tasto stop (X2=1) e al rilascio il sistema torna allo stato iniziale (Y1=Y2=Y3=0 ) 17 Simulazione PostRoute 18 Simulazione PostRoute Grazie alla simulazione PostRoute si possono apprezzare i ritardi, che sono causa della tecnologia del circuito. 19