Sunteți pe pagina 1din 26

PVLSI, modulul I - Tehnologii VLSI

C1
1. Caracterizati sumar etapele evolutive ale circuitelor integrate
Realizarea primelor CI datează încă din anul 1958 şi a provocat una din cele mai
importante revoluţii în industria electronic. Un prim salt calitativ în evoluţia CI liniare s-a făcut
în anii 1964 -1965 când, prin elaborarea unor tehnici de proiectare specifice s-a elaborat seria e s-a elaborat seria
circuitelor aşa numite din "generaţia întâi" ca de exemplu µA 702, µA 709 şi altele. Următorul progres major în teh-
nica CI liniare s-a înregistrat în anii 1967- 1968, prin circuitele din "generaţia a doua" care, în afara unor perfe -
cţionări de proiectare, incorporau şi componente noi, rezultate ale efortului de rafinare a tehnologiei de bază. Din
anii 1972-1973 tehnica CI liniare a intrat într-o fază de ''maturitate'', în care practic orice funcţie liniară sau liniar
-numerică s-a putut realiza monolithic.

2. Descrieti succint principalele categorii de structuri logice programabile: PLA/PAL, CPLD, ASIC FPGA
PLA/PAL – sunt PLD-uri(Programmable Logic Devices)
PLA – arii logice programabile – AND si OR programabile
PAL – AND programabil OR fix
PLA/PAL se bazeaza pe faptul ca orice combinatii logice pot fi realizate ca sume de produse
PAL – are un vector de porti AND-OR cu interconectari programabile
Circuitele PLA sunt circuite care costau intr-o arie de porti SI programabila si o arie de porti SAU progra -
mabila. Ariile logice programabile PAL poseda o structura de functie logica SI programabila, urmata de o functie
SAU fixa. Dispozitivele PAL au matrici de celule transistor aranjate in plan “fixed-OR, programabile-AND”, folosi-
te in implementarea ecuatiilor logice binare,”suma de produse” pentru fiecare dintre rezultatele in ceea ce priveste
intrarile si feedback-ul, fie sincron sau asincron de la iesiri. Ratiunea utilizarii PAL este ca, in general, o functie lo-
gica mare utilizeaza un numar limitat de termini produs si astfel nu este necesar sa se utilizeze toti termenii produs
pentru toate iesirile.
FPGA – Field Programmable Gate Arrays = LUT(Look Up Table) + MUX + Porti
• Contin cellule logice programabile intern ca si functie logica si conexiuni programabile pe orizontala si vertical
• Sunt programabile sau reprogramabile in campul de lucru
• Structura FPGA – blocuri logice, conexiuni interne, blocuri de intrare iesire
• Configurarea FPGA se face , in general, cu ajutorul unui limbaj de descriere hardware HDL. FPGAurile
sunt alcatuite din blocuri logice configurabile legate intre ele de o serie de conexiuni configurabile la randul
lor.
FPGA si PLD sunt user programmable
Un FPGA este un circuit integrat digital configurabil, de catre utilizator, dupa ce a fost fabricat.Configura-
rea FPGA se face , in general, cu ajutorul unui limbaj de descriere hardware HDL.FPGAurile sunt alcatuite din
blocuri logice configurabile legate intre ele de oo serie de conexiuni configurabile la randul lor. Ariile logice FPGA
au fost introduse in 1985 de firma XILINX. Procesul de proiectare cu circuite XILINX FPGA este rapid si eficient,
iar durata acestui proces este de cateva zile in comparatie cu cateva saptamani, termen obisnuit cu alte tipuri de
circuite programabile.
CPLD – Complex Programmable Logic Device – dispozitiv logic programabil cu complexitatea intra PAL si FPGA
• Circuit semi-custom – are AND si OR programabil
• Izoleaza tranzistorii de poarta
Circuitele de tip CPLD pot fi considerate ca fiind colectie de circuite de tip PLD pe un singur chip, impreuna
cu o structura de conexiuni programabile, care permite circuitelor PLD de a fi conectate intre ele.

ASIC – circuite integrate pt. aplicatii specific – Standard off-the-shelf Components


• Initial realizate pe arii de porti(1980)
• 1990 – realizat pe cellule standard, avand functionalitate predefinita si performante cunoscute
Un ASIC este un circuit integrat special produs pentru o anumita aplicatie, civila sau militara, cu alte cuvinte “ spe-
cializat”. In general, acest tip de circuite grupeaza un numar mare de functiuni unice, create pe masura conform ce-
rintelor concrete.
Un ASIC este un circuit integrat special produs pen special produs pentru o anumita aplicatie, civila sau mi-
litara, cu alte cuvinte “ specializat”. In general, aceste tipuri de circuite grupeaza un numar mare de functiuni uni-
ce, create pe masura conform cerintelor concrete.

3. Descrieti asemanarile si deosebirile dintre FPGA si ASIC


Atât ASIC cât și FPGA sunt tehnologii cu avantaje diferite, totuși diferența lor se bazează pe costuri, NRE,
performanță și flexibilitate. În general, putem spune că pentru modelele mai mici, flexibilitatea FPGA permite eco-
nomisirea costurilor și obținerea unor rezultate mai bune; în timp ce cipurile ASIC sunt mai eficiente și mai eficiente
din punct de vedere al costurilor pentru aplicațiile cu volum mare.

