Gli automi. Prof. Scanu Antonio



Documenti analoghi
Reti sequenziali sincrone

Appunti sulla Macchina di Turing. Macchina di Turing

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Macchine sequenziali

4 3 4 = 4 x x x 10 0 aaa

risulta (x) = 1 se x < 0.

Strutturazione logica dei dati: i file

Laurea Specialistica in Informatica

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

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

Dispense di Informatica per l ITG Valadier

Fasi di creazione di un programma

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Lezione 8. La macchina universale

Luigi Piroddi

Capitolo 2. Operazione di limite

WORD (livello avanzato): Struttura di un Documento Complesso. Struttura di un Documento Complesso

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

ALGEBRA DELLE PROPOSIZIONI

USO DI EXCEL CLASSE PRIMAI

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

FSM: Macchine a Stati Finiti

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Database 1 biblioteca universitaria. Testo del quesito

Testi di Esercizi e Quesiti 1

Reti sequenziali. Esempio di rete sequenziale: distributore automatico.

Corso di. Dott.ssa Donatella Cocca

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Dispensa di Informatica I.1

SISTEMI DI NUMERAZIONE E CODICI

Convertitori numerici in Excel

Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Sia data la rete di fig. 1 costituita da tre resistori,,, e da due generatori indipendenti ideali di corrente ed. Fig. 1

CALCOLO COMBINATORIO

ESEMPIO 1: eseguire il complemento a 10 di 765

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Capitolo 13: L offerta dell impresa e il surplus del produttore

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Informazione analogica e digitale

FONDAMENTI di INFORMATICA L. Mezzalira

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

CONTATORI ASINCRONI. Fig. 1

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

Esercizio data base "Biblioteca"

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Appunti di: MICROSOFT EXCEL

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

Analisi e diagramma di Pareto

Soluzione dell esercizio del 2 Febbraio 2004

Macchine sequenziali sincrone. Macchine sincrone

Automazione Industriale (scheduling+mms) scheduling+mms.

Nozione di algoritmo. Gabriella Trucco

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

Comparatori. Comparatori di uguaglianza

Matematica in laboratorio

BOZZA MANUALE SDI-FVG PASSIVE SOMMARIO

Uso di base delle funzioni in Microsoft Excel

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Alessandro Pellegrini

Questa guida è realizzata per spiegarvi e semplificarvi l utilizzo del nostro nuovo sito E Commerce dedicato ad Alternatori e Motorini di avviamento.

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

Il principio di induzione e i numeri naturali.

Probabilità discreta

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Lezioni di Matematica 1 - I modulo

la scienza della rappresentazione e della elaborazione dell informazione

LE FUNZIONI A DUE VARIABILI

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

a b c Figura 1 Generatori ideali di tensione

Raggruppamenti Conti Movimenti

Appunti di Sistemi Elettronici

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Gestione Turni. Introduzione

Calcolo del Valore Attuale Netto (VAN)

Corrispondenze e funzioni

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

LA MOLTIPLICAZIONE IN CLASSE SECONDA

OSSERVATORIO REGIONALE CONTRATTI PUBBLICI DI LAVORI, SERVIZI E FORNITURE

Interesse, sconto, ratei e risconti

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND.

Quick Reference Giornale di Bordo (e-logbook)

13. Campi vettoriali

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo

Il calendario di Windows Vista

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

LINGUAGGI DI PROGRAMMAZIONE

Transcript:

Gli automi Prof. Scanu Antonio 2011/2012

Molteplici sono gli aspetti che caratterizzano una rete; forniamo quindi un quadro generale 1.1 INGRESSI, USCITE E STATI La parola "automa" evoca alla mente l'idea di macchina automatizzata, capace di eseguire azioni cicliche a imitazione dell'uomo, sostituendolo in compiti faticosi e ripetitivi. Anche nel linguaggio comune, riferendosi a una persona che compie una successione di azioni cicliche, si dice che egli agisce come un automa. In effetti questa idea comune si avvicina alla definizione tecnica, o almeno rappresenta un primo gradino per individuare compiutamente il concetto di automa. Il paragone con la nozione comune ci suggerisce che il lavoro di un automa si esplica come successione di azioni, secondo una gamma fissa preregistrata (automa stupido ma utile) oppure in risposta a sollecitazioni esterne (automa intelligente). Le azioni si susseguono in sequenza, il sistema evolve da una fase operativa alla successiva; pertanto l'automa è prima di tutto un sistema dinamico o sequenziale, ovvero un sistema che modifica il proprio stato con l'avanzare del tempo. Le azioni non hanno luogo con continuità bensì a scatti; dopo una breve fase di transito da uno stato al successivo, segue una fase di mantenimento di durata maggiore. Le azioni sono cioè separate da intervalli di tempo finiti, perciò l'automa è anche un sistema discreto. Nel compiere il suo ciclo di lavoro l'automa transita attraverso diverse situazioni interne, dette stati. Nel corso di un ciclo si verifica una successione di stati e il passaggio da uno stato all'altro è imposto sia dalla logica operativa intrinseca della macchina, sia da eventuali sollecitazioni esterne che condizionano il flusso operativo. Esempio: CAMBIO CANALE IN UN TELEVISORE Un qualsiasi telecomando per TV è oggi dotato, oltre che di un insieme più o meno esteso di pulsanti per l'accesso diretto ai canali, di due pulsanti per la selezione sequenziale, che permettono lo scorrimento in successione dei canali O, 1, 2... in avanti o in direzione opposta. L'automa incorporato nel televisore, oltre a essere in grado di captare il comando e commutare su un nuovo canale, deve conservare lo stato presente, corrispondente al canale sul quale si trova sintonizzato il TV. Se i canali sono ad esempio 20, l'automa deve poter assumere 20 stati differenti e poter transitare da uno stato al successivo o al precedente in funzione del comando ricevuto, che rappresenta la sollecitazione esterna. Un automa simile lo troviamo a bordo dei lettori di CD musicali: è quello incaricato di riprodurre i primi 10 secondi di ciascun brano in sequenza; in questo caso il transito da uno stato al successivo, ovvero da un brano al successivo avviene automaticamente, ed è demandato alla logica operativa intrinseca dell'automa. Per poter descrivere il funzionamento di un automa in modo preciso e rigoroso, non è sufficiente ricorrere all'approccio descrittivo con il quale abbiamo esordito, è necessario rappresentare simbolicamente gli elementi che ne identificano il comportamento e descrivere le relazioni che li correlano. Gli elementi fondamentali sono l'insieme quegli ingressi, che influenzano l'evoluzione del sistema, l'insieme degli stati, che originano le sequenze operative e l'insieme delle uscite, che sono gli

