0% au considerat acest document util (0 voturi)
60 vizualizări41 pagini

Limbaje Moderne de Descriere Hardware

Documentul prezintă limbajele de descriere hardware ca metode de proiectare a circuitelor logice. Limbajele HDL permit o descriere independentă de implementare şi permit automatizarea procesului de proiectare.

Încărcat de

ciarmel
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
60 vizualizări41 pagini

Limbaje Moderne de Descriere Hardware

Documentul prezintă limbajele de descriere hardware ca metode de proiectare a circuitelor logice. Limbajele HDL permit o descriere independentă de implementare şi permit automatizarea procesului de proiectare.

Încărcat de

ciarmel
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Limbaje moderne de descriere hardware

De ce se folosesc limbajele HDL

n ultimele decenii complexitatea circuitelor logice a crescut considerabil Vechile forme de automatizare ale proiectrii sistemelor electronice nu mai sunt eficiente Limbajele HDL ofer metode consistente i eficiente de proiectare i sintez a circuitelor logice Limbajele HDL sunt relativ uor de nvat

Sisteme proiectate folosind HDL

Sisteme proiectate folosind HDL

Vezi [Link]

Sisteme proiectate folosind HDL

De ce se folosesc limbajele HDL

De ce se folosesc limbajele HDL

De ce se folosesc limbajele HDL

Limbaje de descriere hardware

Descriu partea hardware la diverse nivele de abstracie Descriere structural


Descrierea text nlocuiete schemele Compunerea ierarhic a modulelor din primitive Se descrie ce face modulul, nu cum Prin sintez se genereaz schema pentru module

Descrierea comportamental funcional


Semantica pentru simulare

Limbaje HDL

Abel (circa 1983) dezvoltat de Data-I/O


Orientat spre circuitele logice programabile Neadecvat pentru descrieri ce depaesc automatele finite

ISP (instruction set processor) (circa 1977) proiect de cercetare la CMU

Pentru simulare, fr sintez

Limbaje HDL (2)

Verilog (circa 1985) dezvoltat de Gateway (preluat de Cadence)


Similar cu limbajele Pascal i C Singura interaciune cu simulatorul sunt ntrzierile Destul de eficient i uor de scris Standard IEEE

VHDL (circa 1987) DoD (Department of Defense) standard sponsorizat


Similar cu Ada (orientat spre reutilizarea codului i mentenan uoar) Semantica simulrii vizibil La nivel foarte general dar dimensiune mare a codului Standard IEEE

Verilog example (2-bit select logic shifter)


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

VHDL example (2-bit select logic shifter)


--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;

Limbajul Verilog

Suport descrieri structurale i comportamentale Structural Structur explicit a circuitului E.g., fiecare poart logic este instaniat i conectat la celelalte Comportamental Programul descrie comportamentul relativ la intrri i ieiri Mai multe implementri structurale pot avea acelai comportament (de exemplu, diferite implementri ale aceleiai funcii booleene)

Model structural
module xor_gate (out, a, b); input a, b; output out; wire abar, bbar, t1, t2; inverter inverter and_gate and_gate or_gate endmodule invA (abar, a); invB (bbar, b); and1 (t1, a, bbar); and2 (t2, b, abar); or1 (out, t1, t2);
abar a b bbar t1 out t2

Model comportamental Atribuire continu


module xor_gate input output reg (out, a, b); a, b; out; out;
Registru simulare nregistreaz valorile unui semnal

assign #6 out = a ^ b; endmodule

ntrzierea modificrii semnalului de ieire fa de modificarea semnalului de intrare

Comparaie: limbaje de programare limbaje HDL


Limbajele de programare procedurale descriu modul cum se realizeaz (reet);

Calculele Manipularea datelor Execuia pentru o anumit platform hardware Sistemele pot fi descrise din mai multe puncte de vedere Comportamental: ce face? Structural: din ce este alctuit? Proprietile funcionale: cum realizez interfaarea cu acesta? Proprietile fizice: Ct este de rapid? Ce putere consum?