FPGA
*Un FPGA (Field Programmable Gate Array) este un circuit integrat digital configurabil,de catre utilizator, dupa ce
a de catre utilizator, dupa ce a fost fabricat (spre deosebire de dispozivele a caror functie este implementata in pro-
cesul de fabricatie). Configurarea FPGA se face, in general, cu ajutorul unui limbaj de descriere hardware HDL, si-
milar cu cel folosit pentru dispozivele ASIC, dezvoltându-se recent si compilatoare care traduc intructiuni din limba-
jul C în limbaje HDL. Un astfel de compilator este Impulse C. FPGA-urile sunt alcatuite din blocuri logice configu-
rabile (programabile) legate între ele de o o serie de conexiuni configurabile la rândul lor.
ASIC
*Un ASIC (prescurtare din engleza : Application Specific Integrated Circuit)
este un circuit integrat special produs pentru o anumita aplicatie, civila sau militara, cu alte cuvinte "specializat".
În general, acest tip de circuite grupeaza un numar mare de functiuni unice, create pe masura conform cerintelor
concrete. Un exemplu tipic din domeniul militar sunt acele cipuri dintr-o racheta sau un satelit care prelucreaza
imagini în "timp real".

ASICs – performante ridicate, consum mic de putere, cost scazut la volum mare
FPGAs – de pe raft, cost scazut de dezvoltare, short time to market aka e rapid gata produsul si ajunge rapid in ma-
gazine, reconfigurabile
ASIC – procesul de fabricatie este lung si costisitor, iar FPGA sunt luate “de pe raft” si reconfigurate de designer.
ASIC – facut design ul cap coada, de la comportament la schema fizica, pec and la FPGA nu e nevoie de schema fi -
zica, design-ul se termina cu un bitstream folosit la configurarea device-ului.
FPGA e flexibil si permite schimbari in design, ASIC nu.

4. Explicati principiul LUT de implementare a functiilor logice in FPGA


Un bloc logic contine un mic circuit combinational circuit combinational configurabil si un bistabil D. Cir-
cuitul combinational configurabil se implementeaza ca un tablou de valori – look-up table ( LUT). Un LUT cu n in-
trari poate fi considerat ca o memorie cu 2n locatii pe un bit. Scriind corespunzator valorile din memorie, un LUT
poate fi utilizat pentru a implementa orice funcție logica. Iesirea de la LUT poate fi utilizata direct sau poate fi sto-
cata in bistabil pentru a implementa circuite secventiale.
5. Definiti continutul registrului LUT pentru implementarea functiei F (x1, x2, x3) =
X1 X2 X3 F

0 0 0 1

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 0
Depinde de blocurile din stanga(daca sunt 1 sau 0)
Toate trapezele sunt multiplexoare 2:1, la fiecare mux x1, x2, x3 activeaza 1 1 0 0
una din cele 2 intrari. In functie de ce valori au blocurile din stanga de-
pinde totul si se completeaza tabelul corespunzator. Eu l-am completat 1 1 1 0
pentru primele 4 0/1 ca fiind 1 si restul de 4 ca fiind 0.

6. Explicati functionarea blocului logic programabil din structura FPGA:

Bloc logic Programabil = LUT = Look Up Table


In functie de intrarile a, b, c, d LUT genereaza o iesire y,
acest y participa si ca intrare in mux 2:1 a carei iesire tine
loc de intrarea Flip-Flop-ului ce functioneaza sub semnalul
de ceas clock, generandu-se astfel iesirea q.

7. Descrieti programabilitatea conexiunilor realizate cu anti-fuzibile


Cu anti-fuzibile se pot realiza conexiuni in memorii programabile unipolare.
Conexiunile realizate cu anti-fuzibile nu sunt reprogramabile, nu sunt volatile, iar tehnologia folosita este CMOS+.
Antifuzibil  o tehnologie care creaza trasee(poteci, cai (nu animale) sau alte sinonime) conductive si per-
manente intre tranzistori. In contrast cu metoda fuzibila care deschide un circuit eliminand o cale, metoda antifuzi-
bilului inchide un circuit crescand conductivitatea.
Circuitele FPGA bazate pe antifuzibile constau de obicei din rânduri de
elemente logice configurabile cu canale de interconectare între ele, ca şi reţelele de porţi tradiţionale.
Un bloc logic poate fi programat prin conectarea pinilor săi de intrare la valori fixe sau la reţele deinterco-
nectare. Există antifuzibile la fiecare punct de intersecţie între interconexiuni şi pini din canal şi la toate punctele de
intersecţie între interconexiuni în locurile în care canalele se intersectează.
Antifuzibil -> folosit la memorii nevolatile
Un bloc logic poate fi programat prin conectarea pinilor săi de intrare la valori fixe sau la
reţele de interconectare. Există antifuzibile la fiecare punct de intersecţie între interconexiuni şi pini din canal şi la
toate punctele de intersecţie între interconexiuni în locurile în care canalele se
intersectează.
O tehnologie programabil cip care creeaza cai permanente, conductoare intre tranzistori. In contrast cu
“blowing fuses” in metoda de fuzionare a legaturii, care deschide un circuit divizand calea de conductivitate, meto -
da antifuza inchide circuitul crescand conductivitatea.
8. Descrieti programabilitatea conexiunilor realizate cu tranzistoare cu poarta flotanta (EPROM)
Comutatoarele bazate pe tranzistoare cu poartă flotantă se bazează pe tehnologiile
folosite în EPROM-urile Altera, al căror conţinut este anulat prin iradiere cu adiere cu ultraviolete, şi în EEPROM-
urile AMD, Lattice, al căror conţinut este alterat pe cale electrică.
EEPROM este un tip de memorie nevolatila folosita in calculatoare si alte echipamente electronice pentru a
stoca date ce trebuie sa persiste si dupa intreruperea alimentarii cu curent. Cea mai importanta caracteristica a
acestei memorii este ca nu e volatila. Memoria EEPROM este formata dintr-o matrice de celule de memorie care, la
randul lor, sunt formate din perechi de tranzistori ce au intre ei un strat subtire de oxid isolator. Un transistor este
numit poarta flotanta, iar celalalt poarta de control.

