VHDL

Kohteesta Wikipedia
(Ohjattu sivulta IEEE 1076)
Siirry navigaatioon Siirry hakuun

VHDL eli VHSIC Hardware Description Language (engl. Very High Speed Integrated Circuit, VHSIC) on suosittu laitteistokuvauskieli. Kieli on standardoitu 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[muokkaa | muokkaa wikitekstiä]

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

-- Tämä on VHDL-kommentti
 
-- tuodaan IEEE-kirjastosta mm. std_logic-tyyppi
library IEEE;
use IEEE.std_logic_1164.all;
 
-- entity-osa määrittelee lohkon rajapinnan eli sisäänmenot ja ulostulot
entity ANDGATE is
  port ( 
         IN1 : in std_logic;
         IN2 : in std_logic;
         OUT1: out std_logic);
  end ANDGATE;

-- architecture-osa määrittelee lohkon toteutuksen
architecture RTL of ANDGATE is
  begin
 
  OUT1 <= IN1 and IN2;
 
end RTL;

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

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