24.7. Conversia Flip-flop-urilor


Flip-flop-urile reprezintă blocurile de bază ale circuitelor secvențiale care pot fi convertite dintr-o formă în alta, capabile să stocheze un singur bit de date.

Am văzut că un flip-flop va rămâne în una din cele două stări stabile pe o perioadă nedeterminată până când se va aplica o anumită formă de impuls extern de declanșare pentru a-l face să schimbe starea.

Deoarece flip-flop-urile sunt dispozitive bistabile, aceste circuite secvențiale sunt denumite uneori "latches" deoarece ieșirile lor sunt blocate pe starea lor de intrare până când nu există o altă modificare a condiției de intrare.

De asemenea, am văzut că flip-flop-ul bistabil este cel mai elementar element de stocare într-un circuit logic secvențial și poate fi configurat pentru a produce elemente de memorie simple prin interconectarea a două porți inversoare pentru a genera feedback. Notați că un circuit logic combinațional nu necesită nici o formă de memorie și, prin urmare, nu folosește flip-flop-uri. Totuși, circuitele logice secvențiale au memorie și, prin urmare, utilizează diferite tipuri de scheme flip-flop pentru a-și aminti stările lor actuale.

Interconectarea porților logice digitale pentru a produce un dispozitiv de memorie conduce la aplicații cum ar fi circuite de evitare a oscilațiilor la comutare, registre de deplasare și contoare etc. De asemenea, elementele de memorie formate din latch-uri bistabile formează baza acumulatorilor și registrelor pe care un calculator, sau micro-controler, face aritmetică complexă.

Cea mai simplă modalitate de a crea un singur flip-flop pe un bit este să utilizați două porți NOR, așa cum se arată. Prin utilizarea porților cuplate încrucișat și trimiterea ieșirii de la o poartă la intrarea celeilalte (intrări-ieșiri interschimbate), circuitul are o buclă închisă (feedback pozitiv), astfel încât ieșirea sa depinde de starea intrărilor, făcând circuitul secvențial și având memorie.

Flip-flop-urile aparțin, de asemenea, unei categorii de circuite digitale de comutare numite Multivibratoare. Multivibratorul bistabil de bază este un tip de circuit regenerativ care are două porți digitale active concepute astfel încât, atunci când o poartă digitală conduce, cealaltă poartă este cut-off și invers. Aceste două porți digitale produc două ieșiri stabile, atât HIGH cât și LOW, în care una este complementul celeilalte.

Dar putem face mai multe tipuri diferite de circuite flip-flop atât asincrone, cât și sincrone (un flip-flop asincron nu are nevoie de o intrare a semnalului de ceas, ci de o conexiune sincronă), din porți NAND și porți NOR cuplate încrucișat.

Există în principiu patru tipuri diferite de flip flop-uri și acestea sunt:

1. Flip-flop sau Latch Set-Reset (SR)

2. Flip-flop JK

3. Flip-flop D (Data sau Delay)

4. Flip-flop T (Toggle)

Deci, pentru a ne ajuta să înțelegem mai bine diferitele tipuri de flip-flop-uri disponibile, următorul tutorial despre logica secvențială ne arată cum putem face conversia flip-flop-urilor de la un tip la altul, pur si simplu prin modificarea intrărilor unui anumit tip de flip-flop începând cu flip-flop SR.

Flip-flop SR Set-Reset

Cel mai simplu dintre toate latch-urile bistabile și multivibratoare bistabile este flip-flop-ul set-reset (SR). Flip-flop-ul de bază SR este un circuit bistabil important, deoarece toate celelalte tipuri de flip-flop sunt construite din el. Flip-flop-ul SR este construit folosind două porți digitale NAND cuplate încrucișat, cum ar fi TTL 74LS00 sau două porți digitale NOR cuplate încrucișat, cum ar fi TTL 74LS02.

