Limbajul de descriere a hardware-ului

Limbajul de descriere hardware ( HDL din limbajul de descriere hardware ) este un  limbaj de calculator specializat folosit pentru a descrie structura și comportamentul circuitelor electronice , cel mai adesea circuite logice digitale .

Limbile de descriere hardware sunt similare în exterior cu limbajele de programare precum C sau Pascal , programele scrise în ele constau și din expresii, operatori, structuri de control. Cea mai importantă diferență între limbajele de programare convenționale și limbajele HDL este includerea explicită a conceptului de timp în limbajele de descriere hardware.

Limbile de descriere hardware sunt o parte esențială a CAD , în special pentru circuitele complexe, cum ar fi ASIC -urile , microprocesoarele și dispozitivele logice programabile .

Principalele limbaje de descriere hardware în practică sunt Verilog și VHDL ; există și câteva zeci de limbi alternative.

Istorie

Primul HDL modern, Verilog , a fost creat de Gateway Design Automation în 1985 pentru a descrie VLSI. În 1987, VHDL ( VHSIC HDL) [1] a fost dezvoltat pe baza limbajului Ada din ordinul Departamentului de Apărare al SUA .

Inițial, atât Verilog, cât și VHDL au fost folosite pentru a documenta și modela soluții de circuite implementate într-o formă diferită (de exemplu, ca circuite). Modelarea cu HDL a permis inginerilor să lucreze la un nivel mai ridicat de abstractizare decât modelarea la nivel de circuit și, prin urmare, ușurează modelarea proiectelor cu mii de tranzistori sau mai mulți.

Introducerea sintezei circuitelor logice din HDL a făcut din aceasta limba principală pentru crearea de circuite digitale. Sistemele CAD de sinteză compilează fișierele sursă (scrise într-un subset de HDL numit RTL - eng.  Register transfer level  - Register transfer level ) într-o descriere a circuitului sub formă de liste de legături ( netlist , specificând conexiunile supapelor și tranzistorilor . Scrierea unui sintetizat Codul RTL necesită practică și aderarea la o serie de reguli de la proiectant. În comparație cu designul de circuit tradițional, crearea de RTL sintetizat este mai puțin laborioasă, dar duce adesea la circuite ceva mai mari și mai puțin productive.

În câțiva ani, VHDL și Verilog au devenit principalele limbi HDL în industria microelectronică, iar primele limbi au intrat treptat în nefolosire. Cu toate acestea, atât VHDL, cât și Verilog au limitări similare: nu sunt potrivite pentru simularea analogică sau mixtă digital-analogic, nu au constructe de limbaj pentru descrierea structurilor logice generate recursiv; în acest sens, sunt create diverse HDL-uri specializate, menite să elimine aceste limitări ale celor două limbi principale. Limbajele alternative sunt create de obicei pe baza limbajelor de programare de uz general, de exemplu, SystemC a fost dezvoltat pe baza C ++ , JHDL pe baza Java  și Bluespec , HHDL , Hydra . , Lava au fost dezvoltate pe baza lui Haskell .

În deceniile de la începuturile lor, ambele limbi majore au fost modificate și îmbunătățite semnificativ. Cea mai recentă versiune a limbajului Verilog, standardizată ca IEEE 1800-2005 SystemVerilog , are multe caracteristici noi (clase, variabile aleatorii, proprietăți și operatori de control) pentru a răspunde nevoilor tot mai mari de testare aleatorie , proiectare ierarhică și reutilizare a codului. Cel mai recent standard VHDL a fost publicat în 2002.

Exemplu

Descrierea echipamentelor pe VHDL și Verilog se poate face la niveluri de fluxuri de date ( dataflow ), comportament ( comportamental ), structuri ( structurale ). Un exemplu de descriere a fluxurilor de date în VHDL (o descriere a entității „not1”, care are 1 port de intrare de 1 bit și 1 port de ieșire de 1 bit; această entitate neagă valoarea de intrare):

biblioteca iEEE ; utilizați iEEE.STD_LOGIC_1164. TOATE ; utilizați iEEE.STD_NUMERIC_STD. TOATE ; entitatea not1 este portul ( a : în STD_LOGIC ; b : out STD_logic ); sfârşitul nu1 ; arhitectura comportamentală a not1 este begin b <= not a ; sfârşitul comportamentului ;

Note

  1. Barbacci, M., Grout S., Lindstrom, G., Maloney, MP Ada ca limbaj de descriere hardware: un raport inițial, Carnegie-Mellon Univ., Dept. de Informatică, 1984

Link -uri