HDL descriu un sistem

Comparaie: limbaje de programare limbaje HDL

Structura programului

Intanieri multiple ale unor componente de acelai tip Specific interconexiunile ntre module la fel ca n schemele electrice Utilizeaz ierarhii de module Atribuire continu (circuitele logice prelucreaz semnalul continuu) ntrzieri ale propagrii semnalelor (prelucrarea semnalelor necesit un anumit timp) Evoluia n timp a semnalelor este important (momentul n care are loc prelucrarea)

Atribuiri

Comparaie: limbaje de programare limbaje HDL

Structurile de date

Dimensiunile sunt precizate n mod explicit nu exist structuri dinamice Nu exist pointeri Structurile hardware au n mod natural o funcionare paralel (trebuie s suporte mai multe fire de execuie) Atribuirile pot s apar n paralel (nu doar secvenial)

Paralelism

Comparaie: limbaje de programare limbaje HDL

Programele scrise n ambele limbaje sunt prelucrate de ctre un compilator

Un compilator HDL lucreaz de cele mai multe ori n mai multe etape producnd 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). Fiierul JEDEC conine instruciunile ce trebuiesc date unui programator PLD pentru a configura un circuit programabil.

HDL i circuitele combinaionale

Module: se specific intrrile, ieirile, terminalele bidirecionale i semnalele interne Atribuire continu: n orice moment ieirea unei pori este o funcie de intrrile porii (nu trebuie s atepte s fie apleat) ntrzirea la propagre: se utilizeaz conceptul de timp i de ntrziere a ieirii fa de modificarea intrrii

HDL i circuitele combinaionale

Compunere: modulele se conecteaz utiliznd fire de conexiune Ierarhie: modulele incorporeaz blocuri funcionale Pot fi specificate condiii indiferente sau incomplet specificate - don't care (se utilizeaz x pentru respectivele ieiri)

HDL i circuitele secveniale

Circuite bistabile

Este reprezentat semnalul de tact ce indic modificarea stri Pot fi modelate att bistabilele asincrone ct i cele sincrone Descriere structural (bistabilele separate de logica combinaional) Descriere comportamental (sinteza secveniatoarelor)

Automate finite

HDL i circuitele secveniale

Ci de date (data-paths = ALU + registre)


Se utilizeaz operatori logico-aritmetici Partea de control a elementelor de stocare Mai multe automate funcionnd n paralel

Paralelism

Stri incomplet definite

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 att funcia circuitului ct i implementarea acestuia.

Utilizare

Descrierea poate fi la diferite nivele de abstracie


Nivelul de comutaie: modeleaz comutaia la tranzistoare Nivelul transfer ntre registre: modeleaz componentele combinaionale i secveniale Nivelul setului de instruciuni: comportamentul unui microprocesor Simulare Verificare, evaluarea performanelor Sintez Primul pas n proiectarea hardware

Descrierile pot fi folosite pentru


De ce trebuie s descriem sistemele

Specificarea sistemului

Definirea fr ambiguitate a componentelor i a interfeelor ntr-un sistem de mare dimensiune Verificarea sistemului/componentelor/circuitului nainte de a fi implementat Generarea automat a structurii hardware care implementeaz funcionarea sistemului

Simularea sistemului

Sinteza sistemului

Procedura general de proiectare


Cerine Proiectare funcional Proiectare Proiectare logic Simulare comportamental RTL Simulare RTL Simuare logic, verificare, simularea defectelor Simulare temporal, analiza circuitului Verificarea regulilor de proiectare

Proiectarea circuitului Proiectare la nivel fizic Descrierea procesului de fabricare

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 proiectrii unui nou circuit este de $5M - $100M Timp ridicat de lansare pe pia

Rolul HDL
COMPORTAMENTAL Algoritmi Transfer ntre registre Expresii booleene transfer functions STRUCTURAL procesoare registere pori logice transistoare celule module circuite plci PCB FIZIC [Gajski and Kuhn]

