You are on page 1of 32

VHDL

VHDL
VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuits

VHDL es un lenguaje de descripcin de hardware Es til para la sntesis y verificacin de circuitos digitales
Fernando Beltrn Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Historia
El VHDL nace por iniciativa del Departamento de Defensa de EE.UU. (comienzo de los 80) En julio de 1983 tres compaas (Texas Instruments, IBM e Internetics) reciben el encargo de desarrollarlo La primera versin se publica en agosto de 1985 En 1986 se convierte en un estndar del IEEE (IEEE 1076-1987)
Fernando Beltrn Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Historia
Posteriormente, con el estndar IEEE 1164 se le aaden nuevas caractersticas El estndar 1076 debe ser revisado cada cinco aos. Actualmente rige el 1076-1993

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Principales ventajas
Estndar pblico Independiente de la tecnologa Soporta diferentes metodologas de diseo Independiente del sistema de diseo Compatible

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Estructura bsica de un modelo VHDL
Entidad Arquitectura Configuraciones

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Un diseo complejo se suele subdividir en bloques La declaracin de entidad describe la forma de interconectar un bloque con los dems (entradas, salidas) La declaracin de arquitectura describe el comportamiento lgico del bloque

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Declaracin de entidad
Sentencia que define la especificacin externa de un circuito o subcircuito:
Nombre de la entidad Puertos de entrada y salida Modos de los puertos Tipos de los puertos

El funcionamiento del circuito no est incluido en la declaracin de entidad

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Ejemplo de declaracin de entidad
Nombre de la entidad

entity latch is port (s,r: in bit; q,nq: out bit); end latch;

Nombre de los puertos

Modos

Tipos

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Declaracin de entidad
Modo de un puerto:
In: entradas al sistema; slo pueden ser ledos Out: salidas del sistema; slo se les puede asignar valor Inout: seales bidireccionales; se pueden leer y se les puede asignar valor Buffer: registro asociado a una salida

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Declaracin de entidad
El lenguaje predefine un conjunto de tipos para las seales del sistema Tipos predefinidos: boolean, bit, bit_vector, character, string, integer, real, time, positive, natural Es ilegal conectar seales que no son del mismo tipo

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Declaracin de arquitectura
Cada declaracin de entidad debe ir acompaada de, al menos, una declaracin de arquitectura Esta declaracin indica el comportamiento o la estructura interna del sistema El estndar VHDL permite definir ms de una arquitectura para la misma entidad

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
El lenguaje estndar define un conjunto de operadores sobre los tipos de datos predefinidos
Aritmticos (+, -, *, /, mod,...) Lgicos (and, or, nand, nor, xor, not) Desplazamiento Relacin (=, /=, <, >, <=, >=) Signo Concatenacin
Dpto. Ingeniera Electrnica y Comunicaciones

Fernando Beltrn

VHDL
Declaracin de arquitectura
A cada arquitectura se le asigna un nombre arbitrario escogido por el usuario Dentro de una declaracin de arquitectura todas las sentencias son concurrentes (el orden textual no importa ya que se ejecutan en paralelo) Las dos formas ms habituales de declarar una arquitectura son:
Descripcin de la estructura Descripcin del comportamiento
Fernando Beltrn Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Declaracin de arquitectura
Ejemplo de descripcin estructural
S Q architecture structure of latch is component nor_gate port (a,b: in bit; c: out bit); end component; begin n1: nor_gate port map (r,nq,q); n2: nor_gate port map (s,q,nq); end structure;

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Asumimos que la puerta nor est definida en otra porcin de cdigo Es necesario que los puertos de la declaracin de componente coincidan con los puertos de la declaracin de entidad Un componente tiene que ser declarado una sola vez en una arquitectura, y puede ser empleado varias veces
Fernando Beltrn

architecture structure of latch is component nor_gate port (a,b: in bit; c: out bit); end component; begin n1: nor_gate port map (r,nq,q); n2: nor_gate port map (s,q,nq); end structure;

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Declaracin de arquitectura
Ejemplo de descripcin del comportamiento
S Q architecture dataflow of latch is signal qtemp, nqtemp: bit; begin --q y nq son de modo out, luego --no pueden ser ledos --definimos seales temporales q<=qtemp; nq<=nqtemp; qtemp<=r nor nqtemp; nqtemp<=s nor qtemp; end dataflow;

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Evaluacin de una expresin
qtemp<=r nor nqtemp;

expresin

