Le tempificazioni edge trigger e master/slave, i flip-flop di tipo JK e T

Da Hacknowledge.

Indice

[modifica] La tempificazione edge trigger

La tempificazione edge-trigger (le cui iniziali ET sono appunto usate per specificare in modo sintetico il tipo di tempificazione adottato dal flip-flop) può avvenire sul fronte di salita oppure sul fronte di discesa di uno dei bit in ingresso al flip-flop, ad esempio, per il flip-flop D questa tempificazione è solitamente adottata per il bit di abilitazione a. Per un flip flop D sono allora valide le tempificazioni ETS (per un FF che agisce sul fronte di salita della variabile a) ed ETD (per un FF che agisce sul fronte di discesa della variabile a). Per fronte di salita s’intende la variazione e quindi l’evento 0 → 1 alla quale il bit di abilitazione è sottoposto (vicevesa per il fronte di discesa). Ancora prima di vedere la tabella che mostra la transizione degli stati è opportuno fare qualche precisazione: le prime due righe si riferiscono a condizioni di funzionamento che prevedono in uscita Q=0, le ultime due righe sono invece riferite a condizioni di funzionamento in cui l’uscita è Q=1. Gli stati stabili vengono identificati nella tabella evidenziando questi ultimi in corrispondenza delle righe in cui i pedici risultano essere uguali a quelli riportati nella cella di stato.

[modifica] Flip-flop D ETS

La tabella di transizione per gli stati di un FF D ETS è la seguente:

Immagine:FF_D-ETS.jpg

in cui qxy identifica uno dei possibili stati, dove:

  • x valore di uscita del flip-flop;
  • y valore letto o memorizzato dal flip-flop;


Un esempio di come possono evolvere nel tempo i segnali che adottano questo tipo di tempificazione è il seguente:

Immagine:FF_D-ETS_tempificazione.jpg

in cui si nota come in corrispondenza di un gradino verso l’alto compiuto dal segnale di abilitazione a il dato D venga considerato valido e proposto in uscita fino ad un nuovo gradino che ne può variare il valore oppure mantenere quello già esistente. Nella figura il gradino verso l’alto è riconoscibile da una freccia in corrispondenza della quale sono tracciate (sul segnale D) con una croce i valori validi per l’uscita. Quello che segue, invece, è la realizzazione circuitale del flip-flop D ETS ottenuta traducendo gli stati logici della macchina:

Immagine:FF_D-ETS-schema.jpg

[modifica] Flip-flop D ETD

La tabella di transizione per gli stati di un FF D ETS è la seguente:

Immagine:FF_D-ETD.jpg

Un esempio di come possono evolvere i segnali in base a questo tipo di tempificazione è il seguente:

Immagine:FF_D-ETD_tempificazione.jpg

Il FF D ETD è duale a quello ETS, basta osservare le due tabelle per notare che a partire da una è possibile ottenere l’altra semplicemente traslando le colonne, scambiando cioè la colonna 00 con quella 10 e la colonna 01 con quella 11.

Immagine:FF_D-ETD-schema.jpg

[modifica] Osservazioni utili

Nella tabelle fin qui viste si notano alcune simmetrie, è consuetudine divedere questa tabella in due parti, una riguarda le prime due righe (dove si fa riferimento all’uscita Q=0) e l’altra riguarda le restanti due righe (che fanno quindi riferimento all’uscita Q=1). Ogni stato è caratterizzato da due pedici ciascuno dei quali specifica alcune situazioni tipiche di quell’ evento. In particolare:

qxy indica con x il valore di uscita e con y il valore letto


[modifica] Come si costruisce la tabella D ETS

