Macchine Sequenziali

Похожие документы
Calcolatori Elettronici

Calcolatori Elettronici A a.a. 2008/2009. RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin

Reti sequenziali. Nord

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

Flip-flop, registri, la macchina a stati finiti

Circuiti sequenziali

Circuiti sincroni Circuiti sequenziali: i bistabili

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Circuiti sequenziali e latch

Esercitazioni di Reti Logiche. Lezione 5

Macchine sequenziali. Automa a Stati Finiti (ASF)

Introduzione. Sintesi Sequenziale Sincrona. Modello del circuito sequenziale. Progetto e strumenti. Il modello di un circuito sincrono può essere

Calcolatori Elettronici

Flip-flop e loro applicazioni

Sintesi di Reti Sequenziali Sincrone

I bistabili ed il register file

Automi a stati finiti

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno

Flip-flop Macchine sequenziali

Esercizio 1 (12 punti) Minimizzare il numero di stati dell automa qui rappresentato. Disegnare l automa minimo.

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Circuiti Sequenziali & Somma FP

Esercizi Logica Digitale,Circuiti e Bus

Flip-flop, registri, la macchina a stati finiti

1. Automi a stati finiti: introduzione

Introduzione I contatori sono dispositivi fondamentali nell elettronica digitale e sono utilizzati per:

Fondamenti di informatica II 1. Sintesi di reti logiche sequenziali

Introduzione - Modello. Introduzione - progetto e strumenti

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Sintesi di Reti sequenziali Sincrone

(competenze digitali) CIRCUITI SEQUENZIALI

Prova d esame di Reti Logiche T 10 Giugno 2016

Esercizio sugli automi di Moore

Calcolatori Elettronici Reti Sequenziali Asincrone

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione.

Compito A. Esercizio 1 (13 punti) Minimizzare l automa descritto dalla seguente tabella degli stati

Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer

I CONTATORI. Definizioni

Flip flop: tempificazione latch ed edge-triggered

Esercitazione : REALIZZAZIONE IMPIANTO SEMAFORICO

Circuiti sequenziali. Circuiti sequenziali e applicazioni

Elettronica dei Sistemi Digitali Registri di memoria CMOS e reti sequenziali

Domande di Reti Logiche compito del 29/1/2016

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

I Indice. Prefazione. Capitolo 1 Introduzione 1

Esercitazioni di Reti Logiche

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Laurea Specialistica in Informatica

PSPICE Circuiti sequenziali principali

FSM: Macchine a Stati Finiti

I REGISTRI. Reti autonome e contatori

Il processore. Istituzionii di Informatica -- Rossano Gaeta

PSPICE simulazione di circuiti digitali Flip Flop M/S, Moltiplicatore parallelo, Memoria SRAM, sommatore, comparatore

COMPITO A Esercizio 1 (13 punti) Dato il seguente automa:

Algebra di Boole X Y Z V. Algebra di Boole

Sistemi Web per il turismo - lezione 3 -

Reti sequenziali sincrone

Circuiti sequenziali e elementi di memoria

LATCH E FLIP-FLOP PREMESSA

LATCH E FLIP-FLOP PREMESSA

Architettura hardware

Il Processore. Informatica di Base -- R.Gaeta 27

I circuiti elementari

Esercizi svolti e da svolgere sugli argomenti trattati nella lezione 25

Per sistema di acquisizione dati, si deve intendere qualsiasi sistema in grado di rilevare e memorizzare grandezze analogiche e/o digitali.

Esercitazioni di Reti Logiche. Lezione 4

Richiami di Algebra di Commutazione

EFFETTI LUMINOSI DI SCORRIMENTO DI LUCI OTTENUTI MEDIANTE UN GENERATORE DI SEQUENZE.

A.C. Neve Esercizi Digitali 1

Architettura dei computer

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Reti logiche

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1.

Esercitazioni di Reti Logiche

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

