VHDL es un lenguaje definido por el IEEE (Institute of Electrical and Electronics Engineers) (ANSI/IEEE 1076-1993) usado por Ingenieros para describir circuitos digitales. VHDL es el acrónimo que representa la combinación de VHSIC y HDL, donde VHSIC es el acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware Description Language.
Aunque puede ser usado de forma general para describir cualquier circuito se usa principalmente para programar PLD (Programable Logic Device - Dispositivo Lóico Programable), FPGA (Field Programmable Gate Array), ASIC y similares.
Otros métodos para diseñar circuitos son la captura de esquemas (con herramientas CAD) y los diagramas de bloques, pero éstos no son prácticos en diseños complejos. Otros lenguajes para el mismo propóito son Verilog y ABEL.
--Biblioteca
--Entidad: Define el puerto, esto es, una caja vacía con entradas y salidas.
--Arquitectura: Define el circuito que llenará la caja.
Se cuenta con la biblioteca estándar diseñada por la IEEE.
LIBRARY IEEE
USE IEEE.std_logic_1164.all;
Otras bibliotecas son:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_textio.all;
use IEEE.std_logic_arith.all;
use IEEE.numeric_bit.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_signed.all;
use IEEE.std_logic_unsigned.all;
use IEEE.math_real.all;
use IEEE.math_complex.all;
La entidad define un puerto con entradas y salidas.
Se debe tener especial cuidado al nombrar la entidad ya que también debe ser el nombre del proyecto.
ENTITY nombre_entidad IS PORT (
ent1 : IN STD_LOGIC;
ent2 : IN STD_LOGIC_VECTOR (0 TO 3);
ent3 : IN STD_LOGIC_VECTOR (3 DOWNTO 0);
sal1 : OUT STD_LOGIC;
sal2 : OUT STD_LOGIC_VECTOR (0 TO 3);
sal3 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) --Note que no hay punto y coma
)
END ENTITY nombre_proyecto;
Define el contenido de la caja "puerto"
ARCHITECTURE nombre_arquitectura OF nombre_entidad IS-- DeclaracionesBEGIN--Declaraciones concurrentes para construir hardwareEND ARCHITECTURE nombre_arquitectura;