Testo dell’esercizio L’ascensore di un edificio a 2 piani utilizza 2 sensori S0, S1 per determinare la posizione della cabina passeggeri. Il segnale generato da ciascun sensore va a 1 quando l’ascensore si trova esattamente all’altezza del piano corrispondente (piano terra per S0, piano primo per S1). La pulsantiera dell’ascensore è formata da due tasti P0 e P1: P0=1 indica la pressione del tasto “Piano terra”, P1=1 indica la pressione del tasto “Primo piano”. Una rete sequenziale asincrona deve generare opportunamente i segnali U(p) e D(own) al fine di far muovere la cabina passeggeri attivando il motore verso l’alto (U=1,D=0) o verso il basso (U=0,D=1). L’avviamento del motore deve iniziare quando il pulsante che codifica il piano di destinazione viene rilasciato e terminare nel momento in cui viene raggiunto il piano di destinazione. Ovviamente il motore non deve avviarsi se viene selezionato come piano di destinazione lo stesso piano in cui si trova già l’ascensore. Si ipotizzi che i tasti P0 e P1 della pulsantiera non siano mai premuti contemporaneamente e che possano essere premuti solamente quando l’ascensore è fermo al piano. 1
Diagramma degli stati 2
Tabella degli stati primitiva 3
Tabella Triangolare 4 AC ed EG essendo classi non compatibili vengono sostituite in tabella da una X
Classi massime di compatibilità Dalla tabella triangolare possiamo ricavare le seguenti classi di compatibilità: [A,E,Y,Z] [G,H] [C,D] [B,F] 5
Tabelle Ridotte 6 Le corse critiche sono evidenziate in grassetto e sottolineate
Tabelle Ridotte 7
Sintesi Finale 8 Dalle mappe di Karnaugh ricavo le due funzioni Y0 e Y1 e le uscite U e D: Y0 = Y0 !S1 + S1 P0 + S0 P1 Y1 = Y1 !S0 + Y0 P0 + Y0 P1 U = !Y1 Y0 !P0 !P1 = !( Y1 + !Y0 + P0 + P1 ) D = Y1 !Y0 !P0 !P1 = !( !Y1 + Y0 + P0 +P1 )
Schematico Xilinx 9
Simulazione Behavioral 10 - In Rosso il segnale di Reset - In Arancione i sensori S0 e S1 - In Giallo i pulsanti P0 e P1 - In Blu le due funzioni Y0 e Y1 - In Bianco le due uscite U e D Osservazioni: Dopo aver resettato la rete ponendo reset=1 per i primi 100ns l’ascensore si trova fermo al piano terra (S0=0), la pressione del pulsante P0 (140ns) non comporta quindi alcun movimento. La successiva pressione di P1 (220ns) comporta il movimento dell’ascensore verso l’alto (U=1) fino a quando il primo piano non viene raggiunto (S1=1). A questo punto l’ascensore si trova fermo al primo piano, la pressione del pulsante P1 (480ns) non comporta quindi alcun movimento. La successiva pressione di P0 (560ns) comporta il movimento dell’ascensore verso il basso (D=1) fino a quando non viene raggiunto il piano terra (S0=1).
Simulazione Post-Route 11 - In Rosso il segnale di Reset - In Arancione i sensori S0 e S1 - In Giallo i pulsanti P0 e P1 - In Blu le due funzioni Y0 e Y1 - In Bianco le due uscite U e D La simulazione Post-Route evidenzia i ritardi nella propagazione dei segnali, gli stimoli di input sono gli stessi utilizzati nella simulazione Bahavioral della slide precendente. Le transizioni multiple che abbiamo dovuto introdurre sono visibili nella pressione del tasto P1 (220ns) e nella pressione del tasto P0 (560ns) ma, come previsto, non danno comportamenti errati (glitch) o ritardi eccessivamente marcati.