Architettura dei Calcolatori Reti Sequenziali Sincrone

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale

Reti Combinatorie: sintesi

Il Processore: l unità di controllo

Registri. Registri semplici

FUNZIONI BOOLEANE. Vero Falso

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010 ASF

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Codifica binaria. Rappresentazioni medianti basi diverse

Algebra di Boole Algebra di Boole

Algebra di Boole e reti logiche

Транскрипт:

Macchine Sequenziali Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net

Limiti delle reti combinatorie Ogni funzione di n variabili binarie, con n finito grande a piacere può essere realizzata da una rete combinatoria. In una rete combinatoria il segnale di uscita da una porta non può mai riapparire come segnale di ingresso della stessa porta Per realizzare funzioni complesse sarebbe quindi necessario usare reti con un numero molto elevato di porte (problemi di costo e di tempo) [es. nella moltiplicazione/divisione il numero di porte cresce con n 2 ] Se gli n input non arrivano simultaneamente, occorre memorizzarli per fare il calcolo con una rete combinatoria. 2

Il ruolo del tempo I circuiti dotati di memoria prevedono l uso di controreazione: diventa cruciale controllare i diversi istanti in cui i segnali si presentano all ingresso di una porta Le reti sequenziali usano un altro circuito elettronico detto temporizzatore (clock pulse generator) I segnali emessi dal temporizzatore servono a sincronizzare la rete 3

Segnali di temporizzazione (clock) Un segnale di clock è un segnale che evolve con un periodo (tempo di ciclo) predeterminato e costante (intervallo di tempo fra 2 segnali di clock consecutivi) La frequenza di clock è l inverso del periodo (numero di cicli di clock al secondo) Esempio: frequenza 500 MHz, periodo 2 ns Esistono diverse metodologie di temporizzazione 4

Metodologia di temporizzazione sensibile ai livelli Livello alto Periodo (ciclo) di clock Livello basso In questa metodologia le variazioni degli elementi di stato avvengono in corrispondenza dei livelli alti o di quelli bassi 5

Metodologia di temporizzazione sensibile ai fronti Fronte di discesa Periodo (ciclo) di clock Fronte di salita In questa metodologia uno dei due fronti è detto attivo e causa le variazioni di stato, cioè il contenuto degli elementi di stato può cambiare solo in corrispondenza del fronte attivo del clock 6

Elementi di memoria Gli elementi di memoria memorizzano informazioni di stato L uscita di un elemento di memoria dipende sia dai suoi ingressi che dal valore memorizzato all interno dell elemento stesso (lo stato) I circuiti che contengono elementi di memoria sono detti sequenziali 7

Una rete non combinatoria: il Latch SR R Q S Q r R 1 Q s S 0 Q 8

Latch SR (set-reset) Elemento di memoria per la memorizzazione di 1 bit (deve ricordare due situazioni) Ha 2 ingressi, R ed S, e si comporta secondo le regole: R=1, S=0 memorizza 0 R=0, S=1 memorizza 1 R=S=0 ricorda la situazione corrente R=S=1 non è permesso Tabella di transizione R S Q(t) Q(t+1) 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0-1 1 1 t - t+ t 9

Per descriverlo Devo specificare: I = {0,1} insieme dei simboli di ingresso U = {0,1} insieme dei simboli di uscita S = {S 0,S 1 } insieme degli stati (situazioni da ricordare) δ funzione di transizione che specifica il nuovo stato in base allo stato corrente e all ingresso (la tabella) ω funzione di uscita che specifica il valore di uscita in base allo stato corrente e all ingresso (in questo caso l identità) Automa A = <I, U, S, δ, ω> È comodo utilizzare la seguente rappresentazione grafica: 10

Una descrizione grafica (s, r) (0 i, 0 i ) 0 s 0u (1 i, 0 i ) 1 s 1u (0 i, 0 i ) (0 i, 1 i ) (0 i, 1 i ) (1 i, 0 i ) (1,1) proibito r R 1 Q s S 0 Q 11

