Resti sequenziali

Si differenziano dalle reti combinatorie perchè l'uscita dipende oltre che dagli ingressi, anche dalle uscite assunte in precedenza. Occorre saper rappresentare la storia passata attraverso un qualche forma di memoria ed essendo questa memoria limitata potremo memorizzare solo un numero finito di condizioni passate. 
L'esempio più semplice di circuito sequenziale è il Latch e/o flip-flop.
Il Latch è un dispositivo sensibile al livello degli ingressi e può essere sia asincrono che sincrono mentre il flip-flop è un dispositivo master-slave cambia stato  solo ed esclusivamente sui fronti di clock.

A differenza delle reti combinatorie le sequenziali contengono percorsi di retroazione per memorizzare i dati.

Definizione di una rete sequenziale
La rete sequenziale è definita da:
-L'insieme degli stati di ingresso che contiene tutte le possibili combinazioni delle variabili in ingresso;
-L'insieme degli stati interni che corrispondono ciascuno a una possibile configurazione pasata della rete;
-L'insieme degli stati di uscita ovvero tutte le possibili combinazioni delle variabili in uscita;
-Il diagramma degli stati che definisce lo stato in uscita della rete e lo stato interno successivo in funzione dello stato dell'ingresso e dello stato interno attuale alla rete.
Per come è definita una rete sequenziale possiamo considerarla un automa a stati finiti (in quanto le due definizioni coincidono).
Potremmo descrivere la rete mediante il diagramma a stati di Mealy o di Moore.

Anche se chiamiamo insieme degli stati in ingresso tutte le combinazioni delle variabili in ingresso e insieme degli stati in uscita tutte le combinazioni delle variabili d'uscita, intenderemo con la parola "stato" lo stato interno mentre chiameremo ingressi le combinazioni degli stati in ingresso e uscite le combinazioni degli stati in uscita.

Il diagramma a stati di Mealy
E' un grafo orientato in cui ogni nodo è etichettato con uno degli stati interni, le frecce collegano lo stato attuale al successivo e sono etichettate con l'ingresso che determina quella variazione di stato e con la corrispondente uscita.

In questo caso abbiamo uscita 1 quando riconosciamo la sequenza 11 o 01.

Il diagramma di Moore
Nel diagramma di Moore i nodi sono etichettati con lo stato e con l'uscita e le frecce indicano l'ingresso

La tabella di flusso
Relativa alle transizioni di stato a fronte dell'ingresso. E' una matrice in cui ogni riga rappresenta una combinazione degli stati interni, ogni colonna una combinazione degli ingressi e ogni casella della matrice contiene lo stato successivo in cui va il sistema nella situazione in cui si trova nello stato interno indicato dalla riga e riceve gli ingressi indicati dalla colonna.

Qui sopra abbiamo la tabella di flusso relativa all'esempio di diagramma degli stati di Mealy. In pratica è stata ottenuta guardando lo stato successivo a ogni stato a fronte di ognuno dei due ingressi, nello stato S0 ricevendo 0 si va in S2 e ricevendo 1 si va in S1 dunque compiliamo la prima riga. Ora ci spostiamo allo stato S1 da dove ricevendo in ingresso 0 andiamo in S2 e con 1 restiamo in S1... continuiamo per ogni stato ottenendo tutta la tabella di flusso.

Implementazione degli stati per una rete sequenziale e tabella di flusso. 
Prima abbiamo definito un insieme degli stati interni interni. Questi stati vengono implementati mediante delle variabili la cui combinazione indica lo stato, se ricordiamo che con n variabili possiamo esprimere 2^n combinazioni dunque sia  S il numero degli stati interni il numero di variabili necessarie a definire lo stato dovrà essere il minimo n tale che 2^n>=S.
Ogni stato Si sarà rappresentato con la combinazione i delle n variabili in ingresso.

Facciamo un esempio concreto continuando l'esempio portato avanti con il diagrammi di Mealy e la tabella di flusso esposte in precedenza, gli stati nell'esempio sono 3 dunque il minimo n per cui 2^n>=3 è n=2 dunque useremo due variabili per esprimere gli stati interni.
Per S0 useremo la combinazione corrispondente 00, per S1 useremo 01 e per S2 useremo 10.
Compileremo con queste informazioni la tabella delle transizioni dello stato

Sostituendo gli stati, nella tabella di flusso, con la combinazione corrispondente delle variabili dello stato interno e segnando nelle caselle della tabella anche le uscite corrispondenti alla situazione identificata dalla tabella abbiamo ottenuto la tabella di transizione dello stato. Siano A e B i bit che descrivono lo stato (A è quello più significativo) e U l'uscita della rete notare che per ogni casella della tabella di transizione l'informazione è contenuta con lo schema 
AB-C. La tabella di transizione dello stato contiene tutte le informazioni necessarie per compilare la tabella di verità che descrive l'automa.
Per compilare la tabella di verità chiameremo S0 e S1 i bit che descrivono lo stato interno attuale, I l'ingresso della rete, S0' e S1' i bit che descrivono lo stato interno successivo a fronte di un ingresso e con U l'uscita corrispondenza alla combinazione dei bit dello stato interno attuale e dell'ingresso.

