esercizio sul tempo futuro

Transcript

esercizio sul tempo futuro
Esercitazioni di Reti Logiche
Lezione 5
Circuiti Sequenziali
Zeynep KIZILTAN
[email protected]
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.
Procedura d’analisi
• 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.
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. D
A
DB
Esercitazione 1
• Le equazioni d’ingresso sono ottenute analizzando
la parte combinatoria:
– DA = AX+BX
– DB = A’X
DA
• Similmente:
– Y = (A+B)X’
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
ingresso
Stato presente
uscita
Stato futuro
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
• 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.
Present state
Input
Flip-flop inputs
Future state
A
B
X
JA KA JB KB
A
B
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
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.
Esercitazione 3
• 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
• 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)
1.
2.
3.
4.
5.
Una volta ottenuta la tabella di stato:
Assegnare codici binari agli stati denominati da
lettere.
Derivare le equazioni d’ingresso ai flip-flop.
Derivare le equazioni di uscita dalle colonne
relative alle uscite.
Semplificare le equazioni d’ingresso e di uscita
tramite K-mappe.
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
2.
3.
Derivare le equazioni d’ingresso ai flip-flop dalle colonne
relative allo stato futuro.
Derivare le equazioni di uscita dalle colonne relative alle
uscite.
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)
Esercitazione 4
4. Semplificare le equazioni d’ingresso e di uscita
tramite K-mappe.
Z(A,B,X) = Σ m(5)
DA (A,B,X) = Σ m(3,6,7)
DB (A,B,X) = Σ m(1,3,5,7)
Esercitazione 4
5. Disegnare il diagramma logico utilizzando flip-flop.
DA = AB + BX
Z = AB’X
DB = X
Progettazione con stati
non utilizzati
• Un circuito con n flip-flop può avere fino a 2n
stati binari distinti.
• Una tabella di stato può pertanto avere m stati
dove m ≤ 2n.
• Gli stati non utilizzati (2n-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 Kmappe.
•
•
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 nonspecificati
Esercitazione 5
4. Semplificare le equazioni d’ingresso tramite Kmappe.
•
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
• Progettare un circuito sequenziale che opera
secondo la tabella di stato seguente, utilizzando
flip-flop JK.
Present state
Input
Future state
A
B
X
A
B
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
Esercitazione 6
1.
2.
2.
Gli stati sono già indicati con codici binari.
a) Derivare gli ingressi ai flip-flop.
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)
Present state
Input
Future state
Flip-flop inputs
A
B
X
A
B
JA KA JB KB
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
X
X
X
X
X
X
X
X
0
0
0
1
0
1
X
X
0
1
X
X
X
X
1
0
X
X
0
1
Esercitazione 6
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
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
X
X
X
X
X
X
X
X
0
0
0
1
0
1
X
X
0
1
X
X
X
X
1
0
X
X
0
1
Esercitazione 6
4. Semplificare le equazioni d’ingresso tramite Kmappe.
BX
00
A
0
1
X
01
11
10
1
X
X
X
BX
00
A
0
X
01
11
10
X
X
X
1
1
KA= B X
JA= B X’
BX
00
A
0
1
01
11
10
1
X
X
1
X
X
JB= X
BX
00
A
0
X
1
X
01
11
1
X
X
10
1
KB= AX + A’X’
Esercitazione 6
5. Disegnare il diagramma logico utilizzando flip-flop.
X
A
A
Clock
B
B