Latch SR sincrono Ha in ingresso un segnale di clock e la variazione di stato viene attivata dal clock R segnale orologio S Q Q 12

Latch di tipo D(elay) sincrono Memorizza il valore del dato D presente in ingresso Permette di risolvere l ambiguità del latch RS: infatti R=S=1 non si può verificare. segnale orologio D Q Q Tabella di transizione D Q(t) Q(t+1) 0 1 x x 0 1 13

Una descrizione grafica 1 i 0 i 0 s 0u 1 s 1u 1 i 0 i I FFD U clock 14

Latch e Flip-flop Il latch non permette, durante lo stesso ciclo di clock, di leggere il segnale in uscita e di modificare quello in ingresso Infatti, se il segnale d ingresso è applicato prima che sia stato letto quello di uscita, il latch potrebbe commutare ed il segnale letto potrebbe non essere quello desiderato Il flip-flop (circuito flip-flop master slave) permette la scrittura e la lettura simultanea Nel seguito useremo sempre flip-flop come elementi di stato 15

Flip-flop master-slave segnale orologio r s R S 1 0 R S 1 0 Q Q Collegamento di 2 latch in serie: il latch master riceve gli ingressi e il latch slave produce le uscite Si sfruttano i 2 livelli del ciclo di clock per effettuare in tempi diversi i cambiamenti di stato dei due latch Durante il livello attivo è possibile la lettura, dato che è nel livello passivo che il latch slave cambia stato. 16

Macchine sequenziali Consideriamo sistemi il cui numero di stati interni distinti è finito e corrisponde a tutti i possibili valori degli elementi di memoria interna Con n bit di memoria si hanno 2 n stati La funzione di stato futuro è una funzione combinatoria che calcola il valore del prossimo stato assunto dal sistema in base agli ingressi ed allo stato presente Allo stesso modo, la funzione di uscita calcola le uscite Le macchine considerate sono di tipo sincrono 17

Macchine a stati finiti Le macchine (automi) a stati finiti sono descrivibili mediante: I = {i 1, i 2,, i p } insieme dei simboli di ingresso U = {u 1, u 2,, u r } insieme dei simboli di uscita S = {s 1, s 2,, s n } insieme degli stati δ funzione di transizione che specifica il nuovo stato in base allo stato corrente e all ingresso ω funzione di uscita che specifica il valore di uscita in base allo stato corrente e all ingresso Automa A = <I, U, S, δ, ω> Questi 5 insiemi possono essere descritti anche graficamente 18

Macchina sequenziale di Moore Ingressi Stato presente Funzione di stato futuro Stato futuro Funzione di uscita Uscite 19

Macchina sequenziale di Mealy Ingressi Stato presente Funzione di stato futuro Stato futuro Funzione di uscita Uscite 20

Macchine di Moore e di Mealy Le macchine di Mealy hanno, per ogni arco, un simbolo di entrata e uno di uscita. Nelle macchine di Moore l uscita è invece già codificata nel valore dello stato in cui si trova la macchina, ovvero la funzione di uscita dipende solo da S anziché da I x S. È possibile trasformare una macchina di Mealy in una di Moore e viceversa, solitamente quelle di Moore hanno più stati. 21

Macchine di Moore e di Mealy In una macchina di Mealy si ha una uscita durante ciascuna transizione. In una macchina di Moore si ha una uscita dopo che è avvenuta la transizione e questa uscita dipende solo dal nuovo stato della macchina. Moore produce quindi un primo output, associato allo stato iniziale, non presente in un automa di Mealy. 22

Esempio di macchina a stati finiti Macchina che legge sequenze di simboli a, b, c e produce 1 ogni volta che legge un carattere diverso dal precedente, 0 altrimenti I = {a, b, c} U = {0, 1} S = {S0, S1, S2, S3} transizione Stato iniziale S0 c/1 S3 c/0 b/1 stato a/1 a/1 c/1 b/1 c/1 ingresso/uscita a/0 S1 a/1 b/1 S2 b/0 23