Cu o tensiune mare de
alimentare(>12V) aplicata drenei,
electronii capata destula energie cat
sa “sara” la poarta flotanta(gate 1)

Electronii prinsi in poarta 1 cresc


tensiunea (traducere de balta, dar nu
prea inteleg principiul)a.i.
transistorul sa fie mereu inchis pt
tensiuni normale de alimentare.

Lumina UV furnizeaza destula


energie astfel incat electronii inca
prinsi in poarta 1 sa “sara” inapoi in
masa (bulk), lasand tranzistorul sa
opereze normal.

9. Descrieti programabilitatea conexiunilor folosind celule SRAM


Avantaje:
- Reconfigurare dinamica
- Densitate crescuta
- Evolutie rapida odata cu tehnologiile de stocare SRAM generale
- Flexibilitate
Dezavantaje:
- Volatile
- Consum de energie ridicat
Aproape toate familiile FPGA folosesc SRAM. Celulele SRAM sunt utilizate in 3 moduri:
- Implementare de functii logice LUT
- Ca blocuri de memorie inglobate ( buffer stocate)
- Ca elemente de control comutatoarelor de configurare si a rutelor
Structura programabila cu SRAM:
• Blocuri logice configurabile
• Interconexiuni programabile
• Blocuri input/output
SRAM sunt utilizate si pentru stabilirea functiilor logice implementate de carte multiplexoare.
Programarea acestor circuite se realizează prin celule de memorie statică. Logica este
implementată cu ajutorul unor tabele (lookup table) realizate din celulele de memorie, intrările
funcţiilor controlând liniile de adresă. Fiecare tabelă de 2n celule de memorie implementează
orice funcţie cu n intrări. Una sau mai multe tabele, combinate cu bistabile, formează un bloc
logic configurabil. Aceste blocuri sunt aranjate într-un tablou bidimensional, segmentele de
interconectare formând canale, similar cu reţelele de porţi. Segmentele se conectează la pinii
blocurile logice din canale şi la alte segmente din blocurile de comutare prin intermediul
tranzistoarelor de trecere controlate de celule ale memoriei de configurare.
O secvenţă de configurare pentru circuitele cu memorii SRAM constă dintr-un singur cuvânt
lung de programare. Logica din circuit încarcă cuvântul de programare, pe care îl citeşte serial dintr-o
memorie externă de fiecare dată când circuitul este alimentat. Biţii acestui cuvânt setează valorile tuturor
celulelor memoriei de configurare din circuit, setând astfel valorile tabelelor şi selectând segmentele
care se vor conecta între ele. Circuitele cu memorii SRAM sunt reprogramabile. Ele pot fi
actualizate în sistem, punând la dispoziţia proiectanţilor noi opţiuni şi posibilităţi de proiectare.

10. Explicati functionarea memoriei NOR Flash


Celulele flash NOR sunt conectate in paralel si pot fi operate individual.
Memoria flash tip NOR are o speranță de viață de 10.000 la 100.000 de cicluri de scriere-stergere. Deși are
viteze mici de scriere și de ștergere, permite un acces aleatoriu pentru citire și scriere, făcând-o adecvată pentru sto-
carea datelor care nu necesită o actualizare frecventă.
Memoria NOR suportă acces aleatoriu pe un bait, ceea ce permite sistemului să ia datele și să le
execute direct de pe cip în același fel cum un PC ia datele din memoria principală. NOR flash are
o interfață SRAM ce conține suficienți pini de adresă pentru a mapa întregul cip, dând astfel
acces către fiecare bait.
FLASH utilizeaza tranzistoare cu poarta flotanta
Celulele FLASH NOR sunt conectate in parallel si pot fi programate indivi-
dual.
Capacitate: 1-16 Mbytes
Perofrmante: scriere-slow, citire-fast
Interfata: cam ca SRAM
Acces: Random
Pret: ridicat
Source Line  serveste la activarea intregii matrici de memorie
Word Line  realizeaza selectia unuia din cuvinte; in momentul activarii
unui cuvant, prin linia corespunzatoare WL, un transistor vat rage potenti-
alul liniei de biti in 0.
NOR Flash are avantaje d.p.d.v. al timpului de acces aleatoriu(linia de bit
se prezinta ca o poarta NOR).
Dezavantaj: presupune o suprafata mare ocupata la nivelul microcircuitu-
lui, datorita interconexiunilor ce trebuie realizate.
NOR flash poate fi programat doar cuvant cu cuvant.
11. Explicati functionarea memoriei NAND Flash
Celulele flash NAND sunt conectate in serie, nu pot programate individual iar citirea se face in serie progra-
mate individual iar citirea se face in serie.Celulele NAND sunt mai utilizate.
Capacitate: 8-128 Mbytes
Performante: scriere si citire – fast
Acces secvential
Pret: scazut
NAND Flash reduce suprafata ocupata de celula de memorie
a.i. sa creasca densitatea de integrare(numarul de microele-
mente pe unitatea de suprafata) si implicit capacitatea, in
conditiile scaderii costului de pret per bit.
Realizata prin punerea in seria a unor tranzistoare. Dimen-
siunea unei cellule NAND e aproape cat jumatate din dimen-
siunea unei cellule NOR.
Din cauza conectarii in serie, timpul de acces este mai mare
decat la NOR.
EX: CITIREA  atat tranzistorul selectat cat sic el de selec-
tie sunt adusi in conductie (adica si tranzistorul de la Bit Line
select si unul random din cele de la Word Line). Daca celula citita nu a fost programata se va trimite un 0.