elementi utili. Un insieme di elementi prende il nome di alfabeto. Gli elementi di questi insiemi vengono definiti variabili. Le variabili vengono indicate con simboli convenzionali, qui riportati: Le Mv ariabili di ingresso: i 0 (t); i 1 (t); i 2 (t);... i M-1 (t); Le L variabili di uscita: u 0 (t); u 1 (t);... U L-1 (t); Le N variabili di stato: X 0 (t); X 1 (t); X 2 (t);... X N_ 1 (t). Per economia di scrittura, spesso ci si riferisce a un insieme di variabili con un solo simbolo, anziché enumerarle a una a una. I simboli compatti sono: insieme variabili di ingresso: I( t) insieme variabili di uscita: U(t) insieme variabili di stato: X( t) A un primo approccio possiamo rappresentare schematicamente l'automa generico mediante uno schema a blocchi (fig. 1.1), evidenziando le variabili di ingresso e uscita. L'introduzione e l esempio sembrano aver fatto luce sul concetto di automa. Eppure manca un tassello importante. Abbiamo detto che lo stato è responsabile dell'evoluzione del sistema, descrivendo le transizioni attraverso situazioni, ovvero stati interni, differenti. Dove sono le variabili di stato nello schema a scatola chiusa di figura1.1? Lo schema a blocchi con l'evidenziazione di ingressi e uscite non è sufficiente, dobbiamo mettere il sistema sotto una lente di ingrandimento "concettuale". Lo schema di figura 1.2 si riferisce al nostro caso: Il sistema descritto dallo schema si compone di due sezioni fondamentali: sezione di memoria: memorizza lo stato attuale; sezione logica: prepara lo stato futuro. Per poter avanzare attraverso la sequenza dei propri stati, una macchina automatica sequenziale deve ricordare lo stato nel quale si trova (ad esempio un orologio ricorda l'ora indicata) e avere una logica, una intelligenza, che le permetta di costruire, a partire dalla conoscenza dello stato attuale, lo stato futuro, cioè quello successivo. La macchina genera allora le uscite (output) in base alle sollecitazioni di ingresso (input) e allo stato interno, registrato nella propria memoria. Affinché il meccanismo sia cadenzato, è necessario poi un segnale che disciplini l'emissione delle sequenze, cioè blocchi il sistema nel proprio stato per un dato intervallo di tempo, dopodiché dia via libera

alla transizione allo stato successivo. Nello schema questa azione è assegnata simbolicamente a un interruttore, che si immagina comandato da un segnale periodico (il bilanciere nel caso di un orologio meccanico). Il segnale stop and go svolge il ruolo di temporizzazione, chiudendo e aprendo il circuito, quindi bloccando o rilasciando il processo di avanzamento degli stati. Esempio AUTOMA CHE GENERA LA SEQUENZA DEl NUMERI NATURALI POSITIVI Questo esempio dovrebbe fare luce su quanto detto ora. Un sistema, per generare automaticamente la sequenza 0, 1, 2, 3...,deve possedere una memoria (per conoscere il numero appena generato) e una logica (per costruire il numero successivo in base al numero appena generato). In questo caso la logica è molto semplice e consiste nel sommare 1 al numero appena generato: La tabella descrive sinteticamente questo processo. Esempio: APERTURA A COMBINAZIONE Si consideri una cassaforte con apertura a combinazione a 4 cifre. La sequenza numerica viene immessa facendo ruotare alternativamente a destra e a sinistra, in corrispondenza delle tacche numeriche, la manopola che comanda il congegno di apertura, introducendo una sequenza numerica prefissata. Il proprietario della cassaforte deve owiamente conoscere la combinazione e, mentre immette la sequenza, deve ricordare i numeri già introdotti, perché in base a questo stabilisce il numero successivo da introdurre. Supponendo che la combinazione prefissata sia 1357 egli, per essere sicuro di non scordarsi la combinazione, può limitarsi a memorizzare solo il primo numero della sequenza e affidarsi, per la ricostruzione della sequenza, allo schema logico consistente nel sommare ogni volta 2 alla cifra precedente. Chi aziona la cassaforte dispone quindi di due facoltà che applica contemporaneamente: memoria: per ricordare la sequenza introdotta; logica: per stabilire il numero successivo della sequenza. La cassaforte, per riconoscere la combinazione, opera allo stesso modo. Ma come può un meccanismo, sia esso meccanico, come le casseforti tradizionali, sia esso elettronico, agire in funzione del ricordo? Evidentemente possiede una memoria, naturalmente con caratteristiche più primitive di quella umana. La memoria si configura come uno stato assunto dal sistema al suo interno, uno stato che evolve, marcando le varie condizioni. Nel caso della combinazione meccanica, ad esempio, sono presenti apparati meccanici di precisione, come denti e ingranaggi,che disponendosi in posizioni diverse emulano la capacità del ricordo.

La funzione di memoria è strettamente correlata con lo stato. È la memoria del sistema a conservare lo stato, la condizione attuale. La successione passata degli stati rappresenta la "storia" del sistema; in base a questa storia si costruiscono gli stati futuri. Gli stati si indicano simbolicamente con la lettera maiuscola S seguita da un indice numerico progressivo, ovvero S 0,S 1, S 2,. A dire il vero noi avevamo detto che l'alfabeto di stato si indica con X e ciascuna delle sue variabili di stato con X 0 (t), x 1 (t), X 2 (t),... X N_ 1 (t). La notazione che fa uso della S è una mera rappresentazione simbolica, mentre le X(t) sono le variabili interne che fisicamente codificano lo stato. Il lettore potrà capire meglio questa differenza quando affronteremo le modalità di progettazione degli automi. Lo stato presente viene chiamato stato attuale e indicato come S(t), lo stato al passo successivo viene chiamato stato futuro e indicato come S(t + 1). Si noti che si è parlato di passo e non di istante di tempo. Questo perché il sistema è discreto e gli istanti di tempo sono distanziati tra loro di un intervallo finito. L'intervallo può avere diverse durate: ad esempio nel caso di un orologio digitale le cifre dei secondi sono intervallate di un secondo e quelle dei minuti di un minuto (lapalissiano). Il funzionamento di un automa è però indipendente dall'entità del passo. L'intervallo tra un passo e l'altro è di solito imposto da un segnale a onda quadra, detto dock, che gestisce la temporizzazione. Cambiando la frequenza di dock cambia il ritmo, ma il processo intimo rimane inalterato. Per queste ragioni, al posto della variabile t, si usa spesso la variabile naturale i, volendo intendere con S(i) lo stato i-esimo, senza fare riferimento ad un istante di tempo reale. 1. 2 DEFINIZIONE E RAPPRESENTAZIONE SCHEMATICA FORMALE Si definisce automa un sistema discreto (le variabili che lo caratterizzano possono assumere un numero limitato di valori) e dinamico (le sue variabili evolvono in modo automatico secondo una logica interna predefinita). Le variabili caratterizzanti il suo funzionamento si possono classificare in: variabili di ingresso, appartenenti all'insieme I(t): sono le sollecitazioni esterne, che non sono prodotte dal sistema ma ne condizionano il funzionamento; variabili di uscita; appartenenti all'insieme U(t): sono le grandezze interne del sistema che interessa osservare e utilizzare; variabili di stato, appartenenti all'insieme X( t): sono le grandezze che descrivono le varie tappe dell'evoluzione del sistema. Note le variabili di stato a un certo istante e noti gli ingressi, è possibile conoscere lo stato successivo del sistema. La nozione di variabile di stato implica la presenza nel sistema di parti con funzionalità di memoria. Il sistema, grazie alla conoscenza del proprio stato presente, memorizzato a un dato istante t, riesce con la propria logica interna a generare lo stato futuro all'istante t+1. Questo concetto è evidenziato dallo schema di figura 1.3.

In esso distinguiamo tre blocchi fondamentali: MEM, FTS e FTU. L'elemento di memoria MEM conserva lo stato X( t) all'istante t. La logica interna FTS prende il nome di Funzione Transizione di Stato. Questa ha un compito importantissimo, quello di costruire, a partire da X(t) e dall'ingresso allo stesso istante I(t), lo stato futuro X( t+ l). Questo verrà successivamente memorizzato e assumerà il ruolo di stato presente. Ma quando avviene questa sostituzione? Bisogna sapere che all'elemento MEM è associata una funzionalità temporale: la memorizzazione dell'ingresso X( t+1) e il conseguente trasferimento all'uscita viene comandato da una logica di temporizzazione. D'ora in poi adotteremo sempre il simbolo indicato nella figura 1.5, indipendentemente dal reale sistema implementavo, perché riteniamo sia quello che condensa in modo chiaro il ruolo di conservazione dello stato e di temporizzazione. Il simbolo è auto-esplicativo: MEM rappresenta la funzionalità di memoria, il disegno dell'orologio la funzionalità di temporizzazione. L'altro blocco fondamentale FTU rappresenta la Funzione Trasformazione di Uscita. Esso genera le uscite all'istante t, a partire dagli stati all'istante t ed eventualmente dagli ingressi all'istante t. Si distinguono a questo proposito due tipi di automi: automa di Moore: le uscite all'istante t dipendono solo dallo stato all'istante t (sistema proprio); automa di Mealy: le uscite all'istante t dipendono dallo stato all'istante t e anche dagli ingressi all'istante t (linea tratteggiata, sistema improprio).

Il concetto non cambia: il blocco FTS costruisce gli stati futuri X 0 (t+1), X 1(t+1),..., X N_ 1 (t+1) a partire dagli stati presenti X 0 (t), X 1(t),..., X N_ 1 (t) e dagli ingressi i 0 (t); i 1 (t); i 2 (t);... i M-1 (t); Il blocco FTU genera le uscite u 0 (t); u 1 (t);... U L-1 (t); a partire dagli stati attuali ed eventualmente, nel caso della macchina di Mealy, dagli ingressi attuali i 1 (t); i 2 (t);... i M-1 (t). Le linee tratteggiate sono relative appunto alla macchina di Mealy. Esempio: CONTASECONDI A UNA CIFRA O- 7 BINARIO Vogliamo descrivere, con lo schema a blocchi espanso, un contatore binario da 0 a 7, cioè un automa in grado di generare in uscita la successione dei numeri da 0 a 7, codificati come sequenze di '0' e '1 '. Gli stati presenti X 0 (t), X 1(t), X 2(t) passano attraverso la sezione logica dello schema mostrato in figura, che li analizza e fornisce i corretti stati futuri X 0 (t+1), X 1 (t+1), X 2 (t+1) L'associazione tra stati presenti e stati futuri è descritta dalla tabella di figura. Il concetto è evidente lo stato futuro viene costituito sommando 1 allo stato presente. Questa operazione viene espletata da adeguati circuiti interni, che saranno analizzati in uno dei successivi paragrafi. In questo caso particolare gli stati coincidono con le uscite.

1.3 RAPPRESENTAZIONE SIMBOLICO-MATEMATICA FORMALE La descrizione schematica del paragrafo precedente è la forma che permette una interpretazione immediata della logica globale di funzionamento degli automi. Non meno importante è la rappresentazione in forma simbolico-matematica, una forma che ha il pregio di essere compatta e "portatile", nel senso che, sia per scopi didattici, cioè di spiegazione, sia per l'attività di progettazione, è utile disporre di un modello mentale "tascabile", che può essere convenientemente utilizzato. La formulazione simbolico-matematica non è altro che una rappresentazione alternativa dello schema generale di un automa. Così come nello schema sono presenti due blocchi, quello superiore che descrive la dipendenza dello stato futuro da quello presente, e quello inferiore che descrive la corrispondenza tra stato e uscita, anche nella formulazione simbolico-matematica la logica di funzionamento viene descritta mediante due funzioni: la funzione transizione di stato FTS e la funzione trasformazione d'uscita FTU. Funzione transizione di stato (forma sintetica) La funzione transizione di stato in pratica afferma che lo stato futuro X( t+1) è funzione dello stato presente X (t) e dell'ingresso presente I (t) : X( t+ 1) =FTS (X(t), I( t)) Funzione trasformazione d'uscita (forma sintetica) La funzione trasformazione d'uscita afferma che l'uscita presente U (t) è funzione dello stato presente X( t) (e dell'ingresso presente I( t) se automa di Mealy):

U(t) = FTU(X(t), [l(t)]) In queste formulazioni sono stati adottati i simboli di insieme delle variabili. In tal caso si ha la corrispondenza con lo schema sintetico. Per avere un'idea più precisa delle relazioni occorre considerare il complesso delle variabili di ciascun insieme, giungendo alla formulazione delle funzioni in forma completa. In questo caso si ha la corrispondenza con lo schema espanso. Per un sistema con N stati, M ingressi e L uscite si hanno le seguenti formulazioni. Esempio: l CONTASECONDI A UNA CIFRA O,, 7 IN BINARIO Riprendiamo l'esempio precedente, rappresentando il contasecondi da 0 a 7 in forma simbolico- matematica anziché in forma schematica. La formulazione sintetica è di immediata stesura e interpretazione. È stato già detto che, semplicemente, lo stato futuro si può ricavare da quello presente sommando 1 e che le uscite coincidono con gli stati pertanto: X(t+1) = X(t)+1 U(t) = X(t) In effetti queste formule potrebbero essere direttamente applicate in questa forma che potremmo definire "nativa". Per implementarle basterebbe scrivere un programma in un qualsiasi linguaggio di programmazione, utilizzando -semplicemente l'istruzione matematica di somma. Si deve considerare però che gli automi sono di solito dispositivi stand-alone, cioè piccoli moduli di dimensioni ridotte, che lavorano a basso livello su variabili di tipo binario. Questo comporta l'individuazione di più stati interni per codificare un numero. Passiamo allora alla definizione con i tre stati interni.

Per la funzione transizione di stato, considerata la particolarità del sistema che non presenta ingressi e ha solo tre stati si può scrivere: X 0 (t+ 1) = FTS 0 (X 0 (t), X 1 (t), X 2 (t)) x 1 (t+ 1) = FTS 1 (X 0 (t), X 1 (t), X 2 (t)) x 2 (t + 1) =FTS 2 (X 0 (t), X 1 (t), X 2 (t)) Per la funzione trasformazione d'uscita, considerato che le tre uscite coincidono con i tre stati si può scrivere: U 0 (t) = X 0 (t) U 1 (t) = X 1 (t) U 2 (t) = X 2 (t) Si potrà replicare che questa formulazione è ancora in forma simbolica: non fa luce sulla reale struttura interna del sistema. Le espressioni hanno ancora carattere generale, non descrivono questo sistema particolare, con le sue peculiari funzionalità. È vero, ma è ancora presto per esplicitare le relazioni. Il problema qui si sposta a un livello più approfondito, diventa un problema di progettazione, e la progettazione sarà argomento di una delle prossime unità. Possiamo però riportare quelle che saranno le espressioni finali per dare un'idea della forma in cui si presentano. Si vede che si tratta di relazioni booleane: gli stati futuri si formano combinando opportunamente gli stati presenti mediante porte logiche. Queste formule non esauriscono necessariamente tutte le possibilità realizzative: dipende dalla scelta del tipo di implementazione, e anche questa discriminante sarà oggetto delle prossime unità. 2.0 DIAGRAMMA DEGLI STATI E RAPPRESENTAZIONE TABELLARE La descrizione del funzionamento e il disegno dell'automa possono essere utili per farsi un'idea della sua costituzione. Occorre però una forma comune, condivisa, che permetta di descrivere in modo univoco qualsiasi automa. a stati finiti. Da questa base di partenza è poi possibile procedere all'analisi dei metodi di progettazione. Le due formulazioni più efficaci sono il diagramma degli stati e la rappresentazione tabellare. Esse permettono di esaminare l'evoluzione della macchina, nel passaggio da uno stato interno all'altro, in conseguenza dell'applicazione di una qualsiasi sequenza di ingresso. Costituiscono una

rappresentazione grafica alternativa delle due note funzioni basilari: funzione di transizione di stato FTS e funzione trasformazione di uscita FTU Per scelta esplicita dell'autore quanto verrà detto si riferisce principalmente alla formulazione di automa secondo Moore. Esiste infatti una formulazione alternativa, detta di Mealy. L'accostamento di queste due formulazioni può ingenerare confusione, in una materia già di difficile approccio. Il confronto tra i due approcci viene fatto slittare più avanti dove le differenze e implicazioni concettuali dei due metodi potranno essere sviscerate più efficacemente sulla scorta delle conoscenze già acquisite. Diagramma degli stati Il diagramma degli stati permette di seguire in modo immediato l'evoluzione degli stati e delle uscite in conseguenza dell'applicazione di una sequenza di ingressi. Gli stati sono rappresentati da cerchi, detti nodi; alloro interno sono segnati lo stato e le conseguenti uscite, separati da una barra obliqua (fig. 2.1a). I nodi sono uniti da linee orientate, accanto alle quali sono specificati gli ingressi responsabili della transizione da uno stato al successivo (fig. 2.1b). Esempio DIAGRAMMA DEGLI STATI DI UN CONTATORE AVANTI-INDIETRO Un contatore avanti-indietro modulo 4 è un dispositivo a due uscite, che genera su queste la sequenza dei numeri binari da 0 a 4 cioè: 00 01 10 11 Il sistema dispone inoltre di un ingresso i, che comanda la direzione del conteggio: i= 0 conteggio in avanti i= 1 conteggio all'indietro Il sistema transita evidentemente attraverso 4 stati, corrispondenti ai quattro numeri generati. Partendo dallo stato S 0, se i= 0 il sistema si porta negli stati successivi, se i= 1 ripercorre a ritroso gli stati precedenti. Indichiamo di seguito il flusso degli stati, in funzione del valore apposto all'ingresso: i= 0 S 0 S 1 S 2 S 3 S 0 i= 0 S 0 S 3 S 2 S 1 S 0 In corrispondenza di questi stati le uscite U 1 e U 0 assumono i seguenti valori:

S 0 U 1 U 0 = 00, S 1 U 1 U 0 = 01, S 2 U 1 U 0 = 10, S 3 U 1 U 0 = 11 Tutto quello che è stato detto ora per descrivere la macchina viene condensato semplicemente nel seguente diagramma degli stati: Rappresentazione tabellare La rappresentazione tabellare è una rappresentazione alternativa ai diagramma degli stati, con lo stesso contenuto informativo. La descrizione del funzionamento viene ottenuta mediante due tabelle: la tabella funzione transizione di stato e la tabella funzione trasformazione d'uscita. Tabella funzione transizione di stato. La tabella della funzione di transizione di stato identifica le transizioni da uno stato al successivo in funzione degli ingressi. La tabella (fig. 2.2) riporta sulle righe gli stati presenti, sulle colonne gli ingressi e all'interno delle celle gli stati futuri. Tabella funzione trasformazione d'uscita. La tabella della funzione di trasformazione d'uscita associa a ciascuno stato le proprie uscite. Descrive i valori assunti dalle uscite in funzione dei soli stati nel caso della macchina di Moore (fig. 2.3a) oppure in funzione degli stati e degli ingressi nel caso della macchina di Mealy (fig. 2.3b).

Esempio RAPPRESENTAZIONE TABELLARE DI UN CONTATORE AVANTI-INDIETRO Riprendiamo l'esempio del contatore, utilizzato per spiegare i diagrammi di stato. In base alle considerazioni fatte, si perviene alla seguente tabella della funzione di transizione di stato. Si vede che nelle celle interne è riportato il valore dello stato futuro in corrispondenza dello stato presente (riga) e dell'ingresso (colonna). Nella tabella a fianco della funzione di trasformazione d'uscita è riportata l'uscita corrispondente allo stato associato. 2.1 IMPLEMENTAZIONE BINARIA Dopo aver chiarito il significato e il ruolo degli stati, dobbiamo stabilire come rappresentarli all'interno della macchina. Fino ad ora abbiamo simbolicamente rappresentato i diversi stati come S 0, S 1, S 2... Nella nostra mente questi si configurano proprio come simboli grafici,ma nel caso di un sistema di elaborazione la rappresentazione avviene secondo forme più primitive, in funzione del tipo di macchina, ovvero del livello di astrazione con il quale lavora. Gli elaboratori conservano in memoria i dati in formato binario, come sequenze di '0' e 1. Da molti decenni si è imposta questa forma di registrazione delle informazioni "a tutto o niente". Ebbene questo è il tipo di codifica degli stati più comune anche nel campo degli automi. Implementazione binaria significa appunto realizzazione dell'automa mediante associazione di ciascuno stato a un numero, codificato in formato binario. Le cifre binarie, conservate in memoria, danno luogo a diverse combinazioni, ciascuna delle quali viene eletta a rappresentare lo stato generico S i. Le cifre binarie prendono in questo caso il nome di variabili di stato e vengono indicate come X 0, X 1,... X N_ 1. Poiché una cifra binaria può assumere solo due valori, per codificare un numero di stati maggiore di due è necessario affidarne la rappresentazione a più variabili di stato. Il numero di queste variabili dipende dal numero degli stati da codificare. Se ad esempio gli stati sono 4, il numero di variabili di stato binarie dovrà essere 2, in quanto con due variabili binarie si possono formare 2 2 = 4 combinazioni. Se gli stati sono 8 accorreranno 3 variabili, poiché 2 3 = 8.

A partire dalla formulazione tabellare dell'automa occorre procedere al cosiddetto assegnamento delle variabili di stato, ovvero associare a ogni stato una delle configurazioni delle variabili di stato. La scelta è arbitraria e ininfluente sul funzionamento: sono dati diversi gradi di libertà. Scelte differenti possono condurre a implementazioni differenti, cioè a diverse configurazioni circuitali, che tuttavia garantiscono il medesimo funzionamento. Esempio ASSEGNAMENTO VARIABILI DI STATO Supponiamo di dover codificare quattro stati assunti da un automa. È possibile associare all'i-esimo stato la codifica binaria del numero i, come nella tabella degli assegnamenti di figura a. Le cifre X 1 e X 0 costituiranno le variabili di stato. Questo schema di codifica può essere opportuno perché, essendo più familiare al progettista, può contribuire a ridurre l'eventualità di errori di progettazione. Tuttavia non è assolutamente vincolante: si potrebbe scegliere lo schema di assegnamento di figura b), del tutto arbitrario e senza particolare significato. Per descrivere il procedimento di realizzazione di un automa riferiamoci ancora al contatore modulo 4 avanti/indietro, del quale riportiamo la tabella di transizione di stato, già descritta in un precedente esempio, che riproduciamo in figura 2.4. L'automa in oggetto richiede quattro stati e un ingresso. Per codificare i quattro stati è necessario eleggere due variabili di stato, che indichiamo come X 1 e X 0. Procediamo quindi all'assegnamento, cioè associamo a ogni stato una configurazione delle variabili di stato. Scegliamo arbitrariamente l'associazione descritta dalla tabella degli assegnamenti della figura 2.5. Sostituiamo nella tabella di transizione di stato (fig. 2.4), al posto del simbolo che rappresenta uno stato, la combinazione assegnata delle variabili di stato, desunta dalla tabella degli assegnamenti

(fig. 2.5). Ricaviamo la tabella riportata in figura 2.6, che rappresenta i valori futuri X 1 (t+1), X 0 (t+1) delle variabili di stato, in funzione dei valori presenti X 1 (t), X 0 (t) e dell'ingresso i. Il percorso che stiamo seguendo ci cala sempre più al livello di implementazione circuitale. Separiamo i valori delle due variabili di stato, ovvero "splittiamo" l'ultima tabella in due tabelle distinte, riportando in ciascuna i valori futuri di una sola variabile di stato (fig. 2. 7a per X 1 (t+1) e fig.2.7b per X 0 (t+1)). Le tabelle raffigurate in figura 2. 7 descrivono funzioni logiche combinatorie. Una variabile stato futuro viene qui rappresentata in funzione delle variabili di stato presenti e dell'ingresso. Siamo indotti allora a immaginare la presenza, nello schema di implementazione binaria dell'automa, di un blocco con tre ingressi, le due variabili di stato presenti e l'ingresso i; si avranno poi due uscite, in questo caso coincidenti con le variabili di stato futuro. In effetti queste sono le variabili di ingresso e uscita della "famosa" sezione logica combinatoria, dello schema di principio di un automa generico, che in questo caso è rappresentabile dalla figura 2.8.

Mentre per la sezione di memoria e temporizzazione MEM possiamo pensare di affidarci a blocchi precostituiti, l'implementazione della sezione combinatoria è affidata alla nostra opera. Si tratta di un sistema combinatorio realizzabile facilmente per mezzo di porte logiche. Le due tabelle sono già nella forma di mappe di Kamaugh, a condizione di permutare le righe 3 e 4. Le riportiamo nella figura 2.9, con l'evidenziazione dei gruppi di celle adiacenti. La mappa di Kamaugh (Modulo 2, U.D.4) è il metodo più immediato per ricavare funzioni combinatorie minimizzate. La mappa relativa a X 1 (t +1) non consente di operare semplificazioni, per cui la funzione è espressa integralmente in prima forma canonica. Per X 0 (t +1l), invece, data la presenza del gruppo di quattro 1, è possibile una formulazione semplificata. Si ha dunque: Queste funzioni, tradotte in forma circuitale, forniscono il circuito a porte logiche completo della sezione logica combinatoria mostrato in figura 2.10.

3. 1 AUTOMI RICONOSCITORI dl SEQUENZA BINARA Gli automi riconoscitori hanno il compito di controllare se una data sequenza ricevuta agli ingressi appartiene a un insieme predefinito di sequenze, stabilito a priori dal progettista in base a determinati scopi. In particolare i riconoscitori di sequenza binaria controllano flussi di bit, ovvero sequenze di '0' e '1', per intercettare quelle accettabili. Le situazioni che fanno emergere questa esigenza sono svariate. Questi automi, lavorando a "basso livello", cioè a livello di segnali digitali che racchiudono informazioni elementari, sono di solito sottosistemi, piccoli moduli facenti parte di una aggregazione di funzioni, che svolgono compiti di riconoscimento elementari ma importanti per l'economia del complesso. Possiamo comunque riferirei ad esempi più "pregnanti". Una applicazione può essere quella del riconoscimento delle sequenze di sincronismo nelle trasmissioni. I dati nei canali di comunicazione digitale viaggiano in forma di lunghe trame di '0' e '1'. Tra i pacchetti di dati vengono inframmezzati dei segnali di sincronismo, che servono a stabilire, mantenere e controllare la comunicazione tra i dispositivi. Le sequenze di sincronismo sono configurazioni prefissa le di bit, organizzate in modo da non interferire con i dati utili ed essere facilmente riconoscibili. Ebbene, gli automi riconoscitori riescono appunto a riconoscere tali sequenze e discriminarle dai dati utili. Un altro esempio può essere quello dei controlli a distanza, ovvero dei telecomandi. Anche in questo caso l'informazione è codificata in forma digitale. I vari comandi impartiti vengono codificati ciascuno con una diversa sequenza di bit trasmessi serialmente. Gli automi riconoscitori in tal caso discriminano le diverse sequenze, distribuendo gli ordini all'organo cui è destinato effettivamente il comando. Un ulteriore esempio è quello del controllo dell'integrità di un'onda. Supponiamo ad esempio che l'automa debba controllare l'integrità di un segnale di dock, trasmesso sulla linea a esso riservata. Il clock è una successione ordinata ed equi-spaziata di '0' e 1, del tipo 1010101.... L'automa in questo caso deve essere in grado di controllare la sequenza ed emettere un segnale di allarme nel caso si presenti un bit spurio, cioè un bit che altera la corretta sequenza. ESEMPIO AUTOMA RICONOSCITORE PER TELECOMANDO Riferiamoci a un telecomando per aereoniodellismo. Supponiamo che il modulo trasmittente, pilotato dall'aereomodellista, invii al modulo ricevente, montato sul modellino, i comandi di controllo codificati con sequenze di tre bit. Potrebbe valere ad esempio la seguente codifica: 000 flap abbassati 001 flap alzati 010 timone a sinistra 011 timone a destra 100 aumento velocità 101 diminuzione velocità 110 disattivo 111 disattivo In tal caso il sistema ricevente deve prevedere 6 automi, ciascuno progettato per riconoscere una delle prime 6 combinazioni. L'uscita di ciascun automa comanderà il dispositivo a esso assegnato, come descritto dalla seguente figura.

ESEMPIO RETE CHE RICONOSCE LA SEQUENZA 010 L'automa riceve serialmente, sul suo unico ingresso, una trama di bit, all'interno della quale deve identificare la sequenza 010. l bit vengono ricevuti uno alla volta, pertanto il riconoscimento avviene per passi. Si definisce sequenza utile ogni sequenza di bit, di lunghezza inferiore a tre, tale da avvicinare la macchina alla condizione di riconoscimento. La sequenza 01, ad esempio, rappresenta una sequenza utile: se il bit successivo è O ha luogo il riconoscimento, se è 1 si ritorna al primo gradino del riconoscimento. Per poter assolvere a questo compito la macchina deve registrare nella sua memoria la condizione transitoria nella quale si trova e questo avviene, come noto, attraverso il passaggio a vari stati. L'automa lavora a ciclo continuo, spostandosi tra i vari stati in funzione dei nuovi bit di ingresso. Questo avviene nella situazione di regime, cioè quando l'automa si è già posizionato in uno stato. Occorre però individuare una condizione di inizio ciclo, uno stato di partenza. La scelta è arbitraria: di solito si sceglie lo stato non utile, quello a cui si perviene con una sequenza totalmente non utile. Scegliamo come stato di partenza S 0, al quale si arriva introducendo la sequenza non utile 11. A partire dallo stato S 0, con ingresso uguale a 0 si passa allo stato S 1, che registra la sequenza utile di lunghezza 1. Il bit 1 porta successivamente la macchina nello stato S 2 e un successivo bit 0 nello stato S 3. Qui ha luogo il riconoscimento, pertanto a questo stato è associata l'uscita 1. Il transito tra i diversi stati non deve avvenire necessariamente secondo la sequenza descritta. Una sequenza utile può essere concatenata a una precedente sequenza non utile. Ad esempio se si perviene allo stato S1, con la sequenza 110, e si immette nuovamente uno O, si ha la sequenza 1100. Gli ultimi tre bit 100 non costituiscono una sequenza utile, ma l'ultimo bit, che vale 0, può essere "riciclato" ed essere valutato come bit iniziale di una nuova sequenza utile di lunghezza 1. L'applicazione dell'ingresso 0 costituisce allora un autoanello per lo stato s 1. Quanto spiegato con dovizia di particolari può essere riassunto

molto brevemente mediante le seguenti associazioni: s1 = 0, s2 = 01, S3 = 010 e rappresentato dal grafo delle transizioni di figura. Con ragionamenti analoghi si perviene allora alla tabella di transizione di stato di figura, sotto la quale è riportata la tabella trasformazione d'uscita. È possibile ora procedere speditamente all'implementazione. Se applichiamo per la codifica degli stati la tabella di figura a), otteniamo la tabella di figura b). Ripartendo in due la tabella otteniamo le seguenti mappe di Karnaugh. Dalle mappe ricaviamo le funzioni logiche combinatorie: 3.2 AUTOMI RICONOSCITORI ALFANUMERICI Questa categoria di automi trova applicazione in ambito informatico, nei sistemi che interpretano le istruzioni di programmazione. I sistemi programmati devono riconoscere le istruzioni di programmazione che vengono impartite, localizzandole all'interno di un insieme predefinito di parole chiave che costituiscono la sintassi del linguaggio. Un altro campo di applicazione è quello dell'analisi del linguaggio. In questo ambito un possibile spunto applicativo potrebbe essere un sistema in grado di riconoscere una parola,

