Flip-flop

In elettronica digitale, il flip-flop è uno dei più importanti circuiti logici sequenziali sincroni. Costituisce una delle possibili implementazioni della cella di memoria elementare, ed è un elemento essenziale alla realizzazione di tutte le reti logiche sequenziali. È importante non confondere il flip-flop con il latch: un circuito asincrono con la stessa funzione.[1]

Il nome deriva dal rumore che facevano i primi circuiti elettronici di questo tipo, costruiti con dei relè che realizzavano il cambiamento di stato.

Per definizione il flip-flop rientra nella categoria dei multivibratori bistabili: è cioè un dispositivo caratterizzato da esattamente due stati stabili tra i quali può transire a comando.
Questo lo rende adatto come cella di memoria, in quanto l'insieme delle configurazioni di output codifica esattamente 1 bit di informazione.[1][2]

Diversamente dal latch, il flip-flop è un dispositivo sensibile unicamente allo stato del segnale di sincronizzazione, in particolare durante le sue fasi transitorie. In generale questo vuol dire che una transizione dello stato di uscita può essere innescata solamente mentre il segnale si trova a sua volta in uno stato di transizione. Questa caratteristica risulta altamente desiderabile poiché, previa accurata temporizzazione del circuito, consente di ignorare tutta una serie di stati indesiderati in cui potrebbero venirsi a trovare il resto degli ingressi durante la normale operazione.
Questo rende i flip-flop un'alternativa quasi universalmente preferibile ai latch.[3]

Oltre che come memoria il flip-flop trova applicazione come meccanismo per la mitigazione delle alee nelle reti logiche multi-stadio e come dispositivo anti-rimbalzo nei circuiti che comprendono componenti elettromeccanici come pulsanti, interruttori e commutatori.

Schemi circuitali dal brevetto del trigger relay di Ecceles e Jordan del 1918. Il primo è disegnato come una cascata di amplificatori con un percorso di feedback positivo, l'altro come una coppia simmetrica ad accoppiamento incrociato.

Il primo latch elettronico è stato inventato nel 1928 dai fisici britannici William Eccles e F. W. Jordan.[4][5] Originariamente chiamato "circuito trigger Eccles-Jordan", consisteva in due elementi attivi (valvole termoioniche).[6] Il dispositivo è stato usato nel 1943 come parte del computer decifratore britannico Colossus.[7] Circuiti del genere e le loro versioni a transistor rimasero di uso comune nella progettazione dei computer anche dopo l'introduzione dei circuiti integrati, sebbene oggi siano comuni anche latch e flip-flop realizzati con porte logiche.[8][9] I primi latch erano conosciuti anche come "circuiti trigger" o multivibratori.

Secondo P. L. Lindley, un ingegnere al Jet Propulsion Laboratory (USA), i tipi di flip-flop illustrati più avanti (SR, D, T, JK) erano stati discussi per la prima volta in un corso di progettazione dei calcolatori tenuto all'UCLA nel 1954 da Montgomery Phister e sono successivamente apparsi nel suo libro Logical Design of Digital Computers.[10][11] Lindley al tempo lavorava alla Hughes Aircraft Company sotto la supervisione di Eldred Nelson, che aveva coniato il termine JK per un flip-flop che cambiava stato quando entrambi gli ingressi erano attivi. Gli altri nomi sono stati coniati da Phister. Essi differiscono leggermente da alcune delle definizioni date di seguito. Lindley spiega che ha sentito la storia del flip-flop JK da Eldred Nelson, che è responsabile per l'invenzione del termine mentre lavorava alla Hughes Aircraft. I flip-flop in uso alla Hughes al tempo erano tutti del tipo che sarebbe stato conosciuto come J-K. Nel progettare un sistema logico Nelson assegnava lettere agli ingressi dei flip-flop nel modo seguente: #1: A & B, #2: C & D, #3: E & F, #4: G & H, #5: J & K. Nelson ha usato le notazioni "j-input" e "k-input" in una richiesta di brevetto presentata nel 1953.[12]

Simbolo circuitale ISO del flip-flop SR. Il triangolo (>) denota un ingresso sensibile al fronte del segnale, in questo caso il clock.

Il Flip-flop SR, è un estensione di Latch SR sincronizzato da un segnale di Clock che, al contrario del Latch SR, permette di memorizzare uno stato.

Quando il circuito riceve un segnale di Clock: "0", qualsiasi siano i segnali S R, lo stato rimane invariato; invece quando, riceve un segnale di Clock: "1" il circuito segue la stessa logica del latch SR.

Simbolo circuitale ISO del flip-flop JK. Il triangolo (>) denota un ingresso sensibile al fronte del segnale, in questo caso il clock.
Schema circuitale di un flip-flop JK.

È caratterizzato da due ingressi, due uscite complementari e un ingresso di sincronizzazione.
Ha funzioni di memoria, reset, set. A differenza dei Flip-flop SR non ha stati proibiti, ovvero le due entrate possono assumere qualsiasi valore (0-0,0-1,1-0,1-1).

Equazione caratteristica: Q+ = KnQ + JQn

Tabella di verità

J K Q+ Qn+

Descrizione

0 0 Q Qn Memoria (nessun cambiamento)
0 1 0 1 Reset
1 0 1 0 Set
1 1 Qn Q Toggle (complemento)

Quindi, quando J e K valgono entrambi 1, le uscite vengono completamente scambiate (ossia se erano 1 diventano 0 e viceversa), trasformandosi in un flip-flop T; quando valgono zero, vengono mantenute in memoria.

Flip-flop T (toggle)

[modifica | modifica wikitesto]
Simbolo circuitale ISO del flip-flop T. Il triangolo (>) denota un ingresso sensibile al fronte del segnale, in questo caso il clock.