În general, bistabilele SR și flip-flop-urile se consideră a fi transparente, deoarece ieșirile lor se schimbă sau răspund imediat la modificările aduse intrărilor lor. De asemenea, deoarece ele au porți logice digitale împreună cu feedback, flip-flop-urile SR sunt considerate circuite logice secvențiale asincrone.

Flip-flop-ul SR de bază are două intrări S (set) și R (reset) și două ieșiri Q și Ǭ, una dintre ieșiri fiind complementul celeilalte. Deci, flip-flop-ul SR este un dispozitiv cu două intrări, două ieșiri. Considerați circuitele de mai jos.

Flip-flop-uri SR de bază NAND și NOR

Mai sus sunt cele două configurații de bază pentru flip-flop bistabil SR asincron, utilizând fie o poartă NAND de intrare negativă, fie o poartă NOR de intrare pozitivă. Pentru latch-ul bistabil SR cu două porți NAND cuplate încrucișat funcționează cu ambele intrări în mod normal HIGH la nivel logic "1".

Implementarea unui flip-flop SR folosind două porți NAND cuplate încrucișat necesită intrări LOW. Dar, putem converti operarea unui flip-flop SR NAND pentru a opera în același mod ca implementarea porții NOR cu intrări active HIGH (logică pozitivă) prin utilizarea inversoarelor (porți NOT) în cadrul schemei bistabilului bazic.

Atunci, conversia flip-flop-urilor de la intrări LOW active la cele HIGH active este dată de:

Flip-flop-uri active HIGH

Flip flop-ul de bază de mai sus și echivalentele sale HIGH active sunt toate flip-flop-uri de tip asincron, ceea ce înseamnă că intrările și starea actuală determină singure starea următoare. Dar, ca dispozitiv de stocare a memoriei pe un singur bit, am putea dori să-și mențină starea de ieșire curentă indiferent de ceea ce se întâmplă la cele două intrări, iar funcționarea flip-flop-ului SR poate fi modificată prin includerea unei intrări suplimentare pentru a controla comportarea circuitului bistabil.

Conversia circuitelor de bază ale flip-flop-urilor se realizează prin utilizarea a două porți AND suplimentare care, împreună cu o intrare de control, activează și dezactivează intrările S și R. Acest nou circuit este numit Clocked sau Gated SR flip-flop.

Flip-flop (SR) Set-Reset Gated

Flip-flop-urile SR "Gated" funcționează secvențial, starea lor de ieșire schimbându-se numai ca răspuns la intrările sale pe aplicarea unui ceas sau intrare enable. Deoarece schimbarea la ieșire este controlată de această intrare de activare a ceasului, circuitul flip-flop SR gated este considerat a fi un flip-flop "sincron". Deci, un flip-flop SR asincron nu necesită ceas, dar unul sincron da.

Conversia unui flip-flop SR bazat pe NOR standard la un flip-flop SR gated se realizează utilizând două porți AND (TTL 74LS08) conectate la intrările Set și Reset. Un control suplimentar, sau o intrare "Enable", EN este conectată la ambele porți AND, rezultând în ieșiri LOW când intrarea de ceas este LOW, așa cum se arată.

Ceasul sau intrarea enable, EN este conectat la una din intrările ambelor porți AND, rezultând ieșiri LOW când intrarea de activare este LOW (principiile porții AND). Atunci, orice schimbare la intrările S sau R nu afectează starea ieșirilor, Q și Ǭ ale flip-flop-ului.

Când intrarea enable este HIGH, cele două porți AND devin transparente, astfel încât orice schimbare la intrările S și R va schimba starea ieșirilor ca mai înainte. Putem vedea că un nivel logic "1" (HIGH) sau un "0" (LOW) poate fi stocat la ieșirile flip-flop-ului gated pur și simplu prin aplicarea unei HIGH la intrarea de activare ceas și că această stare de ieșire poate fi reținută pentru orice perioadă dorită de timp, indiferent de starea intrărilor, în timp ce intrarea de activare rămâne LOW.

Simbolul Flip-flop cu închidere

