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