Ha un ingresso, due uscite complementari e un ingresso di sincronizzazione. Ha funzioni di memoria e toggle, che consiste nella negazione del valore precedentemente memorizzato. Può venir realizzato con un flip-flop JK, con i due ingressi J e K collegati assieme e formanti quindi l'ingresso T.

Equazione caratteristica: Q+ = TnQ + TQn = T Q

Proprietà: Se T=1 l'uscita Q ha frequenza dimezzata rispetto al clock.

Applicazioni: È 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.

Simbolo circuitale ISO del flip-flop D. Il triangolo (>) denota un ingresso sensibile al fronte del segnale, in questo caso il clock.
Schema logico di un flip-flop D con funzione Set e Reset

Ha un ingresso per il dato, un ingresso di sincronizzazione e un'uscita. In corrispondenza di un fronte di clock, trasferisce l'ingresso in uscita e ve lo mantiene fin quando non cambia il suddetto ingresso.

Flip-flop D-MS realizzato ponendo in cascata due latch D.

La realizzazione di questo tipo di flip-flop può essere effettuata ponendo in modalità master-slave due Latch D, negando l'ingresso E del primo flip-flop nel caso in cui si volesse un FF-D pilotato sul fronte di salita, mentre negando il secondo nel caso in cui si volesse realizzare un FF-D di tipo pilotato sul fronte di discesa.

Flip-flop con preset e clear

[modifica | modifica wikitesto]
Simbolo circuitale ISO del flip-flop JK con Preset (S) e Clear (R).

Circuiti integrati flip-flop

[modifica | modifica wikitesto]

Sono disponibili circuiti integrati che contengono flip-flop singoli oppure multipli. Ad esempio il flip-flop di tipo D è disponibile come integrato con otto unità logiche ma con l'ingresso di clock in comune.[13]
Generalmente non sono disponibili in commercio flip-flop di tipo T, poiché sono facilmente realizzabili utilizzando un flip-flop JK con i due ingressi collegati tra di loro.

  1. ^ a b Mano, Kime, Martin 2019, pp. 184-186;
    Napoli 2023, p. 200.
  2. ^ (EN) Claude Elwood Shannon, A mathematical theory of communication, in ACM SIGMOBILE Mobile Computing and Communications Review, vol. 5, n. 1, New York (NY, USA), Association for Computing Machinery, 1º gennaio 2001, p. 1, DOI:10.1145/584091.584093, ISSN 1559-1662 (WC · ACNP).
  3. ^ Mano, Kime, Martin 2019, pp. 190-191.
  4. ^ (EN) William Henry Eccles, Frank Wilfred Jordan, Improvements in ionic relays, 148582, GB (1920-08-05).
  5. ^ Vedere:
  6. ^ (EN) Emerson W. Pugh, Lyle R. Johnson e John H. Palmer, IBM's 360 and early 370 systems, MIT Press, 1991, p. 10, ISBN 978-0-262-16123-7.
  7. ^ (EN) Thomas H. Flowers, The Design of Colossus, in Annals of the History of Computing, vol. 5, n. 3, 1983, p. 249, DOI:10.1109/MAHC.1983.10079.
  8. ^ (EN) Earl D. Gates, Introduction to electronics, 4ª ed., Delmar Thomson (Cengage) Learning, 2000, p. 299, ISBN 978-0-7668-1698-5.
  9. ^ (EN) Max Fogiel e You-Liang Gu, The Electronics problem solver, vol. 1, Research & Education Assoc., 1998, p. 1223, ISBN 978-0-87891-543-9.
  10. ^ Montgomery Phister, Logical Design of Digital Computers., Wiley, 1958, p. 128, ISBN 9780608102658.
  11. ^ (EN) P.L. Lindley, letter dated June 13, 1968, in EDN, agosto 1968.
  12. ^ Eldred Nelson, High-speed printing system, 2850566, US.
    «Each flip-flop or bistable multivibrator includes two input terminals, hereinafter termed the j-input and the k-input terminals, respectively, and two output terminals for producing complementary bivalued electrical output signals hereinafter termed Q and Qbar, respectively. Signals applied separately to the j-input and k-input terminals set the flip-flop to conduction states corresponding to the binary values one and zero, respectively, while signals applied simultaneously to both input terminals trigger or change the conduction state of the flip-flop.».
  13. ^ (EN) Circuito integrato 74HC374 costituito da otto flip-flop di tipo D con ingresso di clock in comune ed in più un controllo (prioritario) di abilitazione/disabilitazione delle uscite (PDF), su onsemi.com, ON Semiconductor Corp. URL consultato il 4 giugno 2010 (archiviato dall'url originale il 27 ottobre 2020).
  • Giuseppe Licata, Sistemi digitali. Per gli Istituti Tecnici, 1ª ed., Thecna, 2002, p. 512, ISBN 978-88-395-1377-9.
  • Giuliano Ortolani, Manuale di elettrotecnica e automazione, a cura di Enzo Venturi, 2ª ed., Milano, Hoepli, 2010, ISBN 978-88-203-4456-6.
  • M. Morris Mano, Charles R. Kime e Tom Martin, Reti logiche, a cura di Antonio Gentile, Filippo Sorbello e Salvatore Vitabile, traduzione di Silvia Franchini, et al., 5ª ed., Milano - Torino, Pearson, 2019, ISBN 978-88-919-0581-9.
  • Ettore Napoli, Progetto di circuiti digitali e implementazione su FPGA, Bologna, Società Editrice Esculapio, 2023, ISBN 978-88-9385-350-7.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritàGND (DE4135907-0
  Portale Elettrotecnica: accedi alle voci di Wikipedia che trattano di elettrotecnica