VHDL

ohjelmointikieli

VHDL eli VHSIC Hardware Description Language (engl. Very High Speed Integrated Circuit, VHSIC) on suosittu laitteistokuvauskieli. Kielestä on IEEE:n standardi IEEE 1076.[1]

Toisin kuin perinteisissä ohjelmointikielissä (esimerkiksi C-kieli tai Java) VHDL:n periaatteena on kuvata laitteiston, erityisesti digitaalipiirien, toimintaa tai rakennetta tekstimuotoisesti. Kieli on kehitetty alun perin Yhdysvaltojen puolustusministeriön aloitteesta, ja sen syntaksi perustuu Ada-ohjelmointikieleen. VHDL on nykyään Verilogin ohella laajimmin käytössä olevia laitteistokuvauskieliä mm. elektroniikkateollisuudessa.

VHDL:llä kirjoitetun koodin suoritus jäljittelee laitteiston käyttäytymistä, siksi oletuksena koodi suoritetaan rinnakkaisesti. Toisaalta myös peräkkäin suoritettavaa koodia on mahdollista kirjoittaa. VHDL-mallin toiminnallisuutta simuloidaan ajamalla koodia kehitysympäristössä joka sisältää simulaattorin (esim. Mentor Modelsim). VHDL:llä kirjoitettuja malleja hyödynnetään usein myös logiikkasynteesissä, jossa malli muunnetaan synteesiohjelmiston avulla piirustuksiksi fyysisesti toteuttamiskelpoiselle mikropiirille (erityisesti usein ASICille) tai ohjelmointitiedostoksi FPGA-piirille. Laitteistosynteesiin kelpaavan VHDL-mallin kirjoittaminen vaatii erityishuomiota kirjoittajalta, sillä kaikki kielen rakenteet eivät ole toteuttamiskelpoisia fyysisessä piirissä joko ollenkaan tai tehokkaasti.

Yksinkertaisimmillaan VHDL:llä voidaan kuvata logiikkapiirejä, pitemmälle kehitettäessä voidaan myös kuvata kokonaisia järjestelmiä kuten tietokoneita. Koska suunniteltavat piirit muuttuvat koko ajan monimutkaisemmiksi, ei niitä juurikaan enää suunnitella käsin vaan VHDL:n kaltaisilla laitteistokuvauskielillä. Toisaalta nykyään monimutkaisimpien piirien kanssa VHDL:nkin ilmaisuvoima alkaa osoittamaan rajansa, ja siksi sen korvaamista korkeamman abstraktiotason tarjoavilla kielillä tutkitaan.

Esimerkkikoodi

Esimerkkilohko, jossa ulostulosignaali on sisään tulevien signaalien looginen AND-operaatio.

-- Tämä on VHDL-kommentti -- tuodaan IEEE-kirjastosta mm. std_logic-tyyppilibrary IEEE;use IEEE.std_logic_1164.all; -- entity-osa määrittelee lohkon rajapinnan eli sisäänmenot ja ulostulotentity ANDGATE is  port (          IN1 : in std_logic;         IN2 : in std_logic;         OUT1: out std_logic);  end ANDGATE;-- architecture-osa määrittelee lohkon toteutuksenarchitecture RTL of ANDGATE is  begin   OUT1 <= IN1 and IN2; end RTL;

Katso myös

Lähteet

Aiheesta muualla

Tämä tekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.