12. Explicati functionarea si utilitatea circuitului de mai jos pornind de la tabelul valorilor de adevar
2 inversoare incrucisate, utilizeaza un proces standard
CMOS(formeaza un bistabil) – memoreaza un singur bit, ie-
sirile circuitului sunt folosite in continuare la
comandarea ????? altor tranzistori.
Celula este programata utilizand liniile READ/WRITE si DA-
TA.Nu am idee cum se face tabelul de adevar, dar am găsit
aici niste explicatii: https://www.youtube.com/watch?
v=GBL28_Tw6UQ

13. Explicati solutia de interconectare a magistralelor folosind matrici de comutatoare (PSM)


Exista trei tipuri de trasee: de lungime simpla, dubla si linii lungi. Liniile orizontale si vertical de lungime
simpla si dubla se intersecteaza in asa numitele matrici de interconectare. Fiecare PSM este alcatuita tranzistoare
de trecere utilizate pentru interconectarea liniilor intre ele .
Liniile de lungime simpla. Exista 8 astfel de linii verticale si orizontale associate cu fiecare CLB si ii ofera
acestuia conectivitate cu CLB-urile vecine. Aceste linii trec prin fiecare matrice de interconectare. Datorita intarzie-
rilor care apar la trecerea prin PSM sunt utilizate pentru conectarea CLB-urilor dintr-o arie restransa.
Liniile de lungime dubla. Sunt de doua ori mai lungi decat cele simple si trec tot prin a doua matrice de ma-
trice de interconexiuni. Exista patru astfel de linii vertical si orizontale associate fiecarui CLB.
Liniile lungi. Aceste linii parcurg intreaga matrice de CLB-uri , atat pe orizontala cat si pe verticala. Sunt
utilizate in cazul interconectarii CLB-urilor dintr-o arie mai larga, dispunand de un fanout ridicat. Fiecare astfel de
linie are la mijloc un comutator care permite impartirea acesteia in doua segmente separate.

14. Care sunt etapele proiectarii unui sistem digital VLSI si in ce constau acestea?
Descrierea unui circuit folosind mijloacele adecvate (HDLs)
- Simulare logica
- Sinteza functionala pe baza instrumentelor Sinteza functionala pe baza instrumentelor specific specific
- Simulare functionala
- Implementare fizica
- Testare
C2
15. Definiti parametrul Lambda – λ utilizat in exprimarea nivelului de integrare VLSI
– λ  reprezinta ½ din distanta minima caracteristica unei tehnologii
Fiecare tehnologie de realizare defineste distanta minima dintre 2 elemente geometrice in planul ariei de
Si, in mod tipic fiind distanta intre grila si drena unui transistor MOS.
De exemplu, pt tehnologia 90mm lambda va fi 45.
Lambda se foloseste ca unitate de masura in design.

16. Identificati functia logica generata de schema cu tranzistoare CMOS de mai jos

Paralel = sau
Serie = si

~ -> negare

prima schema: ~Vin OR Vin

a 2 a schema: (A AND B)AND(~B OR ~A) {CMOS INVERSOR}

a 3 a schema: (B OR A)AND(~A AND ~B) {CMOS NAND}

a 4 a schema: (((B OR C)AND A) OR (D AND E)) OR ((~C AND ~D) OR ((~B AND ~C) AND (~D OR ~E)))
A 4 A SCHEMA {Y=~(A(B+C)+(DE))}

17. Aspecte de baza ale integrarii VLSI: tensiunea de prag, consumul de putere, frecventa maxima de
lucru,puterea disipata
Tensiunea de prag
- Tensiunea intre poarta si sursa unui dispozitiv MOS sub valoarea caruia curentul drena sursa devine 0.
- Difera de la o tehnologie la alta
Consumul de putere
- Este influentat de frecventa de operare, numărul de iesiri care comuta capacitatea de sarcina, numărul de
intrarii (de nivel TTL) comandate, temperatura jonctiunii, temperatura ambianta, rezistenta termica.
- “Absolute maximum ratings” sunt calculate uzual la o temperatura a jonctiunii de 150°C si o densitate a
traseelor conductoare de 750 mils (1mils = 0.0254mm), fara ventilatie.
- Pistele, liniile de alimentare, conectorii, punctele de insertie sau ventilatoarele au un rol important în im-
bunatatirea disiparii caldurii.
- Nu toate dispozitivele integrate sunt testate identic: cele standardizate sunt evaluate la frecventa de clock in
timp cele nestandardizate sunt testate la frecventa semnalului de intrare.
Frecventa maxima de lucru
- Depinde direct de caracteristicile termice ale capsulei;
- Pistele, liniile de limentare, conctorii, punctele de insertie sau ventilatoarele au un rol important in
imbunatatirea disiparii caldurii;
- Difera de la o tehnologie la alta;
Puterea disipata (de capsula)
- Probleme termice au devenit o ingrijorare majora odata cu miniaturizarea componentelor către surface-
mount technology (SMT), inlocuind capsulele through-hole (DIP) in proiectarea PCB.
- Circuitele care opereaza la aceleasi tensiuni de alimentare incapsulate in incinte mai mici determina cres-
terea densitatii de putere.
- Cresterea vitezei de operare determina deasemenea cresterea puterii disipate.
- Tehnologiile de incapsulare miniaturizata sunt orientate pe rezolvarea problemelor termice.
- Temperatura jonctiunilor este influentata de reducerea consumului de putere a chipului, de pistele cipului,
de pistele conductoare lungi, de radiatoarele termice, de curentii de aer, de compozitia materialului capsulei, de su-
prafata ocupata si de marimea ariei de Si .
- Unele aspecte sunt de natura mecanica si tin de realizarea capsulei in timp ce altele pot fi controlate in eta-
pa de proiectare a aplicatiei.
- Definirea completa a variabilelor care influenteaza comportamentul termic se bazeaza pe evaluari și masu-
ratori complexe.
- Puterea disipata de o capsula se calculeaza la o temperatura a jonctiunii (TJ ) de 150°C si o temperatura
ambientala (TA) de 55°C.

