VHDL
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
[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ä]- ↑ 1076-1987 - IEEE Standard VHDL Language Reference Manual IEEE. Arkistoitu 7.11.2017. Viitattu 5.11.2017.
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- https://www.vhdl-online.de/tutorial/ (Arkistoitu – Internet Archive)