VHDL
VHDL akronimoa VHSIC eta HDL siglak juntatzetik dator. VHSICk Very High Speed Integrated Circuit esan nahi du eta HDLk Hardware Description Language. Hau da, Oso Abiadura Handiko Zirkuitu Integratuen Hardware Deskribapen Lengoaia litzateke euskaraz.
IEEEk araututako (ANSI/IEEE 1076-1993) ingeniariek erabiltzen duten lengoaia estandarizatua da. Zirkuitu digitalen diseinu automatizatu elektronikoa egiteko balio duen lengoaia. Momentuz, VHDL zirkuitu digitalak deskribatzeko baino ez du balio, beraz ez du zirkuitu analogikoetarako balio.
Historia
aldatuHasieran, Ameriketako Estatu Batuetako Defentsa Sailaren barruan garatu zen ASIC zirkuituen funtzionamenduari buruzko informazioa biltzeko asmoarekin eta Modu horretan, gidaliburu korapilatsu eta luzeak alde batera uzten saiatzeko.
VHDLk Ada programazio lengoaiaren kontzeptuak eta sintaxia maileguz hartzen du.
VHDLren lehendabiziko bertsioak, IEEE standard 1076-1987 bezala araututakoa, data mota asko zekarren. Apaitzearren: zenbakizkoak (osoak eta errealak), logikoak (bit eta boolearrak), karaktereak eta denbora, "bit_vector" izeneko bitez osaturiko bektoreak eta karaktere-kateak.
1993an IEEE 1076 araua eguneratu zuten. Eguneraketa honetan, sintaxia sendoagotu, izendatzerakoan malgutasuna handitu, ISO-8859-1 karaktere inprimagarriak onartu, xnor (ez-edo esklusiboa) eragilea gehitu, eta beste hainbat aukera gehitu zituzten.
Zirkuituak deskribatzeko erak
aldatuLau era daude zirkuitu bat deskribatzeko VHDL lengoaian:
- Funtzionala: esleipen sekuentzialen bidez (seriean).
- Datu-fluxua: esleipen konkurrenteen bidez (paraleloan).
- Egituratua edo estrukturala: hierarkikoa.
- Mistoa: aurreko hiru erak hartzen dituena.
Kodea
aldatuVHDL lengoaian idatzitako lerroek, gutxienez entitate (entity) bat dute non interfazea deskribatzen den eta arkitektura (architecture) bat, non inplementazioari dagokion kodea idazten den.
Bi sarrerako ETA ate logiko baten inplementazioa honako itxura izango luke VHDL lengoaian:
-- (hau VHDLko iruzkin bat da)
-- std_logic inportatu IEEE liburutegitik
-- kodea hemen hasten da
library IEEE;
use IEEE.std_logic_1164.all;
-- hau entitatea da
entity ANDGATE is
port (
IN1 : in std_logic;
IN2 : in std_logic;
OUT1: out std_logic);
end ANDGATE;
-- hau arkitektura da
architecture RTL of ANDGATE is
begin
OUT1 <= IN1 and IN2;
end RTL;