Esercitazioni di Reti Logiche Lezione 5
Circuiti Sequenziali
Zeynep KIZILTAN
zeynep@cs.unibo.it
Argomenti
• Circuiti sequenziali
• Flip-flop
– D, JK
• Analisi dei circuiti sequenziali
• Progettazione dei circuiti sequenziali
Sistemi Digitali
• I circuiti digitali finora considerati sono circuiti combinatori.
• Molti sistemi digitali includono:
– sia parti realizzate con circuiti combinatori;
– sia elementi di memoria descritti come circuiti sequenziali in grado di immagazzinare
informazioni binarie.
Circuiti Sequenziali
• Un circuito sequenziale:
– riceve informazioni binarie dall’ambiente esterno, attraverso gli ingressi;
– insieme allo stato presente memorizzato negli
elementi di memoria, determina il valore delle uscite e lo stato futuro.
• Quindi, l’uscita di un circuito sequenziale è funzione:
– sia degli ingressi;
– sia dello stato presente.
Elementi di Memoria
• Latch
– elementi di memoria di base usati nella realizzazione dei flip-flop.
• Flip-flop
– elementi di memoria nei circuiti sequenziali con ingresso di clock.
– possono cambiare stato soltanto in presenza di un impulso di clock (sincroni).
Tipi di flip-flop
• I due tipi di flip-flop più diffusi sono D e JK.
• Sono rappresentati graficamente da un blocco rettangolare con ingressi a sinistra e uscite a destra:
– D, J e K si riferiscono agli ingressi binari;
– C si riferisce al ingresso di clock;
– Q si riferisce allo stato standard;
– Q’ si riferisce all’uscita complementata.
Il comportamento dei flip-flop
• Una tabella di caratteristica definisce le proprietà logiche di un flip-flop:
– Q(t) si riferisce allo stato presente;
– Q(t+1) si riferisce allo stato futuro;
! t si riferisce all’istante di applicazione dell’impulso di clock.
• Nella tabella, lo stato futuro Q(t+1) è
descritto come una funzione degli ingressi
(D oppure J e K) e dello stato presente Q(t).
Tabelle caratteristiche
• Lo stato futuro di un flip-flop D dipende
soltanto dall’ingresso D, ed è indipendente dallo stato presente:
Q(t+1) = D(t)
Tabelle caratteristiche
• Lo stato futuro di un flip-flop JK dipende dagli ingressi J e K:
– uguale allo stato presente quando J=0 e K=0;
– è 0 quando J=0 e K=1;
– è 1 quando J=1 e K=0;
– uguale allo stato complemento dello stato presente quando J=1 e K=1.
→ Q(t+1) può essere descritto da J(t)Q’(t) + K’(t)Q(t).
Procedura d’analisi
• L’obiettivo dell’analisi di un circuito sequenziale è
dare una descrizione dell’evoluzione temporale degli ingressi, delle uscite e dello stato.
• Un circuito sequenziale è composto da:
– uno o più flip-flop;
– una rete combinatoria.
• La parte del circuito combinatorio che genera i
segnali applicati agli ingressi dei flip-flop può essere descritta da funzioni booleane denominate equazioni d’ingresso ai flip-flop.
• A partire dallo schema circuitale, il processo d’analisi individua:
– le equazioni d’ingresso ai flip-flop;
– la tabella di stato oppure il diagramma di stato per descrivere il funzionamento del circuito sequenziale.
Procedura d’analisi
Esercitazione 1
• Analizzare il circuito seguente. Determinare le equazioni d’ingresso DA e DB ai flip-flop, l’uscita Y, e la tabella/il
diagramma di stato del circuito.
Esercitazione 1
• Poiché ci sono 2 flip-flop, si utilizzano dei pedici per distinguere tra le due equazioni d’ingresso. DA
DB
Esercitazione 1
• Le equazioni d’ingresso sono ottenute analizzando la parte combinatoria:
– DA = AX+BX – DB = A’X
• Similmente:
– Y = (A+B)X’
DA
DB
Esercitazione 1
• La tabella di stato è formata da 4 sezioni:
– stato presente, ingresso, stato futuro, uscita
• Nella parte stato presente:
– tutti i possibili stati per i flip-flop all’istante t.
• Nella parte ingresso:
– i possibili valori degli ingressi per ogni possibile stato presente.
• Nella parte stato futuro:
– i possibili stati dei flip-flop all’istante t+1.
• Nella parte uscita:
– i valori delle uscite all’istante t per ogni combinazione dello stato presente e degli ingressi.
Esercitazione 1
• La tabella elenca tutte le combinazioni dello stato presente e degli ingressi.
• Lo stato futuro è ottenuto dalle equazioni d’ingresso:
A(t+1) = DA = AX + BX B(t+1) = DB = A’X
• L’uscita Y è ottenuta dall’espressione Y = (A+B)X’
Esercitazione 1
• Una rappresentazione alternativa della
tabella separa gli stati futuri, a seconda del
valore dell’ingresso.
Esercitazione 1
• Le informazioni disponibili nella tabella di stato possono essere rappresentate
graficamente in forma di diagramma di stato:
– stati presenti sono rappresentati da cerchi;
– le transizioni tra gli stati sono indicate da archi orientati;
– gli archi sono etichettati con gli ingressi e le uscite.
Esercitazione 1
Esercitazione 1
Esercitazione 1
Stato presente Stato futuro
ingresso uscita
Analisi con flip-flop JK
• Nel caso del flip-flop D, i valori dello stato futuro sono ottenuti direttamente dalle
equazioni d’ingresso.
• L’analisi con flip-flop JK invece richiede
più passaggi.
Analisi con flip-flop JK
1. Tramite le equazioni d’ingresso, determinare i valori degli ingressi ai flip-flop per tutte le combinazioni dello stato presente e degli ingressi.
2. Utilizzare la tabella caratteristica del flip-flop JK per determinare lo stato futuro.
Esercitazione 2
• Analizzare il circuito sequenziale, con due flip-flop JK, indicati con A e B, un ingresso X e le seguenti equazioni di ingresso ai
flip-flop:
– JA = B – JB = X’
– KA = BX’
– KB = AX’ + A’X
Esercitazione 2
Present state Input Flip-flop inputs Future state A B X JA KA JB KB A B
0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
0 1 0 1 0 1 0 1
0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0
0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 1
• La tabella elenca tutte le combinazioni dello stato presente e degli ingressi, come prima.
• Si derivano i valori di JA, KA, JB, KB utilizzando le equazioni d’ingresso.
• Si derivano i valori dello stato futuro, utilizzando la tabella caratteristica.
Progettazione di circuiti sequenziali
• La progettazione dei circuiti sequenziali:
– parte dalla descrizione verbale del problema;
– si conclude con un diagramma logico o un elenco di
funzioni booleane da cui il diagramma può essere ottenuto.
• Abbiamo visto che un circuito sequenziale è definito da una tabella di stato.
→ Il primo passo della procedura di progettazione ha lo scopo di ottenere la tabella o il diagramma di stato del circuito voluto.
Esercitazione 3
• Costruire il diagramma di stato e la tabella di stato di un circuito che deve riconoscere le sequenze di bit 1101 all’interno di una
sequenza più lunga.
• Gli stati di un circuito sequenziale sono utilizzati per ricordare la storia degli ingressi precedenti.
• Nel nostro caso, il valore dell’uscita è 1 quando si incontra una sottosequenza 1101.
→ Quando si incontra un 1, occorre assicurarsi che gli ingressi precedenti siano stati 110 per restituire 1.
Esercitazione 3
Esercitazione 3
• Il diagramma ha 4 stati per ricordare la sottosequenza 1101.
• Il circuito:
– si trova nello stato A all’inizio;
– si porta dallo stato A allo stato B con l’ingresso 1.
– si porta dallo stato B allo stato C con l’ingresso 1.
– si porta dallo stato C allo stato D con l’ingresso 0.
– si porta dallo stato D allo stato B con l’ingresso 1.
→ si trova nello stato B per ogni sottosequenza riconosciuta.
Esercitazione 3
La procedura di progettazione (segue)
Una volta ottenuta la tabella di stato:
1. Assegnare codici binari agli stati denominati da lettere.
2. Derivare le equazioni d’ingresso ai flip-flop.
3. Derivare le equazioni di uscita dalle colonne relative alle uscite.
4. Semplificare le equazioni d’ingresso e di uscita tramite K-mappe.
5. Disegnare il diagramma logico utilizzando flip-flop.
Esercitazione 4
• Progettare un circuito sequenziale che operi secondo la tabella di stato della
esercitazione 3. Utilizzare flip-flop D.
Esercitazione 4
1. Assegnare codici binari agli stati denominati da lettere.
Esercitazione 4
A(t+1) = DA (A,B,X) = Σ m(3,6,7) B(t+1) = DB (A,B,X) = Σ m(1,3,5,7) Z(A,B,X) = Σ m(5)
2. Derivare le equazioni d’ingresso ai flip-flop dalle colonne relative allo stato futuro.
3. Derivare le equazioni di uscita dalle colonne relative alle uscite.
Esercitazione 4
DA (A,B,X) = Σ m(3,6,7)
DB (A,B,X) = Σ m(1,3,5,7)
Z(A,B,X) = Σ m(5)
4. Semplificare le equazioni d’ingresso e di uscita tramite K-mappe.
Esercitazione 4
5. Disegnare il diagramma logico utilizzando flip-flop.
DA = AB + BX
DB = X
Z = AB’X
Progettazione con stati non utilizzati
• Un circuito con n flip-flop può avere fino a 2
nstati binari distinti.
• Una tabella di stato può pertanto avere m stati dove m ≤ 2
n.
• Gli stati non utilizzati (2
n-m) non sono riportati nella tabella, ma possono essere trattati come condizioni di non-specificazione durante la
semplificazione delle equazioni.
Esercitazione 5
• Progettare un circuito sequenziale che opera
secondo la tabella di stato seguente, utilizzando
flip-flop D.
Esercitazione 5
1. Gli stati sono già indicati con codici binari.
2. Derivare le equazioni d’ingresso ai flip-flop:
DA = Σ m(5,7,8,9,11), DB = Σ m(3,4), DC = Σ m(2,4,6,8,10)
3. Non ci sono uscite.
Esercitazione 5
4. Semplificare le equazioni d’ingresso tramite K- mappe.
• Tre stati (000), (010), (111) non sono utilizzati e non sono inclusi nella tabella.
• Considerando l’ingresso X, ci sono 6 possibili combinazioni non utilizzate per lo stato presente e gli ingressi:
0000, 0001, 1100, 1101, 1110, 1111
possono essere trattate come mintermini non- specificati
Esercitazione 5
4. Semplificare le equazioni d’ingresso tramite K- mappe.
• Includendo le condizioni di non-specificazione nelle mappe:
Progettazione con flip-flop JK
• Nel caso del flip-flop D, le equazioni
d’ingresso sono ottenute direttamente dalle colonne relativo allo stato futuro.
• La procedura di progettazione con flip-flop JK invece richiede più lavoro:
– specificatamente, le equazioni d’ingresso sono ricavate utilizzando tabelle di eccitazione.
Tabelle di eccitazione
• Le tabelle caratteristiche forniscono i valori dello stato futuro, dati i valori degli ingressi e dello stato presente.
• In una tabella di stato, sono note le transizioni dagli stati presenti agli stati futuri, ma non sono presenti le condizioni d’ingresso ai flip-flop che danno luogo a tali transizioni.
• Le tabelle di eccitazione però forniscono tali informazioni:
– indicando quali ingressi sono necessari da applicare per generare una determinata transizione.
Tabelle di eccitazione
+
+
Lo stato non cambia e rimane 0. O J=0 e K=0 oppure J=0 e K=1.
Lo stato cambia da 0 a 1. O J=1 e K=0 oppure J=1 e K=1.
Progettazione con flip-flop JK (segue)
→ La procedura di progettazione dei circuiti
sequenziali con flip-flop JK è la stessa per i circuiti con flip-flop D, tranne il secondo passaggio:
– i valori degli ingressi ai flip-flop sono determinati secondo la tabella di eccitazione;
– le equazioni d’ingresso sono ricavate dalle colonne degli ingressi ai flip-flop.
Esercitazione 6
Present state Input Future state
A B X A B
0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
0 1 0 1 0 1 0 1
0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0
• Progettare un circuito sequenziale che opera
secondo la tabella di stato seguente, utilizzando flip-flop JK.
Esercitazione 6
Present state Input Future state Flip-flop inputs A B X A B JA KA JB KB
0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
0 1 0 1 0 1 0 1
0 X 0 X 0 X 1 X 1 X X 1 0 X X 0 X 0 0 X X 0 1 X X 0 X 0 X 1 X 1 0 0
0 1 1 0 0 1 1 0 1 1 1 1 0 0
1. Gli stati sono già indicati con codici binari.
2. a) Derivare gli ingressi ai flip-flop.
2. b) Derivare le equazioni d’ingresso ai flip-flop:
JA=Σ m(2,4,5,6,7) KA=Σ m(0,1,2,3,7) JB= Σ m(1,2,3,5,6,7) KB=Σ m(0,1,2,4,5,7)
3. Non ci sono uscite.
Present state Input Future state Flip-flop inputs A B X A B JA KA JB KB
0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
0 1 0 1 0 1 0 1
0 X 0 X 0 X 1 X 1 X X 1 0 X X 0 X 0 0 X X 0 1 X X 0 X 0 X 1 X 1 0 0
0 1 1 0 0 1 1 0 1 1 1 1 0 0
Esercitazione 6
Esercitazione 6
X X
A BX
0 1
11
00 01 10
1
X X
X X
A BX
0 1
11
00 01 10
X X
1
1
1 A
BX
0 1
11
00 01 10
X X
X X
X X
X X
A BX
0 1
11
00 01 10
1
JA= B X’ KA= B X
KB= AX + A’X’
JB= X
1
4. Semplificare le equazioni d’ingresso tramite K- mappe.
X
Clock
A
A
B
B
Esercitazione 6
5. Disegnare il diagramma logico utilizzando flip-flop.