Electronica digitala
Curs de Electronică Digitală¶
Cuprins¶
- Introducere în electronica digitală
- Sisteme de numerație și coduri
- Algebra booleană și funcții logice
- Porți logice fundamentale
- Circuite logice combinaționale
- Circuite logice secvențiale — Bistabile (Flip-Flops)
- Registre și contoare
- Memorii semiconductoare
- Convertoare analog-digitale (ADC) și digital-analogice (DAC)
- Familii logice și caracteristici electrice
- Circuite logice programabile (PLD, CPLD, FPGA)
- Microcontrolere — noțiuni introductive
- Proiectare practică și interfațare
1. Introducere în electronica digitală¶
1.1 Semnale digitale vs. analogice¶
Semnalele digitale au doar două stări distincte, reprezentate convențional prin 0 logic (LOW) și 1 logic (HIGH). Această discretizare conferă circuitelor digitale imunitate ridicată la zgomot, reproductibilitate perfectă și posibilitatea de a efectua operații logice și aritmetice complexe.
| Caracteristică | Semnal analogic | Semnal digital |
|---|---|---|
| Valori | Continue (infinit de multe) | Discrete (0 și 1) |
| Imunitate la zgomot | Scăzută | Ridicată |
| Precizie | Limitată de zgomot | Limitată de nr. de biți |
| Procesare | Circuite analogice | Porți logice, procesoare |
| Stocare | Dificilă, degradabilă | Perfectă, nelimitată |
1.2 Niveluri logice¶
Într-un sistem digital, tensiunile sunt interpretate ca 0 sau 1 conform unor praguri:
Logică pozitivă (convenția standard):
- HIGH (1): tensiune apropiată de V_CC (ex. 3.3V sau 5V)
- LOW (0): tensiune apropiată de GND (0V)
Praguri pentru familia CMOS (alimentare 5V):
V_OH(min) = 4.4V (ieșire HIGH minimă)
V_OL(max) = 0.5V (ieșire LOW maximă)
V_IH(min) = 3.5V (intrare interpretată ca HIGH)
V_IL(max) = 1.5V (intrare interpretată ca LOW)
Marginea de zgomot:
NM_H = V_OH(min) - V_IH(min) = 0.9V
NM_L = V_IL(max) - V_OL(max) = 1.0V
1.3 Cronograme¶
Cronograma este reprezentarea grafică a semnalelor digitale în funcție de timp. Pe axa orizontală se află timpul, iar pe axa verticală nivelul logic (0 sau 1). Fronturile semnalului sunt:
- Front crescător (rising edge): tranziția 0 → 1
- Front descrescător (falling edge): tranziția 1 → 0
Parametri temporali importanți: timpul de propagare (t_pd), timpul de setup (t_su), timpul de hold (t_h), timpul de creștere (t_r) și timpul de coborâre (t_f).
2. Sisteme de numerație și coduri¶
2.1 Sisteme de numerație¶
Binar (baza 2):
Cifrele sunt 0 și 1 (biți). Bitul cel mai semnificativ se numește MSB (Most Significant Bit), iar cel mai puțin semnificativ LSB (Least Significant Bit).
Exemplu: 1101₂ = 1·2³ + 1·2² + 0·2¹ + 1·2⁰ = 8 + 4 + 0 + 1 = 13₁₀
Octal (baza 8):
Cifrele sunt 0–7. Fiecare cifră octală corespunde la 3 biți.
Exemplu: 17₈ = 1·8¹ + 7·8⁰ = 15₁₀ = 001 111₂
Hexazecimal (baza 16):
Cifrele sunt 0–9, A–F. Fiecare cifră hex corespunde la 4 biți (un nibble).
Exemplu: 2F₁₆ = 2·16¹ + 15·16⁰ = 47₁₀ = 0010 1111₂
Tabel de conversie rapidă:
| Decimal | Binar | Octal | Hex |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
2.2 Conversii între baze¶
Zecimal → Binar: se împarte succesiv la 2, resturile citite invers formează numărul binar.
Exemplu: 25₁₀ → 25/2=12 r1, 12/2=6 r0, 6/2=3 r0, 3/2=1 r1, 1/2=0 r1
Rezultat: 11001₂
Binar → Hex: se grupează câte 4 biți de la dreapta.
Exemplu: 1101 0110₂ → D6₁₆
Hex → Binar: fiecare cifră hex se înlocuiește cu 4 biți.
Exemplu: A3₁₆ → 1010 0011₂
2.3 Reprezentarea numerelor cu semn¶
Mărime și semn (Sign-Magnitude):
Bitul MSB indică semnul (0 = pozitiv, 1 = negativ), restul biților indică magnitudinea.
- Dezavantaj: două reprezentări pentru zero (+0 și -0)
Complement față de 1 (One’s Complement):
Negativul se obține inversând toți biții.
- Dezavantaj: tot două zerouri
Complement față de 2 (Two’s Complement) — standard:
Negativul se obține inversând toți biții și adunând 1.
Exemplu pe 8 biți:
+5 = 0000 0101
-5 = 1111 1011 (inversare: 1111 1010, +1 = 1111 1011)
Intervalul pe n biți: de la -2^(n-1) la +2^(n-1) - 1.
Pe 8 biți: -128 … +127.
Avantaj: un singur zero, adunarea și scăderea folosesc același circuit.
2.4 Aritmetică binară¶
Adunarea:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10 (0 cu transport 1)
Scăderea: se realizează prin adunare cu complementul față de 2 al scăzătorului.
Înmulțirea: similar cu înmulțirea zecimală, prin sume parțiale deplasate.
Depășirea (overflow): apare când rezultatul depășește intervalul de reprezentare. Se detectează comparând transportul care intră și cel care iese din bitul de semn.
2.5 Coduri binare importante¶
BCD (Binary Coded Decimal): fiecare cifră zecimală e codificată pe 4 biți.
Exemplu: 92₁₀ = 1001 0010(BCD)
Codul Gray: între două valori consecutive diferă un singur bit. Folosit în encodere rotative și diagrame Karnaugh.
Binar: 000 001 010 011 100 101 110 111
Gray: 000 001 011 010 110 111 101 100
Conversie: G(i) = B(i) ⊕ B(i+1), unde G(MSB) = B(MSB).
ASCII: cod de 7 biți (128 caractere) pentru reprezentarea textului.
Unicode / UTF-8: extensie modernă care acoperă toate sistemele de scriere.
2.6 Detectarea și corectarea erorilor¶
Bit de paritate: un bit suplimentar adăugat pentru ca numărul total de biți 1 să fie par (paritate pară) sau impar. Detectează erori singulare, nu le corectează.
Codul Hamming: adaugă mai mulți biți de control, poate detecta erori duble și corecta erori singulare (SECDED — Single Error Correction, Double Error Detection).
CRC (Cyclic Redundancy Check): polinom de verificare, detectează erori multiple. Folosit în Ethernet, USB, stocare.
3. Algebra booleană și funcții logice¶
3.1 Operațiile fundamentale¶
| Operație | Simbol | Notație | Descriere |
|---|---|---|---|
| ȘI (AND) | · | A · B | 1 doar dacă ambele intrări sunt 1 |
| SAU (OR) | + | A + B | 1 dacă cel puțin o intrare este 1 |
| NU (NOT) | ‾ | Ā | Inversează valoarea logică |
Operații derivate:
| Operație | Simbol | Descriere |
|---|---|---|
| NAND | (A·B)̄ | NOT AND — 0 doar dacă ambele sunt 1 |
| NOR | (A+B)̄ | NOT OR — 1 doar dacă ambele sunt 0 |
| XOR | A ⊕ B | SAU exclusiv — 1 dacă intrările diferă |
| XNOR | (A⊕B)̄ | Echivalență — 1 dacă intrările sunt egale |
3.2 Axiome și teoreme ale algebrei booleene¶
Axiome de bază:
A · 0 = 0 A + 0 = A
A · 1 = A A + 1 = 1
A · A = A A + A = A
A · Ā = 0 A + Ā = 1
Ā̄ = A (dubla negație)
Proprietăți (comutativitate, asociativitate, distributivitate):
A · B = B · A (comutativitate)
A + B = B + A
(A · B) · C = A · (B · C) (asociativitate)
(A + B) + C = A + (B + C)
A · (B + C) = A·B + A·C (distributivitate ȘI față de SAU)
A + B·C = (A+B) · (A+C) (distributivitate SAU față de ȘI)
Teoremele absorbției:
A + A·B = A
A · (A + B) = A
A + Ā·B = A + B
Teoremele lui De Morgan:
(A · B)̄ = Ā + B̄ (complementul produsului = suma complementelor)
(A + B)̄ = Ā · B̄ (complementul sumei = produsul complementelor)
Teoremele lui De Morgan sunt fundamentale pentru conversia între porți NAND/NOR și AND/OR.
Generalizare De Morgan (n variabile):
(A₁ · A₂ · ... · Aₙ)̄ = Ā₁ + Ā₂ + ... + Āₙ
(A₁ + A₂ + ... + Aₙ)̄ = Ā₁ · Ā₂ · ... · Āₙ
3.3 Forme canonice¶
Orice funcție logică poate fi exprimată în două forme standard:
Forma canonică disjunctivă (SOP — Sum of Products):
Sumă de mintermi. Fiecare mintermen este un produs al tuturor variabilelor (complementate sau nu).
F(A,B,C) = Σm(1,3,5,7) = Ā·B̄·C + Ā·B·C + A·B̄·C + A·B·C
Forma canonică conjunctivă (POS — Product of Sums):
Produs de maxtermi. Fiecare maxtermen este o sumă a tuturor variabilelor.
F(A,B,C) = ΠM(0,2,4,6) = (A+B+C)·(A+B̄+C)·(Ā+B+C)·(Ā+B̄+C)
3.4 Minimizarea funcțiilor logice¶
Metoda algebrică:
Se aplică teoremele algebrei booleene pentru a reduce expresia.
Exemplu: F = A·B + A·B̄ = A·(B + B̄) = A·1 = A
Diagrama Karnaugh (K-map):
Metodă grafică de minimizare. Variabilele sunt aranjate în cod Gray pe rânduri și coloane, astfel încât celulele adiacente diferă prin un singur bit.
Pași:
- Se completează tabelul K-map cu valorile funcției
- Se grupează celulele cu valoare 1 în grupuri de 1, 2, 4, 8, 16… (puteri ale lui 2)
- Grupurile trebuie să fie dreptunghiulare și cât mai mari
- Se extrage expresia minimizată — fiecare grup devine un termen produs
K-map pentru 2 variabile:
B=0 B=1
A=0 | m0 | m1 |
A=1 | m2 | m3 |
K-map pentru 3 variabile:
BC=00 BC=01 BC=11 BC=10
A=0 | m0 | m1 | m3 | m2 |
A=1 | m4 | m5 | m7 | m6 |
K-map pentru 4 variabile:
CD=00 CD=01 CD=11 CD=10
AB=00 | m0 | m1 | m3 | m2 |
AB=01 | m4 | m5 | m7 | m6 |
AB=11 | m12 | m13 | m15 | m14 |
AB=10 | m8 | m9 | m11 | m10 |
Condiții indiferente (Don’t Care — X):
Combinații de intrare care nu apar niciodată sau al căror rezultat nu contează. Pot fi incluse în grupuri pentru a mări dimensiunea acestora și a simplifica funcția.
Metoda Quine-McCluskey:
Algoritm sistematic de minimizare, echivalent cu K-map dar aplicabil pentru orice număr de variabile (implementabil pe calculator).
4. Porți logice fundamentale¶
4.1 Tabelele de adevăr¶
AND (ȘI):
| A | B | Y = A·B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
OR (SAU):
| A | B | Y = A+B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
NOT (NU / Inversor):
| A | Y = Ā |
|---|---|
| 0 | 1 |
| 1 | 0 |
NAND:
| A | B | Y = (A·B)̄ |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
NOR:
| A | B | Y = (A+B)̄ |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
XOR (SAU Exclusiv):
| A | B | Y = A⊕B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
XNOR (Echivalență):
| A | B | Y = (A⊕B)̄ |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
4.2 Universalitatea porților NAND și NOR¶
Orice funcție logică poate fi implementată folosind exclusiv porți NAND sau exclusiv porți NOR. De aceea, NAND și NOR sunt numite porți universale.
Realizarea funcțiilor de bază cu NAND:
NOT: Ā = (A · A)̄ = NAND(A, A)
AND: A·B = ((A·B)̄)̄ = NAND(NAND(A,B), NAND(A,B))
OR: A+B = (Ā · B̄)̄ = NAND(NAND(A,A), NAND(B,B))
Realizarea funcțiilor de bază cu NOR:
NOT: Ā = (A + A)̄ = NOR(A, A)
OR: A+B = ((A+B)̄)̄ = NOR(NOR(A,B), NOR(A,B))
AND: A·B = (Ā + B̄)̄ = NOR(NOR(A,A), NOR(B,B))
4.3 Porți cu trei stări (Tri-State)¶
O poartă tri-state are o intrare de control (Enable). Când Enable este activ, ieșirea funcționează normal (0 sau 1). Când Enable este inactiv, ieșirea trece în stare de înaltă impedanță (Hi-Z), echivalent cu o deconectare electrică.
Esențiale pentru magistrale (bus) unde mai multe dispozitive partajează aceleași fire.
4.4 Porți cu colector/drenă deschisă (Open-Drain/Open-Collector)¶
Ieșirea poate trage doar spre LOW; pentru HIGH se folosește un rezistor de pull-up extern. Permite conectarea mai multor ieșiri pe același fir (wired-AND).
5. Circuite logice combinaționale¶
Într-un circuit combinațional, ieșirile depind exclusiv de starea curentă a intrărilor — nu există memorie sau feedback.
5.1 Sumatorul (Adder)¶
Semi-sumatorul (Half Adder):
Adună 2 biți, produce suma (S) și transportul (C_out).
S = A ⊕ B
C_out = A · B
Sumatorul complet (Full Adder):
Adună 2 biți plus un transport de intrare (C_in).
S = A ⊕ B ⊕ C_in
C_out = A·B + C_in·(A ⊕ B)
Sumatorul cu transport propagat (Ripple Carry Adder):
n sumatoare complete înlănțuite. Simplu, dar lent — transportul se propagă prin toate etajele.
Întârziere: t_total = n · t_FA.
Sumatorul cu transport anticipat (Carry Look-Ahead Adder — CLA):
Calculează transportul simultan pentru toate pozițiile, folosind funcțiile de generare (G) și propagare (P):
G_i = A_i · B_i
P_i = A_i ⊕ B_i
C_i = G_i + P_i · C_{i-1}
Întârziere mult redusă: O(log n) în loc de O(n).
5.2 Scăzătorul (Subtractor)¶
Se realizează prin adunare cu complementul față de 2: A - B = A + (not B) + 1.
Un sumator cu un XOR pe fiecare bit al lui B și C_in = 1 devine scăzător. Cu un semnal de control (ADD/SUB), aceleași componente realizează ambele operații.
5.3 Comparatorul¶
Compară două numere binare de n biți și produce trei ieșiri: A > B, A = B, A < B.
Comparatorul pe 1 bit:
A > B: A · B̄
A = B: A ⊙ B = (A ⊕ B)̄
A < B: Ā · B
Comparatoarele multi-bit se cascadează sau se construiesc ierarhic.
Circuit integrat clasic: 74HC85 (comparator pe 4 biți, cascadabil).
5.4 Decodificatorul (Decoder)¶
Convertește un cod binar de n biți în 2ⁿ ieșiri, dintre care exact una este activă.
Decodificatorul 2-la-4:
Intrări: A₁, A₀
Ieșiri: Y₀ = Ā₁·Ā₀, Y₁ = Ā₁·A₀, Y₂ = A₁·Ā₀, Y₃ = A₁·A₀
Decodificatorul 3-la-8 (ex. 74HC138):
Folosit pentru selecția adreselor de memorie, decodificarea instrucțiunilor, activarea dispozitivelor.
Decodificatorul BCD-la-7-segmente (ex. 74HC47):
Convertește o cifră BCD (4 biți) în cele 7 segmente necesare afișajului.
5.5 Codificatorul (Encoder)¶
Operația inversă decodificatorului: 2ⁿ intrări → cod binar de n biți.
Codificatorul cu prioritate (Priority Encoder):
Când mai multe intrări sunt active simultan, codifică doar intrarea cu prioritatea cea mai mare. Circuitul integrat 74HC148 este un codificator cu prioritate 8-la-3.
5.6 Multiplexorul (MUX)¶
Selectează una dintre cele 2ⁿ intrări de date și o transmite la ieșire, pe baza unui cod de selecție de n biți.
MUX 4-la-1:
Y = Ā₁·Ā₀·D₀ + Ā₁·A₀·D₁ + A₁·Ā₀·D₂ + A₁·A₀·D₃
Aplicații: selectarea surselor de date, rutarea semnalelor, implementarea funcțiilor logice (un MUX 2ⁿ-la-1 poate implementa orice funcție de n variabile).
Circuite integrate: 74HC151 (MUX 8:1), 74HC153 (2× MUX 4:1).
5.7 Demultiplexorul (DEMUX)¶
Operația inversă: distribuie o singură intrare de date către una din cele 2ⁿ ieșiri, pe baza codului de selecție.
Un decodificator cu intrare de enable funcționează ca DEMUX.
5.8 Generatoare și verificatoare de paritate¶
Circuitul generator calculează bitul de paritate (par/impar) pentru un cuvânt de date. Verificatorul confirmă la recepție dacă paritatea e corectă.
Implementare: lanț de porți XOR (XOR este funcția de paritate prin natură).
5.9 Unitatea aritmetică-logică (ALU)¶
ALU-ul combină mai multe funcții (adunare, scădere, AND, OR, XOR, comparare, deplasare) controlate prin coduri de operație.
Exemplul clasic: 74HC181 — ALU pe 4 biți cu 16 operații aritmetice și 16 operații logice.
ALU-ul este blocul central al oricărui procesor.
6. Circuite logice secvențiale — Bistabile (Flip-Flops)¶
Circuitele secvențiale au memorie — ieșirea depinde nu doar de intrările curente, ci și de starea anterioară.
6.1 Latch-ul SR (Set-Reset)¶
Cel mai simplu element de memorie, construit din două porți NOR sau NAND interconectate.
Latch SR cu porți NOR:
| S | R | Q(t+1) | Observație |
|---|---|---|---|
| 0 | 0 | Q(t) | Păstrează starea |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | ? | Interzis |
Combinația S=R=1 este interzisă deoarece produce o stare nedeterminată.
6.2 Latch-ul D (Data)¶
Elimină starea interzisă a latch-ului SR adăugând un inversor:
S = D, R = D̄
Când Enable (E) = 1, ieșirea Q urmărește intrarea D. Când E = 0, Q se menține.
Transparent latch: Q este „transparent” cât timp E=1 (Q = D). Aceasta poate cauza probleme de sincronizare.
6.3 Flip-Flop D (Edge-Triggered)¶
Captează valoarea intrării D doar pe frontul activ al ceasului (de regulă frontul crescător). Între fronturi, ieșirea rămâne constantă, indiferent de schimbările lui D.
La ↑CLK: Q(t+1) = D
Parametri temporali critici:
- t_su (setup time): D trebuie să fie stabil cu t_su înainte de front
- t_h (hold time): D trebuie să rămână stabil t_h după front
- t_pd (propagation delay): întârziere de la CLK la schimbarea lui Q
Violarea setup/hold duce la metastabilitate — o stare intermediară periculoasă în care Q nu este nici 0, nici 1.
Circuite integrate: 74HC74 (dual D flip-flop).
6.4 Flip-Flop JK¶
Rezolvă starea interzisă a SR-ului: când J=K=1, ieșirea se complementează (toggle).
| J | K | Q(t+1) | Observație |
|---|---|---|---|
| 0 | 0 | Q(t) | Păstrează starea |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | Q̄(t) | Toggle |
Circuite integrate: 74HC76, 74HC112.
6.5 Flip-Flop T (Toggle)¶
Caz particular al JK cu J=K=T:
T=0: Q(t+1) = Q(t) (menține)
T=1: Q(t+1) = Q̄(t) (comută)
Folosit în numărătoare binare: fiecare etaj T împarte frecvența la 2.
6.6 Tabelul excitației flip-flop-urilor¶
Folosit la proiectarea circuitelor secvențiale — arată ce intrări sunt necesare pentru a obține tranziția dorită.
Tabelul excitației D:
| Q(t) | Q(t+1) | D |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Tabelul excitației JK:
| Q(t) | Q(t+1) | J | K |
|---|---|---|---|
| 0 | 0 | 0 | X |
| 0 | 1 | 1 | X |
| 1 | 0 | X | 1 |
| 1 | 1 | X | 0 |
Tabelul excitației T:
| Q(t) | Q(t+1) | T |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
7. Registre și contoare¶
7.1 Registre¶
Un registru este un grup de flip-flop-uri D care stochează un cuvânt binar de n biți, toate controlate de același ceas.
Registru cu încărcare paralelă:
Toate cele n biți sunt încărcate simultan pe frontul de ceas când semnalul LOAD este activ.
Registru de deplasare (Shift Register):
Datele se deplasează cu o poziție la fiecare ciclu de ceas.
Tipuri de deplasare:
- SISO (Serial In, Serial Out): date serial la intrare și ieșire
- SIPO (Serial In, Parallel Out): conversie serial → paralel
- PISO (Parallel In, Serial Out): conversie paralel → serial
- PIPO (Parallel In, Parallel Out): registru cu încărcare paralelă
Registru de deplasare cu feedback liniar (LFSR):
Ieșirea anumitor flip-flop-uri se combină prin XOR și se reintroduce la intrare. Generează secvențe pseudoaleatoare de lungime maximă 2ⁿ - 1. Aplicații: generare de zgomot, CRC, criptare.
Circuite integrate clasice: 74HC164 (SIPO), 74HC165 (PISO), 74HC595 (SIPO cu latch de ieșire — extrem de popular pentru extinderea ieșirilor pe microcontrolere).
7.2 Contoare (numărătoare)¶
Un contor este un registru care trece printr-o secvență predefinită de stări la fiecare impuls de ceas.
Contorul asincron (ripple counter):
Flip-flop-uri T înlănțuite, fiecare divizând frecvența la 2. Ieșirea unui etaj este ceasul etajului următor.
- Avantaj: simplu
- Dezavantaj: întârziere cumulativă, glitch-uri temporare
Contorul sincron:
Toate flip-flop-urile au același ceas. Logica combinațională determină tranzițiile.
- Avantaj: funcționare corectă la frecvențe mari
- Dezavantaj: complexitate logică mai mare
Contorul binar de n biți: numără de la 0 la 2ⁿ-1 și revine la 0 (modulo 2ⁿ).
Contorul modulo-N (cu resetare):
Numără de la 0 la N-1 folosind logica de detectare a stării N pentru resetare.
Exemplu: Contor modulo-10 (decadă): numără 0–9 (4 flip-flop-uri + detectare 1010).
Contorul sus/jos (Up/Down Counter):
Un semnal de control determină direcția de numărare.
Contorul Johnson (twisted ring counter):
Registru de deplasare cu ieșirea Q̄ conectată la intrare. n flip-flop-uri → 2n stări distincte.
n=3: 000 → 100 → 110 → 111 → 011 → 001 → 000
Contorul inel (Ring Counter):
Registru de deplasare cu un singur bit 1 care circulă. n flip-flop-uri → n stări (one-hot encoding).
n=4: 0001 → 0010 → 0100 → 1000 → 0001
Circuite integrate clasice: 74HC93 (contor binar 4 biți), 74HC390 (contor decadă dual), 74HC163 (contor sincron 4 biți cu încărcare paralelă, cascadabil).
8. Memorii semiconductoare¶
8.1 Clasificarea memoriilor¶
Memorii
├── Volatile (pierd datele la oprirea alimentării)
│ ├── SRAM (Static RAM) — bistabile
│ └── DRAM (Dynamic RAM) — condensatoare
│
└── Nevolatile (păstrează datele)
├── ROM (Read Only Memory) — programat la fabricare
├── PROM — programabil o singură dată
├── EPROM — ștersibil cu UV
├── EEPROM — ștersibil electric, byte cu byte
└── Flash — ștersibil electric, pe blocuri/sectoare
8.2 SRAM (Static RAM)¶
Fiecare celulă folosește 6 tranzistoare CMOS (two-inverter latch). Nu necesită refresh.
Caracteristici: acces rapid (ns), consum mai mare, densitate mai mică, cost mai ridicat. Folosită pentru cache (L1, L2, L3) în procesoare.
8.3 DRAM (Dynamic RAM)¶
Fiecare celulă folosește 1 tranzistor + 1 condensator. Condensatorul stochează bitul ca sarcină electrică. Necesită refresh periodic (la câteva milisecunde) deoarece sarcina se pierde prin scurgeri.
Caracteristici: densitate foarte mare, cost redus, acces mai lent decât SRAM. Variante moderne: DDR4, DDR5, LPDDR5 (cu rate de transfer de zeci de GB/s).
8.4 Memoria Flash¶
Folosește tranzistoare cu poartă flotantă (floating gate) care rețin sarcina electric și fără alimentare.
NOR Flash: acces aleator rapid la citire, programare lentă. Folosită pentru cod (firmware, BIOS).
NAND Flash: acces secvențial, densitate mare, cost redus. Folosită pentru stocare de masă (SSD, USB, carduri SD).
Limitări: număr finit de cicluri de scriere/ștergere (tipic 10³–10⁵), necesită algoritmi de wear-leveling.
8.5 Organizarea memoriei¶
O memorie de capacitate 2ⁿ × m are:
- n linii de adresă (A₀…A_{n-1})
- m linii de date (D₀…D_{m-1})
- Semnale de control: CE (Chip Enable), OE (Output Enable), WE (Write Enable)
Exemplu: o memorie de 64K × 8 are 16 linii de adresă (2¹⁶ = 65536 locații) și 8 linii de date (1 byte per locație), capacitate totală = 64 KB.
8.6 Decodificarea adreselor¶
Când sistemul are mai multe chip-uri de memorie, un decodificator de adrese selectează chip-ul corect pe baza biților de adresă superiori. Biții inferiori selectează locația din interiorul chip-ului.
9. Convertoare analog-digitale (ADC) și digital-analogice (DAC)¶
9.1 Conversia analog-digitală — principii¶
Conversia AD implică trei etape: eșantionare (sampling), cuantizare (quantization) și codificare (encoding).
Teorema eșantionării (Nyquist-Shannon):
f_s ≥ 2 · f_max
Frecvența de eșantionare trebuie să fie cel puțin dublul frecvenței maxime din semnal, altfel apare aliasing (repliere spectrală).
Rezoluția:
Un ADC de n biți împarte intervalul de tensiune de intrare în 2ⁿ niveluri.
Rezoluția (LSB) = V_ref / 2ⁿ
Exemplu: ADC de 10 biți cu V_ref = 5V → rezoluție = 5V/1024 ≈ 4.88 mV.
Eroarea de cuantizare: maxim ±½ LSB.
SNR teoretic:
SNR(dB) ≈ 6.02·n + 1.76
Fiecare bit suplimentar adaugă ~6 dB de SNR.
9.2 Arhitecturi ADC¶
ADC cu aproximații succesive (SAR):
Folosește un DAC intern, un comparator și un registru SAR. La fiecare ciclu de ceas, determină câte un bit, de la MSB la LSB, prin comparare succesivă.
- Rezoluție: 8–18 biți
- Viteză: 10 kSPS – 10 MSPS
- Consum redus, raport calitate-preț excelent
- Cel mai utilizat tip de ADC
ADC Flash (paralel):
Folosește 2ⁿ-1 comparatoare simultan. Cel mai rapid, dar exponențial de complex.
- Rezoluție: 4–8 biți
- Viteză: > 1 GSPS
- Consum și cost ridicate
ADC Sigma-Delta (ΣΔ):
Supreeșantionare + modulator de 1 bit + filtru digital decimator. Rezoluție foarte mare.
- Rezoluție: 16–32 biți
- Viteză: până la câteva kSPS (audio) sau MSPS (modernele)
- Ideal pentru măsurători de precizie, audio, senzori
ADC cu integrare (dual-slope):
Integrează tensiunea de intrare pe un interval fix, apoi integrează o referință până la zero. Timpul de descărcare este proporțional cu tensiunea de intrare.
- Rezoluție: 12–22 biți
- Foarte lent, dar excelent pentru rejecția zgomotului de 50/60 Hz
- Folosit în multimetre digitale
9.3 Conversia digital-analogică (DAC)¶
DAC cu rezistențe ponderate:
Fiecare bit controlează un comutator conectat la o rezistență ponderată binar (R, 2R, 4R, 8R…).
- Simplu conceptual, dar necesită rezistențe cu precizie ridicată pe un interval larg
DAC cu rețea R-2R:
Folosește doar două valori de rezistență (R și 2R) într-o rețea tip scară.
- Practic, popular, ușor de fabricat cu precizie bună
- Fiecare treaptă contribuie cu un curent ponderat binar
DAC Sigma-Delta:
Flux de biți de 1 bit la rată mare + filtru analogic trece-jos. Folosit în audio (CD player, DAC USB).
Parametri DAC:
- Rezoluție (n biți): numărul de niveluri discrete = 2ⁿ
- INL (Integral Nonlinearity): deviația de la linia dreaptă ideală
- DNL (Differential Nonlinearity): variația dimensiunii unui pas față de idealul de 1 LSB
- Settling time: timpul până la stabilizarea ieșirii
- Glitch energy: impulsuri parazite la tranziții
10. Familii logice și caracteristici electrice¶
10.1 Familia TTL (Transistor-Transistor Logic)¶
Bazată pe tranzistoare bipolare (BJT). Alimentare standard: 5V.
| Subfamilia | Prefix | t_pd (ns) | Putere/poartă (mW) | f_max (MHz) |
|---|---|---|---|---|
| Standard TTL | 74 | 10 | 10 | 35 |
| Low-Power (L) | 74L | 33 | 1 | 3 |
| High-Speed (H) | 74H | 6 | 22 | 50 |
| Schottky (S) | 74S | 3 | 19 | 125 |
| Low-Power Sch. | 74LS | 9 | 2 | 45 |
| Advanced LS | 74ALS | 4 | 1.2 | 70 |
| Fast (F) | 74F | 3 | 4 | 100 |
10.2 Familia CMOS (Complementary MOS)¶
Bazată pe perechi complementare NMOS + PMOS. Consum static aproape nul.
| Subfamilia | Prefix | V_DD (V) | t_pd (ns) | Consum static |
|---|---|---|---|---|
| 4000 (originală) | CD4000 | 3–18 | 50–100 | ~nW |
| 74HC | 74HC | 2–6 | 8–15 | ~nW |
| 74HCT | 74HCT | 5 | 8–15 | ~nW, intrări TTL |
| 74AC | 74AC | 2–6 | 3–5 | ~nW |
| 74ACT | 74ACT | 5 | 3–5 | ~nW, intrări TTL |
| 74LVC | 74LVC | 1.65–3.6 | 2–4 | ~nW |
| 74AUC | 74AUC | 0.8–2.7 | 1–2 | ~nW |
Consum dinamic CMOS:
P_dyn = C_L · V_DD² · f
Puterea crește cu frecvența — aceasta este provocarea principală la frecvențe GHz.
10.3 Comparație TTL vs. CMOS¶
| Parametru | TTL (74LS) | CMOS (74HC) |
|---|---|---|
| Alimentare | 5V (strict) | 2–6V (flexibil) |
| Consum static | ~2 mW/poartă | ~nW/poartă |
| Consum dinamic | Relativ constant | Proporțional cu f |
| Fan-out | 10 (porți LS) | 50+ (sarcini CMOS) |
| Imunitate la zgomot | Moderată | Excelentă (30% V_DD) |
| Intrări neconectate | Văzute ca HIGH | INTERZISE (floating!) |
Regulă importantă CMOS: intrările neconectate captează zgomot și pot cauza oscilații, consum excesiv sau distrugerea circuitului. Toate intrările CMOS neutilizate trebuie legate la V_DD sau GND.
10.4 Interfațarea între familii logice¶
Când se conectează ieșiri TTL la intrări CMOS (sau invers), trebuie verificată compatibilitatea nivelurilor logice. Soluții uzuale: rezistoare de pull-up, buffere de nivel (level shifters), circuite 74HCT (intrări compatibile TTL, tehnologie CMOS).
11. Circuite logice programabile (PLD, CPLD, FPGA)¶
11.1 Evoluția circuitelor programabile¶
Porți discrete → SSI/MSI/LSI → PLA → PAL → GAL → CPLD → FPGA → SoC FPGA
Circuitele programabile permit implementarea funcțiilor logice personalizate fără a fabrica un ASIC dedicat.
11.2 PLA și PAL¶
PLA (Programmable Logic Array):
Matrice AND programabilă + matrice OR programabilă. Flexibilitate maximă, dar acces mai lent.
PAL (Programmable Array Logic):
Matrice AND programabilă + matrice OR fixă. Mai rapid și mai simplu decât PLA.
GAL (Generic Array Logic):
PAL reprogramabil (EEPROM). Poate emula diverse configurații PAL. Exemplu: GAL16V8, GAL22V10.
11.3 CPLD (Complex Programmable Logic Device)¶
Arhitectura: mai multe blocuri logice de tip PAL/GAL conectate printr-o matrice de interconectare programabilă.
Caracteristici: timing predictibil, nevolatil (păstrează configurația), boot instant, complexitate medie (sute — mii de porți echivalente).
Producători și serii: Xilinx CoolRunner, Intel (Altera) MAX.
11.4 FPGA (Field-Programmable Gate Array)¶
Arhitectura FPGA:
- CLB (Configurable Logic Block): conțin LUT-uri (Look-Up Tables), flip-flop-uri și logică de transport. Un LUT de k intrări implementează orice funcție logică de k variabile (tipic k=4 sau k=6).
- IOB (I/O Block): interfațare cu pinii externi, suportă diverse standarde I/O (LVCMOS, LVDS, LVTTL etc.)
- Rețea de interconectare programabilă: conectează CLB-urile și IOB-urile
- Resurse dedicate: multiplicatoare DSP, blocuri de memorie RAM (BRAM), PLL/MMCM (generare de ceas), transceivere de mare viteză
Fluxul de proiectare FPGA:
- Specificare — definirea funcționalității
- Descriere HDL — scrierea codului în VHDL sau Verilog
- Simulare funcțională — verificare logică (pre-sinteză)
- Sinteză — conversia HDL în rețea de porți (netlist)
- Implementare — plasare (Place) și rutare (Route) pe resurse fizice
- Simulare temporală — verificare cu întârzieri reale
- Generare bitstream — fișierul de configurare
- Programare — încărcarea pe FPGA
Producători și serii:
- AMD (Xilinx): Spartan (low-cost), Artix (eficient energetic), Kintex (mid-range), Virtex (high-end), Versal (SoC adaptiv)
- Intel (Altera): MAX 10 (low-cost), Cyclone (mid-range), Arria/Stratix (high-end), Agilex
- Lattice: iCE40 (ultra-low-power), ECP5, Certus
- Microchip: PolarFire (rad-tolerant, low-power), SmartFusion2
11.5 Limbaje de descriere hardware (HDL)¶
VHDL (VHSIC Hardware Description Language):
Puternic tipizat, verbose, popular în Europa și aplicații militare/aerospațiale.
-- Exemplu: poartă AND
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity and_gate is
Port ( A, B : in STD_LOGIC;
Y : out STD_LOGIC);
end and_gate;
architecture Behavioral of and_gate is
begin
Y <= A and B;
end Behavioral;
Verilog / SystemVerilog:
Sintaxă similară cu C, concis, popular în SUA și Asia, standard industrial dominant.
// Exemplu: poartă AND
module and_gate (
input wire A, B,
output wire Y
);
assign Y = A & B;
endmodule
Diferențe conceptuale față de software:
- HDL descrie hardware paralel, nu instrucțiuni secvențiale
- Toate atribuirile
assignîn Verilog se execută simultan - Blocurile
alwaysdescriu logică secvențială (flip-flop-uri) sau combinațională - Gândirea trebuie să fie în termeni de circuite, nu de algoritmi
12. Microcontrolere — noțiuni introductive¶
12.1 Ce este un microcontroler?¶
Un microcontroler (MCU) este un sistem pe cip (SoC) care integrează:
- Procesor (CPU): execută instrucțiuni (arhitecturi: ARM Cortex-M, AVR, RISC-V, PIC, 8051)
- Memorie Flash: stochează programul (nevolatilă)
- Memorie RAM: date temporare (volatilă)
- Periferice: GPIO, timere, ADC, DAC, UART, SPI, I²C, PWM, USB, CAN etc.
- Ceas intern: oscilator RC sau cristal extern
12.2 Arhitecturi¶
Von Neumann: magistrală unică partajată pentru instrucțiuni și date (ex. 8051, ARM Cortex-M). Simplitate, dar potențial bottleneck.
Harvard: magistrale separate pentru instrucțiuni și date (ex. AVR, PIC). Permite citirea simultană a instrucțiunii și datelor.
RISC vs. CISC:
- RISC (Reduced Instruction Set): instrucțiuni simple, executate într-un ciclu, pipeline eficient (ARM, RISC-V, AVR)
- CISC (Complex Instruction Set): instrucțiuni complexe, mai puține instrucțiuni per program (x86, 8051)
12.3 Periferice digitale fundamentale¶
GPIO (General Purpose Input/Output):
Pinii configurabili ca intrare sau ieșire digitală. Moduri: push-pull, open-drain, pull-up/pull-down intern.
Timer/Counter:
Numărătoare hardware programabile. Funcții: generare PWM, măsurare de frecvență/perioadă, întârzieri precise, watchdog timer.
PWM (Pulse Width Modulation):
Semnal dreptunghiular cu factor de umplere variabil (duty cycle). Folosit pentru controlul motoarelor, dimming LED, generare de tensiune analogică medie.
V_mediu = V_DD · D
Unde D = t_ON / T este factorul de umplere (0–100%).
12.4 Interfețe de comunicație¶
UART (Universal Asynchronous Receiver-Transmitter):
Comunicație serială asincronă (fără ceas comun). Format: Start bit + 8 biți date + (paritate opțional) + Stop bit(s).
Baud rate-uri standard: 9600, 115200 etc.
SPI (Serial Peripheral Interface):
Comunicație serială sincronă full-duplex pe 4 fire: SCLK, MOSI, MISO, CS. Viteză ridicată (zeci de MHz). Master-slave, nu are adresare — selectare prin CS dedicat.
I²C (Inter-Integrated Circuit):
Comunicație serială sincronă pe 2 fire: SDA (date) și SCL (ceas). Multi-master, multi-slave cu adresare pe 7 sau 10 biți. Viteze: 100 kHz (standard), 400 kHz (fast), 3.4 MHz (high-speed).
| Parametru | UART | SPI | I²C |
|---|---|---|---|
| Fire | 2 (TX, RX) | 4 (+ CS per slave) | 2 (SDA, SCL) |
| Sincronizare | Asincronă | Sincronă | Sincronă |
| Viteză tipică | ~1 Mbps | 1–50 MHz | 100k–3.4 MHz |
| Direcție | Full-duplex | Full-duplex | Half-duplex |
| Nr. dispozitive | 1-la-1 | 1 master, n slave | Multi-master |
| Complexitate | Simplă | Simplă | Moderată |
12.5 Familii populare de microcontrolere¶
| Familie | Arhitectură | Biți | Utilizare tipică |
|---|---|---|---|
| ATmega (AVR) | Harvard AVR | 8 | Arduino, hobby, educație |
| PIC | Harvard PIC | 8/16/32 | Industrial, automotive |
| STM32 | ARM Cortex-M | 32 | IoT, industrial, medical, audio |
| ESP32 | Xtensa/RISC-V | 32 | WiFi/BLE, IoT |
| nRF52 | ARM Cortex-M | 32 | Bluetooth Low Energy, wearables |
| RP2040 | ARM Cortex-M0+ | 32 | Educație, maker, Raspberry Pi Pico |
| MSP430 | RISC propriu | 16 | Ultra-low-power, senzori |
| RISC-V (diverse) | RISC-V | 32 | Open-source, emergent |
13. Proiectare practică și interfațare¶
13.1 Circuite de debounce¶
Butoanele mecanice produc oscilații la apăsare și la eliberare (bouncing), care pot fi interpretate ca multiple apăsări.
Debounce hardware:
- Filtru RC + trigger Schmitt (ex. 74HC14): τ = RC aleasă pentru a depăși durata bouncing-ului (tipic 5–20 ms)
- Latch SR cu două contacte
Debounce software:
// Principiu: se citește butonul, se așteaptă un delay, se recitește
if (button_pressed()) {
delay_ms(20); // așteaptă stabilizarea
if (button_pressed()) {
// confirmat: buton apăsat
}
}
13.2 Interfațarea cu LED-uri¶
LED simplu cu rezistor de limitare:
R = (V_DD - V_LED) / I_LED
Exemplu: LED roșu (V_LED = 1.8V, I_LED = 10 mA) la 3.3V:
R = (3.3 - 1.8) / 0.01 = 150 Ω
LED-uri multiple cu registru de deplasare 74HC595:
Necesită doar 3 pini MCU (DATA, CLOCK, LATCH) pentru a controla 8+ LED-uri. Se pot cascada mai multe 74HC595.
13.3 Afișaje pe 7 segmente¶
Fiecare cifră are 7 segmente (a–g) plus punct zecimal (dp). Tipuri: anod comun (segmentele se activează cu LOW) sau catod comun (se activează cu HIGH).
Multiplexare: pentru mai multe cifre, se activează câte o cifră pe rând la viteză mare (>100 Hz), creând iluzia afișării simultane. Reduce drastic numărul de pini necesari.
13.4 Interfațarea cu LCD-uri¶
LCD alfanumeric (HD44780):
Interfață paralelă pe 4 sau 8 biți + RS, RW, EN. Poate afișa caractere alfanumerice pe 1–4 rânduri × 16–20 coloane.
LCD grafic / OLED (SSD1306 etc.):
Interfață SPI sau I²C. Permite afișare grafică (pixeli individuali, fonturi, imagini).
13.5 Motoare DC și servomotoare¶
Motor DC cu tranzistor MOSFET:
Un GPIO + PWM controlează viteza. O diodă de protecție (freewheeling) protejează MOSFET-ul de tensiunea indusă de bobina motorului.
Punte H (H-Bridge):
4 tranzistoare care permit controlul direcției motorului. Circuite integrate: L293D, DRV8833, TB6612.
Servomotor:
Controlat prin PWM cu perioadă de 20 ms. Lățimea pulsului determină unghiul: 1 ms → 0°, 1.5 ms → 90°, 2 ms → 180°.
13.6 Recomandări de proiectare PCB digital¶
- Condensatoare de decuplare: 100 nF ceramic lângă fiecare circuit integrat + 10 μF electrolitic la alimentarea generală
- Plan de masă (ground plane): strat continuu de cupru conectat la GND pe un întreg layer al PCB-ului
- Semnale de ceas: trasee scurte, evitarea rutării paralele cu semnale sensibile
- Terminare: rezistoare de terminare serie sau paralel pe linii lungi de mare viteză
- Separare analogic-digital: planuri de masă separate, unite într-un singur punct
- ESD protection: diode TVS pe liniile expuse la exterior (USB, Ethernet, conectori)
- Pull-up/pull-down: pe toate intrările critice, pentru stare definită la power-up
Anexe¶
A. Tabele de circuite integrate logice clasice din seria 74xx¶
| Circuit | Funcție | Nr. porți/funcții |
|---|---|---|
| 74HC00 | Quad NAND cu 2 intrări | 4 porți |
| 74HC02 | Quad NOR cu 2 intrări | 4 porți |
| 74HC04 | Hex Inversor (NOT) | 6 inversoare |
| 74HC08 | Quad AND cu 2 intrări | 4 porți |
| 74HC14 | Hex Inversor Schmitt Trigger | 6 inversoare |
| 74HC32 | Quad OR cu 2 intrări | 4 porți |
| 74HC74 | Dual D Flip-Flop | 2 FF |
| 74HC86 | Quad XOR cu 2 intrări | 4 porți |
| 74HC138 | Decodificator 3-la-8 | 1 decodificator |
| 74HC151 | Multiplexor 8-la-1 | 1 MUX |
| 74HC163 | Contor sincron 4 biți cu load | 1 contor |
| 74HC164 | Registru de deplasare SIPO 8 biți | 1 registru |
| 74HC165 | Registru de deplasare PISO 8 biți | 1 registru |
| 74HC245 | Buffer bidirecțional octal | 1 buffer |
| 74HC273 | Octal D Flip-Flop cu clear | 8 FF |
| 74HC573 | Octal D Latch transparent | 8 latch-uri |
| 74HC595 | Registru deplasare SIPO cu latch ieșire | 1 registru |
B. Formule esențiale de referință rapidă¶
Combinațional:
Număr de funcții posibile cu n intrări: 2^(2^n)
Decodificator n-la-2ⁿ: selectează 1 din 2ⁿ ieșiri
MUX 2ⁿ-la-1: implementează orice funcție de n variabile
Secvențial:
Contor modulo-N: necesită ⌈log₂(N)⌉ flip-flop-uri
Frecvența de ieșire contor: f_out = f_clk / N
LFSR de n biți: secvență de lungime maximă = 2ⁿ - 1
Conversie:
Rezoluție ADC: LSB = V_ref / 2ⁿ
SNR ADC ideal: SNR(dB) = 6.02n + 1.76
Frecvență Nyquist: f_N = f_s / 2
Putere CMOS:
P_static ≈ 0 (idealizat)
P_dinamic = C_L · V_DD² · f · N (N = nr. de porți active)
P_scurtcircuit = proporțională cu timpul de tranziție
C. Glosar de termeni și abrevieri¶
| Abreviere | Semnificație |
|---|---|
| ADC | Analog-to-Digital Converter |
| ALU | Arithmetic Logic Unit |
| ASIC | Application-Specific Integrated Circuit |
| BCD | Binary Coded Decimal |
| BRAM | Block RAM (în FPGA) |
| CLB | Configurable Logic Block |
| CMOS | Complementary Metal-Oxide Semiconductor |
| CPLD | Complex Programmable Logic Device |
| CRC | Cyclic Redundancy Check |
| DAC | Digital-to-Analog Converter |
| DDR | Double Data Rate |
| DEMUX | Demultiplexer |
| DRAM | Dynamic Random Access Memory |
| EEPROM | Electrically Erasable Programmable ROM |
| EMI | Electromagnetic Interference |
| ESD | Electrostatic Discharge |
| FF | Flip-Flop |
| FPGA | Field-Programmable Gate Array |
| GPIO | General Purpose Input/Output |
| HDL | Hardware Description Language |
| I²C | Inter-Integrated Circuit |
| IOB | I/O Block (în FPGA) |
| LFSR | Linear Feedback Shift Register |
| LUT | Look-Up Table |
| MCU | Microcontroller Unit |
| MSB/LSB | Most/Least Significant Bit |
| MUX | Multiplexer |
| PAL | Programmable Array Logic |
| PLA | Programmable Logic Array |
| PLD | Programmable Logic Device |
| PLL | Phase-Locked Loop |
| PWM | Pulse Width Modulation |
| SAR | Successive Approximation Register |
| SoC | System on Chip |
| SPI | Serial Peripheral Interface |
| SRAM | Static Random Access Memory |
| TTL | Transistor-Transistor Logic |
| UART | Universal Asynchronous Receiver-Transmitter |
| VHDL | VHSIC Hardware Description Language |
Curs realizat ca material de referință pentru studenții de electronică, automatică și calculatoare.