Încerc să înțeleg Flip Flops & Latches. Citesc din cartea de logică digitală de Morris Mano. Un lucru pe care nu sunt în stare să-l înțeleg este motivul pentru care ceasăm flip-flop-urile?
Înțeleg de ce avem nevoie de zăvoare „activate” sau închise. Dar la ce folosește ceasul? Nu sunt în stare să înțeleg asta. De ce nu putem activa doar flip-flop-urile necesare & pentru a le da intrare? Pe măsură ce schimbăm intrarea, ieșirea se schimbă. De ce trebuie să schimbăm ieșirea cu ceasul în creștere sau în coborâre edge (în caz de flipflop declanșat de edge)?
Orice ajutor în acest sens este apreciat.
Răspuns
Unul dintre motivele pentru care ceasurile sunt de tip flip flop, astfel încât să nu existe haos atunci când ieșirile de pe flip flops sunt alimentate prin unele funcții logice și se întorc la propriile intrări.
Dacă ieșirea unui flip-flop este folosit pentru a-i calcula intrarea, trebuie să avem un comportament ordonat: pentru a preveni schimbarea stării flip-flop-ului până când ieșirea (și, prin urmare, intrarea) este stabilă.
Această ceasare ne permite să construim computerele, care sunt mașini de stare: au o stare curentă și își calculează următoarea stare pe baza stării curente și a unor intrări.
De exemplu, să presupunem că dorim să construim o mașină care „calculează” o incrementare Numărul de 4 biți de la 0000 la 1111, a Apoi se întoarce la 0000 și continuă. Putem face acest lucru folosind un registru de 4 biți (care este un banc de patru flip-flops D). Ieșirea registrului este plasată printr-o funcție logică combinatorie care adaugă 1 (un sumator de patru biți) pentru a produce valoarea incrementată. Această valoare este apoi pur și simplu readusă în registru. Acum, ori de câte ori ajunge marginea ceasului, registrul va accepta noua valoare care este una plus valoarea sa anterioară. Avem un comportament ordonat și previzibil care parcurge numerele binare fără nicio eroare.
Comportamentele de ceas sunt utile și în alte situații. Uneori, un circuit are multe intrări, care nu se stabilizează în același timp. Dacă ieșirea este produsă instantaneu din intrări, atunci va fi haotică până când intrările se stabilizează. Dacă nu dorim ca celelalte circuite care depind de ieșire să vadă haosul, facem circuitul cu ceas. Permitem o cantitate generoasă de timp pentru intrări să se stabilească și apoi indicăm circuitului să accepte valorile.
Ceasul este, de asemenea, inerent parte din semantica unor tipuri de flip-flops. Un flip flop D nu poate fi definit fără o intrare de ceas. Fără o intrare de ceas, fie va ignora intrarea sa D (inutilă), fie pur și simplu va copia intrarea în orice moment (nu un flip-flop!) Un flip-flop RS nu are ceas, dar folosește două intrări pentru a controla starea care permite intrărilor să fie „auto-ceas”: adică să fie intrările, precum și declanșatoarele pentru schimbarea stării. Toate flip-flop-urile au nevoie de o combinație de intrări care își programează starea și o combinație de intrări permite dacă toate combinațiile de intrări declanșează programarea sau dacă toate combinațiile de intrări sunt ignorate (starea este menținută), acest lucru nu este util. Acum ce este un ceas? Un ceas este o intrare specială dedicată care distinge dacă alte intrări sunt ignorate sau dacă programează dispozitivul. Este util să aveți aceasta ca intrare separată, mai degrabă decât să fie codificată între mai multe intrări.
Comentarii
- Are sens atunci când explicați necesitatea de ceas pentru contor sau mașină de stat. Dacă există s nu este deloc ceas, apoi contorul continuă să-și schimbe valoarea (& reset) & începe infinit? și la fel cu mașina de stat. (Din ceea ce am citit de pe wiki, contorizează doar un tip de mașini de stare, deoarece statele sunt schimbate). Dar chiar și cu registre, folosim și ceas, în acest caz de ce? De asemenea, vreau să știu că există flipflopuri (pot fi) utilizate în orice aplicație fără ceas?
- Acum ajungând la punctul de stabilitate, dacă ieșirile se schimbă continuu, atunci alte dispozitive care au nevoie de ieșire flipflops câștigă ‘ nu îl puteți primi corect și ar putea exista un comportament neregulat. Deci este această problemă de stabilitate? Acum încerc să înțeleg conceptul de stabilitate. Mai ales aceste două para pe care le-ați explicat: ” pentru a împiedica starea flip-flop ‘ să se schimbe până la ieșire (și, prin urmare, la intrare) este stabil. ” ” Uneori un circuit are multe intrări, care nu se stabilizează în același timp ”
Răspuns
Un flip flop de vârf poate fi imaginat ca două zăvoare înapoi în spate , dintre care unul este activat la scurt timp după ce semnalul ceasului este scăzut și rămâne activat până când se ridică; al doilea este activat la scurt timp după ce ceasul este ridicat și rămâne activat până când acesta scade.A avea un scurt moment în care niciun flip flop nu este activat înseamnă că ieșirea unui flip flop poate fi alimentată în siguranță înapoi la intrarea sa prin logică combinatorie. O modificare a ieșirii într-un ciclu de ceas poate provoca modificarea intrării, dar această modificare de intrare nu va avea niciun efect până la următorul ciclu de ceas.
Din punct de vedere istoric, a fost destul de obișnuit pentru dispozitivele digitale. să folosească ceea ce se numea „ceas cu două faze”, care avea două fire de ceas care erau ridicate pentru intervale care nu se suprapun în timpul fiecărui ciclu. Toate zăvoarele sunt împărțite în două grupuri, cu un singur ceas controlând primul grup de zăvor și celălalt ceas care controlează al doilea; în majoritatea cazurilor, ieșirile fiecărui grup sunt utilizate numai pentru a calcula intrările celuilalt. Fiecare ciclu de ceas constă din una sau mai multe impulsuri pe primul ceas, dintre care cel puțin una trebuie să îndeplinească minimum -specificații de lungime și una sau mai multe impulsuri pe a doua (aceeași cerință). Un avantaj al unui astfel de design este că poate fi foarte tolerant la înclinarea ceasului, cu condiția ca timpul mort dintre fazele ceasului să depășească cantitatea de înclinare a ceasului. astfel de modele sunt că necesită rularea a două ceasuri fire peste tot și că, pentru a obține viteza maximă, trebuie să împărțim logica în două grupuri și să încercăm să echilibrăm întârzierile de propagare între ele.
O abordare mai „modernă” este aceea de a avea fiecare element de blocare (registru) primesc un singur fir de ceas și, în esență, generează propriile ceasuri interne care nu se suprapun. Acest lucru necesită ca înclinarea maximă a ceasului să nu depășească timpul minim de propagare între registre, dar instrumentele moderne permit controlul înclinării ceasului mai precis decât era posibil în deceniile trecute. Mai mult, în multe cazuri, ceasul monofazat simplifică proiectarea prin eliminarea necesității de a împărți logica în două grupuri.
Răspuns
Știm cu toții că circuitele digitale reale vor conține MULTE porți. Un semnal poate fi necesar să ia mai multe căi pentru a ajunge la ultima poartă care dă ieșirea. Un semnal necesită o anumită perioadă de timp pentru a „se propaga” pe diferitele căi care ajung la ultima poartă. Timpul necesar propagării nu este același pe căi diferite. Acest lucru duce la ceea ce numim glitches. Problemele apar din moment ce unele căi sunt mai scurte decât altele și atunci când un semnal ajunge mai devreme la ultima poartă, luând calea mai scurtă, aceasta o produce imediat înainte ca celelalte semnale de pe calea mai lungă să ajungă la poartă. Rezultatul care rezultă momentan este greșit și poate deveni periculos într-un circuit digital care duce la propagarea erorilor.
Acum ajung la motivul pentru care avem nevoie de un ceas. Un ceas în esență „sincronizează” circuitul cu un singur semnal extern. Gândiți-vă la asta ca la o bătaie că circuitul este reglat pentru a-i plăcea muzica. Lucrurile se întâmplă în ton cu acest ceas, fără ceas = circuitul este dezactivat. Prin utilizarea ceasului, ne asigurăm că diferitele părți ale circuitului funcționează în armonie în același timp . În acest fel, comportamentul circuitului este mai previzibil. De asemenea, este mai puțin afectat de modificările întârzierii propagării în funcție de temperatură și de variația producției. Aceasta acoperă ceasul.
Flip flop-urile sunt astfel de elemente de circuit digital care iau o acțiune (schimbându-și ieșirea ca răspuns la o intrare la portul lor de intrare) atunci când apare un „CLOCK EDGE”. Marginea ceasului este atunci când semnalul ceasului trece de la 0 la 1 sau de la 1 la 0. Trageți doar o undă de ceas și veți ști la ce mă refer. Există un alt grup de elemente numite zăvoare, ieșirea zăvorilor se schimbă pentru a reflecta intrarea atunci când un anumit semnal de control se află la un nivel NIVEL logic și nu așteptați nici o margine, acest semnal de control se numește ENABLE în zăvor. când enable este 1 și schimbă ieșirea sau când enable este 0. Depinde de tipul de blocare. În schimb Flip flops de fapt face ceva numai când sunt alimentate de un ceas EDGE. Vă rugăm să rețineți această diferență între zăvoare și flip-flop-uri și amintiți-vă că zăvoarele sunt conectate împreună pentru a crea un flip-flop, astfel încât activarea să determine flip-flop-ul să facă ceva doar atunci când apare o margine de ceas. În acest caz, numim semnalul Enable pentru Clock, și are și el mai mult sens. Ceasul pentru oameni este bifat, bistabilul face ceva doar la căpușe și NIMIC între căpușe.
Dacă tot nu este clar decât tine va beneficia de vizionarea prelegerii nptelhrd pe youtube de la Indian Institute of Tec hnologie pe circuite digitale.
Comentarii
- ” Prin utilizarea ceasului ne asigurăm că diferitele părți a circuitului funcționează în armonie în același timp. ” – cum facem acest lucru? Voi viziona videoclipurile.
- Vă rugăm să rețineți că flip-flop-urile sunt dispozitive care își schimbă ieșirea pentru a reflecta intrarea la marginea ascendentă (sau la marginea descendentă dacă este o basculă declanșată de marginea negativă) a un semnal de control pentru un flip flop declanșat de margine pozitivă.Acest semnal de control este numit ceas datorită naturii sale periodice, mai degrabă ca bifați ceasurile noastre de perete. Dacă semnalul de ceas este prezent, flip-flopul va face ceva, altfel intrarea nu va face să se întâmple nimic la ieșire. Vă rugăm să cunoașteți diferența și similitudinea dintre zăvoare și flip-flops încă dintr-un stadiu incipient, pentru a nu fi confuz.
Răspuns
Există lucruri precum contoare asincrone. Aici este unul: –
Este, de asemenea, cunoscut sub numele de contor de ondulare, deoarece atunci când un impuls de intrare ajunge la intrare (schimbarea starea primului flip-flop), această schimbare de stare necesită o lungime de timp finită pentru a se prelungi până la flip-flop-urile rămase. În acea perioadă mică, dar finită, ieșirile ABCD vor avea o valoare tranzitorie imprevizibilă până când flip-flop-ul final s-a instalat.
Dacă ieșirile ABCD ar fi fost apoi alimentate toate prin flip-flop-uri de tip D și aranjate împreună , la ceva timp după perioada de decontare, această versiune ” mai bună ” a ABCD nu va ” afișați ” acest comportament tranzitoriu.
Pentru a evita acest lucru, inginerii folosesc uneori circuite de ceas sincron. Ne pare rău, intrarea este din stânga pe aceasta și harta Q0 la Q3 la ABC și D pe diagrama anterioară: –
Este „puțin mai complex, dar este mai rapid și are mai puține părți decât în comparație cu un contor asincronizat cu o grămadă de tipuri D pe ieșiri.
Comentarii
- Ei bine, cu contoare are sens. Dar există vreo aplicație în care flipflop-urile sunt folosite fără ceasuri? sau flipflop-urile nu pot fi folosite niciodată fără ceasuri?
- @avi Primul exemplu (contor asincron) nu trebuie să fie considerat ‘ ca luând intrarea de la un ” ceas „. Ar putea fi impulsuri provenite de la un senzor magnetic care caută să vadă cât de repede se rotește un arbore. Ar exista un ” master ” ceas pe sistem care ” porți ” numărul în fiecare secundă, dar semnalul ” ” care merge în contor nu este ‘ nu neapărat un ceas. Ieșirea dintr-un comparator analogic ar putea ” ceas ” a ” 1 ” la ieșirea unui tip D și ieșirea de la un alt comparator analogic poate reseta tipul D – acesta poate fi utilizat pentru a produce un semnal derivat dintr-o formă de undă analogică – fără ceasuri ca atare
- Aș considera comportamentul unui contor ondulat ca fiind diferit cantitativ decât calitativ de cel al contorului sincron. Ieșirile ambelor contoare vor deveni invalide la o anumită perioadă de timp după sosirea unui impuls de ceas și vor deveni din nou valabile la o anumită perioadă de timp după aceea. Contorul sincron va avea o fereastră mai mică în timpul căreia ieșirile sale sunt nevalide, dar fereastra va fi diferită de zero în orice caz. ‘ merită de asemenea remarcat faptul că viteza maximă de numărare cu contorul așa cum este desenat va fi limitată de lungimea contorului. S-ar putea evita această limitare …
- … prin lansarea lanțului de transport de ex. al patrulea bit, generând ” și ” din primii trei biți, și având fiecare bit întoarcere numai dacă intrarea din transport lanțul a fost ridicat, bitul 2 a fost ridicat, bitul 1 a fost ridicat și bitul 0 a fost ridicat. Chiar dacă șapte impulsuri de numărare au sosit în timp necesar pentru ca un semnal să se propage prin lanțul de transport, aceasta nu ar fi nicio problemă, deoarece lanțul de transport ar începe să propage transportul atunci când numărul de xxx111 … 111000 a fost atins, dar ieșirea sa nu ar fi nu contează până când pulsul ceasului a fost atins după xxx111 … 111111.
- Contoarele de ondulații sunt simple, dar detestate în lumea reală a circuitelor digitale în care lucrez. bine să știți că există, dar este foarte puțin probabil să vi se permită să le folosiți pentru proiecte reale. Poate fi întotdeauna folosit în exerciții banale în care natura lor ” asincronă ” nu este o problemă.
Răspuns
Deoarece este mai ușor de proiectat sistemele sincrone (sistemul sincron înseamnă orice colecție de logică combinatorie și flip-flop-uri tactate) decât sistemele asincrone și sincrone sistemele sunt mai fiabile. Cu toate acestea, proiectarea mașinii de stare asincronă este demnă de studiu, deoarece poate calcula o ieșire mult mai rapidă și cu o putere mai mică decât un sistem sincron.