Nella configurazione "toggle" Il Flip-Flop D subisce una piccola ma importante modificazione rispetto alla configurazione standard.
Ho detto che nel Flip-Flop D classico, nello stato stabile di riposo, le uscite Q e Q-negata Q sono isolate dall'ingresso D. Nella configurazione "toggle" questo isolamento è volutamente eliminato in quanto l'uscita Q-negata Q è artificialmente collegata all'ingresso D. Questo artifizio genera una configurazione particolare per cui il dato fornito all'ingresso D non proviene più dall'esterno ma è fornito dall'interno del Flip-Flop e segnatamente dall'uscita negata Q .
Il segnale emesso all' uscita Q-negata Q è rinviato in ingresso. ( c'è retroazione tra il valore emesso all'uscita-negata e il valore da qui rinviato in ingresso )
L'ingresso D non ha una esistenza autonoma ma il suo valore logico è forzatamente legato a quello dell'uscita Q-negata Q .
Questo artifizio genera un comportamento particolare per cui ad ogni impulso di clock l'uscita Q-negata Q e di conseguenza anche l'ingresso D ad essa collegato, cambiano di stato. Quindi se nello stato di riposo l'ingresso D ha un valore logico = 0 , dopo l'impulso di clock il valore sarà variato a 1 e resterà in questo stato fino al successivo impulso di clock. Al successivo impuso di clock tornerà allo stato 0 . Questa alternanza di stati si ripete ad ogni impulso di clock ( effetto "toggle" ).
Nella figura sottostante è rappresentato un Flip-Flop D "toggle" dove si è adoperato l'artifizio di collegare l'uscita Q-negata Q all'ingresso dei dati D .
E' da notare che lo status emesso all'uscita Q-negata Q ( per esempio 1 ) non è mai in conflitto con lo status che era presente all'ingresso D prima del clock (ovviamente 0 ), anche se uscita Q-negata ed ingresso sono collegati. Questo avviene perchè il nuovo status acquisito in uscita alla fine dell'impulso di clock, va semplicemente a sostituire il vecchio valore in ingresso. Non ci sono nè cortocircuiti nè paradossale coesistenza di valori logici opposti. Il valore logico presente all'ingresso D non ha alcun collegamento con riferimenti esterni. Non ci sono conflitti con dati forniti dall'esterno: il dato presentato all'ingresso D è fornito direttamente dall'uscita Q-negata. In breve il valore presente all'ingresso D serve da riferimento per la variazione di stato che avverrà all'uscita Q-negata all'arrivo del segnale di clock . Una volta che la variazione di stato all'uscita Q-negata è avvenuto, di conseguenza cambia anche il valore all'ingresso D che assume un nuovo stato.
Il Flip-Flop D "toggle" funziona benissimo proprio perchè i valori di status opposti non coesistono ma si succedono. Il Flip-Flop D "toggle" è spesso usato come "divisore x 2" in quanto è in grado di generare in uscita una frequenza di segnale che è perfettamente la metà della frequenza di clock.
Per facilitare il confronto tra il funzionamento del Flip_Flop D Toggle ed il funzionamento della Mente umana, quando cerca di seguire i collegamenti logici del paradosso di Epimenide, stabiliremo delle corrispondenze ben definite:
Lo status del dichiarante, dedotto alla fine della dichiarazione, corrisponderà allo status fornito dall'uscita Q-negata Q .
Supponendo che lo status di Epimenide prima della dichiarazione sia quello di Mentitore il valore logico all’ingresso D sarà pari a M. Da un Mentitore ci si aspetta una dichiarazione falsa.
In questa situazione, con l’arrivo dell’impulso di clock ovvero nel momento in cui viene fatta la dichiarazione, all’uscita Q verrà emesso il valore logico M. L’uscita Q è l’uscita “vera” ed infatti il criterio di verità è soddisfatto perché il valore dichiarato MD corrisponde al valore realmente posseduto (MS) prima della dichiarazione.
Ma i mentitori sono costretti a fare dichiarazioni false e quindi il dichiarante è obbligato a fare una dichiarazione falsa. Pertanto siamo costretti a scartare la dichiarazione emessa all’uscita Q (dichiarazione vera) e siamo costretti a prendere in considerazione la dichiarazione falsa emessa all’uscita Q. Il valore emesso all’uscita Q è il valore M ovvero il valore di NON-Mentitore. Il valore Ms emesso all’uscita Q è perfetto per dare alla dichiarazione "io sono Mentitore" il valore logico di dichiarazione falsa poiché differisce dal valore dichiarato MD
Retrocondotto all’ingresso D il valore Ms si sostituisce al "vecchio" valore Ms (posto tra parentesi tonde) che era presente prima della dichiarazione. L’ingresso D prima della dichiarazione aveva un valore Ms e adesso, dopo la dichiarazione, si trova ad avere un valore Ms.
Tutto questo è raffigurato nella Figura M sottostante
Figura M.
In questo caso lo status iniziale presente all'ingresso D è quello di Mentitore Ms .In base a questo status del dichiarante ci aspettiamo una dichiarazione Falsa. E questa aspettativa si avvera effettivamente. Infatti con l'arrivo del segnale di clock, qui rappresentato dalla linea del TEMPO, lo status Ms presente all'ingresso D è trasferito tale e quale all'uscita vera Q. All'uscita falsa Q è trasferito un valore di status complementare rispetto al valore emerso all'uscita Q ovvero lo status di NON-Mentitore Ms . Lo status Ms è inviato al nostro rivelatore di verità ovvero alla porta XNOR dove è confrontato con l'altro segnale di ingresso costituito dallo status dichiarato MD. Poichè i due valori posti in ingresso alla porta XNOR differiscono, la dichiarazione è catalogata come Falsa , (come previsto). A fine dichiarazione lo status Ms è inviato indietro anche all'ingresso D e va a sostituire il vecchio valore Ms, rappresentato tra parentesi tonde.
Seguendo il modello del Flip-Flop D Toggle è facile comprendere che non c’è paradosso perché il valore Ms non entra in conflitto con il valore Ms ma semplicemente lo sostituisce. La transizione-sostituzione è determinata dall’impulso di clock ovvero dall’atto di dichiarare lo status. L’impulso di clock può anche durare pochissimo tempo, dell’ordine dei millisecondi, ma è comunque sufficiente per tenere temporalmente separati lo status Ms, presente all’ingresso D prima della dichiarazione, e lo status Ms acquisito dopo la dichiarazione. Essi non sono mai presenti nello stesso momento all’ingresso D. Non c’è dunque paradosso e neanche cortocircuito elettrico: i due valori opposti M e M non si sovrappongono mai all’ingresso D. Il valore Ms è comparso all’ingresso D solo alla fine del clock ovvero alla conclusione della dichiarazione.
Ritornando allo sfasamento temporale dei due valori di status, il Flip-Flop D Toggle ci mostra che il valore Ms si presenta all’ingresso D solo dopo la dichiarazione, ovvero solo dopo il completamento dell’impulso di clock. Prima della dichiarazione il valore presente all’ingresso D era Ms e dopo la dichiarazione il valore presente all’ingresso D è Ms. Il nuovo valore Ms deriva dalla variazione subita dall’uscita Q che è passata dal valore M al valore M. I due valori logici M ed M non compaiono mai contemporaneamente all’uscita Q e di conseguenza neanche all’ingresso D che ad essa è collegato.
Quindi non vi è mai paradosso ovvero “cortocircuito”. Il nuovo valore M sostituisce il vecchio valore M. Se ci fosse realmente un cortocircuito il Flip-Flop D Toggle non potrebbe funzionare ed invece funziona benissimo, sopratutto quando è usato come divisore di frequenza.
La mente umana crea il paradosso presentando come contemporanei status logici che possono accadere (e di fatto accadono) in tempi diversi. La separazione temporale tra lo status M e lo status M è dovuta all’atto della dichiarazione che, per quanto breve, deve per forza impiegare una certa quantità di tempo.
A questo punto è facile prevedere cosa accadrà ai successivi impulsi di clock. L'evento è rappresentato nella Figura E sottostante.
Se si comprende come funziona un Flip-Flop D "toggle" allora si può anche comprendere bene l'alternanza dei valori di status del dichiarante. Tali valori cambiano ad ogni impulso di clock ovvero alla fine di ogni dichiarazione.
Adesso possiamo passare al capitolo successivo, quello delle CONCLUSIONI.