Si parte da uno stato stabile e si prosegue alternando i possibili ingressi ad esso adiacenti, ricordando che è possibile far mutare un solo letterale per volta. Supponiamo di partire dallo stato q00,stato stabile per il FF ETS, caratterizzato da un uscita Q=0 (che è il valore del primo pedice) e da un valore letto in precedenza D=0 (che è il valore del secondo pedice); quindi per q00 (cerchiato poiché corrisponde al particolare stato indicato da quella riga e quindi stabile) può capitare che si alza il bit D (cioè aD=01) oppure può succedere che si alzi il bit a (cioè aD=10), lo stato di partenza da noi scelto è aD=00. Se accade che aD=01, non vi è dubbio che non si verifica alcuna variazione di salita (00→01), anche se il dato D letto (ma non memorizzato) risulta alzarsi l’uscita continuerà ad essere 0 (è questo il valore del primo pedice che dovremo scrivere) mentre il valore che si è letto è 1 (valore del secondo pedice). Pertanto in corrispondenza di quella cella scriveremo quello stato rappresentativo di quest’evento che è q01. Lo stato q01 non è però uno stato stabile per la riga in cui ci troviamo (quindi non andrà cerchiato), si procede ripetendo tale stato nella colonna in cui ci troviamo fino ad arrivare alla riga rappresentativa dello stato q01 che quindi cerchieremo (nel nostro caso q01 è ricopiato nella riga sottostante). Torniamo ad analizzare l’altro caso, e cioè, supponiamo lo stato q00 e consideriamo adesso l’altro possibile ingresso che ci rimane da analizzare che è quello in cui da 00→10; qui si verifica una variazione sul fronte di salita, il dato D andrà letto e trattandosi di zero avrò in uscita Q=0 (valore del primo pedice) mentre il valore del dato letto è D=0 (valore del secondo pedice). Lo stato rappresentativo di quest’evento è q00 (che andrà cerchiato). La tabella va quindi completata in questo modo procedendo per i soli stati stabili, in corrispondenza della caselle vuote che rimarranno alla fine di tutto si inserisce un don’t care -. Gli stati non stabili sono detti di transizione e servono a portare la machina in uno stato stabile facendo compiere a quest’ultima un movimento verticale sulla tabella del flip-flop, la tabella di flusso può essere vista anche in questo modo:

Immagine:FF_D-ETS-tabella.jpg

così facendo si evidenziano le transizione (frecce rosse) che la macchina compie nel passare da uno stato stabile ad un altro. Analizziamo la seconda riga, ci troviamo nello stato q01 con aD=01. Sono allora possibile due casi: il bit a diventa alto aD=11 oppure il bit D si abbassa aD=00. Da aD=01 ad aD=11 si verifica un fronte di salita sul bit di abilitazione, tale evento è importante per il nostro flip-flop che passa quindi a considerare il dato D il quale è quindi memorizzato. Pertanto, da q01 il flip-flop si sposta in q11. Tale stato non è poi stabile per la riga in cui ci troviamo ed è quindi ricopiato nella cella sottostante. Da aD=01 ad aD=00 non avviene alcun fronte di salita per cui l’uscita rimane immutata (il valore del primo pedice è quindi 0) così come l’ultimo valore letto è ancora lo stesso (il valore del secondo pedice è 0). Da aD=01 non possiamo passare direttamente ad aD=10 poiché i bit in ingresso devono necessariamente cambiare uno per volta, nella cella caratterizzata da un ingresso aD=10 il flip-flop non transiterà in nessun modo per cui si segna quella cella con un don’t care. Analizziamo la terza riga partendo dallo stato stabile q11 con ingresso aD=11. E’ questa la situazione più tranquilla per il flip-flop, poiché per avvenire un fronte di salita il bit di abilitazione si deve prima abbassare e poi nuovamente rialzare, inoltre pur variando il bit D lo stato del flip-flop non cambia per i motivi prima detti a riguardo del bit di abilitazione. Pertanto da aD=11 ad aD=10, si abbassa cioè il bit D, lo stato continua ad essere q11 così come da aD=11 ad aD=01. Ci spostiamo quindi in una nuova cella caratterizzata da uno dei due nuovi stati da noi segnati in precedenza ed analizziamo le possibili variazioni, trascurando gli ingressi che prevedono un ritorno alla cella di partenza. Supponiamo di trovarci nello stato q11 con aD=01, il successivo ingresso sia aD=00, il bit D si abbassa. In tale circostanza il flip-flop fornisce in uscita sempre il valore prima memorizzato e cioè Q=1, tuttavia il bit 0 va considerato poiché se al prossimo ingresso si dovesse alzare il bit di abilitazione (fronte di salita) è allora necessario memorizzare tale bit, per cui il nuovo stato è q10. Analizziamo la quarta ed ultima riga partendo quindi dallo stato q10 stabile per quella riga e quindi cerchiato in cui aD=00. I possibili ingressi sono aD=01 (si alza il bit D) oppure aD=10 (si alza il bit a, nuovo fronte di salita). Supponiamo che si verifichi la transizione degli ingressi da aD=00 ad aD=10, si verifica cioè un nuovo fronte di salita, il bit D viene quindi memorizzato per cui Q=0 (primo pedice) ed il valore letto è appunto 0 (secondo pedice), il nuovo stato è q00. Supponiamo ora la transizione degli ingressi da aD=00 ad aD=01, la colonna degli ingressi aD=01 è di pre-allarme per il nostro flip-flop che opera sul fronte di salita del bit a, se infatti nel successivo ingresso dovesse capitare a=1 allora il bit D che in precedenza è stato posto in ingresso al flip-flop va memorizzato, l’uscita quindi non cambia ed è Q=1, la stessa di prima non essendoci variazione sul fronte di salita, il valore letto è allora il bit D=1, letto ma non memorizzato. Pertanto il nuovo stato è q11. Infine, in ingresso, non potendo variare più di un bit l’ingresso aD=11 non è contemplato per questa riga.

