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 S0-S1-P0-P1 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 A - - - - - - - - - - - - Z - B A B - - - - - - - - - - - - - - B C C D - - - - - - - - - - - - - - C D D - - - - - - E - - - - - - - - E - - - - F - Y E - - - - - - - - F - - - - F - - G - - - - - - - - G H - - - - - - G - - - - - - - - H H - - - - - - - - - - - - - - A Y - - - - - - Y E - - - - - - - - Z - - - - - - - - - - - - Z - - A 3 Tabella Triangolare B AC C X X D X X - E - - X X F - - X X EG G X X X X X X H X X X X X X - Y - - X X - EG X X Z - AC X X - - X X - A B C D E F G H Y AC ed EG essendo classi non compatibili vengono sostituite in tabella da una X 4 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 UD Y1 Y0 S0 S1 00 01 11 10 UD Y1 Y0 S0 S1 00 01 11 10 00 AEYZ 00 - 00 - 00 00 AEYZ 00 - 00 - 11 10 CD 01 01 00 - 01 00 CD 01 - - - - 00 BF 11 - 10 - 01 00 BF 11 - - - 11 01 GH 10 10 10 - 00 00 GH 10 - - - - P0 P1 = 00 UD P0 P1 = 01 Y1 Y0 S0 S1 00 01 11 10 UD Y1 Y0 S0 S1 00 01 11 10 00 AEYZ 00 - 11 - 00 00 AEYZ 00 - - - - 00 CD 01 - - - - 00 CD 01 - - - - 00 BF 11 - 11 - - 00 BF 11 - - - - 00 GH 10 - - - - 00 GH 10 - - - - P0 P1 = 10 P0 P1 = 11 Le corse critiche sono evidenziate in grassetto e sottolineate 6 Tabelle Ridotte UD Y1 Y0 S0 S1 00 01 11 10 UD Y1 Y0 S0 S1 00 01 11 10 00 AEYZ 00 - 00 - 00 00 AEYZ 00 - 00 - 01 10 CD 01 01 00 - 01 00 CD 01 - - - 11 00 BF 11 - 10 - 01 00 BF 11 - - - 11 01 GH 10 10 10 - 00 00 GH 10 - - - - P0 P1 = 00 UD P0 P1 = 01 Y1 Y0 S0 S1 00 01 11 10 UD Y1 Y0 S0 S1 00 01 11 10 00 AEYZ 00 - 01 - 00 00 AEYZ 00 - - - - 00 CD 01 - 11 - - 00 CD 01 - - - - 00 BF 11 - 11 - - 00 BF 11 - - - - 00 GH 10 - - - - 00 GH 10 - - - - P0 P1 = 10 P0 P1 = 11 7 Sintesi Finale 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 ) 8 Schematico Xilinx 9 Simulazione Behavioral - 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). 10 Simulazione Post-Route - 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. 11