Una tabella di transizione dello stato è completamente equivalente alla tabella tabella di verità che se ne ottiene, entrambe contengono infatti le stesse informazioni da cui possiamo ricavare le funzioni booleane che descrivono i valori dei bit dello stato successivo e dell'uscita in funzione dello stato interno attuale e dell'ingresso.
Ora abbiamo sia la funzione che descrive l'uscita Y(S,I) e la funzione degli stati successivi S'(S,I) ma ci servirà strutturare degli elementi di memoria in modo da poter memorizzare S nel calcolo dello stato successivo.

Elementi di memoria
Vedremo il funzionamento e come costruire dei Latch e dei flip flop

Architettura di una rete sequenziale sincrona
Consideriamo X, Q e Y come i vettori di ingresso, di stato e delle uscite. Indicheremo con Q*=Q(t+1) lo stato successivo e con Q=Q(t) lo stato attuale.
Qui di seguito trovate lo schema che rappresenta una rete sequenziale sincrone. 

Vi è una rete combinatoria per il calcolo dello stato successivo che prende in ingresso X e lo stato attuale Q, durante il primo intervallo basso del clock, per calcolare Q(t+1) e inviarlo al blocco ritardante durante l'intervallo alto del clock. Il blocco ritardante metterà a disposizione in uscita Q(t+1) al prossimo fronte  di discesa del clock e lo manterrà per tutto il periodo basso del clock viene mantenuto nel quale variano gli ingressi. Al successivo intervallo del clock la rete del calcolo dell'uscita usa X(t+1) e Q(t+1) per produrre Y(t+1), nel frattempo il segnale Q(t+1) e X(t+1) vanno in ingresso alla rete dello stato successivo che produrrà Q(t+2) e il ciclo continua.
La differenza con la rete asincrona sta nel blocco ritardante. Senza blocco ritardante non c'è disaccoppiamento tra il momento in cui si calcola lo stato successivo e quello in cui si mette a disposizione lo stato attuale dunque una rete asincrona ha senso solo se si vuole che tutti i parametri possano cambiare continuamente, vengono infatti usate per la comunicazioni tra reti sincrone ma non sincronizzate tra di loro. 
La sintesi e la progettazione di reti sincrone si riduce all'assemblaggio di reti combinatorie e flip flop 

Periodicità nelle reti sincrone: il clock
Il clock è un segnale periodico tipicamente regolare che alterna una parte alta e una parte bassa (è un onda quadra in pratica). Chiamiamo livello alto e livello basso i due possibili valori che si alternano nel clock, chiamiamo invece fronti di salita e di discesa rispettivamente i momenti in cui si passa da 0 a 1 e da 1 a 0.
Vi sono dispositivi che commutano durante il fronte di salita e vengono detti attivi alti e dispositivi che commutano durante il fronte di discesa e vengono detti attivi bassi.
Il periodo T definito dal clock è il periodo che intercorre tra due fronti di salita (o di discesa) consecutivi. Il tempo Th<T rappresenta il tempo per cui ci troviamo nel livello alto mentre Tl=T-Th<T è il tempo per cui ci troviamo nel livello basso.
Definiamo duty cicle come il rapporto percentuale tra Th e T.
Per far funzionare bene il dispositivo T dovrà essere abbastanza grande per garantire la commutazione e la stabilizzazione delle uscite entro il periodo del clock. Dovremo avere un periodo T>=Tffpd+Tcom+Tsetup dove Tffpd è il tempo di propagazione nei flip flop, Tcomb è il tempo di calcolo nella rete combinatoria (calcolato mediante il percorso critico) e Tsetup è il tempo in cui le uscite si stabilizzano.


Il blocco ritardante
Il blocco ritardante è costituito da elementi di memoria, generalmente è realizzato con N flip flop  dove N è il numero di bit necessari per rappresentare gli stati.
Durante l'intervallo alto del clock lo stato successivo viene caricato nel registro del blocco ritardante e viene messo a disposizione durante l'intervallo basso del clock.
Questo rende evidente che gli ingressi debbano cambiare durante l'intervallo basso del clock in modo da permettere alla rete combinatoria di calcolare il nuovo stato prima del nuovo fronte di salita.

Analisi e progettazione di una rete sequenziale sincrona.
L'analisi:
Consiste nell'esame delle parti combinatorie della rete e dei registri allo scopo di vautare l'uscita e lo stato successivo in funzione degli ingressi e dello stato attuale.
La progettazione:
Si basa sull'analisi dei requisiti della rete e sull'imporre gli stati successivi, in ingresso al blocco ritardante, e l'uscita tramite la progettazione delle parti combinatorie.

 2018 SolinasMakerShow
Creato con Webnode
Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia