LOGICA TEMPORIZZATA

abstract-electronics-digital-technology-blue-background_5205-32Nei contesti più ampi quando circuiti digitali devono dialogare fra loro, è necessario sincronizzare il trasferimento dei dati, considerando anche i ritardi che un determinato circuito può produrre. Questa sincronizzazione o clock viene generalmente ottenuta da un multivibratore astabile che come abbiamo visto non possiede nessuno stato stabile ma oscilla per mezzo di circuiti RC producendo in uscita un’onda quadra o rettangolare. Nei microprocessori la sincronizzazione si basa su circuiti al quarzo, essi offrono maggiore stabilità e frequenze di lavoro molto più elevate.

EDGE TRIGGED

Sino adesso abbiamo visto come i circuiti digitali vengano attivati da due tensioni di riferimento, 0V e 5V. Tuttavia in presenza di un segnale di clock alcuni circuiti vengono attivati dal livello alto o basso del segnale, altri invece durante le transizioni dei livelli stessi e definiti come:

  • Fronte positivo (Positive Edge Trigged – PET): dal livello 0 a 1.
  • Fronte negativo (Negative Edge Trigged – NET): dal livello 1 a 0.
Edge Trigged

In funzione del fronte desiderato è possibile produrre un brevissimo impulso attraverso una caratteristica della famiglia TTL che è il tempo di propagazione di una porta logica. Ma cosa si intende per tempo di propagazione? Fondamentalmente è l’intervallo di tempo che intercorre tra il livello logico applicato in ingresso e l’adeguamento in uscita. Il tempo di propagazione di una porta TTL è di circa 10ns.

RICONOSCIMENTO FRONTE POSITIVO

Realizziamo un circuito in grado di generare un rapidissimo impulso in corrispondenza del fronte di salita del clock.

Positive Edge Trigged

FUNZIONAMENTO DEL CIRCUITO

Il segnale di clock è applicato alla porta AND in due momenti successivi, direttamente sul primo ingresso e attraverso una porta NOT sul secondo ingresso. Abbiamo visto che la porta NOT genera un ritardo di propagazione. Nel primo semi-periodo del segnale di clock indicato nel diagramma con (1) la porta AND presenta sul primo ingresso un segnale logico 0 (diretto) e sul secondo ingresso un livello logico 1 dovuto alla porta NOT.

INIZIO FRONTE POSITIVO DEL CLOCK

Quando inizia il fronte positivo del segnale di clock indicato con (2) gli ingressi della porta AND sono entrambi ad 1, un livello logico alto arriva sul primo ingresso dovuto alla commutazione del segnale di clock da 0 a 1, mentre sull’altro ingresso il ritardo della porta NOT di 10 ns fa si che anche il secondo piedino di ingresso sia a livello logico 1 in luogo del ritardo di commutazione della porta NOT. Questo ritardo ha mantenuto alta l’uscita della porta AND in corrispondenza del fronte di salita del clock.

RICONOSCIMENTO FRONTE NEGATIVO

In maniera del tutto analoga avviene il riconoscimento del fronte negativo del clock, sostituendo nel circuito la porta AND con una porta NOR.

Negative Edge trigged

I circuiti di rilevazione dei fronti non vengono indicati nei circuiti integrati, e vengono sempre sottointesi nell’ingresso di clock.

FLIP-FLOP JK

Analogamente ad un Latch un flip-flop è in grado di immagazzinare un bit, è quindi un elemento base della memoria, ma a differenza del Latch può essere controllato da un segnale di clock simile al segnale di abilitazione del Latch. Un flip-flop generico è realizzato da un Latch e da un circuito di comando posto in ingresso insieme al segnale di clock, entrambi realizzano la temporizzazione dei dati in transito, ad esempio da J verso l’uscita Q.

Flip-Flop JK

Gli ingressi J, K sono gli omologhi degli ingressi SET, RESET di un Latch, ma al contrario in questo circuito non esiste la condizione di indeterminazione, infatti quando J=1, K=1 le uscite commutano (toggle cioè invertono lo stato) quando arriva il fronte di clock positivo. In riferimento al diagramma sopra disegnato possiamo aiutarci con la seguente tabella per riassumere gli stati.

J

K

Q

1

0

L’uscita Q si porta a livello 1

1

1

Toggle inverte il livello da 1 a 0

0

0

Rimane invariato a livello 0 (memoria)

1

0

Si riporta a livello 1

0

1

Si riporta a livello 0

1

1

Inverte il livello da 0 a 1

0

0

Rimane a livello 1 (memoria)

FLIP-FLOP TIPO T

Facendo riferimento al grafico precedente, quando gli ingressi J e K sono a livello 1 in uscita avviene un’inversione di livello logico. Sfruttando questa caratteristica e collegando insieme J e K in un nuovo ingresso chiamato T(Toggle) si ottiene un nuovo flip-flop.

Flip-Flop tipo T (Toggle)

Osservando il diagramma si vede che un flip-flop J, K con ingressi cortocircuitati genera in uscita un segnale avente frequenza dimezzata rispetto al clock. Quindi per esempio con un clock di 2MHZ l’uscita avrebbe una frequenza di 1MHZ.  È il componente base dei contatori, infatti collegando a cascata vari flip-flop T ad ogni uscita si ottiene un clock dimezzato rispetto al clock precedente.

FLIP-FLOP TIPO D

Flip-Flop tipo D

L’ingresso D (Data) è trasmesso all’uscita Q solo sul fronte di salita del clock. In corrispondenza del comando di clock, trasferisce l’ingresso in uscita e ve lo mantiene fin quando non cambia il suddetto ingresso. per le sue caratteristiche è il componente base delle memorie (veloci) e registri (normali, a scorrimento, ad anello).

FLIP-FLOP MASTER-SLAVE

Il flip-flop master-slave non utilizza solo il fronte di salita del clock ma entrambi per trasmettere il dato dall’ingresso verso l’uscita. Si ha una maggior separazione fra ingresso e uscita, questo consente ad un eventuale circuito collegato a valle di elaborare i dati in uscita dallo slave e nello stesso tempo procedere con una nuova acquisizione nel master.

Flip-Flop master-slave

Come si vede dal circuito la separazione avviene grazie a un doppio flip-flop, ognuno mantiene il dato durante le due transizioni dello stesso. Questi sono chiamati master-slave (padrone-schiavo). Ogni flip-flop ha un controllo per l’abilitazione e la sincronizzazione, cosicché quando è attivo uno l’altro è inattivo realizzando la separazione richiesta. La porta NOT è di fondamentale importanza, essa temporizza i due flip-flop sul fronte di salita e discesa del clock, attivando e disattivando i rispettivi ingressi.

FUNZIONAMENTO

Il dato si posiziona prima sul master (fronte di salita del clock) poi sullo slave (fronte di discesa del clock). Dal diagramma temporale si osserva che il flip-flop master-slave acquisisce i dati sul fronte di salita del clock (master) e li trasferisce sull’uscita dello slave solo in corrispondenza del fronte di discesa. Si può considerare un flip-flop JK master-slave un negative edge trigged poiché il dato in uscita si presenta sul fronte di discesa del clock. I flip-flop nei quali i dati transitano in uscita mediante un segnale di clock sono detti sincroni, appunto perché sincronizzati dal clock. Tuttavia può nascere l’esigenza di avere un determinato livello prima che il clock agisca sul circuito, ed è per questo motivo che i flip-flop sono dotati di due ingressi asincroni che forzano l’uscita ad un determinato livello.

  • Pr (Preset – Predisponi) questo ingresso quando a livello 1 forza l’uscita a livello alto indipendentemente dagli ingressi.
  • Cr (Clear – Pulisci) Quando è presente un livello 0 sul Clear forza l’uscita a 0.

SIMBOLOGIA DEI FLIP-FLOP

SIMBOLO FLIP FLOP J-K

Flipflopjk

FLIP FLOP TIPO T (TOGGLE)

T-Type_Flip-flop

FLIP FLOP TIPO D (DATA)

D-Type_Flip-flop

APPROFONDIMENTO AI

FLIP FLOP JK

Flip-Flop JK

La figura mostra un flip-flop JK, che è una variante del flip-flop SR con la caratteristica di evitare condizioni indeterminate. Analizziamo in dettaglio le componenti principali e il loro funzionamento:

1. Schema del Circuito (parte superiore):

Lo schema mostra la configurazione logica del flip-flop JK. È basato su porte logiche che creano la struttura del flip-flop.

Ingressi:

J: È un ingresso attivo che influisce sullo stato finale del flip-flop.

K: Simile a J, ma con effetto opposto (può resettare l’uscita Q).

CK (Clock): Il segnale di clock sincronizza il flip-flop. Il flip-flop JK, come molti altri, opera a fronte del fronte positivo del segnale di clock.

Uscite:

Q: È l’uscita principale.

Q’: È l’uscita complementare (non mostrata nella figura, ma implicita per la maggior parte dei flip-flop JK).

2. Tabella della Verità (parte centrale):

La tabella fornisce la logica operativa del flip-flop JK in base agli ingressi J e K e al segnale di clock (CK). Vediamo cosa succede in vari scenari:

J = 0, K = 0 (Nessun cambiamento): Il flip-flop mantiene il suo stato attuale, il che significa che Q rimane come era.

J = 1, K = 0 (Set): L’uscita Q diventa 1 (set).

J = 0, K = 1 (Reset): L’uscita Q diventa 0 (reset).

J = 1, K = 1 (Toggle): L’uscita Q inverte il suo stato (se era 0, diventa 1, e viceversa).

3. Diagramma Temporale (parte inferiore):

Il diagramma temporale mostra l’evoluzione nel tempo dei segnali di ingresso (J e K) e dell’uscita (Q) sincronizzati con il segnale di clock (CK). Analizziamo in dettaglio:

•Il segnale di clock (CK) è rappresentato come una sequenza di impulsi (frecce verso l’alto indicano il fronte positivo).

Ciclo 1: J = 1 e K = 0, quindi il flip-flop viene settato, e Q diventa 1.

Ciclo 2: J = 0 e K = 0, quindi il flip-flop mantiene il suo stato, quindi Q rimane 1.

Ciclo 3: J = 0 e K = 1, quindi il flip-flop si resetta, e Q diventa 0.

Ciclo 4: J = 1 e K = 1, il flip-flop esegue un’inversione del suo stato (toggle), quindi Q diventa 1.

Cicli successivi (5-8): Continuano a mostrare diversi cambiamenti degli ingressi J e K e il conseguente comportamento di Q.

Funzionamento Generale del Flip-Flop JK:

Il flip-flop JK è un dispositivo bistabile che memorizza un bit di informazione e ha la capacità di cambiare stato solo in corrispondenza dei fronti di clock. Le condizioni per cui J = 1 e K = 1 non causano un comportamento indefinito come accade nel flip-flop SR, ma fanno sì che il flip-flop inverta il suo stato, rendendolo più versatile e stabile.

Il flip-flop JK basato su porte NAND, come quello mostrato nel circuito della figura, ha una logica interna che si basa sull’interconnessione di più porte NAND. Ora ti descriverò in dettaglio il funzionamento di questo circuito con porte NAND.

Struttura del Circuito:

Il flip-flop JK è costruito utilizzando un latch SR con l’aggiunta di due porte NAND che prendono gli ingressi J, K e il clock (CK). Vediamo come funziona ogni parte del circuito:

1. Porte NAND di controllo degli ingressi (parte sinistra):

•Queste due porte NAND hanno il compito di controllare gli ingressi J e K. Ogni porta prende come ingressi:

Il segnale di clock (CK).

Uno degli ingressi J o K.

Quando il segnale di clock è alto (logica 1), il flip-flop JK è “attivo” e pronto per accettare i cambiamenti negli ingressi J e K. Altrimenti, il circuito mantiene lo stato precedente.

2. Latch SR (parte destra):

•Il latch SR è la parte fondamentale del flip-flop, che memorizza lo stato del flip-flop. È costituito da due porte NAND incrociate.

•Le due porte NAND lavorano in modo che una delle due uscite (Q o Q’) sia forzata a basso (logica 0), mentre l’altra è forzata ad alto (logica 1), creando lo stato stabile necessario per memorizzare un bit di informazione.

•L’uscita del latch SR si basa sugli ingressi provenienti dalle due porte NAND di controllo e determina il comportamento finale dell’uscita Q.

Funzionamento Dettagliato:

1. J = 0, K = 0 (Nessun cambiamento):

•Se J e K sono entrambi 0, le uscite delle prime due porte NAND rimarranno a livello logico alto (logica 1) per tutto il periodo in cui il clock è alto. Ciò significa che il latch SR non riceve alcun comando di cambiamento, quindi il flip-flop mantiene il suo stato precedente.

Risultato: Q mantiene il suo valore attuale.

2. J = 1, K = 0 (Set):

•Quando J è 1 e K è 0, la prima porta NAND con l’ingresso J trasmette un segnale attivo (logica 0) alla porta NAND del latch SR responsabile del settaggio (forzare Q a 1).

•Nel frattempo, l’ingresso K = 0 fa sì che l’altra porta NAND trasmetta un segnale inattivo, che non influisce sull’uscita.

Risultato: Q viene forzato a 1 (set).

3. J = 0, K = 1 (Reset):

•Quando J è 0 e K è 1, la seconda porta NAND, che riceve l’ingresso K, trasmette un segnale attivo (logica 0) alla porta NAND responsabile del reset, forzando l’uscita Q a 0.

•La prima porta NAND (con J = 0) trasmette un segnale inattivo, che non influisce sul circuito.

Risultato: Q viene forzato a 0 (reset).

4. J = 1, K = 1 (Toggle):

•Quando J e K sono entrambi a 1, entrambe le prime porte NAND possono trasmettere un segnale attivo al latch SR, ma solo quando il clock (CK) ha un fronte positivo.

•Questo causa una situazione in cui le uscite del latch SR cambiano stato, ovvero l’uscita Q si inverte rispetto al valore precedente.

Risultato: Q si inverte (se Q era 0 diventa 1, se Q era 1 diventa 0).

Riassunto:

Il flip-flop JK con porte NAND funziona in modo da sincronizzare gli ingressi J e K con il segnale di clock. In funzione degli ingressi, esegue le operazioni di set, reset o toggle dell’uscita Q. La presenza del segnale di clock è fondamentale, poiché il flip-flop JK cambia stato solo durante il fronte positivo del clock, il che lo rende un dispositivo sincrono.

Questo tipo di configurazione è più stabile rispetto al flip-flop SR, perché gestisce la condizione problematica in cui entrambi gli ingressi sono attivi (J = 1 e K = 1), trasformando questa situazione in una comoda inversione (toggle) dello stato.

FLIP FLOP TIPO T

Flip Flop T

Il flip-flop di tipo T (Toggle) è un circuito sequenziale basato sul clock che cambia il proprio stato di uscita ogni volta che riceve un impulso di clock se l’ingresso T è alto. Se l’ingresso T è basso, lo stato di uscita rimane invariato. Questo tipo di flip-flop viene spesso utilizzato per dividere la frequenza del segnale di clock per due e come contatore binario.

Funzionamento del Flip-Flop T:

Ingresso T: Questo ingresso controlla il comportamento di toggle. Se T è alto (1), l’uscita Q cambia stato (toggle) ad ogni impulso di clock. Se T è basso (0), l’uscita rimane invariata.

Clock (CK): Il flip-flop viene attivato sull’orlo del clock (solitamente fronte di salita o di discesa del segnale di clock).

Uscita Q: Questa è l’uscita principale che mantiene lo stato del flip-flop, e può essere vista come una memoria a singolo bit.

Schema Circuitale:

Lo schema che hai condiviso utilizza porte NAND per realizzare il flip-flop T. Lo schema rappresenta una variante del flip-flop SR (Set-Reset) con due porte NAND aggiuntive per il controllo dell’ingresso T.

Descrizione dello schema:

1. L’elemento SR con porte NAND:

•Lo schema presenta un latch SR (Set-Reset) realizzato con due porte NAND. Questo latch è il cuore del flip-flop, in cui le uscite delle NAND sono interconnesse. L’uscita di una NAND è connessa all’ingresso dell’altra, formando il comportamento di memoria del flip-flop SR.

2. Controllo tramite l’ingresso T:

•L’ingresso T è collegato ad una rete di controllo, rappresentata da altre porte NAND, che attiva o meno il toggle (cambio di stato) del flip-flop a seconda del suo valore.

•Quando T è alto (1), il flip-flop commuta il suo stato ad ogni impulso di clock.

•Se T è basso (0), il flip-flop non cambia stato.

Diagramma temporale:

Il diagramma temporale sotto lo schema circuitale mostra:

CK: Il segnale di clock (2 MHz) è rappresentato come una serie di impulsi (segnale verde).

T: Quando T è alto (segnale rosso costante alto), il flip-flop commuta il suo stato a ogni impulso di clock.

Q: Il segnale di uscita Q è diviso per due rispetto alla frequenza del clock, il che è tipico del flip-flop T. Ogni ciclo completo del clock fa cambiare lo stato di Q una volta, per cui la frequenza di Q è pari a F/2.

Analisi del comportamento:

Quando T è 1, l’uscita Q cambia stato (toggle) su ogni impulso del segnale di clock. Se osservi il diagramma temporale, vedrai che per ogni due cicli di clock, l’uscita Q cambia il suo stato (ON/OFF), confermando che la frequenza dell’uscita Q è metà rispetto a quella del clock.

Se T fosse stato 0, l’uscita Q sarebbe rimasta costante.

Sintesi:

Il flip-flop T è utile quando è necessario dividere la frequenza di un segnale o implementare un contatore binario. Nell’implementazione a NAND che hai mostrato, il flip-flop si basa su un latch SR controllato dal segnale di toggle T, il quale determina se il flip-flop cambia o meno il suo stato ad ogni ciclo di clock.

FLIP FLOP TIPO D

Flip-Flop D

Il flip-flop di tipo D, mostrato nello schema che hai caricato, è un dispositivo sequenziale che memorizza un bit di informazione. È composto da sole porte NAND e funziona secondo i segnali di ingresso D (dato) e CK (clock). Questo tipo di flip-flop trasferisce il valore presente sull’ingresso D all’uscita Q quando il segnale di clock cambia stato (dal basso verso l’alto, in questo caso). Il flip-flop di tipo D è noto anche come latch SR controllato dal clock o edge-triggered.

Descrizione dello schema:

1. Porte NAND: Il circuito è composto da quattro porte NAND, configurate in modo tale da formare un latch SR (Set-Reset), con un blocco di controllo che include due porte NAND addizionali.

2. Controllo (CONTROLLO): La parte a sinistra dello schema, etichettata come “CONTROLLO”, ha la funzione di abilitare o disabilitare il passaggio del dato D in funzione del segnale di clock CK . Quando il clock è attivo (ad esempio, con un fronte di salita), il dato D viene trasferito al latch SR.

3. Latch SR: La parte a destra dello schema etichettata come “LATCH SR” memorizza il bit attuale finché non riceve un nuovo comando dal segnale di controllo. Questa struttura mantiene stabile il valore di Q , anche quando l’ingresso D cambia, fino al prossimo fronte di clock.

Funzionamento Temporale:

Nella parte inferiore dell’immagine viene mostrato un diagramma temporale che rappresenta la relazione tra CK (clock), D (dato) e Q (uscita).

1. Segnale di clock (CK): Il segnale di clock rappresenta il tempo su cui il flip-flop sincronizza il cambiamento dell’uscita. Il flip-flop di tipo D cattura il valore presente su D durante il fronte di salita (indicata dalle frecce in alto nel grafico del clock).

2. Dato (D): Il segnale D è l’ingresso che si desidera memorizzare. Il diagramma mostra che D cambia valore prima del fronte di salita del clock.

3. Uscita (Q): L’uscita Q segue l’ingresso D ma solo dopo il fronte di salita del clock. Ad esempio, nel ciclo di clock numero 2, D è alto prima del fronte di salita, quindi Q assume il valore alto dopo il fronte di salita. Questo processo si ripete nel ciclo di clock successivo (numero 6).

Comportamento:

•Quando il clock CK è basso, il flip-flop non cambia stato.

