Si pone il problema di realizzare circuiti, detti sequenziali, in cui le uscite dipendono dalla sequenza con la quale sono applicati gli ingressi, come ad es. nel caso del riconoscimento della password di un antifurto. Questi circuiti devono quindi ricordare la storia passata e per far questo devono contenere una memoria.
Nella logica sequenziale le uscite dipendono dal valore attuale e precedente degli ingressi.
Sono necessarie dunque, oltre agli ingressi ed alle uscite, variabili che rappresentano lo stato del circuito. Nei casi più semplici queste variabili di stato sono le stesse uscite riportate in ingresso.
In generale i circuiti sequenziali più complessi sono formati da celle di memoria elementari, che memorizzano gli eventi passati, e da circuiti combinatori per ottenere in uscita le funzioni desiderate, come nel modello di Huffman mostrato in fig.
Studiamo la cella elementare chiamata latch.
Si definisce reazione il riporto di un'uscita in ingresso.
Questo riporto forma un anello e può consentire ad un segnale di permanere immutato al suo interno, rigenerandosi continuamente; il tutto in assenza di stimoli esterni: si tratta di una memoria in fase di lettura.
Schema di principio di una cella di memoria elementare
Nella fig., riportando l'uscita di una porta NOT all'ingresso dell'altra, si forma un anello in cui gira un segnale che rimane inalterato nel tempo (finchè l'alimentazione è attiva). Le uscite delle due porte non cambiano e il circuito permane in uno stato di memoria, qualunque esso sia, alto o basso. Non è necessario un refresh e si parla di memoria statica (SRAM). Le applicazioni sono vastissime; ad es. gruppi di celle di memoria elementari costituiscono la cache memory e i registri dei microprocessori.
Le due possibili uscite risultano complementate. Una sola potrebbe essere accessibile all'esterno.
Quindi si tratta di una cella di memoria elementare che memorizza un bit. Ruotando una delle due NOT si ottiene la configurazione circuitale a fili intrecciati che si trova sui vari testi.
Una memoria utilizzabile deve consentire:
la scrittura: deve essere possibile, tramite ingressi, porre l'uscita allo stato alto o allo stato basso
la lettura: è necessario uno stato degli ingressi che non altera lo stato dell'uscita (stato di memoria)
In totale in ingresso sono necessarie tre condizioni: quindi bastano due segnali di ingresso.
Nello schema precedente non è possibile scrivere ed è necessario aggiungere gli ingressi.
In questo schema sono presenti due segnali: LE e D.
Il segnale LE comanda contemporaneamente i due pulsanti complementari, e pone il circuito:
in lettura (memoria): anello chiuso e D ininfluente
in scrittura: con l'anello interrotto e D che influenza le due NOT
Si sottolinea che si tratta di schemi di principio per illustrare in modo semplice il legame tra la reazione, memoria ed ingressi. La cella è realizzata con 6 transistori, due per ogni NOT e 2 per l'accesso. Altre memorie più semplici (DRAM) si realizzano con un solo transistore.
cache memory http://www.diag.uniroma1.it/~ciciani/DIDATTICA/CALCOLATORI-II/cache.pdf
CIRCUITI BISTABILI
Lo stato, H o L, di un circuito digitale è instabile se, in assenza di segnali esterni, il circuito autonomamente commuta nell'altro stato, dopo un intervallo di tempo che dipende in genere da componenti RC interni.
Viceversa lo stato è stabile se, in assenza di comandi esterni, rimane inalterato nel tempo.
Una cella di memoria deve essere un circuito bistabile: i due stati, H e L, che può assumere l'uscita sono entrambi stabili nel senso che per ottenere un cambiamento del loro stato è necessario applicare un opportuno segnale esterno. Permanendo in uno stato, in assenza di sollecitazioni, il circuito ricorda gli eventi passati e per questo è una cella di memoria.
Esistono i circuiti monostabili in cui solo uno dei due stati è stabile, come il relè temporizzato, ed i circuiti astabili in cui entrambi gli stati sono instabili, come un generatore di onda quadra o clock.
VARIABILE TEMPO
Sappiamo che in logica digitale, relativamente all'informazione logica, la variabile tempo è discreta.
Indichiamo questi istanti (in cui l'informazione è significativa) con una sequenza numerica: 1, 2, 3...n-1, n, n+1...
Nel seguito si intende con n l'istante di applicazione degli ingressi, in cui il sistema si trova in un determinato stato; con n+1 l'evoluzione conseguente del sistema (stato futuro o stato successivo all'applicazione degli ingressi).
CIRCUITI ASINCRONI E SINCRONI
Con riferimento all'argomento trattato nei circuiti asincroni gli ingressi possono modificare le variabili di uscita in qualunque istante; in quelli sincroni tutte le variabili di uscita si aggiornano contemporaneamente in corrispondenza di istanti definiti da un segnale (aggiuntivo rispetto ai dati) detto clock che gestisce l'evoluzione temporale del sistema. Vedremo che i latch sono asincroni mentre i flip flop sincroni.