Deoarece flip-flop-ul gated SR este un dispozitiv cu trei intrări, simbolul logic arată trei intrări: S, R și EN. Intrarea EN este marcată cu un triunghi mic pentru a indica faptul că flip-flop-ul răspunde unei intrări front sau tranziție.

Conversia flip-flop-urilor la unul cu ceas este realizată prin simpla conectare a acestei intrări enable la un semnal de sincronizare. Orice modificare în starea de ieșire va avea loc în sincronizare cu semnalul de ceas CLK. Rețineți că un semnal de ceas este definit ca o secvență de impulsuri continue, fiecare impuls având două stări separate, starea "ON" și starea "OFF", ciclul său de sarcină fiind timpul "ON" împărțit la perioada totală de timp a impulsului, (timpul ON + timpul OFF). Aproape toate semnalele de ceas digital au un ciclu de sarcină de 50%.

Un flip-flop SR cu tact poate schimba starea fie pe frontul pozitiv în creștere, fie pe frontul negativ în descreștere al semnalului sau impuls de ceas. Prin urmare, un flip-flop declanșat de front răspunde sau modifică starea numai când impulsul de ceas se schimbă de la un nivel la altul. De exemplu, HIGH la LOW sau LOW la HIGH.

Ieșirea unui flip-flop declanșat de frontul pozitiv schimbă starea numai pe frontul în creștere (0-la-1) al impulsului de ceas și nu răspunde la frontul negativ care descrește. De asemenea, un flip-flop declanșat de frontul negativ schimbă starea pe frontul descrescător (1-la-0) al impulsului de ceas și nu răspunde la frontul pozitiv, în creștere.

Flip-flop SR gated cu Preset și Clear

Putem prelua acest circuit flip-flop SR gated un pas mai departe pentru a produce un latch bistabil cu intrări adiționale, numite intrări Preset și Clear care pot fi utilizate pentru a seta un flip-flop la o stare inițială independentă de ceas. În loc ca ieșirile Q și Ǭ să fie încărcate cu o valoare nedefinită, putem depăși toate intrările și preseta ieșirile într-o stare definită.

Dar de ce am vrea să facem asta? Ei bine, atunci când puterea este aplicată pentru prima oară la un circuit flip-flop, starea inițială logică a ieșirilor poate fi complet aleatoare în funcție de care poartă logică s-a blocat mai întâi, atunci nu avem idee despre starea de comutare a circuitului flip-flop. Starea inițială a flip-flop-ului ar fi incertă, deoarece poate fi în starea SET (Q = 1) sau poate fi în starea RESET (Q = 0).

Evident, această incertitudine în comutarea sa este nedorită, deoarece în majoritatea aplicațiilor avem nevoie ca ieșirea să fie setată într-o stare predefinită, fie SET, fie RESET gata să accepte date. Dar putem depăși această incertitudine prin conversia flip-flop-urilor cu ajutorul a două intrări asincrone adiționale denumite Preset, PR și Clear, CLR, după cum se arată.

Flip-flop cu intrări Preset și Clear

Aceste intrări suplimentare permit ca flip-flop-ul să fie șters, (Q = 0) ori de câte ori intrarea CLEAR este "0", iar intrarea PRESET este "1". De asemenea, flip-flop-ul poate fi presetat la starea logică "1" ori de câte ori intrarea PRESET este "0" și intrarea CLEAR este "1". În acest exemplu, dacă intrările PRESET și CLEAR sunt active HIGH (P = CLR = 1), atunci circuitul funcționează ca un circuit flip flop SR gated normal. Este clar că ambele intrări PRESET și CLEAR nu ar trebui să fie activate LOW (P = C = 0) în același timp, deoarece aceasta duce la o stare incertă.

Această opțiune PRESET și CLEAR este, de asemenea, la îndemână dacă dorim să punem flip-flop-ul într-o stare set sau reset cunoscută pe durata unei operații secvențiale gata pentru următoarea secvență.

