Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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.
Cu o tensiune mare de
alimentare(>12V) aplicata drenei,
electronii capata destula energie cat
sa “sara” la poarta flotanta(gate 1)
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
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
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)
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.
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.
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
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:
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
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;
//descriere sumator pe 1 bit face adunarea intre A+B+Cin si genereaza rezultatul pe Cout si Sum
//descriere structurala cu porti logice
module test_sumator_1bit;
reg A,B,Cin;
wire Sum, Cout;
initial begin
A=0;
B=0;
Cin=0;
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.
//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.
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.
//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