Esempio di funzionamento Tabella degli stati s a b c S0 S1, 1 S2,1 S3,1 S1 S1, 0 S2,1 S3,1 S2 S1, 1 S2,0 S3,1 S3 S1, 1 S2,1 S3,0 stato prossimo, uscita L automa si trova inizialmente nello stato S0 e riceve in ingresso la sequenza abccbaabb. Cosa succede? seq. ingr. a b c c b a a b b seq. stati S 1 S 2 S 3 S 3 S 2 S 1 S 1 S 2 S 2 seq. usc. 1 1 1 0 1 1 0 1 0 24

Esempio Doppia lampada con 3 modalità di accensione Quando la lampada è spenta e si gira l interruttore si accende la lampadina sinistra; se si gira di nuovo l interruttore si accende la lampadina destra e si spegne quella sinistra; se si gira l interruttore ancora una volta le due lampadine si accendono entrambe; infine, con un ultimo giro, le lampadine si spengono entrambe. 25

Macchina per la doppia lampada Stati = {S0, S1, S2, S3} S0 = nessuna lampadina accesa S1 = lampadina sx accesa S2 = lampadina dx accesa S3 = tutte e due accese Ingressi = {g, g} Uscite = {0, 1, 2} g S0 S1, 1 S1 S2 S2, 1 S3, 2 S3 S0, 0 g S0, 0 S1, 1 S2, 1 S3, 2 Tabella degli stati g/0 g/2 g/0 S0 S3 g/1 g/2 S1 S2 g/1 g/1 g/1 26

Contatori Un contatore è un dispositivo sequenziale che aggiorna periodicamente il suo stato secondo una regola che riprende il susseguirsi dei numeri naturali, ad esempio: 0000 0001 0010 0011 0100 - Prendiamo qui in considerazione solo contatori sincroni, ovvero che aggiornano il loro stato ad ogni ciclo di clock Contatore modulo k: conta da 0 a k-1 Un contatore modulo k può essere usato come un demoltiplicatore del segnale orologio: produce un segnale di uscita pari a 1 ogni k cicli di clock 27

Esempio: Contatore modulo 4 (Usato come demoltiplicatore del segnale orologio) EN/0 EN/0 EN/0 EN/0 EN/0 EN/0 S0 S1 S2 S3 EN/1 EN/0 Stati = {S0, S1, S2, S3} S0 : conteggio = 0 S1 : conteggio = 1 S2 : conteggio = 2 S3 : conteggio = 3 Ingressi = {EN} segnale di abilitazione Uscite = {0, 1} Sono necessari 2 bit per codificare gli stati e le combinazioni corrispondono esattamente a 0, 1, 2, 3 in binario S0 00 S1 01 S2 10 S3 11 28

Sintesi di una macchina sequenziale Ingressi Logica Combinatoria Uscite Stato presente Elementi di memoria Stato futuro clock 29

Sintesi di una macchina sequenziale Procedura 1. Specificare la macchina a stati finiti o la tabella degli stati 2. Definire una codifica per i simboli di entrata e per i simboli di uscita 3. Determinare il numero dei flip-flop necessari in base al numero degli stati e i valori da memorizzare nei flip-flop (assegnamento degli stati) 4. Derivare la tabella delle transizioni e delle uscite 5. Ricavare le formule per le variabili di stato a seconda del tipo di flip-flop scelto (funzione di stato prossimo) 6. Ricavare le formule per le variabili di uscita (funzione di uscita) 7. Realizzare la rete combinatoria che sintetizza le funzioni suddette. 30

Esempio Sommatore sequenziale a 2 stati Vengono sommate coppie di bit a i e b i di due operandi I = {00, 01, 10, 11} L uscita c i appartiene a U = {0, 1} Si distinguono 2 stati: riporto presente (R1) e riporto assente (R0) 00/0 0 01/1 R0 1 00/1 R1 11/1 10/1 10/0 31