Conversia de flip-flop-uri de la un tip la altul este ușor de implementat fie prin modificarea conexiunilor, fie prin utilizarea unor porți suplimentare. După cum am văzut, flip-flop-ul de bază SR are două intrări, S și R pentru a stoca un singur bit, dar pentru a face acest lucru trebuie să activați ambele intrări simultan. Mai mult decât atât, combinația de intrare interzisă S = R = 1 poate să apară accidental, determinând astfel flip-flop-ul SR să treacă într-o stare nedefinită.

Pentru a elimina nevoia de două intrări separate și posibilitatea de a comuta neintenționat într-o stare nedeterminată, prin conectarea unui inversor (poarta NOT) între intrările Set și Reset, putem converti flip-flopul RS într-un flip-flop tip-D.

Flip-flop tip-D (Data)

Bistabilul tip-D sau Date Latch are o intrare menționată ca „D“, sau intrare Data, plus o intrare de ceas CLK, împreună cu cele două ieșiri uzuale Q și Ǭ. Flip-flopul tip-D transferă datele sale digitale între intrare și ieșiri, după o întârziere de un impuls de ceas și astfel partea "D" este de asemenea menționată ca o intrare "întârziere".

Flip-flopurile tip-D sunt ușor de construit dintr-un flip-flop SR prin conectarea pur și simplu a unui inversor între intrările S și R astfel încât intrarea la inversor este conectată la intrarea S, iar ieșirea inversorului este conectată la intrarea R, așa cum este arătat.

Două circuite diferite pentru conversia flip-flop-urilor la un tip-D sunt date mai sus. Circuitul de sus este configurația tradițională tip-D gated cu inversor suplimentar. Circuitul de jos funcționează exact în același mod, dar fără inversor, economisind o poartă. Ca și în cazul tuturor configurațiilor de tip flip-flop, flip-flop-urile tip-D pot fi implementate utilizând porți NAND sau NOR cu sau fără Preset și Clear.

Utilizarea unui inversor între intrări asigură că intrările S și R sunt întotdeauna complementare una față de cealaltă, eliminând condiția nedefinită: S = R = 1. Ca rezultat, flip-flopul tip-D este cunoscut și ca "Latch transparent", deoarece ieșirea Q urmează intrarea D când intrarea de ceas este HIGH, CLK = 1, transferând informația binară de la intrare direct la ieșire ca și când flip-flop-ul nu era acolo, făcându-l transparent.

Flip-flop JK

Flip-flop JK este foarte similar în mai multe moduri cu un flip-flop SR anterior și este probabil cel mai utilizat dintre toate schemele flip-flop. Pentru flip-flopul JK, "J" este echivalent cu Set și "K" este echivalent cu Reset.

Am văzut anterior faptul că flip-flop-ul SR are două sau posibil trei combinații semnificative de intrare, cu secvența de intrare a combinației S = R = 1 nepermisă, dar poate fi ușor modificată pentru a obține diferite funcții de comutare. Deci, flip-flopul JK este adesea considerat a fi un dispozitiv universal.

Flip-flopul JK are două intrări "J" și "K", astfel încât toate cele patru configurații posibile de intrare: fără schimbare, setare, resetare și comutare sunt valide. Cu intrarea "J" acționând ca intrarea "S" și "K" acționând ca "R", se schimbă starea când una dintre intrările sale este HIGH. Totuși, frumusețea flip-flopului JK este că atunci când ambele "J" și "K" sunt HIGH-logic "1", flip-flop-ul basculează de la "0" la "1" sau de la "1" la "0", producând propria stare complementară.

Conversia flip-flop-urilor la un flip-flop JK este de a conecta încrucișat ieșirile Q și Ǭ cu intrările S și R prin porți AND cu 3 intrări suplimentare, așa cum se arată.