18. Consumul de putere creste cu: frecventa, dimensiunea (lamda), tipul incapsularii (bifati raspunsurile co-
recte)
19. Evaluarea eficientei integrarii folosind costul per chip. Explicati marimile care intervin in calculul costu-
lui
c= costul pe chip
C= costul plachetei
a= aria unui chip
A= aria plachetei de Siliciu
f= failure (din n nr total de chipuri, f sunt caderi, n=A/a)

20. Descrieti fenomenul de elctro-migrare in circuitele VLSI


Electromigrare = efectul prin care apare difuzia atomilor in conduc-
tor prin care trece current electric
*Pentru un curent I constant, J (densitatea curentului electric)creste
odata cu reducerea sectiunii W. Deoarece sectiunea nu este niciodata con-
stant, inseamna ca densitatea de curent este variabila de-a lungul traseu-
lui conductor.
In zonele de reducere a sectiunii fenomenul de electromigrare
determina intreruperea conductiei

Pentru a reduce electromigrarea trebuie ca traseul conductor sa


aiba seciunea sufficient de mare.
Partea cea mai subtire se afla pe circumferinta adanciturii zonei
de contact
21. Realizarea rezistoarelor in circuitele VLSI
Performantele circuitelor VLSI depend de modul de realizare a componentelor si a legaturilor dintre acestea,
determinand direct viteza de operare si consumul de putere.
Rezistenta se calculeaza cu formula:
unde A = aria sectiunii transversale a conducto-
rului, l= lungimea conductorului, ro(ca sa nu
caut simbolul) = rezistivitatea materialului din
care e facut conductorul.

R = Rs * N
Rs este rezistenta unei suprafete
elementare w x w, iar l/w reprezinta numarul de
astfel de suprafete care alcatuiesc traseul
conductor(in formula e notat cu N).
Valorile Rs tipice sunt de 0,07 ohm pentru
metal, 20 ohm pt. polysilicon s 25-100 ohm
pentru difuzii(rezistenta difuziei difera mult chiar in cadrul aceluiasi process tehnologic). Metalul este cea mai buna
solutie pentru conductoare lungi avand rezistenta cea mai redusa.

22. Realizarea capacitoarelor in circuitele VLSI

In circuitele integrate armature superioara este metal(capacitate metal-oxid-semiconductor) sau


polysilicon(capacitate polysilicon-oxid-semiconductor);
Campul electric determina efecte secundare in semiconductor, respective efectul knock-on (domino), prin
care in zona armaturii semiconductoare apare o separare de sarcini.
EFECTUL KNOCK-ON
La aplicarea unei tensiuni cu polaritatea din figura (a), golurile sunt response in substrat, sub armature
conductoare, deci apare o saracire in purtatori sub electrodul conductor (b). Fenomenul este echivalent cu
separarea sarcinilor electrice ca si cum ar exista doua armature de condensator, plan paralele, in substrat (b);
Rezulta o capacitate echivalenta determinate de doua capacitate in serie, C0 si Cdep. Aceasta capacitate
rezultanta este dependent de tensiunea aplicata, prin component Cdep.

Pentru a nu se consuma o arie excesiva din cipul de siliciu, valorile economice de capacitoare nu depasesc
câtiva zeci de pF. Se pot folosi doua tipuri de capacitoare si anume: capacitoare obtinute din jonctiuni polarizate in-
vers si capacitoare MOS.
Capacitoarele obtinute din jonctiuni polarizate invers utilizeaza capacitatea de bariera a jonctiunii si prezin-
ta dezavantajele:
- mentinerea permanenta a tensiunii de polarizare
- dependenta valorii capacitatii de tensiunea aplicata.
Aceste dezavantaje reduc aria de utilizare a acestor capacitoare.

23. Fenomene specifice interconectarii portilor logice in circuitele VLSI si modele RC utilizate. Explicati.

figura din cerinta figura simplificata


Un etaj de iesire MOS, urmat de o linie de transmisie este echivalent cu o structura RC, avand valorile R si
C corespunzatoare conectarii in serie a rezistoarelor (Reff+Rwire) si in paralel a capacitatilor (Cinv+Cwire).
- Capacitatea de intrare pe o grila MOS este Cgate ≈ 25 x 10-4 pF/um2 (tipic 25pF)
- Capacitatea interna a etajului de iesire este Cint ≈ 0,5 x 10-4 pF/um2 (tipic 3 pF)
- Se poate ignora Cint comparativ cu Cgate, rezultand un model simplificat.

24. Explicati modul de compensare a sarcinii capacitive cu dimensiunea tranzistorului de comanda


