A VHDL hardver leíró nyelv

Bevezetés

A hardver leíró nyelvekről

A legelső hardver leíró nyelveket (HDL – Hardware Description Language) 1977 körül fejlesztették ki (ISP, KARL) azzal a céllal, hogy le tudják írni a tervezett rendszer inputjai és outputjai közötti absztrakt relációt, vagyis nem a konkrétan megvalósítandó áramköri elemeket felsorolva, hanem egy formális nyelven megfogalmazva a kapcsolatokat. Ezekkel ugyan még csak szimulálni voltak képesek a hardverek működését, de már ez is nagy segítséget nyújtott a tervezésnél, mivel így a számítógépre bízhatták a felépítésben esetlegesen fellelhető funkcionális hibák megkeresését.

A későbbi HDL változatok, a programnyelvek fejlődéséhez hasonlóan, már magasabb absztrakciós szinteken is lehetővé tették a tervezést, vagyis nemcsak a logikai kapuk kapcsolatát voltak képesek megfogalmazni, hanem egyszerűbb műveletek és algoritmusok írását is megengedték. Valamint a kód-újrafelhasználhatóság módszerét is támogatták, így egy-egy gyakrabban használt modult csak egyszer kellet megírni.

Eleinte ezek a nyelvek is csak a tervezendő hardver dokumentálására és a kapcsolási rajznál magasabb szintű szimulálására voltak képesek. Aztán bevezették a szintézis módszerét, aminek során egy formális szerkezeti leírásból egy legyártható tranzisztor szintű kapcsolási definíció jön létre úgy, hogy a számítógép a közvetlenül leképezhető utasításokon kívüli absztrakt módon leírt rendszerelemeket is átfogalmazza az áramköri elemek szintjére. Persze minél több ilyen elvont elem szerepel a kódban, annál inkább biztosak lehetünk abban, hogy a szintézis során kevésbé optimális – például több erőforrást lefoglaló, vagy lassabban működő – megvalósítást kapunk eredményül, mintha ugyanezt kapcsolási rajz szintjén egy gyakorlott rendszertervező végezte volna el.

Ez a törvényszerűség teljesen hasonló a szoftverfejlesztésnél is tapasztaltakhoz, ahol egy gyakorlott assembly programozó optimálisabb kódot tud előállítani, mint a legtöbb fordító, viszont a ráfordított fejlesztési költségek jóval nagyobbak. Az egészen összetett és nagy hardvereszközök (például nagy sebességű vagy aszinkron áramkörök) megalkotásánál is rengeteg időt és emberi gyakorlatot követelne az utóbbi tervezési módszer használata, ezért a kompromisszumot elfogadva előszeretettel veszik segítségül a szintézist támogató nyelveket.

Az első „új generációs” HDL a Verilog volt, amit 1984-ben jelentetett meg az Automated Integrated Design Systems nevű szervezet. A szintaxisa alapjául az akkoriban már széleskörűen használt C programozási nyelvét választották, kiegészítve azt speciális, hardvertervezéshez alkalmas nyelvi elemekkel (reg, wire, input, output, module…). Szintén a ’80-as években fejlesztették ki az USA Védelmi Minisztériumának kérésére a VHDL-t.

Ahogyan a Verilog a C, úgy a VHDL az Ada programozási nyelv analógiájára készült, hasonló kiegészítésekkel. Idővel sok más HDL is megjelent (ABEL, AHDL, Hydra, JHDL, RHDL,…), amik között voltak kísérleti jellegűek, és néhány olyan is, amit egy-egy programozható chipeket gyártó cég fejlesztett a saját hardverei konfigurálására. Azonban egészen a napjainkig a két legelterjedtebb nyelv a Verilog és a VHDL

A VHDL története

Az USA Védelmi Minisztériuma 1980-ban VHISC (Very High Speed Integrated Circuit) néven projektet indított olyan céllal, hogy az Egyesült Államok haditechnikáját elektronikai eszközök fejlesztésével támogassák. E programban számos tagállam részt vett, és azokon belül is több vállalat. A különböző gyártók mind más-más hardver leíró nyelven készítették a leírásaikat, így az egymással és a Minisztériummal való együttműködés igen nehézkessé vált. Ennek megoldásaként merült fel az egységesítés ötlete. Egy három cégből összeállt csapatot bíztak meg a közös nyelv fejlesztésével. Ez a három cég az IBM, a Texas Instruments és az Intermetrics volt. Az első publikált verzió 1985-ben készült el.

Mivel a megjelenés után egyre növekedtek az igények a széleskörű ipari felhasználhatóságra, a következő évben átadták a nyelvet az IEEE számára, és miután egy ipari, egyetemi, és Védelmi Minisztériumbeli képviselőkből álló csoport előkészítette, 1987-ben kiadták az első szabványt IEEE 1076-1987 kódnév alatt. Azóta több átdolgozáson és továbbfejlesztésen esett át, persze az alapvető szintaxist nem változtatták, csak kiegészítették. A jelenlegi legfrissebb szabvány az IEEE 1076-2008, 2009 januárjában kiadott változat.