A hardverleíró nyelv ( HDL a hardverleíró nyelvből ) egy speciális számítógépes nyelv , amelyet az elektronikus áramkörök , leggyakrabban digitális logikai áramkörök szerkezetének és viselkedésének leírására használnak .
A hardverleíró nyelvek külsőleg hasonlítanak az olyan programozási nyelvekhez , mint a C vagy a Pascal , a bennük írt programok is kifejezésekből, operátorokból, vezérlőstruktúrákból állnak. A legfontosabb különbség a hagyományos programozási nyelvek és a HDL nyelvek között az idő fogalmának kifejezett beépítése a hardverleíró nyelvekbe.
A hardverleíró nyelvek a CAD elengedhetetlen részét képezik , különösen az olyan összetett áramkörök esetében, mint az ASIC -k , mikroprocesszorok és programozható logikai eszközök .
A gyakorlatban a fő hardverleíró nyelvek a Verilog és a VHDL ; több tucat alternatív nyelv is létezik.
Az első modern HDL-t, a Verilogot a Gateway Design Automation hozta létre 1985-ben a VLSI leírására. 1987-ben a VHDL -t ( VHSIC HDL) [1] az Ada nyelv alapján fejlesztették ki az Egyesült Államok Védelmi Minisztériuma megbízásából .
Kezdetben a Verilogot és a VHDL-t is használták más formában (például áramkörként) megvalósított áramköri megoldások dokumentálására és modellezésére. A HDL-lel végzett modellezés lehetővé tette a mérnökök számára, hogy magasabb absztrakciós szinten dolgozzanak, mint az áramköri szintű modellezés, és így könnyebbé vált a több ezer tranzisztorból álló tervek modellezése.
A HDL logikai áramkör-szintézisének bevezetése a digitális áramkörök létrehozásának elsődleges nyelvévé tette. Szintézis CAD rendszerek a forrásfájlokat (amelyek a HDL RTL nevű részhalmazában vannak írva - eng. Regiszter átviteli szint - Regiszter átviteli szint ) egy áramköri leírásba kapcsolják össze hivatkozáslisták formájában ( netlist , amely megadja a szelepek és tranzisztorok csatlakozásait . Szintetizált szöveg írása Az RTL kód gyakorlatot és számos szabály betartását követeli meg a tervezőtől. A hagyományos áramköri tervezéshez képest a szintetizált RTL létrehozása kevésbé fáradságos, de gyakran valamivel nagyobb és kevésbé termelékeny áramkörökhöz vezet.
Néhány éven belül a VHDL és a Verilog a fő HDL nyelvekké váltak a mikroelektronikai iparban, és a korai nyelvek fokozatosan használaton kívül helyezkedtek. A VHDL és a Verilog azonban hasonló korlátokkal rendelkezik: nem alkalmasak analóg vagy vegyes digitális-analóg szimulációra, nincs nyelvi konstrukciójuk rekurzívan generált logikai struktúrák leírására; e tekintetben különféle speciális HDL-ek készülnek, amelyek célja a két fő nyelv ezen korlátainak megszüntetése. Az alternatív nyelveket általában általános célú programozási nyelvek alapján hozzák létre, például a SystemC a C ++ , a JHDL Java alapú , illetve a Bluespec , HHDL , Hydra alapján készült. A Lava a Haskell alapján készült .
Az alapításuk óta eltelt évtizedekben mindkét fő nyelv jelentősen módosult és fejlődött. A Verilog nyelv legújabb, IEEE 1800-2005 SystemVerilog néven szabványosított verziója számos új funkciót (osztályokat, véletlenszerű változókat, tulajdonságokat és vezérlőoperátorokat) tartalmaz, hogy megfeleljen a véletlenszerű tesztelés , a hierarchikus tervezés és a kód újrafelhasználásának növekvő igényeinek. A legújabb VHDL szabvány 2002-ben jelent meg.
A berendezés leírása VHDL-en és Verilogon történhet az adatfolyamok ( adatfolyam ), a viselkedés ( viselkedési ), a struktúrák ( strukturális ) szintjén. Példa az adatfolyamok leírására VHDL-ben (a „not1” entitás leírása, amelynek 1 bites bemeneti portja és 1 bites kimeneti portja van; ez az entitás tagadja a bemeneti értéket):
könyvtár iEEE ; használja az iEEE.STD_LOGIC_1164 fájlt. MINDEN ; használja az iEEE.STD_NUMERIC_STD-t. MINDEN ; entitás not1 port ( a : STD_LOGIC - ban ; b : STD_logic -on kívül ); end not1 ; a not1 architektúra viselkedése is begin b <= not a ; magatartási vég ;