Daca iesirea portii trebuie sa comande o sarcina capacitive importanta (externa), atunci timpul de crestere a
semnalului va fi trise ≈ 2,2 x Reff x CL (capacitatile de sarcina sunt in mod usual de 100 pana la 1000 de ori mai mari
decat capacitatile grilelor).
Marind dimensiunea tranzistorului de comanda scade Reff, deci se reduce timpul de crestere al semnalului.
O dimensiune marita a tranzistorului de comanda inseamna insa o capacitate de grila marita, deci o sarcina
capacitive extinsa pentru etajul anterior.
O solutie practica consta in utilizarea unei cascade de porti cu dimensiune crescatoare dupa un anumit raport a.

25. Explicati problematica liniilor lungi si comanda acestora in circuitele VLSI


Stucturile logice VLSI integrate sunt realizate la dimensiunea minima posibila pentru a
reduce capacitatile, cu exceptia situatiilor cand trebuie comandate sarcini capacitive mari, cand se utilizeaza o cas-
cada de porti crescatoare ca dimensiune
O situatie similara apare atunci cand o iesire trebuie sa comande linii lungi in interiorul structurii integrate,
cum este cazul liniilor magistrale (bus-uri)
Cascada de porti ocupa suprafete importante (mai ales daca sunt magistrale multiplexate), deci nu este o
solutie economica

O solutie eficienta de comanda a liniilor lungi se bazeaza pe segmentarea liniilor de transport in


elemente de lungimi mai mici. Daca intarzierea unei linii l este rXcX12, atunci, in cazul segmentarii în k elemente
cu buffere intercalate avem o intarziere globala. Optimul are loc cand intarzierea unui segment este egala cu cea a
buferului.
Cunoscand r, c si timpul de intarzaiere al unui bufer, din conditia anterioara, se poate calcula lungimea l a
unui segmment
26. Explicati utilizarea portilor de transmisie pentru generarea „0”, „1”, „HZ”, „Enable”
Multiplexoarele utilizate pentru conectarea selectiva a elementelor logice nu sunt realizate in forma clasica
din cauza costurilor mari
Solutia folosita in circuitele VLSI se bazeaza pe elemente logice cu iesire three-state (porti de transmisie)

Utilizarea iesirilor cu 3 stari se bazeaza pe blocarea simultana a ambelor tranzistoare din etajul de iesire
(U, D) fiind necesare 6 tranzistoare
Utilizarea unui singur comutator permite implementarea cu doar 2 tranzistoare

Utilizarea unui singur tranzistor ridica probleme legate de sensul de trecere a curentului
• Cand tranzistorul este blocat, pct. B este flotant; C este capacitatea de intrare intr-un alt etaj
• Un tranzistor cu canal n transmite corect nivelul 0: Va = 0 si Vb →0, VGS are o valoare pozitiva constanta,
B = drena, A = sursa; curentul circula de la B catre A
• Un tranzistor cu canal n NU transmite corect nivelul 1, A = drena, B = sursa; curentul trebuie sa circule de
la A catre B flotant, dar VGS scade pe masura ce capacitatea C se incarca
• O situatia complementara are loc pentru un tranzistor cu canal p
Pentru a transmite corect si 0 si 1 se utilizeaza 2 tranzistoare complementare
•Tranzistoarele necesita comanda in contra-timp, deci este nevoie de o logica de comanda corespunzatoare
•In cazuri particulare se poate utiliza o poarta cu un singur tranzistor, dar nu pentru a comanda o alta grila
(care trebuie incarcata si descarcata de sarcina electrica) !
•Trecerea variabilei logice se face fara restaurarea nivelului (non restoring); zgomotul este deasemenea
transferat

27. Explicati implementarea MUX folosind porti de transmisie. Exemplifcati pentru MUX 2:1 si MUX IN-
VERSOR 2:1
MUX 2:1->

MUX INVERSOR
28. Explicati realizarea CBB utilizand porti de transmisie

CBB = Circuit Basculant Bistabil


Pornind de la structura clasica a unui bistabil se poate realiza o structura cu o functionare similara folosind
2 inversoare si 2 porti de transmisie (deci 8 tranzistoare)
•Cand C=1 bistabilul functioneaza in modul transparent
•Cand C=0 bistabilul memoreaza valoare logica
•Structura se mai numeste si latch transparent sau latch declansat pe nivel (level-triggered data latch)
29. Scrieti tabelul valorilor de adevar pentru schema si ecuatia logica de functionare pentru schema de mai
jos.
Identificati functia logica:
MUX 4:1

ECUATIA LOGICA DE FUNCTIONARE

TABEL DE ADEVAR
S0 S1 D0 D1 D2 D3 Y
0 0 0 X X X 0
0 0 1 X X X 1
0 1 X 0 X X 0
0 1 X 1 X X 1
1 0 X X 0 X 0
1 0 X X 1 X 1
1 1 X X X 0 0
1 1 X X X 1 1

30. Prezentati modul de realizare a CLC cu MUX (LUT). Exemplificati pentru MUX 4:1
•Circuitele combinationale se realizeaza folosind multiplexoare (arie de selectie)
•Multiplexoarele sunt construite cu porti de transfer inseriate si comandate corespunzator de liniile de adre-
sa I0, I1.
•Configuratia prezentata include si decodificatorul de adresa.

31. Proiectarea cu PLA (arii logice programabile). Exemplificati pentru f(A,B,C) = ...
•Se bazeaza pe utilizarea sumelor de produse
•Portile de intrare realizeaza si buffer-are
•O implementare echivalenta se bazeaza pe porti NAND+OR sau NOR+AND (conform relatiilor de
echivalenta DeMorgan)
•Elementele de intrare ofera variabila propriu-zisa si inversa sa
•Portile NOR sunt usor de implementat deoarece se bazeaza pe un tranzistor de sarcina si mai multe
tranzistoare de comanda (driver) conectate in paralel pentru realizarea functiei SAU-NU