Esempio Sommatore sequenziale a 2 stati Tabella degli stati corrispondente all automa a stato i b i 00 01 10 11 R0 R0,0 R0,1 R0,1 R1,0 R1 R0,1 R1,0 R1,0 R1,1 Assegnamento degli stati Stato y R0 0 R1 1 Usiamo un flip-flop di tipo D che memorizza il valore della variabile di stato y nell intervallo compreso fra due impulsi di clock successivi 32

Tabella delle transizioni e delle uscite a i b i y y' c i 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Formula per il flip-flop D y' = b i y+a i y+a i b i Formula per la variabile di uscita c i = a i b i y+ a i b i y+ a i b i y + a i b i y Sono le espressioni delle uscite di un full adder 33

Macchina sequenziale per un sommatore a 2 stati y a i b i Full adder FF c i y' clock Quali sono le differenze rispetto alla macchina combinatoria per la somma a n bit? 34

Riconoscitore di sequenze Macchina che legge sequenze di 0 e 1 di lunghezza arbitraria (I={0,1}) Produce in uscita 1 ogni volta che ha riconosciuto la sequenza 0111 (U= {0,1}) Identifichiamo 4 stati che indichiamo con -, 0, 01 e 011 : i nomi rappresentano la parte della sottosequenza finora riconosciuta Lo stato - è lo stato iniziale: nessun carattere della sottosequenza cercata è stato riconosciuto 35

Automa riconoscitore delle sequenze 0111 1/1 0/0-0 011 0/0 Per 4 stati bastano 2 flip-flop (tipo D) 0/0 0/0 01 Facciamo il seguente assegnamento degli stati Stato y 1-0 0 0 0 1 01 1 0 011 1 1 36

Tabella delle transizioni e delle uscite Stato Ingresso Stato futuro Uscita presente y 1 x y 1 ' ' z 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 y 1 ' = y 1 x + y 1 x = x(y 1 ) z = y 1 x ' = y 1 x + y 1 x + y 1 x + y 1 x + y 1 x= y 1 x + y 1 +y 1 x = x+ y 1 37

Macchina sequenziale per il riconoscitore di sequenze x y 1 z y 1 ' ' FF FF clock 38

Riconoscitori di sequenze Es.: S=0011000100-0/0 Hanno la struttura indicata se la sequenza è da ricercare in tutto il flusso di bit in ingresso all automa. 0 0/0 00 100 0/0 0100 0/0 0/0 0/0 0/1 0/0 00100 0/0 000100 1000100 In questo caso sono ammesse delle sovrapposizioni 11000100 0/0 011000100 39

Riconoscitori di sequenze Es.: S=0011000100 -/0-0/0 0/1 Hanno la struttura indicata se la sequenza è da ricercare in blocchi consecutivi di n bit -/0 -/0 -/0 0/0 0/0 0/0 (es.: numeri trasmessi in maniera sequenziale). -/0 -/0 0/0 0/0 -/0 0/0 -/0 0/0 -/0 0/0 40

Contatore bidirezionale Progettiamo un contatore modulo 4 che conta sia in avanti sia all indietro, a seconda del valore della variabile di ingresso x Se x = 0 il circuito conta in avanti, se x = 1 il circuito conta all indietro Se il valore del conteggio è 2 la variabile di uscita z viene posta a 1 (quando viene lasciato lo stato corrispondente a 2) altrimenti viene posta a 0 Ad ogni impulso di clock il circuito cambia stato in base al valore di x e al valore attuale del conteggio 41

Macchina a stati finiti per il contatore bidirezionale S0 0/0 S1 4 stati 2 flip-flop S3 0/0 0/1 1/1 S2 0/0 Stato y 1 S0 0 0 S1 0 1 S2 1 0 S3 1 1 42