seales

operador

Evaluar una expresin consiste en sustituir los valores de las seales en una expresin y calcular el resultado al aplicar el operador
Fernando Beltrn Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Modelo de retardo
qtemp<=r nor nqtemp after 1ns;

retardo

De esta manera se simulan los retardos de propagacin de las puertas

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Ejemplo: multiplexor 2 a 1
entity mux is port (a,b,selec: in bit; salida: out bit); end mux; architecture structure of mux is component and2 port (e1,e2: in bit; y: out bit); end component; component or2 port (e1,e2: in bit; y: out bit); end component; component inv port (e: in bit; y: out bit); end component;
Fernando Beltrn Dpto. Ingeniera Electrnica y Comunicaciones

signal ax,bx,nosel: bit; begin u0: inv port map (e=>selec, y=>nosel); u1: and2 port map (e1=>a, e2=>nosel, y=>ax); u2: and2 port map (e1=>b, e2=>sel, y=>bx); u3: or2 port map (e1=>ax, e2=>bx, y=>salida); end structure;

VHDL
La manera ms general de describir el comportamiento de una arquitectura es mediante sentencias tipo proceso Un proceso puede contener rdenes secuenciales, pero todos los procesos se ejecutan concurrentemente

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
count: process (x) variable cnt : integer := -1; begin cnt:=cnt+1;
end process;

Ejemplo de proceso

Nombre del proceso Lista de sensibilidades Declaracin de variable Inicializacin de la variable La variable cnt se incrementa cada vez que se ejecuta el proceso Esto ocurre al comienzo de la simulacin y cada vez que cambia la seal x
Dpto. Ingeniera Electrnica y Comunicaciones

Fernando Beltrn

VHDL
Las acciones descritas en el cuerpo del proceso se ejecutan en orden, de la primera a la ltima Cuando se ejecuta la ltima accin se dice que el proceso queda suspendido Cuando ocurre un cambio en una seal de la lista de sensibilidades el proceso se inicia de nuevo, volviendo a ejecutar las acciones de la primera a la ltima
Fernando Beltrn Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Cada proceso se ejecuta una vez al comienzo de la simulacin para determinar el valor inicial de sus salidas Algunas sentencias slo pueden aparecer en un proceso porque implican ejecucin secuencial: estructural de ejecucin secuencial

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Otras estructuras de ejecucin secuencial:
Sentencia Sentencia Sentencia Sentencia de espera: wait condicional: if...then...else de seleccin: case de bucles: for y while

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Ejemplo de sentencia con if:
count: process (x) variable cnt : integer := 0 Begin if (x=1 and xlast_value=0) then cnt:=cnt+1; end if; end process;

El atributo last_value de la variable x toma valor 1 0

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Ejemplo de sentencia con for
signal x : bit_vector (7 downto 0); ... process (x) variable p : bit; begin p:=0 for i in 7 downto 0 loop p:=p xor x(i); end loop; end process;

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Ejemplo: multiplexor 2 a 1
entity mux is port (a,b,selec: in bit; salida: out bit); end mux; architecture comportamental of mux is begin process(a,b,selec) begin if (selec=0) then salida<=a; else salida<=b; end process; end comportamental;
Fernando Beltrn Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Declaracin de configuracin
La configuracin es la construccin que permite seleccionar la arquitectura que se quiere utilizar para una entidad concreta La declaracin de configuracin es opcional

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Empaquetamientos y libreras
Los empaquetamientos contienen declaraciones y definiciones de objetos a usar en diferentes diseos Los diseos, una vez compilados, se almacenan en libreras

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Empaquetamientos y libreras
Existen libreras predefinidas:
STD: contiene los empaquetamientos standard y textio WORK: librera de trabajo del usuario IEEE: contiene los empaquetamientos STD_LOGIC_1164 y STD_LOGIC_ARITH

Estas declaraciones pueden ser importadas y utilizadas por otros diseos utilizando la clasula USE
Fernando Beltrn Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Ejemplo
library IEEE; use IEEE.std_logic_1164.all;

El empaquetamiento std_logic_1164 define tipos de datos para las seales que no contempla el VHDL original: Z (alta impedancia) y - (dont care)

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

VHDL
Tutoriales de VHDL en red:
http://www.gmvhdl.com/VHDL.html http://www.vhdl-online.de/~vhdl/tutorial/

Fernando Beltrn

Dpto. Ingeniera Electrnica y Comunicaciones

You might also like