Introduzione ai circuiti sequenziali Introduzione ai circuiti sequenziali sincroni Introduzione : Circuiti combinatori e sequenziali Concetto di memoria e di stato Dalla specifica al dispositivo: Esempio
Introduzione I circuiti digitali possono essere classificati in due categorie Circuiti combinatori Il valore delle uscite ad un determinato istante dipende unicamente dal valore degli ingressi in quello stesso istante. Circuiti sequenziali Il valore delle uscite in un determinato istante dipende dalla condizione di partenza del circuito sia dal valore degli ingressi in quell’istante sia dal valore degli ingressi in istanti precedenti Per definire il comportamento di un circuito sequenziale è necessario tenere conto della storia passata del circuito stesso
Memoria e concetto di stato Le uscite di un circuito sequenziale in un dato istante di tempo dipendono: Dalla condizione iniziale del circuito; Dalla sequenza di ingressi, applicata in un arco temporale finito, fino all’istante considerato. Questo aspetto implica che il dispositivo ha memoria degli eventi passati. In un generico istante t l’informazione relativa al “contenuto” di questa memoria è rappresentata nel concetto di stato. Nota: le reti combinatorie possono essere considerate un caso particolare di sistema sequenziale dove lo stato è unico. Trattate solo Macchine a Stati Finiti Deterministiche Per ragioni legate alla fisica realizzabilità, la memoria di una rete sequenziale è di dimensioni finite; Dato uno stato ed una configurazione di ingresso il nuovo stato è identificato univocamente.
Esempio: specifiche Serratura a combinazione di una porta: Specifica Fornire la combinazione di 3 valori in sequenza per aprire una porta; se si riconosce un errore la serratura deve rimanere chiusa ed è necessario ripartire dall’inizio; quando la porta viene chiusa, il circuito di controllo della serratura deve essere ri-inizializzato in attesa di una nuova sequenza Ingressi: Valore in ingresso che appartiene alla sequenza; Reset (per inizializzare il sistema); Uscite: porta aperta/chiusa; Combinazione: Funzionalità cablata La combinazione è parte della struttura del dispositivo da realizzare e staticamente definta. Funzionalità programmata Fornita in ingresso.
Esempio: Implementazione software integer SerraturaCombinazione( ){ integer v1, v2, v3; integer error = 0; static integer c[3]={3, 4, 8}; /* sequenza da riconoscere: intrinseca*/ while (!WaitValue( )); /* attendi nuovo valore */ v1 = ReadValue( ); /* leggi nuovo valore */ if (v1!=c[1]) then error=1; while (!WaitValue( )); v2 = ReadValue( ); if (v2!=c[2]) then error = 1; while (!WaitValue( )); v3 = ReadValue( ); if (v3!=c[3]) then error = 1; if (error == 1) then return(0); else return(1); }
Esempio: Analisi per l’implementazione hardware La specifica risulta incompleta. Alcuni aspetti richiedono successive riflessioni: Aspetti impliciti da evidenziare Aspetti rilevanti e non espressi nemmeno implicitamente. Aspetti non definiti e non impliciti: Il numero bit per la codifica sia del valore in ingresso sia dell’uscita; Si specifica che le cifre lette sono 3 ma non se ne definisce l’intervallo d’appartenenza. Non è implicito che la tastiera sia costituita dalle 10 cifre 0:9. Aspetti impliciti da evidenziare: È indispensabile identificare che è stato fornito un nuovo valore in ingresso per evitare che l’inserimento di un valore (es. pressione di un tasto) venga considerato più di una volta; Questo aspetto dipenderà da come viene sviluppato il dispositivo: sincrono o asincrono.
Esempio: Analisi per l’implementazione hardware Comportamento: Il sistema è sequenziale: È necessario fornire una sequenza di valori ricordando la storia degli ingressi; È necessario ricordare se si è verificato un errore; Nota: l’errore deve essere rivelato solo alla fine della sequenza per ragioni di sicurezza. Come identificare che è stato fornito un nuovo valore in ingresso; Il dispositivo è sincrono Il clock regola l’evoluzione temporale dei sistema. Gli ingressi devono essere campionati solo quando sono stabili. È indispensabile avere un segnale di ingresso che rappresenti la validità del dato e la sua unicità Non si vuole che la pressione di un tasto venga preso in considerazione più di una volta Il dispositivo è asincrono Il sistema evolve sulla base di eventi di ingresso.
Logica Sequenziale: considerazioni Un’astrazione fondamentale nel progetto digitale è che si ragiona, nella maggior parte dei casi, su sistemi con stati stabili Osservazione delle uscite avviene solo dopo che è trascorso un tempo sufficientemente lungo affinché il sistema possa effettuare i cambiamenti e stabilizzare le uscite. L’astrazione dello stato stabile è così utile che i progettisti hardware lo implementano nella realizzazione dei circuiti sequenziali: La memoria del sistema è rappresentata dal suo stato I cambiamenti di stato del sistema sono ammessi solo in particolari istanti di tempo controllati da un clock esterno periodico Il periodo del clock è il tempo che trascorre tra i cambiamenti di stato e deve essere sufficientemente lungo per permettere al sistema di raggiungere lo stato stabile prima che avvenga il successivo cambiamento di stato al termine del periodo
Analisi per l’implementazione hardware: Esempio Rappresentazione logica del dispositivo Pin-out logico Nuovo Valore Reset stato Clock Chiuso/Aperto
Analisi per l’implementazione hardware: Esempio Due possibili modi per implementare il sistema Come unica macchina a stati Ogni ingresso porta il sistema in uno stato che corrisponde o ad uno stato che relativo alla sequenza riconosciuta o ad uno stato che identifica la presenza di un errore. L’identificazione della validità del valore immesso è intrinsecamente definito nel comportamento alla macchina a stati Due possibilità Gli ingressi raggiungono direttamente la macchina a stati (la struttura è di flessibilità nulla) Rete combinatoria per la codifica dell’ingresso alla macchina a stati (normalizzazione degli ingressi); la struttura è più flessibile rispetto alla precedente poiché una modifica della sequenza incide solo sulla parte combinatoria di codifica degli ingressi.
Analisi per l’implementazione hardware: Esempio Due possibili modi per implementare il sistema (Cont.) Come Unità di Controllo e Unità di Elaborazione L’unità di controllo è realizzata come macchina a stati; risulta generale ed indipendente dalla sequenza da riconoscere. Comanda l’unità di elaborazione. L’unità di elaborazione è controlla i valori immessi e restituisce alla unità di controllo un valore che modifica la sequenza di controllo. Unità di Elaborazione Controllo Reset Clock test controllo
Macchina a stati – Descrizione a livello comportamentale: Esempio La descrizione del comportamento di una macchina a stati è ottenuto attraverso un diagramma degli stati Rappresenta il modo con cui la macchina a stati evolve Stati e il modo con cui gli ingressi agiscono nel passaggio da uno stato all’altro (transizioni di stato) Una configurazione d’uscita è associata ad ogni stato (questo caso) oppure è associata ad ogni transizione tra gli stati. Valore dell’ingresso in formato simbolico S4 chiuso Transizione di stato Nuovo & (Valore3) Nuovo’ S0 chiuso Reset Etichetta dello stato Valore della uscita in formato simbolico Nuovo’ Stato
Macchina a stati: Esempio Ipotesi: i valori da riconoscere sono 3,4,8 4 bit di ingresso (minimo valore) S3 chiuso S4 chiuso ERRORE chiuso Nuovo Nuovo Nuovo & (Valore3) Nuovo & (Valore4) Nuovo & (Valore8) Nuovo’ Nuovo’ - S0 chiuso S1 chiuso S2 chiuso APERTO aperto Nuovo & (Valore=3) Nuovo & (Valore=4) Nuovo & (Valore=8) Reset Nuovo’ Nuovo’ - Nuovo’ Dimensione dei segnali Reset: 1 bit Nuovo: 1 bit Valore: 4 bit Chiuso/Aperto: 2 bit Significato ’: NOT (es Nuovo’ è VERO se Nuovo=0 (equivalente a Nuovo=0)) &: AND (es Nuovo & (Valore=3) è VERO solo se Nuovo=1 e (Valore=3)è VERO -: per qualunque configurazione di ingresso
Esempio: Macchina a stati con codifica sugli ingressi Il funzionamento della macchina a stati è indipendente dai valori da identificare La rete combinatoria codifica i valori di ingresso uniformandoli a quelli per i quali la macchina a stati è progettata I valori da riconoscere sono arbitrariamente scelti in 0,1 e 2 2 bit (minimo) o 3 bit (massimo) di ingresso. S3 chiuso S4 chiuso ERRORE chiuso Nuovo Nuovo Nuovo & (Valore0) Nuovo & (Valore1) Nuovo & (Valore2) Nuovo’ Nuovo’ - S0 chiuso S1 chiuso S2 chiuso APERTO aperto Reset Nuovo&(Valore=0) Nuovo&(Valore=1) Nuovo&(Valore=2) Nuovo’ Nuovo’ Nuovo’ -
Esempio: Macchina a stati con codifica sugli ingressi Mantenendo l’ipotesi sui valori da riconoscere (3,4,8), si ottiene: V3V2V1V0 A B 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 ONset di “Valore” Nuovo Valore A=P0*(V3+V2’+V1+V0) B=P0*(V3’+V2+V1+V0) P0=(V3+V2+V1’+V0’) RC A B Esempio di altra sequenza Macchina a Stati Reset ONset di “Valore” con la sequenza(7,0,15) Clock V3V2V1V0 A B 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 A=P0*(V3+V2+V1+V0) B=P0*(V3’+V2’+V1’+V0’) P0=(V3+V2’+V1’+V0’) Chiuso/Aperto
Sintesi comportamentale Il valore delle uscite all'istante t dipende dalla successione degli ingressi che precedono l'istante t Ciò implica il concetto di stato Una macchina sequenziale è definita dalla quintupla (I,U,S,d,l ) I - Alfabeto di Ingresso E' costituito dall'insieme finito dei simboli di ingresso Con n linee di ingresso si hanno 2n simboli U - Alfabeto d'Uscita E' costituito dall'insieme finto dei simboli d'uscita Con m linee d'uscita si hanno 2m simboli. S - Insieme degli Stati Insieme finito e non vuoto degli stati - Funzione stato prossimo - Funzione d’uscita
Architettura generale La struttura generale di una macchina sequenziale è la seguente: RETE COMBINATORIA , FF1 FF2 FFk x1 x2 xn z1 z2 zn y1 y2 yk Y1 Y2 Yk Ingressi Uscite Stato Presente St Stato Prossimo St+1 Registri di stato
Architettura generale Il problema della sintesi comportamentale di una rete sequenziale consiste nella: Identificazione delle le funzioni d e l Sintesi della rete combinatoria che le realizza Gli elementi di memoria sono costituiti da bistabili I flip-flop di tipo D sono quelli usati più comunemente La funzione di stato prossimo dipende dal tipo di bistabili utilizzati La funzione di uscita è indipendente dal tipo di bistabili utilizzati