PROGETTO 1
Un lettore di musica digitale è dotato di un sistema per la regolazione del volume composto da tre
pulsanti ‘+’ e ‘–‘ e ‘[]’ e progettato in modo che: in posizione di riposo nessuno dei tre pulsanti risulti
premuto (– + = 000) e in ogni istante al più possa essere premuto un solo pulsante. Non si consideri
possibile il rilascio di un pulsante e la contemporanea pressione di un altro.
– [] +
Progettare una rete sequenziale asincrona (RSA) con tre ingressi ‘+’ e ‘–‘ e ‘’ e due uscite 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).
• 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.
• 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.
DIAGRAMMA DEGLI STATI PRIMITIVO
Ogni stato è stabile per una sola configurazione d’ingresso.
La rete è di MEALY, dunque le uscite A e D dipendono anche dagli ingressi oltre che
dagli stati, quindi dalle variabili di stato.
Nelle transizioni tra due stati che hanno uscita diversa si può mettere un’indifferenza,
utile a facilitare la sintesi della funzione d’uscita.
Il Diagramma è simmetrico.
TABELLA DEGLI STATI
Le variabili di ingresso della RSA assegnate ai pulsanti fisici sono: X1 ( - ), X2 ( [] ), X3 ( +)
Stati stabili per i dati ingressi
La tabella è non completamente
Specificata.
Cerchiamo di ridurre il numero degli
Stati e la complessità della rete
trovando gli stati compatibili
e le classi di compatibilità.
L’obbiettivo è di trovare il più piccolo
insieme chiuso di classi di compatibilità
che copre l’insieme di stati su cui
la rete è definita.
TABELLA TRIANGOLARE DELLE IMPLICAZIONI
Classi di Compatibilità:
( [AE] , [B] , [C] , [DE] , [DH] , [EH] , [F] , [G] )
Classi massime di Compatibilità:
( [AE] , [B] , [C] , [DEH] , [F] , [G] )
Classi scelte:
[AE] => α
[B] => β
[C] => χ
[DEH] => δ
[F] => Φ
[G] => γ
Lasciando A da solo si
rispettano comunque
chiusura e copertura
TABELLA DEGLI STATI RIDOTTA
Insieme chiuso e
coperto di Classi di
Compatibilità; nel nostro
Caso sono tutte Massime.
Corse
Con 6 stati ci occorrono 3 variabili di stato
( primo intero >= Log2 (6) = 3 )
TABELLA DELLE TRANSIZIONI
In ogni casella è scritto: codifica binaria dello stato / uscite AD.
Le caselle colorate indicano i punti di partenza e arrivo delle transizioni con corsa;
i numeri colorati indicano tutti i passaggi per arrivare a fine transizione.
SINTESI DELLA RETE (RSA)
Per le troppe variabili presenti ho optato per una
sintesi con FF SR , che di solito riduce il numero di
raggruppamenti rettangolari da cercare per la sintesi
delle funzioni S ed R.
SINTESI DELLE FUNZIONI S,R,Y
• Transizione della Variabile di stato 0 >> 1 equivale a SR=10 (1 per S)
• Transizione della Variabile di stato 1 >> 0 equivale a SR=01 (1 per R)
• Gli 1 senza transizione equivalgono a SR= -0 (indifferenza per S)
• Gli 0 senza transizione equivalgono a SR= 0- (indifferenza per R)
• Infine si trovano S ed R mediante i massimi raggruppamenti rettangolari
potenza di 2 (implicanti primi), quindi scegliendo una somma irridondante
di implicanti primi essenziali che corrisponde ad una realizzazione di
costo minimo.
• La Variabile di stato equivale a Y=S+(!RY) con SR=11 impossibile.
SINTESI DI S ed R
S1= X3 * !Y2 * !Y3
R1= X2 * !Y2 + X1 * Y1 + X3 * !Y2 * Y3
S2= X1 * !Y3 + !X2 * !X3 * Y1
R2= X2 * !Y3 + Y1 * Y3 + X1 * Y3 + X3 * Y2 * !Y1 * !Y3
S3= X3 * Y1 * Y2 + !X1 * !X2 * !X3 * !Y1 * Y2
R3= X2 + X3 * !Y1 * Y2 + !X3 * !Y2 * !X1
Esecuzione in VHDL (Xilinx)
ENTITY
VETTORI S[3..1] e R[3..1]
ARCHITECTURE
(Somme irridondanti di implicanti primi essenziali)
TEST BENCH – PROCESSO DI STIMOLI
PARTE 1
PARTE 2
SIMULAZIONE BEHAVIORAL PARTE 1/2
SIMULAZIONE BEHAVIORAL PARTE 2/2
SIMULAZIONE POST ROUTE PARTE 1/2
: ESEMPI DI RITARDO DELLA RETE
SIMULAZIONE POST ROUTE PARTE 2/2
Si capisce che è una Rete di Mealy perché AD commuta in anticipo
Rispetto al commutare dello stato Y[3..1]
Scarica

Presentazione