Está en la página 1de 12

VHDL

Principios

Danilo García-Hansen
QUE ES VHDL?

 El VHDL es un lenguaje con el cual se “describe” la lógica digital


 VHDL= Very high speed Hardware Description Language
 Se creó en la década de los años 70
 Permite de manera sencilla escribir la lógica en un editor de textos
 Puede remplazar los esquemáticos o combinarse con ellos
TIPOS DE SEÑALES
 BITS:
 De entrada: PIN_1 : in STD_LOGIC;
 De salida: SALIDA_X : out STD_LOGIC;
 Bidireccional: PIN_IO: inout STD_LOGIC;

Un conjunto de señales constituye un bus o vector: std_logic_vector


 De acuerdo a la dirección de la información se declaran así:
 De entrada: BUS_INPUT : in STD_LOGIC_VECTOR (7 downto 0);
 De salida: BUS_OUTPUT : out STD_LOGIC_VECTOR (3 downto 0);

 Señales:
 signal m, n: integer range 0 to 15; -- 4 bits
VARIABLES
Las variables cambian de valor dentro del proceso, en cuanto reciben
una asignación aplicada sobre ellas.
Las asignaciones a variables se hacen con el símbolo ":="

variable p : std_logic_vector(3 downto 0):=12;

Las variables se deben usar dentro de un proceso.


No se pueden comunicar variables entre procesos.
Las variables son secuenciales.
SINTAXIS Y VALORES DE SEÑALES

 VHDL no distingue entre MAYÚSCULAS y minúsculas


 Los comentarios: -- (dos guiones seguidos)

 '0' -- cero '1' -- uno valores booleanos típicos


 'X' -- desconocido no se conoce el valor
 'Z' -- alta impedancia propio de tri-estado
 'U' -- sin inicializar biestables en su situación previa
 '-' -- no importa (don’t care) indiferente (para simplificación)
OPERACIONES ENTRE SEÑALES

Las operaciones básicas entre señales son:


 asignación: <=
 operaciones booleanas: and or not xor
 Comparaciones: = /= > < >= <=
 Aritméticas: + - *
 Concatenación: &
SEÑALES EN PINES Y BUSES

 signal a, b, c, Y: std_logic_vector(3 downto 0);


 signal m, n: integer range 0 to 15; -- 4 bits
 y <= "1001";
 Y <= (3 => '1', 0 => '1', others => '0'); -- equivale a la anterior ("1001")
 m <= 9;
 Y <= ((not a) and b) or (a and not b); -- equivale a y <= a xor b;
 y <= a + b; -- suma aritmética
PARTES PRINCIPALES EN VHDL

 DEFINICION DE LIBRERIAS

 ENTIDAD (ENTITY)

 ARQUITECTURA (ARCHITECTURE)
LIBRERIAS
 library ieee;
 use ieee.std_logic_1164.all; -- tipos de señales, funciones lógicas
 use ieee.std_logic_arith.all; -- funciones aritméticas
 use ieee.std_logic_unsigned.all; -- operaciones en binario natural
 use ieee.std_logic_signed.all; -- operaciones en complemento a 2

En estos paquetes se dispone de dos funciones muy útiles:


 CONV_INTEGER(a) convierte el std_logic_vector a en integer
 CONV_STD_LOGIC_VECTOR(b,n) convierte el integer b en vector de longitud
n.
entity PRINCIPAL is
Port ( BUS_INPUT : in STD_LOGIC_VECTOR (7 downto 0);
PIN_1 : in STD_LOGIC;
PIN_2 : in STD_LOGIC;
BUS_OUTPUT : out STD_LOGIC_VECTOR (3 downto 0);
SALIDA_X : out STD_LOGIC;
SALIDA_Y : out STD_LOGIC);
end PRINCIPAL;

EJEMPLO DE
ENTIDAD (ENTITY)
ARQUITECTURA
architecture Behavioral of PRINCIPAL is
signal --declaración de señales internas (es opcional)
begin

--DEFINICION DE LAS RELACIONES Y FUNCIONES ENTRE SEÑALES

end Behavioral;

Cada « módulo » descriptivo y cada « asignación » se cierran con el símbolo ";"


REFERENCIAS

Capítulo VHDL: Tomás Pollán Santamaría. Tecnología Electrónica.


E.U.I.T.I.Z. Universidad de Zaragoza. tpollan@posta.unizar.es

También podría gustarte