Teoriechevron_rightCircuite Logice Elementare. Clasificare

Teorie: Circuite Logice Elementare. Clasificare

Cele 3 porți logice fundamentale (AND, OR, NOT) și diferența dintre circuitele combinaționale și cele secvențiale.

Nivel: Începătorschedule 25 min

memoryCircuite Logice Elementare

În inima oricărui calculator se află procesorul (CPU), care este format din miliarde de tranzistoare. Aceste tranzistoare sunt grupate pentru a forma porți logice (circuite logice elementare), care efectuează operații de bază folosind doar 0 și 1 (fals și adevărat).

Aceste circuite implementează fizic operațiile algebrei booleene pe care le-am învățat la expresiile logice din C++.

cable1. Cele 3 Porți Logice Elementare

Poarta ȘI (AND)

Echivalentă cu operatorul && în C++ sau înmulțirea logică. Ieșirea este 1 DOAR DACĂ toate intrările sunt 1. Dacă măcar o intrare e 0, ieșirea e 0.

Tabel de adevăr

ABY
000
010
100
111

Poarta SAU (OR)

Echivalentă cu operatorul || în C++ sau adunarea logică. Ieșirea este 1 dacă CEL PUȚIN O intrare este 1. Ieșirea e 0 doar când toate intrările sunt 0.

Tabel de adevăr

ABY
000
011
101
111

Poarta NU (NOT / Inversor)

Echivalentă cu operatorul ! în C++ sau negația logică. Această poartă are o singură intrare și inversează valoarea: din 0 face 1, iar din 1 face 0.

Tabel de adevăr

AY
01
10

account_tree2. Clasificarea Circuitelor Logice

Porțile logice elementare pot fi interconectate pentru a forma structuri mult mai complexe care pot efectua adunări, reține date (memorie) etc. Aceste rețele se împart în două mari categorii:

linear_scale

A. Circuite Combinaționale

  • Ieșirea depinde strict de starea intrărilor în momentul actual.
  • Nu au memorie! Nu își aduc aminte ce valori au fost înainte la intrare.
  • Exemple: Sumatorul (adună două numere binare), decodificatorul, multiplexorul.
history

B. Circuite Secvențiale

  • Ieșirea depinde atât de starea intrărilor, cât și de starea lor anterioară.
  • Au memorie! Conțin elemente capabile să stocheze informație (0 sau 1).
  • Exemple: Bistabilele (Flip-Flops), registrele de memorie, numărătoarele.

merge_type3. Circuite Combinaționale Frecvent Utilizate

Acestea sunt "cărămizile" din care este construită unitatea aritmetico-logică (ALU) a procesorului. Nu au memorie.

Sumatorul (Adder)

Efectuează adunarea aritmetică a numerelor binare. Un Semi-sumator (Half-Adder) adună doi biți (generând o sumă și un "transport"/carry), în timp ce un Sumator complet (Full-Adder) ține cont și de transportul de la rangul anterior.

Comparatorul

Compară două cuvinte binare (A și B) și activează una dintre cele 3 ieșiri posibile: A > B, A = B sau A < B. Foarte util pentru luarea deciziilor (echivalentul unui if hardware).

Multiplexorul (MUX)

Are mai multe linii de intrare pentru date, o singură linie de ieșire și câteva linii de selecție. Funcționează ca un "macaz": selectează o singură intrare pe care o trimite mai departe spre ieșire.

Decodificatorul

Convertește o informație binară de la intrare (ex: n biți) într-un semnal pe una dintre cele 2n ieșiri posibile. Este esențial pentru selectarea adreselor de memorie.

update4. Circuite Secvențiale Frecvent Utilizate

Acestea includ un semnal de ceas (clock) și au stări interne (memorie). Funcționarea lor se bazează pe succesiunea pașilor de timp.

Bistabilele (Flip-Flops)

Sunt unitățile fundamentale de memorie. Un bistabil poate memora exact un bit de informație (0 sau 1) și își menține starea până la primirea unui nou impuls de comandă.

Tipuri comune: RS, D (Data), JK, T (Toggle).

Registre de Deplasare (Shift Registers)

Un registru este un grup de bistabile (memorie). Un registru de deplasare nu doar memorează, ci la fiecare impuls de ceas își deplasează ("shiftează") conținutul cu o poziție:

Deplasare Dreapta → Stânga (Shift Left)

Biții se mută spre stânga. Matematic, este echivalent cu înmulțirea cu 2 a numărului binar.

Initial: 0011 (3 în zecimal)
1 Pas:   0110 (6 în zecimal)
Deplasare Stânga → Dreapta (Shift Right)

Biții se mută spre dreapta. Matematic, este echivalent cu împărțirea la 2 (partea întreagă).

Initial: 1100 (12 în zecimal)
1 Pas:   0110 (6 în zecimal)

Numărătorul Binar Direct (Up-Counter)

Este un circuit secvențial care numără impulsurile de ceas primite la intrare, generând secvența de numere binare în ordine crescătoare. Este folosit masiv în ceasuri digitale, temporizatoare sau pentru parcurgerea adreselor de memorie.

Exemplu: Numărător Binar pe 3 biți (numără de la 0 la 7)
Impuls CeasQ2Q1Q0Valoare Zecimală
Start0000
Pasul 10011
Pasul 20102
Pasul 30113
...
Pasul 71117 (Maxim)
Pasul 80000 (Se resetează)

infoCe trebuie reținut pentru examen?

  • Legătura dintre operațiile logice (ȘI, SAU, NU) și programarea în C++ (&&, ||, !) este directă. Când scrieți un if (a > 0 && b > 0), în procesor această decizie trece fizic printr-un circuit AND.
  • Diferența cheie: Circuitele combinaționale NU au memorie, iar cele secvențiale AU memorie. Aceasta este o întrebare de teorie clasică.
syncSe încarcă statusul...