Limbaje moderne de descriere hardware

66
1 Limbaje moderne de descriere a structurilor hardware

Transcript of Limbaje moderne de descriere hardware

Page 1: Limbaje moderne de descriere hardware

1

Limbaje moderne de descriere a structurilor hardware

Page 2: Limbaje moderne de descriere hardware

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

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

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

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

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

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

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

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

Sisteme proiectate folosind HDL

10

Page 11: Limbaje moderne de descriere hardware

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

Sisteme proiectate cu HDL www.openorg.com

12

Page 13: Limbaje moderne de descriere hardware

Sisteme proiectate cu HDL

13

Page 14: Limbaje moderne de descriere hardware

14

Page 15: Limbaje moderne de descriere hardware

15

Page 16: Limbaje moderne de descriere hardware

16

Sisteme proiectate folosind HDL

Vezi www.opencores.org

Page 17: Limbaje moderne de descriere hardware

17

Sisteme proiectate folosind HDL

Page 18: Limbaje moderne de descriere hardware

18

Sisteme proiectate folosind HDL

Page 19: Limbaje moderne de descriere hardware

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

20

Proiectarea grafica

Page 21: Limbaje moderne de descriere hardware

21

Apariția limbajelor HDL

Page 22: Limbaje moderne de descriere hardware

22

Aparitia limbajelor HDL

Page 23: Limbaje moderne de descriere hardware

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

47

Page 48: Limbaje moderne de descriere hardware

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

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

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

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

52

Piaţa produselor

Page 53: Limbaje moderne de descriere hardware

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

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

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

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

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

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

59

Sinteză/verificare logică

Verificare logică Verificare temporală Analiză consum

Descriere structurală RTL

Descriere nivel logic/tranzistor Verilog, VHDL Schematic Listă‏de‏conexiuni‏(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

60

Verificare/sinteză layout

Verificare topologie circuit Verificare reguli proiectare Verificare temporală

Descriere nivel logic/tranzistor

Măşti layout VLSI Modele‏mască < 1M – 1G geometrii >

Layout celule / module (manual sau auto) Plasare şi interconectare

Straturi (substrat, difuzie, polysilicon, metale, treceri) Dreptunghiuri, poligoane

Verilog, VHDL Schematic Listă‏de‏conexiuni‏(netlist)‏ < 10K – 1M componente >

Page 61: Limbaje moderne de descriere hardware

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

Descriere la nivel înalt

62

Page 63: Limbaje moderne de descriere hardware

Nivel RTL

63

Page 64: Limbaje moderne de descriere hardware

Nivelul de porți logice

64

Page 65: Limbaje moderne de descriere hardware

Nivel circuit

65

Page 66: Limbaje moderne de descriere hardware

Nivel măști (layout)

66