Tabella delle transizioni e delle uscite Stato Ingresso Stato futuro U scita presente y 1 x y 1 ' ' z 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 z = y 1 '=y 1 +y 1 = y 1 '=y 1 x+ y 1 x+ y 1 x+ y 1 x = y 1 x 43

Macchina sequenziale per il contatore bidirezionale x y 1 z y 1 ' ' FF FF clock 44

Automa per la doppia lampada Stati = {S0, S1, S2, S3} S0 = nessuna lampadina accesa S1 = lampadina sx accesa S2 = lampadina dx accesa S3 = tutte e due accese Ingressi = {g, g} Uscite = {0, 1, 2} Codifica degli stati S0 00 S1 01 S2 10 S3 11 Per 4 stati sono necessari 2 flip-flop: per gli stati usiamo le variabili y 1 e Codifica degli ingressi = {0, 1} per l ingresso usiamo la variabile x Codifica delle uscite = {00, 01, 10} Per le uscite usiamo le variabili z 1 e z 0 45

Automa per la doppia lampada x 0 1 0/00 S0 0 S3 0/10 S0 S0, 00 S1, 01 S1 S2 S1, 01 S2, 01 S2, 01 S3, 10 S3 S3, 10 S0, 00 Tabella degli stati 1 S1 0/01 1 1/10 S2 0/01 46

Tabella delle transizioni e delle uscite per la doppia lampada Stato presente Ingressi Stato prossimo Uscite y 1 x y 1 ' ' z 1 z 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 = y 1 x + y 1 x + y 1 x + y 1 x y 1 = y 1 x + y 1 x + y 1 x + y 1 x 6 mintermini z 0 = y 1 x + y 1 x + y 1 x + y 1 x z 1 = y 1 x + y 1 x 47

PLA che realizza la logica combinatoria y 1 x y 1 z 1 = y 1 x + y 1 x + y 1 x + y 1 x y 1 = y 1 x + y 1 x + y 1 x + y 1 x z 0 z 0 = y 1 x + y 1 x + y 1 x + y 1 x z 1 = y 1 x + y 1 x 48

Macchina sequenziale per la doppia lampada x z 1 y 1 Logica Combinatoria (PLA) ' y 1 ' z 0 FF FF clock 49

Macchina distributrice La macchina accetta monete da 100 e 200 Codifichiamo gli ingressi con le variabili x 1 e x 2 x 2 x 1 0 0 nessuna moneta 0 1 moneta da 100 1 0 moneta da 200 I = {00, 01, 10} Fornisce il prodotto quando viene raggiunto l importo di 500 (uscita 1) Convenzione: chiamiamo ogni stato della macchina con l importo raggiunto 50

Automa per macchina distributrice 00/0 0 00/0 0 100 10/0 10/0 0 0 200 300 00/0 00/0 01/1 10/1 10/0 400 0 00/0 10/1 51

Assegnamento degli stati Per 5 stati sono necessari 3 flip-flop (tipo D): y 2, y 1, Facciamo il seguente assegnamento degli stati Stato y 2 y 1 0 0 0 0 100 0 0 1 200 0 1 0 300 0 1 1 400 1 0 0 Deriviamo dall automa la tabella delle transizioni e delle uscite 52

Tabella delle transizioni e delle uscite Stato presente Ingressi Stato prossimo Uscite y 2 y 1 x 2 x 1 y 1 y 2 z 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 53

Macchina sequenziale risultante x 2 x 1 y 2 y 1 Logica Combinatoria z y 2 ' y 1 ' ' FF FF FF clock 54

Esercizi 1. Realizzare la logica combinatoria per la macchina distributrice (ad es. con una PLA) 2. Realizzare la logica combinatoria della macchina sequenziale corrispondente alla doppia lampada con circuiti and/or e con una ROM 55