Dacă intrările J și K sunt amândouă HIGH, logic "1" atunci ieșirea Q va schimba starea (Toggle) atât timp cât intrarea de ceas (CLK) este HIGH. Astfel, ieșirea va fi instabilă, creând o problemă race-around cu acest circuit JK de bază. Această problemă este evitată prin asigurarea faptului că intrarea de ceas se află la logic "1" doar pentru o perioadă foarte scurtă de timp sau pentru a produce un circuit flip-flop JK mai sofisticat numit flip-flop Master-slave.

Flip-flop Master-Slave

Conversia flip-flop-urilor la o configurație "Master-Slave" implică adăugarea unui al doilea circuit bistabil. Configurația master-slave constă în două latch-uri SR conectate în cascadă. Un flip-flop bistabil acționează ca master care primește intrările externe, în timp ce celălalt acționează ca slave, preluând intrările direct de la flip-flop-ul master, așa cum se arată.

Când ceasul, pulsul CLK merge HIGH, datele la intrările S și R sunt transmise prin flip-flop-ul master, FFA normal. Flip-flop-ul auxiliar slave, FFB rămâne însă izolat de intrarea de ceas a sa, CLK este LOW, logic "0" datorită inversării de către inversor.

Acum, când impulsul de ceas inițial revine LOW la "0", masterul devine dezactivat și blochează intrările de date externe de la transmiterea informației către ieșirile sale, în timp ce flip-flop-ul slave devine acum activat și astfel transmite informația blocată la ieșirile sale la Q și Ǭ. Atunci, intrarea de ceas în flip-flop-ul slave este complementul intrării de ceas la flip-flop-ul master.

Flip-flop-urile master-slave sunt referite ca bistabile declanșate de nivel sau declanșate de impuls, deoarece datele de intrare sunt citite pe întreaga perioadă în care impulsul ceasului de intrare este la un nivel HIGH. De asemenea, flip-flop-urile master-slave nu sunt limitate doar la master-slave SR. Există și flip-flop-uri master-slave JK și tip-D. În aproape toate acestea, flip-flop-ul slave este un flip-flop standard SR, în timp ce tipul de flip-flop își ia numele din partea master care va fi configurația SR, JK sau D.

Flip-flop tip T (Toggle)

Flip-flopul tip-T este un bistabil cu o singură intrare, cu o operație similară tipului D de mai sus. Am văzut mai sus cu configurația flip-flop JK, că dacă J = K = 1, ieșirea lui se va bascula la aplicarea ciclului următor de ceas. Atunci, conversia flip-flop-urilor la un tip-Toggle este pur și simplu o chestiune de conectare a intrărilor HIGH.

Flip-flop-ul tip-T nu este disponibil comercial, dar poate fi construit dintr-un flip-flop JK (sau flip-flop tip-D) prin conectarea intrării J cu intrarea K și ambele la nivel logic "1". Cu J și K HIGH, flip-flop-ul schimbă starea de fiecare dată când este declanșat la intrarea de ceas. Această intrare de ceas este acum denumită "intrare toggle", deoarece ieșirea devine "1" dacă era "0" și un "0" dacă era "1", adică ea basculează.

Comutatorul flip-flop schimbă starea când se aplică intrarea de ceas, T = 1 și rămâne neschimbată atunci când T = 0. Deci, tranziția de la "0" la "1" va determina ieșirea să basculeze, dând numele de flip-flop. Flip-flop-ul tip-T toggle este blocul de bază al mai multor circuite digitale, inclusiv divizoare de frecvență și contoare digitale.

Flip-flop-urile tip-T pot fi construite dintr-un flip-flop JK în două moduri simple. În primul rând, intrările J și K pot fi legate între ele HIGH, așa cum se arată, cu intrarea de ceas devenind comutator, așa cum este arătat. Cea de-a doua cale este cu intrările J și K legate între ele pentru a furniza intrarea toggle, cu intrarea de ceas rămânând neschimbată. Ieșirea se schimbă atunci când T și CLK = sau egale cu "1". Rezultatul rămâne neschimbat atunci când T sau CLK sunt LOW.