PARALEL = SAU
SERIE = SI
32. Construiti tabelul de adevar si identificati functia logica obtinuta pentru structura CMOS dinamica:

Circuitul de mai sus are doua faze:


- prima: Clock = 0 => X = 1 indiferent de A si B;
- a doua: Clock = 1 => Daca A si B sunt ambele 1 => X = 0; Altfel X = 1.
(practic un NAND cu Clock)

Clock A B X
0 X X 1
1 1 1 0
1 X X 1
33. Generati tabelul valorilor de adevar considerand variabilelel logice din circuitul CMOS dinamic tip „do-
mino” de mai jos

A B W X C Y Z
0 0 1 0 1 1 0
0 1 1 0 0 1 0
1 0 1 0 1 1 0
1 1 1 0 0 1 0
Clk = 0 mereu, se poate vedea ca e conectat la ground  explicatiile de la exercitiul anterior

34. Explicati functionarea circuitului:

-> registru de 1 bit

-> poarta de transmisie


Ce intra, aia iese cu un mic delay. Iesirea devine intrare si asa se pastreaza “stocata” valoarea de la intrare.
Ce intra in poarta de transmisie aia iese.
Cele doua not-uri isi anuleaza efectul, dar aduc un mic delay in circuit.
PVLSI, modulul II - Sintaxa Verilog
35. Cum este specificat un circuit sau o descriere în limbajul Verilog? Prezentați structura unui program
în Verilog.
Structura unui program Verilog

{Directive de compilare} //directive de preprocesare


