Il Livello Logicoigitale I circuiti sequenziali Corso ACSO prof. Cristina SILVANO Politecnico di Milano Sommario Circuiti sequenziali e elementi di memoria Bistabile SR asincrono Temporizzazione e clock Bistabili e SR sincroni Flipflop MasterSlave 2 Pag. 1 Prof. Cristina Silvano Politecnico di Milano 1
Circuiti sequenziali Un circuito digitale è di tipo sequenziale se le sue uscite dipendono non solo dai valori correnti degli ingressi, ma anche da (alcuni di) quelli passati Una stessa configurazione di ingresso applicata in due istanti di tempo successivi può produrre due valori di uscita differenti Un circuito digitale sequenziale (o rete sequenziale) è pertanto dotato, in ogni istante di tempo, di uno stato che, insieme ai valori degli ingressi, ne determina il comportamento futuro Lo stato di un circuito sequenziale rappresenta una forma di memoria e contiene una sorta di descrizione della storia passata del circuito stesso L elemento funzionale elementare per la realizzazione di circuiti sequenziali è il bistabile (elemento di memoria), che è in grado di memorizzare un bit di informazione 3 Circuiti sequenziali: struttura I circuiti sequenziali sono formati da: bistabili, che hanno la funzione di memorizzare valori di singoli bit porte logiche, organizzate in reti combinatorie, che hanno funzioni di elaborazione di informazioni Il circuito sequenziale ha, in ogni istante, uno stato: il valore dei bit memorizzati nei bistabili facenti parte del circuito Ingressi Circuito Uscite combinatorio Stato futuro Elementi di memoria Stato presente 4 Pag. 2 Prof. Cristina Silvano Politecnico di Milano 2
Elementi di memoria Gli elementi di memoria fondamentali, o bistabili, sono caratterizzati da due stati ( e 1) stabili Mantengono lo stato memorizzato finchè uno o più segnali di ingresso forzano il cambiamento di stato Vengono classificati in base a numero di ingressi previsti per comandare il bistabile modo in cui tali ingressi determinano il cambiamento di stato Bistabili: classificazione Esistono due famiglie di bistabili (circuiti digitali sequenziali): Asincroni: sono privi di un segnale di sincronizzazione e modificano lo stato t rispondendo d direttamente t a eventi sui segnali di ingresso Sincroni: sono sensibili ad un segnale di controllo (o di sincronizzazione) e la transizione da uno stato all altro può avvenire solo in corrispondenza di eventi del segnale di controllo. Si può dire che il comportamento di un circuito sincrono viene osservato in istanti discreti di tempo Il segnale di sincronizzazione tipicamente utilizzato è il clock Ulteriore classificazione dei bistabili sincroni: bistabili sincroni (latch) flip flop» flip flop master slave (a livello o pulse triggered)» flip flop edgetriggered (a fronte) 5 6 Pag. 3 Prof. Cristina Silvano Politecnico di Milano 3
Una porta NOR con ritardo di commutazione NOR A B X 1 1 1 1 1 Tempo di propagazione del segnale Ritardo di commutazione I bistabili (sincronizzati o no), come le porte logiche, presentano un ritardo di commutazione dell uscita La commutazione o dell uscita avviene e con un certo ritardo rispetto alla variazione a degli ingressi o rispetto al fronte di clock che hanno indotto la transizione di stato. Il ritardo di commutazione dipende dalla tecnologia 7 8 Pag. 4 Prof. Cristina Silvano Politecnico di Milano 4
Bistabile asincrono: Latch SR (Set/Reset) Il bistabile SR è dotato di 2 ingressi S (Set) e R (Reset) e di 2 uscite e!. retroazione S retroazione R 9 Come funziona il bistabile SR S 1 S 1 R 1 S = R = e = 1 S = R = e = memorizza il valore 1 memorizza il valore Il circuito ha due stati di equilibrio (bistabile) L uscita rappresenta quindi lo stato memorizzato R 1 1 Pag. 5 Prof. Cristina Silvano Politecnico di Milano 5
Funzionamento: Se S = R =, il bistabile SR è in grado di memorizzare due distinti valori logici: se = 1 il bistabile memorizza 1 (stato prossimo t+1uguale allo stato presente t); se = il bistabile memorizza (stato prossimo t+1uguale allo stato presente t); RESET se S= e R=1, qualunque sia il valore dello stato presente t, lo stato prossimo t+1 assume il valore logico SET se S=1 e R=, qualunque sia il valore dello stato presente t, lo stato prossimo t+1 assume il valore logico 1 E vietato applicare la configurazione di ingresso S = R = 1 (in questa circostanza il comportamento del bistabile SR non sarebbe definito) 11 Bistabile asincrono: Latch SR (Set/Reset) 12 Pag. 6 Prof. Cristina Silvano Politecnico di Milano 6
Il diagramma temporale Un buon modo per visualizzare comportamenti di circuiti digitali che dipendono dal tempo e da eventi passati (circuiti sequenziali) è il diagramma temporale iagramma temporale: sistema di assi cartesiani, con in ascissa il tempo (in istanti discreti) in ordinata i vari segnali i cui valori logici si succedono al trascorrere del tempo Le frecce indicano un rapporto tra i fronti di tipo causaeffetto 13 Rappresentazione S S bistabile SR R R Il bistabile SR (setreset) come blocco funzionale SEUENZIALE 14 Pag. 7 Prof. Cristina Silvano Politecnico di Milano 7
Circuito con un hazard 15 Segnale di sincronizzazione o clock In molte situazioni, è necessario che lo stato di un bistabile possa cambiare solo in determinati istanti di tempo o intervalli di tempo. Per ottenere questo occorre: disporre di un segnale di clock (o di temporizzazione) che scandisca gli istanti o intervalli di tempo in cui le transizioni di stato possono avvenire sincronizzare il bistabile con il clock Il segnale di clock è un segnale binario, con andamento periodico nel tempo Il segnale di clock è una successione di impulsi: ogni impulso ha una larghezza costante e due impulsi consecutivi stanno a una distanza costante 16 Pag. 8 Prof. Cristina Silvano Politecnico di Milano 8
Segnale di sincronizzazione o clock 17 Bistabile SR sincronizzato (SRlatch con clock) Il bistabile SR sincronizzato ha 2 ingressi S e R (che costituiscono i segnali di Set e Reset) 1 ingresso di sincronizzazione (clock) un uscita, il cui valore rappresenta lo stato del bistabile, e un uscita! Nel bistabile SR sincronizzato: Se il clock vale, gli ingressi S e R non hanno alcun effetto (latch SR non trasparente), e il bistabile mantiene memorizzato il suo stato corrente Se il clock vale 1, gli ingressi S e R sono efficaci (latch SR trasparente), e il comportamento è lo stesso descritto per il latch SR asincrono 18 Pag. 9 Prof. Cristina Silvano Politecnico di Milano 9
Bistabile SR sincronizzato (SRlatch con clock) Latch SR con clock C R C S R t+1 C X X t Non commuta! 1 t Non commuta S 1 1 Stato di Reset 1 1 1 Stato di Set S R bistabile SR sincrono CK 1 1 1 Stato indefinito 19 Bistabile SR sincronizzato (SRlatch con clock) R C S! 2 Pag. 1 Prof. Cristina Silvano Politecnico di Milano 1
Bistabile sincronizzato (latch) Il bistabile ha 1 ingresso (che rappresenta il dato che verrà memorizzato) 1 ingresso di sincronizzazione (clock) un uscita, il cui valore rappresenta lo stato del bistabile, e un uscita! Nel bistabile sincronizzato: Se il clock vale, l ingresso non ha alcun effetto (latch non trasparente), t e il bistabile bil mantiene memorizzato il suo stato t corrente Se il clock vale 1, l ingresso è efficace (latch trasparente), e il bistabile memorizza il valore logico ( oppure 1) presente sull ingresso 21 Bistabile sincronizzato (latch) C S! con clock C C t+1 X t Non commuta R 1 1 1 1 Copia bistabile sincrono CK 22 Pag. 11 Prof. Cristina Silvano Politecnico di Milano 11
Bistabile sincronizzato (latch) C S! R bistabile sincrono CK 23 Bistabile sincronizzato (latch) Il valore dell input deve essere stabile quando il clock è asserito (livello 1) Se cambia mentre il clock è asserito, l output cambia anch esso (metodologia sensibile ai livelli). Per questo motivo, il latch si dice trasparente. Introdurremo il concetto di flipflop che elimina questa trasparenza. 24 Pag. 12 Prof. Cristina Silvano Politecnico di Milano 12
Problema della trasparenza delle uscite I latch sincroni (SR o ) presentano, durante l intervallo di tempo in cui il clock è attivo, il fenomeno di trasparenza delle uscite (fenomeno indesiderato). In questo intervallo, se gli ingressi si modificano, le uscite seguono questa modifica E come se, nell intervallo attivo del clock, i bistabili non esercitassero alcuna funzione effettiva di memorizzazione e risultano trasparenti Per evitare il fenomeno di trasparenza si utilizzano i flipflop ( o SR) che sono costituiti da due latch in cascata in modo che lo stato possa modificare le uscite solo in corrispondenza di un evento (fronte) del segnale di clock. Nei flipflop: Relazione statouscita (aggiornamento della uscita): sul fronte. Relazione ingressostato (aggiornamento dello stato): a livello (FlipFlop masterslave) a fronte (FlipFlop edgetriggered). 25 Flipflop masterslave slave CK 1 1 1 Y 2 2 2 bistabile sincrono MASTER bistabile sincrono SLAVE CK 1 1 CK 2 2 CK Coppia di bistabili sincroni trasparenti in cascata con clock invertiti; l insieme dei due non presenta il fenomeno della trasparenza 26 Pag. 13 Prof. Cristina Silvano Politecnico di Milano 13
Funzionamento Il bistabile principale campiona l ingresso = 1 durante l intervallo alto del clock, lo emette sull uscita 1 e lo manda all ingresso 2 del bistabile ausiliario Il bistabile ausiliario campiona l ingresso 2 durante l intervallo basso del clock e lo emette sull uscita 2 = L uscita generale può variare solo nell istante del fronte di discesa del clock Trasparenza Nell intervallo basso del clock, il bistabile SLAVE è in stato di trasparenza Nell intervallo alto del clock, il bistabile MASTER è in stato di trasparenza Se l ingresso varia durante l intervallo alto del clock, il bistabile MASTER si comporta in modo trasparente Ma il bistabile SLAVE no, perché il suo clock si trova nell intervallo basso 27 Flipflop masterslave slave 28 Pag. 14 Prof. Cristina Silvano Politecnico di Milano 14
Flipflop masterslave slave Clock Latch Latch SR master slave Y S Ck!Y Ck R! Flipflop C C 29 Flipflop masterslave slave C C 3 Pag. 15 Prof. Cristina Silvano Politecnico di Milano 15
Bistabili sincroni e temporizzazione I fattori che differenziano i bistabili riguardano due aspetti: La relazione ingressostato (quando gli ingressi sono efficaci) La relazione statouscita t (quando vengono modificate le uscite) La relazione ingressostato (tipo di temporizzazione) definisce quando gli ingressi modificano lo stato interno del bistabile 1. Temporizzazione basata sul livello del segnale di controllo (clock) 1. urante tutto l intervallo di tempo in cui il segnale di clock è attivo, qualsiasi variazione sui segnali di ingresso influenza il valore dello stato interno del bistabile (bistabili con commutazione a livello) Temporizzazione basata sul fronte del segnale di controllo (clock) 1. Il valore dello stato interno del bistabile viene aggiornato solamente in corrispondenza di un fronte del segnale di clock (bistabili con commutazione sul fronte di salita oppure di discesa). 31 Bistabili sincroni e temporizzazione La relazione statouscita definisce quando lo stato aggiorna le uscite. Commutazione basata sul livello del segnale di controllo (clock) 1. urante tutto l intervallo di tempo in cui il segnale di controllo è attivo un cambiamento dei segnali di ingresso modifica oltre allo stato interno anche le uscite. 2. Bistabili con questa relazione statouscita sono denominati LATCH Il segnale di controllo è solitamente chiamato enable. 1. Commutazione basata sul fronte del segnale di controllo (clock) Le uscite vengono aggiornate su di un fronte del segnale di sincronismo. Bistabili con questa relazione statouscita sono denominati FLIPFLOP Le uscite cambiano in corrispondenza di un evento del clock 32 Pag. 16 Prof. Cristina Silvano Politecnico di Milano 16
Bistabili sincroni e temporizzazione Tabella riassuntiva Relazione StatoUscita Livello Fronte IngressoStato Fronte FlipFlop edgetriggered Relazione I Livello Latch con Enable FlipFlop MasterSlave 33 Esecuzione tipica Elemento di stato 1 Logica combinatoria Elemento di stato 2 Clock Aggiornamento sul fronte di salita T1 T2 Il valore dello stato memorizzato nell elemento 1 al tempo T1 viene utilizzato per determinare tramite la logica combinatoria il valore di stato che verrà memorizzato nell elemento 2 al tempo T2 34 Pag. 17 Prof. Cristina Silvano Politecnico di Milano 17
Esecuzione tipica (2) Stato prossimo Elemento di stato 1 Stato presente Logica combinatoria i Clock Aggiornamento dello stato dell elemento 1 (stato presente) Calcolo dello stato prossimo dell elemento elemento 1 tramite lo stato presente che viene inviato alla logica combinatoria Nuovo aggiornamento dello stato dell elemento elemento 1 (stato prossimo) Lettura e scrittura dello stato in due cicli di clock 35 Latch e flip/flop: Riassunto Semplici elementi di memoria a 1 bit (bistabili) I latch possono essere asincroni o sincroni (con clock) La differenza tra latch e flip/flop sta nel fatto che: in un latch l uscita può cambiare (anche più volte) se il clock è a livello alto in un flip/flop l uscita può cambiare solo sul fronte di salita (oppure di discesa) del clock. 36 Pag. 18 Prof. Cristina Silvano Politecnico di Milano 18
Libreria di blocchi sequenziali Principali blocchi sequenziali: Registro parallelo Registro a scorrimento Banco di registri Contatori Ognuno di questi blocchi ammette numerose versioni e varianti 37 Registro parallelo/parallelo a 4 bit 38 Pag. 19 Prof. Cristina Silvano Politecnico di Milano 19
iagramma temporale carica I1,2,3,4 carica I1,2,3,4 1,2,3,4 U1,2,3,4 XXXX 11 1,2,3,4 I1,2,3,4 11 11 Clock 1 ciclo 2 ciclo 3 ciclo Tempo 39 Registro a scorrimento (shift register) a 4 bit S IN S OUT T T T T CLK 4 Pag. 2 Prof. Cristina Silvano Politecnico di Milano 2
Registro parallelo/seriale a 4 bit SEL 3 2 1 S IN 1 1 1 1 S OUT T T T T CLK 3 2 1 Registro dotato di un segnale di controllo SEL che permetta di selezionare due diverse modalità di funzionamento: parallelo e seriale a 4 bit 41 Banco di Registri (Register File) Spesso occorre utilizzare un certo numero di registri paralleli con funzione di caricamento, tutti aventi le stesse dimensioni e le stesse funzioni (ad es. nel datapath della CPU) Banco di Registri Registri di ingresso dell ALU Bus di ingresso all ALU Registro di uscita dell ALU A A A A + A B L + B B U B I registri vengono organizzati in una struttura a vettore, chiamata banco dei registri 42 Pag. 21 Prof. Cristina Silvano Politecnico di Milano 21
Banco di Registri (Register File) Un banco di registri (Register File) è un insieme di registri che possono essere letti/scritti fornendo in ingresso il numero (indirizzo) del registro che deve essere letto/scritto Progettiamo un Register File con n registri, due porte di lettura (ati1 e ati2) e una porta di scrittura Indirizzo ato A Indirizzo ato B Indirizzo Risultato Risultato ato A ato B 43 Implementazione delle 2 porte di lettura 44 Pag. 22 Prof. Cristina Silvano Politecnico di Milano 22
Implementazione della porta di scrittura kton 45 Contatore a 4 bit Clock FlipFlop Ck! Somma 1 Clock 1 1 1 46 Pag. 23 Prof. Cristina Silvano Politecnico di Milano 23