oppure una sequenza di lettere all'interno di una parola, quindi sostituirla con un'altra parola prefissata. Nella categoria dell'analisi del linguaggio si possono anche annoverare i sistemi in grado di analizzare un testo composto da simboli alfanumerici, cioè lettere e/o numeri, per riconoscere una password oppure un particolare codice. Il riferimento più immediato è il riconoscimento della combinazione di un sistema di sicurezza, come una cassaforte, caso che sarà trattato in un esempio. ESERCIZIO RETE CHE RICONOSCE LA STRINGA ABC Il sistema attende la digitazione di lettere sulla tastiera (si supponga per semplicità che le lettere ammesse siano solo a, b, c). Se viene inserita la stringa abc, si illumina una spia di avviso. Prima di raggiungere lo stato finale S 3, che contrassegna l'inserimento della stringa completa ed è associato all'uscita 1 (spia accesa), il sistema deve passare attraverso stati intermedi, corrispondenti alle stringhe parziali: S 0 = nessuna sequenza o sequenza inconciliabile S 1 = a S 2 = ab S 3 = abc In funzione delle lettere immesse, il sistema può avanzare o indietreggiare nella sequenza degli stati. Se ad esempio si è nello stato S 2, l'immissione della lettera 'c' provoca il passaggio allo stato S 3 e il riconoscimento; l'immissione della lettera 'a' riporta l'automa nello stato S 1 mentre la 'b' invalida quanto immesso e ristabilisce lo stato S 0. In ogni modo il diagramma degli stati di figura a) descrive tutte le varianti possibili. Si tenga presente che i pulsanti per l'inserimento dei caratteri hanno due stati:

stato 0 = pulsante non premuto stato 1 = pulsante premuto Lo stato 0 rimanda sempre a un autoanello dato che, se non si preme alcun pulsante, il sistema rimane bloccato in attesa di un inserimento. Traduciamo il diagramma degli stati nella seguente tabella transizione di stato. 4.1 Macchina di Moore e di Mealy Come già accennato, la trattazione sugli automi è stata principalmente concentrata sulla macchina di Moore, perché di più semplice approccio. In pratica le macchine possono appartenere a due modelli possibili: Moore e Mealy. Vedremo in seguito quali sono le modalità di progettazione, i vantaggi dei due modelli e come trasformare una macchina implementata in un dato modello nella macchina equivalente implementata nell'altro modello. Cominciamo ad analizzare le caratteristiche essenziali dei due modelli, mettendoli a confronto ed evidenziandone le differenze. Nella macchina di Moore l'uscita è associata allo stato S t ; l'abbinamento diretto stato/uscita viene evidenziato indicando il valore dell'uscita subito a fianco dello stato, all'interno di ogni nodo. Nel disegno di seguito riportato (fig. 4.1) si immagina che la macchina abbia raggiunto lo stato S t con abbinata l'uscita Ut, questo fatto viene simbolizzato con l'indicazione S t /U t. L'ingresso I t determina la transizione allo stato S t + 1, abbinato all'uscita U t + 1 ; questo abbinamento viene simbolizzato con l'indicazione S t + 1 /U t + 1. Nella macchina di Mealy l'uscita è associata allo stato S t e all'ingresso I t, ovvero è funzione, oltre che dello stato presente, anche dell'ingresso. Pertanto non è possibile associare a ogni stato una determinata uscita. L'indicazione dell'uscita compare a fianco di quella dell'ingresso, in

