limbaje moderne de descriere hardware
TRANSCRIPT
![Page 1: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/1.jpg)
1
Limbaje moderne de descriere a structurilor hardware
![Page 2: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/2.jpg)
Probleme organizatorice
Evaluare
Nota finala=40% *(Nota verificare pe parcurs)
+ 30% * (Nota laborator ) +30 % * (Nota teme de casa)
2 verificari pe parcurs
2 teme de casa
Prezenta la laborator obligatorie
2
![Page 3: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/3.jpg)
Probleme organizatorice
Pagina aferenta cursului:
moolde.ee.tuiasi.ro
Disponibile:
Referate pentru lucrarile de laborator
Note de curs (cele vechi). Cursurile sunt actualizate pe parcursul semestrului
Informații suplimentare
3
![Page 4: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/4.jpg)
Bibliografie
Haba C.G. – Proiectarea avansata cu circuite integrate programabile si limbaje de descriere a componentelor hardware
Haba C.G. si Breniuc Liviu – Proiectare cu circuite integrate programabile
Toacse Gh. si Nicula Dan, Electronica digitala Vol. I si II, Ed. Tehnica 2005
Nicula Dan – Proiectare cu Verilog - Carte de învăţătură
Ilas Mariana Eugenia si Constantin Ilas - Proiectarea circuitelor integrate digitale folosind limbajul Verilog
4
![Page 5: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/5.jpg)
Sumar
Introducere
Unde se folosesc HDL
Istoric
Comparatie intre HDL si limbajele de programare
Descrierea circuitelor
Caracteristici ale HDL
Proiectarea cu HDL
5
![Page 6: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/6.jpg)
Sumar
Introducere
Unde se folosesc HDL
Istoric
Comparatie intre HDL si limbajele de programare
Descrierea circuitelor
Caracteristici ale HDL
Proiectarea cu HDL
6
![Page 7: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/7.jpg)
7
Introducere
În ultimele decenii complexitatea circuitelor logice a crescut considerabil
Vechile forme de automatizare ale proiectării sistemelor electronice nu mai sunt eficiente
Limbajele HDL oferă metode consistente şi eficiente de proiectare şi sinteză a circuitelor logice
Limbajele HDL sunt relativ uşor de învăţat
![Page 8: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/8.jpg)
Sumar
Introducere
Unde se folosesc HDL
Istoric
Comparatie intre HDL si limbajele de programare
Descrierea circuitelor
Caracteristici ale HDL
Proiectarea cu HDL
8
![Page 9: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/9.jpg)
Domenii de utilizare a sistemelor proiectate cu HDL
Echipamente pentru autovehicule
Stocare date
Calcule de inalta performanta
Echipamente industriale
Echipamente militare
Telecomunicatii cu sau fara fir
Audio/video
Echipamente medicale
Echipamente de masura si control
Securitate
Periferice pentru calculatoare
9
![Page 10: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/10.jpg)
Sisteme proiectate folosind HDL
10
![Page 11: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/11.jpg)
Aplicații ale circuitelor programabile
Aplicații auto Conducere asistată
Multimedia
Vehicule electrice
Instrumentație de bord
Aplicații industriale Securitate funcțională
Ethernet industrial
Comanda mașinilor electrice
Automate programabile
Aplicații de energie inteligentă
Supraveghere video
Recunoașterea imaginilor
Bunuri de larg consum Televizoare digitale
Cititoare și înregistratoare DVD
Monitoare și video proiectoare
Dispozitive portabile
Ecrane tactile
Clădiri inteligente
Aparatură electrocasnică
Medicină Aparatură pentru imagistică medicală
Stimulatoare cardiace
Dispozitive pentru sănătate
Aparatură medicală
Măsurare și testare Aparate de măsură
Aparatură de testare
Prelucrarea semnalelor
Dispozitive de afișare
Telecomunicații Infrastructura pentru telefonie mobilă
Wireless
3G, LTE
Dispozitive pentru comunicatie în rețea
Rutere, switch-uri
Managementul traficului
Calculatoare Sisteme de stocare
Servere
Procesare de întaltă performanță (HPC)
Accelerare calculelor financiare
11
![Page 12: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/12.jpg)
Sisteme proiectate cu HDL www.openorg.com
12
![Page 13: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/13.jpg)
Sisteme proiectate cu HDL
13
![Page 14: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/14.jpg)
14
![Page 15: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/15.jpg)
15
![Page 16: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/16.jpg)
16
Sisteme proiectate folosind HDL
Vezi www.opencores.org
![Page 17: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/17.jpg)
17
Sisteme proiectate folosind HDL
![Page 18: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/18.jpg)
18
Sisteme proiectate folosind HDL
![Page 19: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/19.jpg)
Sumar
Introducere
Unde se folosesc HDL
Istoric
Comparatie intre HDL si limbajele de programare
Descrierea circuitelor
Caracteristici ale HDL
Proiectarea cu HDL
19
![Page 20: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/20.jpg)
20
Proiectarea grafica
![Page 21: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/21.jpg)
21
Apariția limbajelor HDL
![Page 22: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/22.jpg)
22
Aparitia limbajelor HDL
![Page 23: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/23.jpg)
23
Limbaje de descriere hardware
Descriu partea hardware la diverse nivele de abstracţie: structural și comportamental
Descriere structurală
Descrierea text înlocuieşte schemele
Compunerea ierarhică a modulelor din primitive
Descrierea comportamentală funcţională
Se descrie ce face modulul, nu cum
Prin sinteză se generează schema pentru module
Semantica pentru simulare
![Page 24: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/24.jpg)
24
Limbaje HDL
Abel (circa 1983) – dezvoltat de Data-I/O Orientat spre circuitele logice programabile Neadecvat pentru descrieri ce depaşesc
automatele finite
ISP (instruction set processor) (circa 1977) – proiect de cercetare la CMU (Carnegie Mellon University) Pentru simulare, fără sinteză
![Page 25: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/25.jpg)
25
Limbaje HDL (2)
Verilog (circa 1985) – dezvoltat de Gateway (preluată de Cadence) Similar cu limbajele Pascal şi C Singura interacţiune cu simulatorul sunt întârzierile Destul de eficient şi uşor de scris Standard IEEE
VHDL (circa 1987) – DoD (Department of Defense) standard sponsorizat Similar cu Ada (orientat spre reutilizarea codului şi
mentenanţă uşoară) Semantica simulării vizibilă La nivel foarte general dar dimensiune mare a
codului Standard IEEE
![Page 26: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/26.jpg)
26
Exemplu Verilog (circuit de deplasare cu selecție pe 2 biți)
reg [3:0] data_out;
always @*
case (<select>) 2'b00 : data_out = data_in; 2'b01 : data_out = data_in << 1; 2'b10 : data_out = data_in << 2; default: data_out = data_in << 3; endcase
![Page 27: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/27.jpg)
27
Exemplu VHDL (circuit de deplasare cu selecție pe 2 biți)
--use IEEE.numeric_std.all; process(clock) begin if ( clock'event and clock ='1') then case selector is when "00" => output <= input ; when "01" => output <= input sll 1; when "10" => output <= input sll 2; when "11" => output <= input sll 3; when others => output <= input ; end case; end if; end process;
![Page 28: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/28.jpg)
28
Limbajul Verilog
Suportă descrieri structurale şi comportamentale
Structural
Structură explicită a circuitului
E.g., fiecare poartă logică este instanţiată şi conectată la celelalte
Comportamental
Programul descrie comportamentul relativ la intrări şi ieşiri
Mai multe implementări structurale pot avea acelaşi comportament (de exemplu, diferite implementări ale aceleiaşi funcţii booleene)
![Page 29: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/29.jpg)
29
Model structural
module xor_gate (out, a, b);
input a, b;
output out;
wire abar, bbar, t1, t2;
inverter invA (abar, a);
inverter invB (bbar, b);
and_gate and1 (t1, b, abar);
and_gate and2 (t2, a, bbar);
or_gate or1 (out, t1, t2);
endmodule
out a
b
abar
bbar
t1
t2
![Page 30: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/30.jpg)
30
Model comportamental
Atribuire continuă module xor_gate (out, a, b);
input a, b;
output out;
reg out;
assign #6 out = a ^ b;
endmodule
Întârzierea modificării
semnalului de ieşire faţă de
modificarea semnalului de
intrare
Registru simulare -
înregistrează valorile
unui semnal
![Page 31: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/31.jpg)
Sumar
Introducere
Unde se folosesc HDL
Istoric
Comparatie intre HDL si limbajele de programare
Descrierea circuitelor
Caracteristici ale HDL
Proiectarea cu HDL
31
![Page 32: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/32.jpg)
32
Comparaţie: limbaje de programare limbaje HDL
Limbajele de programare procedurale descriu modul cum se realizează (reţetă): Calculele
Manipularea datelor
Execuţia pentru o anumită platformă hardware
HDL descriu un sistem Sistemele pot fi descrise din mai multe puncte de vedere
Comportamental: ce face?
Structural: din ce este alcătuit?
Proprietăţile funcţionale: cum realizez interfaţarea cu acesta?
Proprietăţile fizice: Cât este de rapid? Ce putere consumă?
![Page 33: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/33.jpg)
33
Comparaţie: limbaje de programare limbaje HDL
Structura programului Instanţieri multiple ale unor componente de acelaşi
tip Specifică interconexiunile între module la fel ca în
schemele electrice Utilizează ierarhii de module
Atribuiri Atribuire continuă (circuitele logice prelucrează
semnalul continuu) Întârzieri ale propagării semnalelor (prelucrarea
semnalelor necesită un anumit timp) Evoluţia în timp a semnalelor este importantă
(momentul în care are loc prelucrarea)
![Page 34: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/34.jpg)
34
Comparaţie: limbaje de programare limbaje HDL
Structurile de date Dimensiunile sunt precizate în mod explicit – nu
există structuri dinamice Nu există pointeri
Paralelism Structurile hardware au în mod natural o
funcţionare paralelă (trebuie să suporte mai multe fire de execuţie)
Atribuirile pot să apară în paralel (nu doar secvenţial)
![Page 35: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/35.jpg)
35
Comparaţie: limbaje de programare limbaje HDL
Programele scrise în ambele limbaje sunt prelucrate de către un compilator Un compilator HDL lucrează de cele mai multe ori
în mai multe etape producând în primă fază o descriere într-un format intern. Acesta este apoi convertit într-o descriere într-un format standard (EDIF - Electronic Design Interchange Format) apoi într-un format JEDEC (Joint Electron Device Engineering Council).
Fişierul JEDEC conţine instrucţiunile ce trebuiesc date unui programator PLD pentru a configura un circuit programabil.
![Page 36: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/36.jpg)
Sumar
Introducere
Unde se folosesc HDL
Istoric
Comparatie intre HDL si limbajele de programare
Descrierea circuitelor
Caracteristici ale HDL
Proiectarea cu HDL
36
![Page 37: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/37.jpg)
37
HDL şi circuitele combinaţionale
Module: se specifică intrările, ieşirile, terminalele bidirecţionale şi semnalele interne
Atribuire continuă: în orice moment ieşirea unei porţi este o funcţie de intrările porţii (nu trebuie să aştepte să fie apleată)
Întârzirea la propagare: se utilizează conceptul de timp şi de întârziere a ieşirii faţă de modificarea intrării
![Page 38: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/38.jpg)
38
HDL şi circuitele combinaţionale
Compunere: modulele se conectează utilizând fire de conexiune
Ierarhie: modulele incorporează blocuri funcţionale
Pot fi specificate condiţii indiferente sau incomplet specificate - don't care (se utilizează “x” pentru respectivele ieşiri)
![Page 39: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/39.jpg)
39
HDL şi circuitele secvenţiale
Circuite bistabile Este reprezentat semnalul de tact ce indică
modificarea stări
Pot fi modelate atât bistabilele asincrone cât şi cele sincrone
Automate finite Descriere structurală (bistabilele separate de logica
combinaţională)
Descriere comportamentală (sinteza secvenţiatoarelor)
![Page 40: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/40.jpg)
40
HDL şi circuitele secvenţiale
Căi de date (data-paths = ALU + registre) Se utilizează operatori logico-aritmetici
Partea de control a elementelor de stocare
Paralelism Mai multe automate funcţionând în paralel
Stări incomplet definite
![Page 41: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/41.jpg)
Sumar
Introducere
Unde se folosesc HDL
Istoric
Comparatie intre HDL si limbajele de programare
Descrierea circuitelor
Caracteristici ale HDL
Proiectarea cu HDL
41
![Page 42: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/42.jpg)
42
Caracteristici ale HDL
Principala caracteristică a HDL este că permit descrierea comportamentului circuitelor hardware independent de modul în care acestea vor fi implementate.
Cu ajutorul unui singur limbaj se poate descrie atât funcţia circuitului cât şi implementarea acestuia.
![Page 43: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/43.jpg)
43
Nivele de abstractizare
Descrierea poate fi la diferite nivele de abstracţie
Nivelul de comutaţie: modelează comutaţia la tranzistoare
Nivelul transfer între registre: modelează componentele combinaţionale şi secvenţiale
Nivelul setului de instrucţiuni: comportamentul unui microprocesor
Descrierile pot fi folosite pentru Simulare
Verificare, evaluarea performanţelor
Sinteză
Primul pas în proiectarea hardware
![Page 44: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/44.jpg)
44
Utilizarea descrierilor HDL
Specificarea sistemului
Definirea fără ambiguitate a componentelor şi a interfeţelor într-un sistem de mare dimensiune
Simularea sistemului
Verificarea sistemului/componentelor/circuitului înainte de a fi implementat
Sinteza sistemului
Generarea automată a structurii hardware care implementează funcţionarea sistemului
![Page 45: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/45.jpg)
Sumar
Introducere
Unde se folosesc HDL
Istoric
Comparatie intre HDL si limbajele de programare
Descrierea circuitelor
Caracteristici ale HDL
Proiectarea cu HDL
45
![Page 46: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/46.jpg)
46
Procedura generală de proiectare
Cerinţe
Proiectare funcţională Simulare comportamentală
Proiectare RTL Simulare RTL
Proiectare logică Simuare logică, verificare, simularea defectelor
Proiectarea circuitului Simulare temporală, analiza circuitului
Proiectare la nivel fizic Verificarea regulilor de proiectare
Descrierea procesului de fabricare
![Page 47: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/47.jpg)
47
![Page 48: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/48.jpg)
48
Procedura generală de proiectare
Procedura generală de proiectare presupune parcurgerea mai multor nivele de abstractizare
Este necesară o descriere uniformă care să permită conversia între diversele nivele de abtractizare
Costurile mari de proiectare şi fabricare impun utilizarea unor unelte automate CAD
–Costul proiectării unui nou circuit este de $5M - $100M
–Timp ridicat de lansare pe piaţă
![Page 49: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/49.jpg)
49
Rolul HDL
celule
module
circuite
plăci PCB
Algoritmi
Transfer între registre
Expresii booleene transfer functions
procesoare registere
porţi logice transistoare
FIZIC
COMPORTAMENTAL STRUCTURAL
[Gajski and Kuhn]
![Page 50: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/50.jpg)
50
Rolul HDL
• Proiectarea este structurată în jurul unei ierarhii de reprezentări
• HDL pot descrie aspecte distincte ale sistemului la diferite nivele de abstractizare
• Interoperabilitate: modele la diverse niveluri de abstractizare
• Independenţă tehnologică: model portabil (poate fi implementat folosind diverse tehnologii)
• Reutilizarea proiectelor şi prototipare rapidă
![Page 51: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/51.jpg)
51
Piaţa produselor
Întârzierea lansării pe piaţă are un impact substanţial asupra beneficiului obţinut de pe urma produsului
Primele 10%-20% a ciclului de proiectare poate determina 70%-80% din costul proiectului
Costurile se măresc rapid cu fiecare nouă tehnologie introdusă
Sunt necesare standarde şi posibilitatea de a reutiliza descrierile deja validate autmatizarea bazată pe utilizarea uneltelor ce utilizează limbaje HDL
![Page 52: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/52.jpg)
52
Piaţa produselor
![Page 53: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/53.jpg)
53
Alternative
Sisteme bazate pe limbaje de programare SystemC
C++ cu elemente adiţionale specifice structurilor hardare
C C + extensii sau bazat pe ANSI C based
Altele Java, MATLAB sau limbaje specializate
![Page 54: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/54.jpg)
54
Procedura de proiectare VLSI
Descriere algoritmică
Descriere nivel RTL
Descriere nivel logică/tranzistor
Măşti layout
Sinteză logică
Sinteză layout
Sinteză nivel înalt
Specificare sistem
Sinteză sistem
Verificare layout
Verificare logică
Verificare comportament
Verificare sistem
Unelte sinteză : transformă o descriere a sistemului într-o descriere mai detaliată (sinteză logică, sinteză layout)
Unelte de verificare : verifică corectitudinea descrierii (simulatoare, verificare simbolică)
Uneltele de sinteză logică şi layout sunt destul de dezvoltate pentru a fi utilizate pe scară largă
Uneltele de sinteză de nivel înalt au început să fie folosite în sistemele de proiectare uzuale (mulţi preferă încă descrierea la nivel RTL)
Uneltele de sinteză la nivel sistem încă nu există (domeniu de cercetare activ)
![Page 55: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/55.jpg)
55
Procedura de proiectare VLSI
Descriere la nivel de algoritm (comportamental)
Descriere structurală la nivel transfer între registre
Descriere nivel logic/tranzistor
Măşti Layout VLSI
Sinteză logică
Sinteză layout
Sinteză de nivel înalt
Specificare sistem
Sinteză la nivel sistem
Verificare layout
Verificare logică
Verificare comportamentală
Verificare sistem
Complexitate: < 100 – 1K cuvinte >
< 100 – 10K linii >
< 1K – 100K linii >
< 10K – 1M componente >
< 1M – 1G geometrii >
![Page 56: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/56.jpg)
56
Specificarea la nivel sistem
Funcţionalitatea sistemului (aplicaţie)
Mediul de operare (interfaţa de I/O)
Cost (dezvoltare, fabricare, testare)
Dimensiune/greutate (# de circuite, suprafaţă placă PCB, dimensiuni carcasă)
Putere consumată
Flexibilitate (modificări ale specificaţiei, funcţionalităţi suplimentare)
![Page 57: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/57.jpg)
57
Verificare/sinteză la nivel sistem
Descriere algoritmică
Specificare sistem
Simulare funcţională co-simulare (SW/HW )
Date : tipuri/dimensiuni, structuri, masivi Proces : expresii, procedura de control, proceduri, funcţii Comunicaţie : protocoale Simulare : stimuli la intrare, verificarea ieşirilor
Conversie manuală
Limbaj natural < 100 – 1K cuvinte >
Limbaje software (C/C++, Java) Limbaje HDL (Verilog, VHDL) Limbaje la nivel sistem (System-C, SpecC) < 100 – 10K linii >
![Page 58: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/58.jpg)
58
Verificare/sinteză la nivel înalt
Descriere algoritmică
Simulare funcţională
Descriere structurală RTL Verilog, VHDL < 1K – 100K linii >
Descriere arhitecturală Module (CPU, memorii, registre, unităţi funcţionale, interfaţa IO) Arhitectura magistralelor
Descrierea modulelor (funcţional/structural) Descrierea combinaţională/secvenţială a circuitului
Conversie manuală Sinteză la nivel înalt
Limbaje software (C/C++, Java) Limbaje HDL (Verilog, VHDL) Limbaje la nivel sistem (System-C, SpecC) < 100 – 10K linii >
![Page 59: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/59.jpg)
59
Sinteză/verificare logică
Verificare logică Verificare temporală Analiză consum
Descriere structurală RTL
Descriere nivel logic/tranzistor Verilog, VHDL Schematic Listădeconexiuni(netlist) < 10K – 1M componente >
Verilog, VHDL < 1K – 100K linii >
Minimizare logică Mapare tehnologică
Componente celulă (porţi, registre, tranzistoare) Reţele Terminale I/O
![Page 60: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/60.jpg)
60
Verificare/sinteză layout
Verificare topologie circuit Verificare reguli proiectare Verificare temporală
Descriere nivel logic/tranzistor
Măşti layout VLSI Modelemască < 1M – 1G geometrii >
Layout celule / module (manual sau auto) Plasare şi interconectare
Straturi (substrat, difuzie, polysilicon, metale, treceri) Dreptunghiuri, poligoane
Verilog, VHDL Schematic Listădeconexiuni(netlist) < 10K – 1M componente >
![Page 61: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/61.jpg)
Nivel structural sau comportamental
61
entity ALU32 is port( A, B: in bit_vector( 31 downto 0); Op: in bit_vector( 5 downto 0); end half_adder; C: out bit_vector( 31 downto 0); N, Z: out bit);
module ALU32 (A,B,Op,C,N,Z); input [31:0] A, B; input [5:0] Op; output [31:0] C; output N, Z; endmodule
![Page 62: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/62.jpg)
Descriere la nivel înalt
62
![Page 63: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/63.jpg)
Nivel RTL
63
![Page 64: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/64.jpg)
Nivelul de porți logice
64
![Page 65: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/65.jpg)
Nivel circuit
65
![Page 66: Limbaje moderne de descriere hardware](https://reader030.vdocuments.site/reader030/viewer/2022012511/6188bd505ea77801c832b24e/html5/thumbnails/66.jpg)
Nivel măști (layout)
66