[modifica] Flip-flop T

Il flip-flop T è anche detto a commutazione, esso presenta un valore tipico dei bit in ingresso per la quale è prevista la commutazione degli stati di uscita. Il flip-flop T è caratterizzato da:

  • due ingressi (bit a, bit T);
  • un uscita Q;


Il segnale a svolge il ruolo di abilitazione, il segnale T commuta il valore memorizzato dal flip-flop, l’uscita è il valore memorizzato dal flip-flop. Al flip-flop T, così come a quelli fin qui visti, è possibile associare una delle tempificazioni note (latch, edge trigger, e master slave). Tuttavia il flip-flop T non deve mai essere di tipo latch, vediamone il perché: il flip-flop T commuta quando il segnale di abilitazione è alto, se il segnale rimane alto il flip-flop commuta ancora e lo fa ininterrottamente (cioè all’infinito) alternando i valori di uscita. Una tempificazione lecita, per un flip flop di tipo T è quella ETS, cioè a variazione sul fronte di salita oppure ETD, a variazione sul fronte di discesa.

[modifica] Flip-flop T ETS

Un esempio di possibile tempificazione per i segnali:

Immagine:FF_T-ETS_tempificazione.jpg

La tabella delle transizioni di un flip-flop T ETS:

Immagine:FF_T-ETS_tabella.jpg

[modifica] Flip-flop T ETD

Un esempio di possibile tempificazione per i segnali:

Immagine:FF_T-ETD_tempificazione.jpg

La tabella delle transizioni di un flip-flop T ETD:

Immagine:FF_T-ETD_tabella.jpg

[modifica] Flip-flop JK

Il flip-flop JK è un particolare flip-flop che riassume in unico componente le funzionalità di un flip-flop RS e di un flip-flop T. Il suo comportamento è infatti simile a quello del flip-flop RS, tuttavia nel caso in cui in ingresso si presenta J=1 e K=1 (ricordiamo a tale proposito che per un flip-flop RS non è previsto l'ingresso R=1 ed S=1) esso compie una commutazione del proprio stato interno, in altre parole si comporta come un flip-flop T. Quando l’ingresso è tale che K=J, allora il flip-flop si comporta come T, quando invece J è diverso da K allora il comportamento del flip-flop JK è riconducibile a quello di un flip-flop RS. La tabella di transizione per questo flip-flop è:

Immagine:FF_JK-tabella.jpg

Una possibile tempificazione per i segnali è:

Immagine:FF_JK-tempificazione.jpg

[modifica] La tempificazione Master-Slave

I flip-flop che adottano questo tipo di tempificazione leggono il dato sul fronte di salita del segnale di abilitazione e lo ripropongono in uscita sul fronte di discesa del medesimo segnale di abilitazione. E’ possibile realizzare un flip-flop D Master-Slave (analogamente un flip-flop T Master-Slave) usando un flip-flop D ETS ed uno ETD, così come viene mostrato in figura:

Immagine:FF_D-Master-Slave.jpg

Il primo flip-flop memorizza il dato sul fronte di salita del segnale di abilitazione a mentre il secondo lo propone in uscita sul fronte di discesa del medesimo segnale. Il significato e l’uso dei simboli x,y, z, è il seguente:

  • x, valore di uscita del flip-flop;
  • y, valore memorizzato;
  • z, valore da memorizzare;


ed a breve sarà più chiaro, quando cioè si osserverà la tabella di transizione per gli stati del flip-flop Master-Slave. Una possibile tempificazione per i segnali coinvolti nell’uscita del flip-flop è la seguente:

Immagine:FF_D-Master-Slave-tempificazione.jpg

Dalla tempificazione dei segnali notiamo che, sul fronte di salita di a viene memorizzato il valore 1 (è possibile individuare quest’evento notando che in corrispondenza di tale salita una croce rossa segna appunto il valore memorizzato dal primo flip-flop, quello ETS). Quando il segnale di abilitazione a compie una discesa il valore prima memorizzato viene letto dal secondo flip flop (quello ETD) e messo in uscita. L’uscita del secondo flip-flop costituisce di fatto l’uscita del flip-flop D Master–Slave. La tabella di transizione per questo tipo di tempificazione abbinata alla funzionalità di un flip-flop D è la seguente:

Immagine:FF_D-Master-Slave-tabella.jpg

Strumenti personali