module <nume modul>{#(lista parametrilor)} //antetul programului
{(lista argumentelor/semnalelor de intrare iesire)};
{declaratii de semnale interne; parametrii locali} //corpul programului
{corpul programului; instuctiuni}
endmodule

36. Ce contine lista de porturi a unui circuit descris in Verilog? De câte tipuri sunt porturile în Verilog?
Specificați nivelele de abstractizare in Verilog?
LISTA DE PORTURI: Porturile input(vectori de intrare), output(vectori de iesire) si inout(vectori bidirec-
tionali).
NIVELE DE ABSTRACTIZARE
Nivelul de comutatie: modeleaza comutatia la tranzistoare
Nivelul transfer intre register: modeleaza componentele combinationale si secventiale
Nivelul setului de instructiuni: comportamentul unui microprocesor
37. Scrieți descrierea structurală cu primitive Verilog a circuitului prezentat mai jos:

module circuit(A,B,C);
input A,B,C;
wire w1,w2,w3,w4,w5;
output cout;

not poarta1 (w1,A);


and poarta2 (w2, A,C);
not poarta3 (w3,w2);
or poarta4 (w4,w3,B);
and poarta5 (cout,w4,w1);
endmodule
38. Scrieți descrierea structurală cu primitive Verilog a circuitului prezentat mai jos:

//descriere sumator pe 1 bit face adunarea intre A+B+Cin si genereaza rezultatul pe Cout si Sum
//descriere structurala cu porti logice

module sumator_1bit (A,B,Cin,Sum,Cout);


input A,B,Cin;
output Sum, Cout;
wire w1,w2,w3;

//construim schema cu primitive and, or si xor

xor poarta1 (w1,A,B);


xor poarta2 (Sum,w1,Cin);
and poarta3 (w2,Cin,w1);
and poarta4 (w3,A,B);
or poarta5 (Cout,w2,w3);
endmodule

module test_sumator_1bit;
reg A,B,Cin;
wire Sum, Cout;

//apelam circuitul testat

sumator_1bit SUM (A,B,Cin,Sum,Cout);

//initializam intrarile circuitului testat intr-un INITIAL

initial begin
A=0;
B=0;
Cin=0;

//schimbam valorile dupa o intarziere de 10 ps (#10)

#10 A=1; B=1; Cin=1;


#10 Cin=0;
#10 A=0;
end
endmodule
39. Prezentați descrierea unui sumator complet pe 1 bit în care să se utilizeze operatorul de concatenare
{}.
module fulladder
(input A,input B,input carry_in,output Sum,
output carry_out);

assign {Sum,carry_out} = carry_in+ A + B;


endmodule

40. Cum se declară variabilele care stochează ultima valoare atribuită? Prezentați un exemplu de
variabilă care stochează o valoare pe 8 biți.
reg[MSB:LSB] nume_registru
EXEMPLU: reg[7:0] nume_registru
41. Cum se declară un tablou de 8 linii a câte 3 biți care să înregistreze valorile atribuite? Prezentați un
exemplu.
reg[7:0] vector[2:0]
EXEMPLU: reg[7:0] vector[2:0] nume_exemplu
42. Cum sunt executate instrucțiunile plasate în interiorul blocului de tip initial? Prezentați un exemplu.
Un bloc initial se execută o singură dată; după terminarea tuturor instrucţiunilor din blocul dat, fluxul ia
sfârşit, fiind reluat odata cu simularea;
EXEMPLU:
initial
begin
A = 1’b0;
B = 2’b01;
end

43. Cum sunt executate instrucțiunile plasate în interiorul blocului de tip always? Prezentați un exemplu.
Un bloc always este executat în mod repetat, într-o buclă infinită pană la terminarea simulării specificată
printr-o funcţie sau task de system: $finish, $stop.
EXEMPLU:
always@(Clock or D)
begin
if(Clock)
begin
Q=D;
Qbar=~D;
end
else
begin
Q=Q;
Qbar=Qbar;
end
end
44. Ce este o listă de evenimente în cadrul blocurilor de tip always? Prezentați un exemplu de bloc
always care să prezinte ca eveniment un front crescător al unui semnal de ceas Clk.

Evenimente: Execuția unei instrucțiuni procedurale poate fi controlată de o schimbare de valoare pe un fir
sau intr-un registru sau de apariția unui eveniment.
EXEMPLU:
always@(posedge Clk)
begin
Q=D;
Qbar=~D;
end

45. Prezentați descrierea Verilog a circuitului prezentat mai jos care să se utilizeze instrucțiunile case și
if.

//descriere mux cu instr. case


module mux_case (enable,d,s,y);
input enable;
input [1:0] d;
input [1:0] s;
output reg y;

//folosim blocul always cu evenimente specificate prin @ (lista)


always @(enable or d or s) //sau always @(*)
//prima instructiune va fi verificarea portului enable
if (enable==1) //circuit inactiv
y=0;
else //circuit activ
case (s)
0: y=d[0];
1: y=d[1];
endcase
endmodule

//testam circuitul
module test_mux_case;
reg enable;
reg [3:0] d;
reg [1:0] s;
wire y;
mux_case DUT (enable,d,s,y);
//initializam intrarile in functie de conditiile din always
initial begin
enable =1;
#10 enable =0;
d=7; //0111
s=0;
#10 s=1;
#10 s=2;
#10 s=3;
#10 d=8; //1000
end
endmodule

46. Prezentați descrierea Verilog a circuitului prezentat mai jos care să se utilizeze instrucțiunile if și for.

//descriere comportamentala a unui codificator pe 3 biti


module coder (d,q);
input [7:0] d;
output reg [2:0] q;

always @(*)
if (d ==8'b00000001) q=3'b000;
else if (d ==8'b0000001x) q=3'b001;
else if (d ==8'b000001xx) q=3'b010;
else if (d ==8'b00001xxx) q=3'b011;
else if (d ==8'b0001xxxx) q=3'b100;
else if (d ==8'b001xxxxx) q=3'b101;
else if (d ==8'b01xxxxxx) q=3'b110;
else if (d ==8'b1xxxxxxx) q=3'b111;

endmodule

//testam circuitul
module test_coder;
reg [7:0] d;
wire [2:0] q;
integer i;
coder DUT (d,q);
//initializam intrarea d
initial begin
for (i=0; i<=7; i=i+1)
#10 d=2**i;
end
endmodule

47. Prezentați descrierea Verilog a modului de test care generează stimulii pe intrările circuitului
prezentat mai jos.
module test;
reg enable;
wire[2:0] a;
integer i;
modul_de_testat testam(q,enable)
initial begin
for (i=0;i<=7;i=i+1)
#10 q=i
end
endmodule

48. Prezentați secvența de cod Verilog pentru configurarea unui numărător pe 4 biți pentru o
număratoare crestătoare și descrescătoare. Numărătorul va fi prevăzut și cu opțiune de semnalizare a termi-
nării numărătorii (terminal Count) care se va activa (1 logic) atunci când se termină o
numărătoare, atât in sens crescător cât și descrescător.

//descriere numarator pe 4 biti


module numarator (data,up_down,load,clock,reset,
enable, result, tc);
input up_down, load, clock, reset, enable;
input [3:0] data;
output reg [3:0] result;
output reg tc;
always @(posedge clock or reset)
begin
//comanda reset
if (reset==0) //comanda activa pe 0 logic
begin
result=0;
tc=0;
end
else
//comanda load
if (load==0) //comanda activa pe 0 logic
result=data;
else
if (enable==0)
result=result;
else
if(up_down==1) //numarare crescatoare
begin
result=result+1;
//verificam daca numaratoarea s-a terminat
if(result==15)
tc=1;
else tc=0;
end
else
if(up_down==0) //numarare descrescatoare
begin
result=result-1;
//verificam daca numaratoarea s-a terminat
if(result==0)
tc=1;
else tc=0;
end
end
endmodule

//testarea circuitului
module test_numarator;
reg up_down, load, clock, reset, enable;
reg [3:0] data;
wire [3:0] result;
wire tc;
//apelam circuitul testat
numarator NUM(data,up_down,load,clock,reset,
enable, result, tc);
//initializam semnalul de ceas
initial
begin
clock=0;
forever #5 clock=~clock; //se neaga valoarea initiala la fiecare 5 ps pt a se genera un semnal dreptunghiular perio-
dic
end
//initializam celelalte comenzi ale numaratorului
initial begin
reset=0; //comanda de reset activa
#15 reset=1; //comanda inactiva si se executa primul else
load=0; //incarcare cu valoarea de pe intrarea data
data=9;
#15 load=1; //comanda inactiva pt load
enable=0;
#15 enable=1; //validare numarare
up_down=1; //numaratoare crescatoare
//dam o intarziere destul de mare pt a observa numaratoarea de pe iesirea result
#150 up_down=0; //numaratoare descrescatoare
//dam o intarziere destul de mare pt a observa numaratoarea de pe iesirea result
#200 reset=0; //comanda de reset activa
#15 reset=1; //comanda de reset inactiva
#100 up_down=1;
#250 $stop;
end
endmodule

49. Scrieți secvența de cod pentru generarea unui semnal de ceas cu perioada de 10ps (semnal
dreptunghiular periodic).

Integer I;
Input clk;
Initial begin
clk = 0;
for(i=0; i<10; i=i+1)
begin
#10 clk = ~clk;
end
end

S-ar putea să vă placă și