Rolul HDL
Proiectarea este structurat n jurul unei ierarhii de reprezentri 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

Piaa produselor

ntrzierea lansrii pe pia are un impact substanial asupra beneficiului obinut de pe urma produsului Primele 10%-20% a ciclului de proiectare poate determina 70%-80% din costul proiectului Costurile se mresc 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

Piaa produselor

Alternative

Sisteme bazate pe limbaje de programare


SystemC

C++ cu elemente adiionale specifice structurilor hardare C + extensii sau bazat pe ANSI C based Java, MATLAB sau limbaje specializate

Altele

Procedura de proiectare VLSI


Specificare sistem
Verificare sistem Sintez sistem

Unelte sintez : transform o

Descriere algoritmic
Verificare comportament Sintez nivel nalt

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 (muli prefer nc descrierea la nivel RTL) Uneltele de sintez la nivel sistem nc nu exist (domeniu de cercetare activ)

Descriere nivel RTL


Verificare logic Sintez logic

Descriere nivel logic/tranzistor


Verificare layout Sintez layout

Mti layout

Procedura de proiectare VLSI


Specificare sistem Verificare sistem
Complexitate: < 100 1K cuvinte >

Sintez la nivel sistem


< 100 10K linii >

Descriere la nivel de algoritm (comportamental) Verificare comportamental Sintez de nivel nalt

Descriere structural la nivel transfer ntre registre Verificare logic Sintez logic

< 1K 100K linii >

Descriere nivel logic/tranzistor Verificare layout Sintez layout

< 10K 1M componente >

Mti Layout VLSI

< 1M 1G geometrii >

Specificarea la nivel sistem


Funcionalitatea sistemului (aplicaie) Mediul de operare (interfaa de I/O) Cost (deyvoltare, fabricare, testare)

Dimensiune/greutate (# de circuite, suprafa plac PCB, dimensiuni carcas)


Putere consumat

Flexibilitate (modificri ale specificaiei, funcionaliti suplimentare)

Verificare/sintez la nivel sistem


Specificare sistem
Limbaj natural < 100 1K cuvinte >

Simulare funcional co-simulare (SW/HW )

Conversie manual

Limbaje software (C/C++, Java) Limbaje HDL (Verilog, VHDL) Limbaje la nivel sistem (System-C, Descriere algoritmic SpecC) < 100 10K linii > Date : tipuri/dimensiuni, structuri, masivi Proces : expresii, procedura de control, proceduri, funcii Comunicaie : protocoale Simulare : stimuli la intrare, verificarea ieirilor

Verificare/sintez la nivel nalt


Descriere algoritmic
Limbaje software (C/C++, Java) Limbaje HDL (Verilog, VHDL) Limbaje la nivel sistem (System-C, SpecC) < 100 10K linii >

Simulare funcional

Conversie manual Sintez la nivel nalt

Descriere structural RTL

Verilog, VHDL < 1K 100K linii >

Descriere arhitectural Module (CPU, memorii, registre, uniti funcionale, interfaa IO) Arhitectura magistralelor Descrierea modulelor (funcional/structural) Descrierea combinaional/secvenial a circuitului

Sintez/verificare logic
Descriere structural RTL
Verilog, VHDL < 1K 100K linii >

Verificare logic Verificare temporal Analiz consum

Minimizare logic Mapare tehnologic Verilog, VHDL Schematic List de conexiuni (netlist) < 10K 1M componente >

Descriere nivel logic/tranzistor


Componente celul (pori, registre, tranzistoare) Reele Terminale I/O

Verificare/sintez layout
Descriere nivel logic/tranzistor
Verilog, VHDL Schematic List de conexiuni (netlist) < 10K 1M componente >

Verificare topologie circuit Verificare reguli proiectare Verificare temporal

Layout celule / module (manual sau auto) Plasare i interconectare Modele masc < 1M 1G geometrii >

Mti layout VLSI

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

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