•Durante il fronte di salita del clock, l’uscita Q assume lo stesso valore del dato D presente in quel momento.

•Dopo il fronte di clock, l’uscita Q rimane stabile fino al prossimo fronte di salita, indipendentemente dai cambiamenti di D .

Conclusione:

Il flip-flop di tipo D agisce come un latch che memorizza il valore di D in base agli impulsi del clock. È un componente fondamentale per la memorizzazione e la sincronizzazione dei dati nei sistemi digitali, spesso utilizzato nei registri e nei contatori.

FLIP FLOP MASTER-SLAVE

Flip-Flop master-slave

Il circuito rappresentato è un flip-flop JK master-slave realizzato esclusivamente con porte NAND. Questo tipo di flip-flop è composto da due sezioni principali:

1. Sezione Master:

•La sezione master è controllata dal segnale di clock (CK). Quando il clock è a livello logico alto (1), il flip-flop master è attivo e può acquisire i valori degli ingressi J e K.

•Il segnale CK è collegato direttamente agli ingressi delle porte NAND che costituiscono il master.

•La sezione master è formata da due latch basati su porte NAND. Ogni latch è configurato in modo tale da consentire l’acquisizione dei segnali J e K quando il clock è alto.

•L’uscita della sezione master viene inviata come ingresso alla sezione slave.

2. Sezione Slave:

•La sezione slave è attiva quando il segnale di clock è a livello logico basso (0). Questo è ottenuto grazie a un invertitore che inverte il segnale di clock, attivando così il flip-flop slave quando il master è inattivo.

•La sezione slave acquisisce lo stato del master e lo immagazzina. Essa è composta anch’essa da due latch basati su porte NAND, simili a quelli della sezione master.

•Le uscite del flip-flop slave sono le uscite finali del flip-flop JK master-slave, indicate come Q e \overline{Q} (uscita e uscita negata).

Ingressi di controllo PR e CR:

•Il segnale PR (Preset) è un ingresso di controllo che forza l’uscita Q a 1, indipendentemente dallo stato del clock o dagli ingressi J e K.

•Il segnale CR (Clear) è un altro ingresso di controllo che forza l’uscita Q a 0, indipendentemente dal clock o dagli ingressi J e K.

Funzionamento Logico del Flip-Flop JK Master-Slave:

1. Condizione di mantenimento (J=0, K=0): Se entrambi gli ingressi J e K sono 0, il flip-flop mantiene il suo stato precedente, indipendentemente dal segnale di clock.

2. Set (J=1, K=0): Quando J è 1 e K è 0, il flip-flop viene settato, e l’uscita Q viene impostata a 1.

3. Reset (J=0, K=1): Quando J è 0 e K è 1, il flip-flop viene resettato, e l’uscita Q viene impostata a 0.

4. Toggle (J=1, K=1): Se entrambi gli ingressi J e K sono 1, il flip-flop inverte il suo stato (toggles) ad ogni fronte di discesa del clock.

Descrizione del Diagramma Temporale:

Nel diagramma temporale sotto il circuito, vediamo la variazione nel tempo di CK, J, K e Q:

•L’asse del tempo mostra 8 intervalli di clock.

•Quando CK è alto (fasi 1, 3, 5, 7), il master cattura il valore degli ingressi J e K.

•Quando CK è basso (fasi 2, 4, 6, 8), il master trasferisce lo stato catturato al slave, che aggiorna l’uscita Q .

•Il comportamento del flip-flop dipende dagli ingressi J e K. Ad esempio, durante l’intervallo 3, J=1 e K=0, quindi l’uscita Q viene settata a 1 al fronte di discesa successivo.

Conclusione:

Il flip-flop JK master-slave ha un comportamento sincrono: le modifiche agli ingressi J e K influenzano l’uscita Q solo al fronte di discesa del clock. Il master cattura gli ingressi quando il clock è alto, mentre il slave aggiorna lo stato dell’uscita quando il clock è basso. Questo design previene condizioni di gara (race conditions) e garantisce un comportamento stabile e prevedibile del circuito.

LINK AI PRECEDENTI POST 

LINK DI APPROFONDIMENTO