Logică secvențială - Sequential logic

În teoria automatelor , logica secvențială este un tip de circuit logic a cărui ieșire depinde nu numai de valoarea actuală a semnalelor sale de intrare, ci de succesiunea intrărilor anterioare, precum și de istoricul de intrare. Acest lucru este în contrast cu logica combinațională , a cărei ieșire este o funcție doar a intrării prezente. Adică logica secvențială are stare ( memorie ) în timp ce logica combinațională nu.

Logica secvențială este utilizată pentru a construi mașini cu stare finită , un element de bază în toate circuitele digitale. Practic, toate circuitele din dispozitivele digitale practice sunt un amestec de logică combinațională și logică secvențială.

Un exemplu familiar de dispozitiv cu logică secvențială este un televizor cu butoane „canal în sus” și „canal în jos”. Apăsarea butonului „sus” oferă televizorului o intrare care îi spune să treacă la următorul canal deasupra celui pe care îl primește în prezent. Dacă televizorul este pe canalul 5, apăsând „sus” îl comută pentru a primi canalul 6. Cu toate acestea, dacă televizorul este pe canalul 8, apăsând „sus” îl comută pe canalul „9”. Pentru ca selecția canalului să funcționeze corect, televizorul trebuie să știe ce canal primește în prezent, care a fost determinat de selecțiile de canale anterioare. Televizorul stochează canalul actual ca parte a stării sale . Când i se dă o intrare „canal în sus” sau „canal în jos”, logica secvențială a circuitelor de selecție a canalului calculează noul canal de la intrare și canalul curent.

Circuitele logice secvențiale digitale sunt împărțite în tipuri sincrone și asincrone . În circuitele secvențiale sincrone, starea dispozitivului se schimbă numai la momente discrete ca răspuns la un semnal de ceas . În circuitele asincrone, starea dispozitivului se poate modifica oricând ca răspuns la schimbarea intrărilor.

Logică secvențială sincronă

Aproape toate logica secvențială astăzi este cronometrat sau sincron logica. Într-un circuit sincron, un oscilator electronic numit ceas (sau generator de ceas ) generează o secvență de impulsuri repetitive numite semnal de ceas care este distribuit tuturor elementelor de memorie din circuit. Elementul de memorie de bază în logica secvențială este flip-flop-ul . Ieșirea fiecărui flip-flop se modifică numai atunci când este declanșată de pulsul ceasului, astfel încât modificările la semnalele logice din circuit încep toate în același timp, la intervale regulate, sincronizate de ceas.

Ieșirea tuturor elementelor de stocare (flip-flops) în circuit la un moment dat, datele binare pe care le conțin, se numește starea circuitului. Starea circuitului sincron se schimbă numai la impulsurile de ceas. La fiecare ciclu, următoarea stare este determinată de starea curentă și de valoarea semnalelor de intrare când apare impulsul ceasului.

Principalul avantaj al logicii sincrone este simplitatea sa. Porțile logice care efectuează operațiile pe date necesită o perioadă de timp finită pentru a răspunde la modificările intrărilor lor. Aceasta se numește întârziere de propagare . Intervalul dintre impulsurile de ceas trebuie să fie suficient de lung, astfel încât toate porțile logice să aibă timp să răspundă la schimbări și ieșirile lor să se „stabilească” la valori logice stabile înainte ca următorul impuls de ceas să aibă loc. Atâta timp cât această condiție este îndeplinită (ignorând anumite alte detalii), circuitul este garantat să fie stabil și fiabil. Aceasta determină viteza maximă de funcționare a circuitului sincron.

Logica sincronă are două dezavantaje principale:

  • Rata maximă de ceas posibilă este determinată de cea mai lentă cale logică din circuit, altfel cunoscută sub numele de cale critică. Fiecare calcul logic, de la cel mai simplu la cel mai complex, trebuie să se finalizeze într-un singur ciclu de ceas. Deci, căile logice care își completează calculele rapid rămân inactive o mare parte din timp, așteptând următorul impuls de ceas. Prin urmare, logica sincronă poate fi mai lentă decât logica asincronă. O modalitate de a accelera circuitele sincrone este de a împărți operațiile complexe în mai multe operații simple care pot fi efectuate în cicluri de ceas succesive, o tehnică cunoscută sub numele de pipelining . Această tehnică este utilizată pe scară largă în proiectarea microprocesorului și ajută la îmbunătățirea performanței procesoarelor moderne.
  • Semnalul de ceas trebuie distribuit la fiecare flip-flop din circuit. Deoarece ceasul este de obicei un semnal de înaltă frecvență, această distribuție consumă o cantitate relativ mare de energie și disipă multă căldură. Chiar și bistabilele care nu fac nimic consumă o cantitate mică de energie, generând astfel căldură reziduală în cip. La dispozitivele portabile care au o baterie limitată, semnalul de ceas se aprinde chiar și atunci când dispozitivul nu este utilizat, consumând energie.

Logică secvențială asincronă

Logica secvențială asincronă nu este sincronizată de un semnal de ceas; ieșirile circuitului se schimbă direct ca răspuns la modificările intrărilor. Avantajul logicii asincrone este că poate fi mai rapid decât logica sincronă, deoarece circuitul nu trebuie să aștepte un semnal de ceas pentru a procesa intrările. Viteza dispozitivului este potențial limitată doar de întârzierile de propagare ale porților logice utilizate.

Cu toate acestea, logica asincronă este mai dificil de proiectat și este supusă unor probleme care nu se întâlnesc în proiectările sincrone. Principala problemă este că elementele de memorie digitală sunt sensibile la ordinea în care sosesc semnalele lor de intrare; dacă două semnale ajung la un flip-flop sau la un zăvor aproape în același timp, starea în care intră circuitul poate depinde de ce semnal ajunge mai întâi la poartă. Prin urmare, circuitul poate intra în starea greșită, în funcție de mici diferențe în întârzierile de propagare ale porților logice. Aceasta se numește condiție de rasă . Această problemă nu este la fel de gravă în circuitele sincrone, deoarece ieșirile elementelor de memorie se schimbă numai la fiecare impuls de ceas. Intervalul dintre semnalele de ceas este conceput pentru a fi suficient de lung pentru a permite ieșirilor elementelor de memorie să se „stabilească”, astfel încât acestea să nu se schimbe când vine următorul ceas. Prin urmare, singurele probleme de sincronizare se datorează „intrărilor asincrone”; intrări în circuit de la alte sisteme care nu sunt sincronizate cu semnalul de ceas.

Circuitele secvențiale asincrone sunt utilizate în mod obișnuit numai în câteva părți critice ale sistemelor altfel sincrone în care viteza este superioară, cum ar fi părțile microprocesoarelor și circuitele digitale de procesare a semnalului .

Proiectarea logicii asincrone utilizează diferite modele matematice și tehnici din logica sincronă și este o zonă activă de cercetare.

Vezi si

Referințe

Lecturi suplimentare