Flip-flop-ul de tip D Data poate, întocmai ca un flip-flop JK, să fie convertit pentru a funcționa ca un flip-flop toggle prin conectarea ieșirii Ǭ direct la intrarea D cu semnalul de comutare T fiind intrarea de ceas, așa cum este arătat mai sus. Conectarea Ǭ la intrare creează feedback negativ.

Deoarece ieșirea din flip-flop toggle schimbă starea la fiecare aplicare a unui semnal de ceas, frecvența sa de ieșire este, prin urmare, jumătate din frecvența semnalului de intrare, acționând astfel ca un divizor de frecvență. Dacă mai multe flip-flop-uri toggle sunt în cascadă împreună pentru a forma un lanț, deoarece ieșirea primului flip-flop acționează ca ceas pentru al doilea flip-flop T în aranjamentul în cascadă, iar al doilea flip-flop acționează ca intrare de ceas pentru al treilea flip-flop T, etc, se crează o divizare de frecvență de-a lungul lanțului.

Flip-flop-urile și latch-urile sunt cele mai fundamentale elemente de construcție a circuitelor logice secvențiale. Prin urmare, mulți producători de IC produc o gamă largă de cip-uri diferite de tip flip-flop care utilizează atât tehnologiile TTL, cât și tehnologiile CMOS, așa cum sunt enumerate mai jos.

Tipuri populare de IC-uri cu flip-flop

Rezumat Conversia Flip-flop-urilor

Am văzut în acest tutorial că un dispozitiv Bistabil este unul în care există două stări bine definite și în orice moment dispozitivul ar putea asuma oricare dintre stările stabile. Conversia flip-flop-urilor de la un tip la altul poate fi realizată foarte ușor deoarece sunt necesare doar mici modificări pentru a transforma un tip în altul. Flip-flop-urile pot fi construite folosind circuite cu porți logice cu feedback.

Am văzut de asemenea că flip-flop-urile pot avea una, două sau trei intrări, cu una din acele intrări conectate la un semnal de ceas. Toate flip-flop-urile au două stări de ieșire: Q = 1 și Q = 0 care se modifică ca răspuns la aplicarea ceasului. Pentru latch SR, S = 1 setează Q la 1, iar R = 1 resetează Q la 0.

Flip-flopul JK este clasificat ca un flip-flop universal și similar în schemă cu flip-flop-ul SR, în care când J = 1 setează Q la 1 și când K = 1 resetează Q la 0. Condiția J = K = 1 face ca Q să basculeze.

Toate flip-flop-urile discutate mai sus pot avea alte intrări asincrone CLEAR și PRESET care determină ca Q să fie șters la un "0" sau presetat la un "1" independent de semnalul ceasului.

Un bistabil tip D poate fi construit din flip-flop-uri JK prin adăugarea unui inversor între intrările J și K. Flip-flopul tip-D este folosit pe scară largă în sistemele digitale pentru transferul de date și se spune că este transparent, deoarece orice șansă de intrare este acceptată imediat și ieșirea se modifică în consecință.

Flip-flop-ul T sau toggle schimbă starea pe aplicarea unui impuls de ceas, când T = 1, altfel Q nu se schimbă. Flip-flop-ul toggle este folosit în mod normal pentru divizarea frecvenței sau pentru proiectarea contoarelor binare, deoarece contoarele binare necesită complementare. Flip-flop-ul toggle nu este disponibil comercial, dar poate fi implementat prin conectarea împreună a intrărilor J și K ale unui flip-flop JK.

Conversia flip-flop-urilor de la un tip la altul este de obicei posibilă prin reconfigurarea intrărilor, sau prin adăugarea de porți logice suplimentare și am văzut că flip-flop-uri SR pot fi convertite în flip-flop-uri JK, care se pot fi convertite în Data Latch, iar atât flip-flopul JK, cât și tip-D pot fi convertite într-un flip-flop toggle tip-T.