Documente Academic
Documente Profesional
Documente Cultură
Calin Bira
A422
calin.bira@upb.ro
1
Activități
Curs (3h/săptămână)
Concepte generale despre circuite integrate digitale
Tehnici de proiectare, analiză și optimizare
Max. 2h/sapt teorie, min. 1h/sapt aplicații
Aplicatii (2h/săptămână)
Descrierea circuitelor digitale în Verilog
Simularea circuitelor digitale descrise
Implementarea circuitelor digitale pe suport FPGA
2
Notare
Examen Final: 40p
Aplicatii: 50p (20p sapt 5-7, 30p sapt 13-14)
Teste la curs: 10p (eg. 1p/test)
Bonificație pentru Q&A: 10p + 10p
Total: 120p
Condiții de promovare: 25p la aplicatii, 20p puncte la
examenul final, 50 de p in total. Bonificatiile sunt in
totalitate la latitudinea cadrului didactic.
3
Cunoștințe necesare
4
Bibliografie
5
Contact
6
Sisteme Digitale
7
Sisteme Digitale
Scopul nostru: Procesor simplu RISC
8
Sisteme Digitale
De ce digitale?
Lucrăm cu digits: reprezentare discretizată a
informației
e.g. alfabetul, sistemul zecimal, etc.
Dezavantaj: necesită conversie – ADC/DAC
– si cuantizare – proces “lossy”
9
Sisteme Digitale
De ce digitale?
Lucrăm cu digits: reprezentare discretizată a informației
e.g. alfabetul, sistemul zecimal, etc.
Dezavantaj: necesită conversie - ADC/DAC – si cuantizare – proces “lossy”
Forma cea mai simplă: reprezentarea binară (0/1)
Interpretare facilă ca adevărat/fals, tranziție către domeniul informațional (și logica
Booleană)
Dar si forma cea mai putin compactă de reprezentare
10
Sisteme Digitale
Reprezentarea electrică a simbolurilor digitale:
11
Sisteme Digitale
Numere binare
Forma generală: an-1an-2...a3a2a1a0
12
Sisteme Digitale
Numere binare
Exerciții:
11011
10001110
13
Sisteme Digitale
Numere binare
Exerciții:
75
256
14
Sisteme Digitale
Numere binare
Exerciții:
89
100
15
Algebra Booleană
Definește operații matematice pe valori binare
Definiție axiomatică:
1. Se definesc operatorii + (SAU logic) și · (ȘI
logic) care au proprietatea de închidere în
spațiul numerelor binare
16
Algebra Booleană
Definiție axiomatică:
1. Se definesc operatorii + (SAU logic) și · (ȘI
logic) care au proprietatea de închidere în
spațiul numerelor binare
2.Numărul 0 este elementul neutru al
operatorului SAU, iar numărul 1 este
elementul neutru al ȘI
17
Algebra Booleană
Definiție axiomatică:
1. Se definesc operatorii + (SAU logic) și · (ȘI
logic) care au proprietatea de închidere în
spațiul numerelor binare
2.Numărul 0 este elementul neutru al
operatorului SAU, iar numărul 1 este
elementul neutru al ȘI
3. Operatorii ȘI, SAU sunt comutativi
18
Algebra Booleană
Definiție axiomatică (continuare):
4. Operatorii ȘI, SAU sunt distributivi:
x(y+z) = xy + xz
x+(yz) = (x + y)(x + z)
19
Algebra Booleană
Definiție axiomatică (continuare):
4. Operatorii ȘI, SAU sunt distributivi:
x(y+z) = xy + xz
x+(yz) = (x + y)(x + z)
5. Se definește complementul unui număr x,
notat x', astfel încât xx' = 0 și x + x' = 1
20
Algebra Booleană
Definiție axiomatică (continuare):
21
Algebra Booleană (Teoreme)
Teoreme (de demonstrat):
1. x+x=x, xx = x
22
Algebra Booleană (Teoreme)
Teoreme (de demonstrat):
1. x+x=x, xx = x
2. X+1=1, x0=0
23
Algebra Booleană (Teoreme)
Teoreme (de demonstrat):
1. x+x=x, xx = x
2. X+1=1, x0=0
3. x+xy=x, x(x+y)=x
24
Algebra Booleană (Teoreme)
Teoreme (de demonstrat):
1. x+x=x, xx = x
2. X+1=1, x0=0
3. x+xy=x, x(x+y)=x
4. (x+y)'=x'y', (xy)'=x'+y' (DeMorgan)
25
Logica Binară
0 0 1 0 0 0
0 1 1 1 0 1
1 0 0 1 0 1
1 1 0 1 1 0
26
Logica Binară
27
Logica Binară
28
Logica Binară
29
CIRCUITE INTEGRATE DIGITALE
CURS 2:
PORȚI LOGICE CMOS
CIRCUITE LOGICE COMBINAȚIONALE
Comutatoare CMOS
Inversorul CMOS
Porți logice NAND și NOR
Timpul de Propagare
Cauzat de capacitatea de poartă a tranzistorului
MOS – timpul de încărcare și descărcare a
sarcinii din poartă
Timpul de propagare crește cu numărul de
tranzistoare al porții
Dincolo de 3 intrări, e mai rentabil să folosim porți
cascadate
Circuite Combinaționale (CLC)
Definiție: circuitele formate din fire și porți logice ale căror
valori de ieșire depind exclusiv de valorile intrărilor, la orice
moment de timp
CLC nu pot conține bucle de reacție sau elemente de
memorie
Forma generală: circuit cu M intrări și N ieșiri
Circuite Combinaționale (CLC)
CLC cu un singur semnal de ieșire, echivalente
cu o funcție logică
Operații cu CLC:
Analiză
A funcției
A performanței
Definirea criteriilor de performanță
Proiectare
Optimizare a performanței
Analiza CLC
Procedura de analiză a funcției logice:
Se denumesc ieșirile porților, pornind dinspre
intrare către ieșire
Se notează toate semnalele denumite în tabelul de
adevăr
Se completează tabelul de adevăr, pe coloane
Analiza CLC
Exemplu: analizarea funcției următorului circuit
Analiza CLC
Exercițiu:
Analiza Performanței CLC
Criterii de performanță?
Analiza Performanței CLC
Adâncimea circuitului – numărul maxim de porți traversate de semnal, pe
oricare cale de la intrare către ieșire
Timpul de propagare prin circuit – durata de timp necesară pentru ca o
schimbare a valorilor de intrare să producă efecte la ieșire
Calea critică – calea de semnal, intre intrarea și ieșirea circuitului, care are
timpul de propagare cel mai mare
Aproximare bună: calea care traverseaza numărul maxim de porți
Determină viteza de procesare a circuitului
Analiza Performanței CLC
Dimensiunea circuitului – aria de siliciu
ocupată de circuit
Aproximare bună: numărul de porți elementare
Afectează costul unui circuit
Puterea consumată
Afectează costul și performanța unui circuit
Analiza Performanței CLC
Exercițiu: comparați dimensiunea și timpii de
propagare pentru circuitele discutate anterior, și
indicați calea critică pentru fiecare.
Proiectarea CLC
Procedura de proiectare:
Exprimarea funcției dorite prin tabele de adevăr sau
funcții algebrice pentru fiecare ieșire
Exprimarea grafică a funcției sub formă de circuit
pentru fiecare ieșire în parte
Identificarea subcircuitelor comune
Proiectarea CLC
CLC ARITMETICO-LOGICE:
COMPARATORUL
MULTIPLEXORUL
CLC Regulate
●CLC construite prin asamblarea repetitivă a unor
circuite simple
N biți de intrare, M biți la ieșire
●
– Dimensiunea circuitului
– Adâncimea circuitului
Structura unui procesor
Circuite combinaționale:
●Decodorul de instrucțiuni
●Decodorul de adrese al memoriei de reg
S A B Q
A
0 0 0 0
S
0 0 1 1
0 1 0 0 Q
0 1 1 1
1 0 0 0
1 0 1 0
B
1 1 0 1
1 1 1 1
Multiplexorul
Circuit de selecție între 3 semnale de 1 bit
●
Multiplexorul
Circuit de selecție între 4 semnale de 1 bit
●
Multiplexorul
Circuit de selecție între 2 semnale de 4 biti
●
Multiplexorul
Determinati Dimensiune / Adâncime pentru
●
CLC ARITMETICO-LOGICE:
SUMATORUL
DECODORUL
Semi-Sumatorul (Half-Adder)
Semi-sumatorul (Half-adder)
●
Sarcina voastră: Proiectați un circuit care permite
deplasarea liftului fără a ține butonul apăsat
Circuite de Memorare
Circuitele combinaționale nu au
●
memorie
– Ieșirea depinde exclusiv de
valorile curente ale
intrărilor
– Am putea lega ieșirea la
intrare, pentru a incerca
să memorăm?
Circuite de Memorare
●
Putem “forța” o buclă
combinațională la o
valoare logică...
●
Circuite de Memorare
●
Putem “forța” o buclă
combinațională la o
valoare logică
●
Necesită două
comutatoare către GND
●
Se pot folosi și
comutatoare către VCC?
●
Latch RS
Folosim porți AND pentru a forța Q/Q' în zero
●
Latch RS
Folosim porți AND pentru a forța Q/Q' în zero
●
●
Problema: Latch-ul
este transparent
pentru semnalul D
dacă En este 1
●
Care sunt condițiile
în care numărătorul
funcționează?
Latch D
●
Timpul de propagare prin circuitele
combinaționale constrânge forma semnalului En
Circuitul este dificil de proiectat și analizat
●
●
Avem nevoie de un circuit de memorare ne-
transparent
Bistabilul D (Flip-Flop D)
●
Combinație de 2 latch-uri D, în următoarea
configurație:
Bistabilul D (Flip-Flop D)
●
Ce valoare a semnalului Clock propagă valoarea
intrării D la ieșirea Q?
Bistabilul D (Flip-Flop D)
●
Frontul semnalului Clock (în cazul de mai jos frontul
negativ) permite propagarea valorii D la ieșirea Q
Bistabilul D (Flip-Flop D)
Parametrii DFF
●
TCO)
Latch-ul ocupa arie mai mica
●
●
FF izolează secțiunile de circuit de modificări tranzitorii ale
valorilor semnalelor (glitch)
Terminologie
●
Registru = colecție de FF care stochează biți diferiți
ai aceluiași semnal
●
Reset – semnal care forțează ieșirea FF la o
valoare cunoscută
– Sincron (pe frontul ceasului)
– Asincron (indiferent de ceas)
●
Circuit secvențial = orice circuit care include FF și
(opțional) logică combinațională
Circuite Secvențiale
●
Circuite care conțin bistabile și logică
combinațională (CLC)
●
Circuite Secvențiale
Durata de timp între fronturi active consecutive:
●
CURS 6:
TIPARE DE CIRCUITE SECVENȚIALE
DIVIZOR DE FRECVENȚĂ
LINIE DE ÎNTÂRZIERE (DELAYLINE)
CONVERSIE SERIAL-PARALEL
TIPURI DE BISTABIL
●
Bistabil D
●
Bistabil D cu Reset/Set Sincron/Asincron
●
Bistabil D cu Enable
●
Bistabil D cu Enable și Set/Reset
Sincron/Asincron
TIPURI DE BISTABIL
TIPURI DE NUMĂRĂTOR
●
Simplu (numără continuu)
– Realizat exclusiv din bistabile D
●
Cu Enable (numără sau nu în funcție de Enable)
– Realizat exclusiv din bistabile D cu Enable
●
Cu Preset (se poate aduce la o valoare initiala)
– Realizat dintr-un amestec de bistabile cu Set/Reset
●
UpDown (numără în ambele direcții)
– Realizat folosind un sumator/scăzător
●
… și toate combinațiile dintre cele 3 de mai sus!
DIVIZOR DE FRECVENȚĂ
●
Numărătorul poate acționa ca un divizor de
frecvență:
LINII DE ÎNTÂRZIERE
●
Reminder: Fiecare bistabil D copiază valoarea
logică de la intrarea D la ieșirea Q pe frontul
activ al CLK
●
După cât timp se propagă valoarea lui D la
ieșirea Q a acestui circuit:
LINII DE ÎNTÂRZIERE
●
Valoarea logică ajunge întotdeauna la ieșire
după un număr de fronturi active ale semnalului
de ceas egal cu numărul de FF din linia de
întârziere:
CONVERTOR SERIAL-PARALEL
●
Avem un circuit cu intrare de semnal de ceas CLK
și intrare de date de 1 bit D. Dorim să obținem un
semnal de N biți în care:
– Bitul 0 are aceeași valoare cu D la frontul anterior de
ceas
– Bitul 1 are aceeași valoare cu D acum 2 fronturi de ceas
– …
– Bitul N-1 are aceeași valoare cu D acum N fronturi de
ceas
CONVERTOR SERIAL-PARALEL
CONVERTOR SERIAL-PARALEL
●
Folosit în mod uzual pentru a transforma o
serie de W*N valori consecutive de 1 bit (D)
într-o serie de W valori consecutive de N biți
(Q)
– Exemplu: transmiterea serială a biților unui pixel, și
reconstrucția valorii pixelului
– Semnal suplimentar de Valid care ne spune când Q
este complet. Cum îl generăm?
CONVERTOR SERIAL-PARALEL
CONVERTOR SERIAL-PARALEL
CIRCUITE INTEGRATE DIGITALE
CURS 7:
TIPARE DE CIRCUITE SECVENȚIALE
CONVERSIE PARALEL-SERIAL
ANALIZA ȘI OPTIMIZAREA FMAX
SPI
●
Serial Peripheral Interface – interfață de
comunicație de viteză medie, serială, cu 3 fire
Convertor Paralel-Serial
●
Necesar pentru transmiterea unui cuvânt de
date prin SPI
●
Exemplu: convertor S2P de 4 biți
Convertor Paralel-Serial
●
Forma de undă:
●
Care este timpul minim între frontul lui DVALID și
frontul pozitiv al CLK?
●
Dar între schimbarea lui D și frontul pozitiv al CLK?
Convertor Paralel-Serial
●
Forma de undă:
●
Timpul minim între frontul oricărui semnal de intrare și
frontul pozitiv al CLK (timpul in-to-clock) este egal cu
timpul de setup al FD, plus timpul maxim de propagare
de la semnalul de intrare la ieșirea fiecărui multiplexor
Convertor Paralel-Serial
●
Exemplu practic:
– Timp de propagare prin porți ȘI/SAU – 2ns
– Timp de propagare prin inversoare – 1ns
– Timpul de set-up al FD – 0.5ns
– Timpul de clock-to-output al FD – 0.5ns
●
Calculați frecvența maximă Fmax, timpii in-to-clock și clock-
to-out. Depind aceștia de numărul de biți ai lui D?
Pipeline - Optimizarea Fmax
●
Se cere caracterizarea Fmax pentru circuitul
corector de pixeli defecți:
Pipeline - Optimizarea Fmax
●
Timpii de propagare
prin orice poartă – 1ns
●
Timpii set-up si clock-
to-out 0.5ns
●
Evaluăm pentru
– Pixeli de 4b
– Pixeli de 6b
– Pixeli de 8b
●
Câte FPS la FullHD?
Pipeline - Optimizarea Fmax
●
Dorim să dublăm FPS
●
Tehnica Pipeline
– Segmentarea
circuitului în nivele
– Separarea nivelelor
prin bistabile
Pipeline - Optimizarea Fmax
●
Pipeline de 3 nivele
●
Ce câștig de frecvență?
– Dacă nivelele sunt
echilibrate, pentru N
nivele de pipeline,
frecvența crește de
aproximativ N ori
CIRCUITE INTEGRATE DIGITALE
CURS 10:
MEMORII SRAM
FIFO/LIFO
MEMORII DRAM
Memorii Random Access (SRAM)
Diagrama unei memorii de 2k cuvinte a câte n biți
Read-Only)
●
Sincrone sau asincrone (datele devin disponibile la
ieșire imediat sau la următorul front de ceas)
Comportamentul ieșirii în timpul scrierii
●
– Stocare stabilă
Dezavantaje SRAM
●
– Capacitate mică
– Vitezămare (folosit pentru memorii de KB -
cache)
CIRCUITE INTEGRATE DIGITALE
AUTOMATE FINITE
Definiție
●
Circuit a cărui stare internă poate lua un număr
finit de valori (Finite State Machine - FSM)
●
Starea internă este recalculată la fiecare front activ
de ceas, folosind starea internă curentă și valorile
intrărilor
●
Starea internă (și opțional valorile intrărilor)
determină valorile ieșirilor
– Moore – valorile ieșirilor calculate doar din stare
– Mealy – calculate din stare și intrări
Structură
FSM Moore
FSM Mealy
Diagrama de stări
●
Reprezentare grafică a
– Tuturor tranzițiilor posibile între stări
– Condițiilor necesare pentru fiecare tranziție
Bistabilul T
●
Un bit de intrare
●
Două stări 0/1
●
Starea se schimbă
doar dacă T = 1
Numărătorul
Acumulatorul
Controlul unui Semafor
●
Dorim să controlăm un semafor pentru o
trecere de pietoni
●
Trecerea este echipată cu un buton pe fiecare
parte, care trece semaforul în culoarea galben
●
Culoarea galben durează 3 secunde, cea roșu
durează 10 secunde, cea verde rămâne
aprinsă până la următoarea apăsare a
butonului de traversare
Controlul unui Semafor
●
Diagrama de stări ilustrată mai jos
●
Avem nevoie de un circuit suplimentar pentru
măsurarea timpului
Controlul unui Semafor
●
Măsurarea timpului se poate face folosind un numărător
●
Vom considera că perioada ceasului este 10 ns (același
ceas pentru numărător și automat)
●
Vom considera că starea 00 corespunde luminii galbene,
01 corespunde luminii roșii, 11 corespunde luminii verzi
Controlul unui Semafor
Două posibile implementări, în funcție de condițiile de tranziție
Controlul unui Semafor
●
Logica de tranziție definită de regulile din
diagrama de stări
●
Logica de ieșire:
– Y = ~STATE[0] & ~STATE[1]
– G = STATE[0] & ~STATE[1]
– R = STATE[0] & STATE[1]
●
Putem coda stările altfel pentru a reduce logica
de ieșire?
Controlul unui Semafor
●
Recodăm stările astfel încât 10 corespunde
galben, 01 corespunde roșu, 00 corespunde
verde
– Y = STATE[1]
– G = ~STATE[0] & ~STATE[1]
– R = STATE[0]
●
Am economisit tranzistoare dar timpul clock-to-
out al circuitului e la fel, determinat de G
Controlul unui Semafor
●
Recodăm stările astfel încât 001 corespunde
galben, 010 corespunde roșu, 100 corespunde
verde (codare one-hot)
– Y = STATE[0]
– G = STATE[2]
– R = STATE[1]
●
Logica de ieșire este eliminată complet
– Am economisit tranzistoare doar dacă logica de
tranziție nu a crescut semnificativ, compensând
dispariția logicii de ieșire
CIRCUITE INTEGRATE DIGITALE
PM(t) ~ 1/et
MTBF ~ 1/FCLKPM(t)
Sincronizatoare
●
Circuite care transformă un semnal asincron în
sincron
– Bistabilul, dar e vulnerabil la metastabilitate, MTBF
definit de FCLK, parametrii de proces
– Dorim să putem ajusta MTBF la valori arbitrar de mari
– Probabilitatea Q2 metastabil: PM(t)=PM(TCLK)PM(t)
Sincronizatoare
Sincronizatoare
●
MTBF crește cu numărul de FF din
sincronizator
●
Pentru a funcționa, trebuie ca valoarea
semnalului asincron să se păstreze minim o
perioadă de ceas
– Valabil daca semnalul asincron provide e.g., dintr-
un domeniu de ceas mai lent
– Dacă nu se poate garanta această condiție, este
necesar un sistem de handshake
Sincronizatoare
Sincronizatoare
FIFO Asincron
●
Soluție universală de traversare între domenii de ceas
●
Full, empty se realizează comparând pointerii
sincronizați
●
Pentru a minimiza erorile: pointeri în cod Gray
Erori cauzate de Reset
●
Stiluri de reset
– Sincron: acționează la frontul activ al ceasului și
este generat în interiorul aceluiași domeniulu de
ceas
– Asincron: acționează imediat, nu are relație definită
cu semnalul de ceas
Reset Asincron
●
Avantaje:
– Funcționează și când ceasul e inactiv
– Nu introduce porți suplimentare pe calea de date
(reset sincron se implementează cu poartă ȘI pe
intrarea unui bistabil fără reset)
●
Dezavantaje:
– Poate produce metastabilitate
●
dacă este activat aproape de frontul ceasului (?)
●
dacă este dezactivat aproape de frontul ceasului (?)
Reset Asincron
CIRCUITE INTEGRATE DIGITALE
CURS 3:
PORȚI ȘI CIRCUITE LOGICE CMOS
Recapitulare
●
Algebra booleană
– Minimizare algebrică
– Minimizare cu diagrame K
●
Circuite combinaționale
– Izolarea funcțiilor ieșirilor
– Identificarea subfuncțiilor comune
●
Forma NAND/NOR a circuitelor
Astăzi
●
Comutatoare CMOS
– Principiu de funcționare
●
Porți logice CMOS
– Structură
– Timp de propagare
– Putere disipată
Comutatoare CMOS
Inversorul CMOS
NAND și NOR
Regimul Dinamic
(Circuit Echivalent)
Observații:
– În majoritatea cazurilor, porțile au sarcină capacitivă
– Capacitatea de intrare crește direct proporțional cu
W (lățimea tranzistorului)
– Rezistența de ieșire crește invers proporțional cu W
Timpul de Propagare
Timpul de Propagare
● CL = CW + CG + CO
● CW = CthoxWWLW (crește cu lungimea și lățimea)
● CG = CGp + CGn (capacități în paralel)
● CO capacitatea parazită a ieșirii
tpHL = knRONnCL
tpLH = kpRONpCL
●
Timp de propagare NAND/NOR ?
●
Optimizarea timpului de propagare prin
inversoare:
Timpul de Propagare
●
Porți multi-input vs. arbori de porți cu 2 intrări
Puterea Consumată
Psw = CLVDD2