corrispondenza di una linea orientata. Per un dato stato di partenza e per ciascuna combinazione degli ingressi è associata una linea orientata, quindi una uscita. Nello schema esplicativo di seguito riportato (fig. 4.2) si immagina che la macchina abbia raggiunto lo stato S t. L'ingresso I t determina la transizione allo stato S t + 1, abbinato all'uscita U t (non U t + 1, perché l'uscita si forma in coincidenza con la comparsa dello stato S t e dell'ingresso I t, all'istante t); questo abbinamento viene simbolizzato con l'indicazione I t /U t, a fianco della linea orientata. Le differenze tra le due macchine ricadono naturalmente anche sulla rappresentazione tabellare. Per quanto riguarda la tabella della funzione trasformazione d'uscita: nella macchina di Moore la tabella ha una sola colonna delle uscite: ogni uscita è abbinata al proprio stato; nella macchina di Mealy la tabella ha più colonne, corrispondenti alle varie combinazioni di ingresso. Per quanto riguarda la tabella della funzione transizione di stato: la struttura della tabella nella macchina di Moore coincide con quella della macchina di Mealy, in quanto gli stati futuri sono funzione anche degli ingressi, in entrambe le macchine È possibile condensare tabelle transizione di stato e trasformazione d'uscita in una singola tabella condensata. In questo caso si riscontrano le seguenti differenze: nella macchina di Moore la tabella ha le specificazioni delle uscite affiancate agli stati presenti cdella colonna di sinistra, in quanto l'uscita è solo funzione dello stato presente; nella macchina di Mealy la tabella ha le specificazioni. delle uscite affiancate agli stati futuri delle celle interne alla tabella, in quanto l'uscita è funzione anche degli ingressi oltre che degli stati presenti. ESEMPIO IMPLEMENTAZIONE COME MACCHINA DI MOORE DEL CONTATORE MODULO 4 AVANTI/INDIETRO L'automa è costituito da 4 stati. Ogni stato ha associata una combinazione del conteggio.

ESEMPIO TABELLA CONDENSATA DELL'AUTOMA DI MOORE CONTATORE MODULO 4 Spostando le uscite a fianco dei rispettivi stati nella tabella transizione di stato dell'esempio precedente, si ricava la tabella condensata riportata a fianco. ESEMPIO IMPLEMENTAZIONE COME MACCHINA DI MEALY DEL CONTATORE MODULO 4 AVANTI/INDIETRO L'automa è costituito da 4 stati. Ogni stato ha associata una combinazione del conteggio, dipendente anche dal valore dell'ingresso. Ad esempio a partire dallo stato S 2 : se i= 0 si arriva a S 3 con uscita 11 (conteggio avanti); se i = 1 si arriva a S 1 con uscita 01 (conteggio indietro). ESEMPIO TABELLA CONDENSATA DELL'AUTOMA DI MEALY CONTATORE MQDULO 4 Spostando le uscite a fianco dei rispettivi stati, nelle celle interne della tabella transizione di stato dell'esempio precedente, si ottiene la seguente tabella condensata. ESEMPIO CONFRONTO TRA DIAGRAMMA DEGLI STATI DI MEALY E DI MOORE NEL RICONOSCITORE DI SEQUENZA 101

In entrambi i casi il cammino per raggiungere gli stati è così riassumibile: S1 = 1, S2 = 10, S3 =101 Per riconoscere le differenze si osservino attentamente i due diagrammi, e si noti come l'ingresso sia affiancato all'uscita nell'automa di Mealy. Si noti soprattutto come lo stato S3 nell'automa di Mealy venga raggiunto con l'uscita già pronta a livello alto da un intervallo. Questo particolare sarà analizzato esaurientemente nel prosieguo. È interessante approfondire ulteriormente le differenze tra le due implementazioni. È necessario per questo un modello descrittivo di ancora più "basso livello", cioè ancora più vicino al funzionamento intimo delle macchine. Questo modello è dato dalla rappresentazione temporale. Questa rappresentazione ci permette di evidenziare le relazioni temporali e il succedersi quindi dei meccanismi di sincronizzazione tra i segnali significativi, cioè ingressi, stati e uscite. Può essere a questo scopo illuminante il grafico seguente (fig. 4.3): Posto che i nuovi ingressi vengano immessi non appena è stato raggiunto un nuovo stato e le transizioni tra gli stati siano comandate dal fronte di discesa del dock, la figura chiarisce che:

nell'automa di Moore le uscite sono incolonnate esattamente in corrispondenza dello stato, infatti stato e uscita sono tutt'uno e sincroni; nell'automa di Mealy le uscite sono incolonnate agli ingressi: infatti commutano in sincronismo con questi. Ma gli ingressi sono pronti un periodo prima dell'avvento del nuovo stato, pertanto l'uscita si forma in anticipo di un intervallo rispetto alla macchina di Moore. Nella macchina di Mealy una successione di ingressi I( t) origina una successione simultanea di uscite U( t); nella macchina di Moore la successione delle uscite è traslata di un intervallo unitario in ritardo. Conseguenza di questo ragionamento è che l'automa di Moore necessita di un intervallo di tempo in più e una transizione di stato in più, con analogo risultato. ESEMPIO COMPARAZIONE MOORE- MEALY PER IL RICONOSCITORE DI SEQUENZA 101 Descriviamo l'automa mediante un diagramma temporale che, oltre a riflettere il comportamento dell'automa, mette in evidenza le relazioni temporali dei segnali. Analizziamo il diagramma, che visualizza tutti gli elementi utili che partecipano al processo, cioè ingressi, stati e uscite. Cerchiamo quindi di evidenziare le differenze di comportamento temporale delle due macchine, cioè le differenti modalità della sincronizzazione tra questi elementi utili. Supponiamo che il passaggio da uno stato al successivo abbia luogo in coincidenza con la transizione alto basso dell'onda di clock, e che in questo istante gli ingressi siano già impostati. Sì può pensare anzi che gli ingressi siano già pronti da un periodo, cioè non appena lo stato effettua la transizione vengono immessi i nuovi ingressi. innanzitutto, osservando la riga degli stati, notiamo la perfetta coincidenza temporale degli stati nei due tipi di macchina. A parità di sequenza di ingresso (l(t): 00101) si verifica la stessa successione di stati (S 0, S 1, S 2, S 3 ), esattamente negli stessi istanti. La coppia di ingressi 00 infatti, essendo la sequenza non utile, porta entrambe le macchine nello stato iniziale S 0. Successivamente la sequenza esatta 101 spinge le due macchine nello stato di arrivo S 3, che per entrambe ha il ruolo di stato di riconoscimento avvenuto. Che cosa cambia allora? La diversità sta nelle uscite.

Nella macchina di Moore l'uscita 1, quella che segnala l'avvenuto riconoscimento, essendo strettamente correlata allo stato, si presenta nell'istante medesimo della sua comparsa, cioè nell'istante t 4. Nella macchina di Mealy l'uscita 1 compare nell'istante t 3, nel momento stesso in cui fa capolino l'ingresso 1 che termina la sequenza 101; cioè l'uscita compare con un periodo di anticipo in sincronismo con l'ingresso. 4.2 TRASFORMAZIONE DA UNA MACCHINA ALL ALTRA Ci impegniamo ora a descrivere il processo di trasformazione da un tipo di macchina all'altra. Trasformazione da Moore a Mealy Ecco in sintesi le regole. I nodi e i lati rimangono invariati, ovvero: per ogni nodo di Moore si introduce un nodo uguale in Meaiy; per ogni Iato di Moore si introduce un Iato uguale in Meaiy; tuttavia: in Meaiy scompare l'indicazione dell'uscita all'interno dei nodo; in Meaiy ai Iato si associa l'uscita che contraddistingue i nodo di arrivo in Moore. Tutto questo può essere condensato come nella figura 4.4: la specificazione dell'uscita viene trasferita dall'interno dei nodo di arrivo in Moore sui Iato in Mealy. L'uscita è ora associata all'istante t perché si forma in coincidenza con lo stato S t e con la comparsa dell'ingresso I t. Le tabelle si possono dedurre a partire dal diagramma degli stati. La tabella transizione di stato ha la stessa struttura nei due tipi di macchina. Per la tabella trasformazione d'uscita, nella macchina di Mealy si aggiunge la dipendenza dell'uscita futura dagli ingressi, oltre che dagli stati presenti. ESEMPIO TRASFORMAZIONE DA MOORE A MEAL Y- RICONOSCITORE DI COPPIE DI BIT UGUALI Per descrivere i criteri di trasformazione tra i due tipi di macchine, facciamo riferimento a un caso reale: un automa che riconosce l'occorrenza di due bit uguali, cioè segnala quando, all'interno di una sequenza di bit, si presenta la coppia 00 o la coppia 11. Partiamo dalla formulazione come macchina di Moore, della quale riportiamo di seguito il diagramma delle transizioni e le tabelle.

Non vogliamo soffermarci troppo sulla descrizione del funzionamento di questo automa, per non distogliere l'attenzione dal tema reale. Supposto che le sequenze di riconoscimento producano uscita 1, in sintesi si vede che la sequenza 00, che è già di riconoscimento e quindi genera uscita 1, è associata allo stato di partenza S 0. Da qui, una coppia 11, che è l'altra sequenza di riconoscimento, porta nello stato S 2, con uscita 1. Gli stati S 1 e S 3 registrano rispettivamente le sequenze "utili" 1 oppure 0. Spostando la specificazione dell'uscita dall'interno di ciascun nodo sui rispettivi lati entranti si perviene direttamente al grafo di Mealy di seguito riportato. Le tabelle si ottengono a partire dal diagramma degli stati. Trasformazione da Mealy a Moore Ecco in sintesi le regole di trasformazione. Si esaminano i lati entranti in un nodo. Se i lati entranti hanno tutti associata la stessa uscita, si può spostare il contrassegno all'interno del nodo di arrivo. Se invece i contrassegni delle uscite sono diversi, i nodi devono moltiplicarsi: per ciascun lato entrante è necessario introdurre un nuovo nodo. Si consideri ad esempio la seguente porzione di grafo (fig. 4.5):

La trasformazione della figura può essere così spiegata. Nell'automa di Mealy lo stato S a è raggiunto da altri due stati, contrassegnati da un'uscita diversa. Nell'automa di Moore questo stato deve necessariamente sdoppiarsi, dato che non può avere associate contemporaneamente l'uscita 0 e l'uscita 1. È necessario allora introdurre nella macchina di Moore i due stati S a0 e S a1, ai quali associare rispettivamente uscita 0 e 1. Si esaminano il Iati uscenti da un nodo. In. Mealy un lato rappresenta la transizione a uno stato futuro: ebbene, avendo moltiplicato un nodo di partenza in Mealy in tanti nodi di partenza in Moore, dobbiamo assicurarci che lo stato futuro continui a essere raggiunto da ciascuno di questi. La seguente porzione di grafo (fig. 4.6) si riferisce allo stato S a dell'esempio precedente, che è stato sdoppiato. Supponendo che da Sa esca un lato diretto a un ipotetico stato futuro S t+1, nell'implementazione di Moore è necessario collegare a S t+1 sia una linea orientata spiccata dallo stato di partenza S ao sia una linea spiccata dallo stato di partenza S a1. Un cenno particolare va fatto agli autoanelli: questi sono contemporaneamente lati entranti e uscenti del medesimo nodo. Quando lo stato si sdoppia, il suo autoanello genera due nuove linee orientate. Delle due, una è ancora un autoanello, l'altra è una linea di transizione tra i due nuovi stati. Si veda l'esempio seguente per un chiarimento di questo punto.

ESEMPIO TRASFORMAZIONE DA MEALY A MOORE- RICONOSCITORE DI COPPIE DI BIT UGUALI MINIMIZZATO Facciamo riferimento all'esempio precedente, riferendoci allo stesso automa realizzato secondo Mealy e minimizzato. Il processo di minimizzazione non viene qui riportato, per non distogliere l'attenzione dal tema in oggetto. Qui ci interessa soprattutto descrivere i metodi di passaggio da Mealy a Moore. 1) Si esaminano i lati entranti nei nodi. Nel nodo S a entrano: due lati con uscita 1, cioè il lato contrassegnato come 00/1 e quello contrassegnato come 0/1; un lato con uscita O cioè il lato contrassegnato come 0/0; È necessario allora sdoppiare S a in due stati S ao e S ai, per soddisfare entrambe le condizioni di uscita. Con ragionamento analogo si stabilisce anche di sdoppiare il nodo S b in due stati S bo e S bi. Disponiamo allora S ao, S ai, S bo, S bi come nel grafo di figura a). 2) Si esaminano i lati uscenti da un nodo. Esaminiamo il lato uscente dal nodo S a e diretto al nodo S b : essendo contrassegnato da uscita 0 è diretto a S bo. Ma S a è stato sdoppiato e pertanto questo lato deve essere spiccato sia da S ao che da S ai. Con analogo ragionamento si trova che da S bo e S bi devono uscire due lati, contrassegnati da ingresso 0 e diretti a S ao. Considerando poi che la configurazione di inizializzazione 00 è associata a uscita 1 e quindi si dirige verso S ai, si ricava il grafo di figura a). Rimangono da esaminare gli autoanelli: quello relativo a S a, ad esempio, è associato all'uscita 1 quindi deve dirigersi in S ai, ma S a è stato sdoppiato, quindi all'autoanello di S ai deve aggiungersi un lato, contrassegnato da ingresso 0, diretto da S ao a S ai. Proseguendo con ragionamento analogo si perviene finalmente al grafo di figura b), che si rivela uguale a quello dell'implementazione di Moore del precedente esempio. Questa coincidenza ci conferma la validità dei metodi di trasformazione usati.