Macchina per il controllo di un semaforo NS Consideriamo solo le luci verde e rossa EO EO Ingressi = {AutoNS, AutoEO} Uscite = {LuceNS, LuceEO} NS Stati = {VerdeNS, VerdeEO} 56

Tabella degli stati Ingresso Stato VerdeNS VerdeEO 00 01 10 11 VerdeNS,10 VerdeEO,01 VerdeNS,10 VerdeEO,01 VerdeEO,01 VerdeEO,01 VerdeNS,10 VerdeNS,10 Configurazioni di ingresso AutoNS AutoEO 0 0 0 1 1 0 1 1 Assegnamento degli stati y Configurazioni di uscita LuceNS LuceEO VerdeNS 0 0 1 VerdeEO 1 1 0 57

Macchina di Mealy per il controllo di un semaforo 00/10 00/01 01 11 0 1 10/10 11/10 10/10 01 58

Tabella delle transizioni e delle uscite Stato Ingressi Stato Uscite presente prossimo y AutoNS AutoEO y' LuceNS LuceEO 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 y' = yautonsautoeo + yautonsautoeo + yautonsautoeo + yautonsautoeo = yautons + yautoeo LuceEO = y' LuceNS = y' 59

Macchina sequenziale per il controllo del semaforo relativa alla macchina di Mealy AutoNS AutoEO y LuceEO y' LuceNS FF clock 60

Macchina di Moore per il controllo di un semaforo 00 00 01 11 0 / 10 1 / 01 10 11 10 01 61

Funzione di stato prossimo e funzione di uscita nel caso della macchina di Moore Funzione di stato prossimo Stato presente Ingressi Stato prossimo y AutoNS AutoEO y' 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 Funzione di uscita Stato Uscite presente y LuceNS LuceEO 0 1 0 1 0 1 lucens = y luceeo = y y' = yautons + yautoeo 62

Macchina sequenziale per il controllo del semaforo relativa alla macchina di Moore LuceNS AutoNS Logica combinatoria per la funzione di stato futuro AutoEO y Registro di stato y' LuceEO clock 63

Macchina sequenziale per il controllo del semaforo relativa alla macchina di Moore AutoNS AutoEO y LuceEO y' LuceNS FF clock 64

In conclusione Nella macchina di Moore le uscite dipendono solo dallo stato presente Occorre fare 2 tabelle di verità: una tabella rappresenta la funzione di stato futuro, dove lo stato futuro è funzione degli ingressi e dello stato presente l altra tabella rappresenta la funzione di uscita, dove l uscita è funzione solo dello stato presente Nella macchina sequenziale la logica combinatoria può essere divisa in 2 parti: la prima determina le uscite in base allo stato presente e la seconda determina lo stato futuro in base agli ingressi e allo stato Vantaggio in termini di velocità (se le uscite devono essere disponibili il più presto possibile: si pensi al controllo del processore multi-ciclo) e in termini di dimensioni Svantaggio: il numero degli stati che può essere maggiore 65

Esempi di riduzione degli stati 0/0 0/1 S 1-0/0 S 2 0/1 0/0 - S 1-2 S 3 1/1 S 4 S 3 1/1 S 4 0/0 0/1 0/1 0/0 0/1 0/0 S 1 1/1 - S 2 1/1 0/1 1/1 0/0 0/1 - S 1-2 1/1 1/1 S 3 S 3 0/0 0/0 66

Esempi di riduzione degli stati - 1/1 1/1 0/0 S 1 S 3 S 2 0/1 0/1 0/0 0/0 1/1 - S 1-2 S 3 0/1 0/0 1/1 S 1 0/1 0/1 S 2 S 1-2 0/1 67

Riferimenti Computer Organization and Design The Hardware/Software Interface 3 rd Edition David A. Patterson, John L. Hennessy Appendice B Versione italiana: Struttura e Progetto dei Calcolatori L Interfaccia Hardware-Software 2 a edizione Zanichelli http://en.wikipedia.org/ o http://it.wikipedia.org/ 68