Reti logiche (2) Circuiti sequenziali 1 Un ripasso Algebra booleana: operatori, postulati, identità, operatori funzionalmente completi Circuiti combinatori: tabelle di verità, porte logiche Decodificatore Multiplexer Somma di prodotti Minimizzazione algebrica Semplificazione algebrica 2 1
Organizzazione della lezione I circuiti sequenziali Temporizzazione e clock Latch tipo S-R Il più semplice elemento di memoria Stabilità e comportamento in funzione degli ingressi Latch tipo D e Flip-flop tipo D Elementi temporizzati Comportamento in funzione del clock Register file Memoria SRAM Linea di bit Decodifica a due passi Patterson e Hennessy App. B.7, B.8, B.9 (solo SRAMs) Tutti gli esempi in Verilog sono esclusi 3 Circuiti sequenziali Un circuito combinatorio è Un insieme di porte logiche interconnesse L output, in ogni istante, è funzione solo dell input Cioè non dipende dai precedenti input (o da uno stato interno del circuito = circuito senza memoria) Un circuito sequenziale è Un insieme di porte logiche interconnesse L output dipende non solo dagli input ma anche dallo stato interno (cioè dai precedenti input) Si usa un segnale di Clock per determinare quando aggiornare lo stato (circuiti sincroni) 4 2
Temporizzazione (1) Un segnale di Clock è un segnale che evolve indipendentemente Con un periodo di clock Ovvero con una frequenza di clock (inverso del periodo) Diviso in due parti (segnale alto e segnale basso ) Temporizzazione sensibile ai fronti Le variazioni avvengono in corrispondenza di un fronte Il fronte attivo può essere quello di salita o di discesa 5 Temporizzazione (2) Un sistema dotato di Clock è anche detto sistema sincrono I segnali negli elementi di stato di un sistema sincrono devono essere validi all arrivo del fronte attivo di clock Ovvero devono essere stabili e fissati fino al prossimo cambiamento in ingresso Allora il periodo di clock deve essere abbastanza lungo 6 3
Latch S-R (1) Il più semplice circuito sequenziale È un dispositivo bistabile Può essere in uno di due stati possibili Rimane nello stato in cui si trova (stabilità) tranne che per determinati input Una specie di memoria a 1 bit Ha due output uno è il complemento dell altro di solito indicati con Q e Q complementato È un circuito non temporizzato Lo stato è aggiornato dagli ingressi di dato L aggiornamento non dipende da un ingresso di clock 7 Latch S-R (2) Due input S e R: S (sta per Set) serve a impostare a 1 lo stato del latch R (sta per Reset) serve ad impostare a lo stato del latch (azzeramento) Feedback (retroazione) Dobbiamo provare stabilità, ovvero che Lo stato Q= è stabile Lo stato Q=1 è stabile Dobbiamo studiare il comportamento con S e R 8 4
Stabilità del latch S-R (1) Siano R, S, Q a valore L input alla porta NOR in basso dà in output 1 L output della porta in basso viene portato come input alla porta NOR in alto Che quindi, mantiene lo stato Q uguale a Lo stato è stabile con S e R a Ovvero il latch mantiene lo stato Q= 1 1 9 Stabilità del latch S-R (2) Siano R,S a valore e Q=1 L input alla porta NOR in basso dà in output L output della porta in basso viene portato come input alla porta NOR in alto Che quindi, mantiene lo stato Q uguale a 1 Lo stato 1 è stabile con S e R a Ovvero il latch mantiene lo stato 1 1 1 1 5
Comportamento del latch I segnali di Set (S) e Reset (R) servono a cambiare lo stato del Latch S-R Il segnale di Set (S) affermato Indipendentemente dal valore di Q (stato corrente) Fa sì che lo stato Q sia portato a 1 Il segnale di Reset (R) affermato Indipendentemente dal valore di Q (stato corrente) Fa sì che lo stato Q sia portato a 11 Comportamento con il Set (1) Siano R=, Q= e S=->1 L input alla porta NOR in basso cambia l output da 1 a L output della porta in basso viene portato come input alla porta NOR in alto Che quindi, cambia lo stato Q da a 1 Quindi, la porta NOR in basso mantiene lo stato di Q negato a Verifica: transizione S=1-> non modifica lo stato -> 1 -> 1 1-> 12 6
Comportamento con il Set (2) Siano R=, Q=1 e S=->1 L input alla porta NOR in basso dà in output L output della porta in basso viene portato come input alla porta NOR in alto L input alla porta NOR in alto dà in output 1 Quindi, la porta NOR in alto mantiene lo stato Q a 1 Verifica: transizione S=1-> non modifica lo stato -> 1 1 -> 1 -> 13 Comportamento con il Reset (1) Siano S=, Q= e R=->1 L input alla porta NOR in alto dà in output L output della porta in alto viene portato come input alla porta NOR in basso L input alla porta NOR in basso dà in output 1 Quindi, la porta NOR in basso mantiene lo stato di Q negato a 1 Verifica: transizione R=1-> non modifica lo stato -> 1 -> 1-> 1 14 7
Comportamento con il Reset (2) Siano S=, Q=1 e R=->1 L input alla porta NOR in alto cambia l output da 1 a L output della porta in alto viene portato come input alla porta NOR in basso Che quindi, cambia lo stato Q negato da a 1 Quindi, la porta NOR in alto mantiene lo stato di Q a 1 Verifica: transizione R=1-> non modifica lo stato -> 1 1 -> -> 1 15 Tavola caratteristica del latch S-R Stabilità del latch Comportamento con R Comportamento con S Input S e R a 1 non sono permessi! (oscillazioni, metastabilità) 16 8
Latch di tipo D (temporizzato) Dato il ritardo con cui il latch reagisce bisogna sincronizzare gli eventi Si usa un segnale di ingresso (D) da memorizzare Si usa un segnale di clock (C) per indicare quando D va memorizzato 17 Comportamento di un latch D Sia D= e C=->1-> S= R= CD R=->1-> Sia D=1 e C=->1-> R= S=->1-> NB: L ingresso R=1, S=1 è sempre evitato S= CD 18 9
Segnali in un latch D Lo stato del latch D può essere cambiato in ogni istante della fase di clock alto Non è temporizzazione sensibile ai fronti! 19 Flip-flop D Due latch di tipo D in configurazione Master-Slave Il primo (Master) può essere scritto per C=1 Il secondo (Slave) può essere scritto per C= Allora il flip-flop è sensibile al fronte di discesa 2 1
Segnali in un flip-flop D L uscita Q memorizza il valore di D quando il clock passa da affermato a non affermato L ingresso deve essere stabile prima del fronte di clock (tempo di set-up) e dopo il fronte di clock (tempo di hold) 21 Register file Insieme di registri che possono essere letti/scritti Basato su matrice di registri costruiti a partire da flip-flop D Un ingresso per lettura Numero di registro Tre ingressi per scrittura Numero di registro Dato da scrivere Segnale di clock Register file con due porte di lettura e una di scrittura 22 11
Register file: lettura Figura B.8.8 23 Register file: scrittura Figura B.8.9 24 12
Memorie SRAM SRAM (Static Random Access Memory) per costruire quantità maggiori di memoria sono realizzabili Matrici di memoria Tipicamente una porta di accesso per lettura e scrittura Stesso tempo di accesso per tutti i dati Numero di locazioni indirizzabili: altezza Numero di bit per ciascuna locazione: ampiezza Ad esempio: SRAM 256K x 1 oppure 32k x 8 Non si può usare la stessa tecnica costruttiva di un register file: decodificatori e multiplexer di dimensioni troppo elevate In alternativa: DRAM (Dynamic Random Access Memory) Tecnologia più lenta ma più economica 25 Una SRAM 32k x 8 Chip select deve essere affermato per lettura/scrittura Output enable deve essere affermato per lettura Write enable deve essere affermato per scrittura Tempo di accesso in lettura: ritardo tra Output Enable affermato e presentazione del dato in uscita (meno di 5 ns) Figura B.9.1 (figura/didascalia incoerenti su libro) 26 13
Linea di bit Usata al posto di un multiplexer gigantesco Buffer a tre stati: un ingresso di dato, uno di abilitazione, una uscita È fondamentale garantire che solo un Select sia abilitato in ogni istante Out ha lo stesso valore di In se Select è affermato, altrimenti è in uno stato di alta impedenza In questo modo si realizza un multiplexer Figura B.9.2 27 Realizzazione di una SRAM 4x2 Figura B.9.3 28 14
Decodifica a due passi (1) In una SRAM 32k x 8 ci vorrebbe decodificatore a 15 bit e 32k vie Non è conveniente! La decodifica a due passi ovvia a questo problema Primo passo: un decodificatore genera un indirizzo per 8 matrici 512x64 bit Secondo passo: un insieme di multiplexer seleziona 1 bit da ciascuna matrice 29 Decodifica a due passi (2) Figura B.9.4 3 15
Parole chiave Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file Memorie SRAM Linea di bit, decodifica a due passi 31 16