Sei sulla pagina 1di 32

Una introduccin a VHDL Miguel Melgarejo Facultad de Ingeniera

Universidad Distrital Francisco Jos de Caldas Bogot DC, Colombia

Contenido
Propiedades de VHDL Niveles de descripcin Un primer ejemplo: caso del multiplexor Reutilizacin de componentes Simulacin

Propiedades de VHDL

Qu es un lenguaje de descripcin de hardware?


Es un conjunto de sentencias cuya semntica encierra la descripcin de un circuito anlogo, digital o mixto.
Lenguaje VHDL VHDL AMS Verilog SystemC Circuitos que se pueden modelar Digitales Analgicos Digitales Digitales Observaciones Simulacin y construccin Simulacin Simulacin y construccin Simulacin

Ventajas de modelar con VHDL


Alto nivel de abstraccin. Portabilidad Reduccin de costo en las herramientas de diseo.

Lenguajes de descripcin de hardware


Hoy en da el estndar ms popular para especificacin de circuitos digitales es VHDL. VHDL es la sigla de Very high speed integrated circuit Hardware Description Language. Sin embargo, se predice que en un mediano plazo VHDL ser desplazado por SystemC.

Tipos de uso comn en VHDL


En la mayora de lenguajes de descripcin de hardware se identifican dos tipos : escalares y vectoriales. Los tipos escalares representan variables booleanas (1,0) o variables fsicas ( 1,0,Z,X entre otros) Los tipos vectoriales representan conjuntos de tipos escalares. Ejemplos en VHDL
Escalares 1. BIT: representa variables booleanas 2. STD_LOGIC : representa variables fsicas Vectoriales 1. BIT_VECTOR: representa un conjunto de BITs (n-tuplas) 2. STD_LOGIC_VECTOR : representa un conjunto de STD_LOGICs 3. INTEGER: representa valores enteros positivos 4. UNSIGNED : modela un conjunto de variables booleanas que representan una cantidad en representacin binario natural 5. SIGNED: modela un conjunto de variables booleanas que representa una cantidad en representacin binario complemento a dos

Seales en VHDL
Una seal modela: 1.Un puerto de entrada, salida o bidireccionales. 2.Un nodo Ejemplo en VHDL
Signal enable : std_logic modela un nodo del tipo STD_LOGIC Signal mux_out : std_logic_vector ( 3 downto 0) modela un conjunto de cuatro lneas STD_LOGIC Signal ALU_out : signed ( 3 downto 0 ) modela un conjunto de cuatr o lneas que representan un valor en representacin complemento a dos.

Operaciones tpicas en VHDL


Lgicas : and , or , xor ,nand , nor ,xnor , nor VHDL: Operan sobre tipo bit y std_logic; Matemticas : + , VHDL: Operan sobre integer ,signed y unsigned. *,/ VHDL: Operan sobre integer cuando es potencia de dos.

Comparacin : = , /= , < , <= , > , >=


VHDL: Operan sobre integer , signed y unsigned.

Conexin : &
VHDL: Opera sobre std_logic.

Niveles de descripcin

Niveles de descripcin
Comportamental Describe el comportamiento del sistema. Funcional Describe las funciones que representan al sistema Estructural
Describe el sistema en trminos de los componentes que lo conforman y sus interconexiones.

Descripcin en VHDL
Estructura de una descripcin.
Bibliotecas : recursos , funciones y operaciones. Entidad : Definicin de puertos ( entradas y salidas ). Arquitectura : procesos , interacciones y seales internas.

Estructura de una descripcin VHDL


Entity compuerta_nand is port ( a : in std_logic; b : in std_logic; c : out std_logic ); End compuerta_nand;

a b

VHDL: Arquitectura comportamental


Architecture comportamental of compuerta_nand is begin c <= 0 when a =1 and b=1 else 1; end funcional; Es una arquitectura de muy alto nivel , en una sola sentencia se describe todo el funcionamiento del circuito.
a b

NAND

VHDL: Arquitectura funcional


Architecture funcional of compuerta_nand is signal x : std_logic; begin x <= a and b; c <= not x; end funcional; Esta es una descripcin a un nivel ms bajo , se especifican las operaciones que dan origen a la compuerta nand.

a b

AND

NOT

VHDL : Arquitectura estructural


Architecture estructural of compuerta_nand is component cand is port ( q1,q2 : in std_logic; q3 : out std_logic ); end component; component cnot is port ( p1 : in std_logic; p2: out std_logic); end component; a signal x : std_logic; b begin c1 : cand port map ( q1 => a , q2 =>b , q3 => x ); c2 :cnot port map ( p1 => x , p2 => c ), end estructural;

CAND

CNOT

Un primer ejemplo : caso mutliplexor

VHDL para circuitos combinacionales


VHDL ofrece diferentes sentencias que pueden ser empleadas para especificar circuitos combinacionales. Las sentencias son de naturaleza concurrente ( operan en paralelo) Las sentencias pueden ser de seleccin, condicionales y generadoras. Un mismo circuito se puede especificar de diferentes maneras.

Implementacin de funciones booleanas


Library ieee; Use ieee.std_logic_1164.all Entity mux2to1 is port ( I1,I2,s : in std_logic; f : out std_logic); End mux2to1; I1 Architecture funcional of mux2to1 is Signal x1,x2,x3 : std_logic; Begin x1 <= not s; x2 <= s and I2; x3 <= x1 and I1; f <= x2 or x3 ; End Behavioral; S NOT
x1

I1 I2 s

AND
x3

OR AND
x2

I2

Cada sentencia representa un circuito. Todos los circuitos operan paralelamente, Es decir al mismo tiempo

Multiplexores
Seleccin de seales binarias. El multiplexor bsico tiene dos entradas (I0 e I1) , una salida f y una seal de seleccin S.
I1 I2

S 0 1

f I1 I2

I1 S NOT

AND OR f

I2

AND

Especificacin VHDL del multiplexor bsico


Library ieee; Use ieee.std_logic_1164.all Entity mux2to1 is port ( I1,I2,s : in std_logic; f : out std_logic); End mux2to1; S I1 I2

Architecture behavioral of mux2to1 is Begin with s Select f <= I1 when 0, I2 when others; End Behavioral;

S 0 1

f I1 I2

Otras formas de especificar multiplexores


Sentencias condicionales de asignacin. Architecture BHV of mux2to1 is begin f <= I0 when s = 0 else I1; End BHV;

S 0 1

f I0 I1

Reutilizacin de componentes

Reutilizacin de componentes
Un componente se puede utilizar cuantas veces sea necesario. Todo componente que se vaya a reutilizar debe ser declarado en una biblioteca de componentes (lonchera). Hay una nica biblioteca componentes por proyecto.

Reutilizacin de componentes
Ejemplo Se construir un multiplexor 4:1 empleando multiplexores 2:1 como Los presentados en las lminas anteriores.
Library ieee; Use ieee.std_logic_1164.all Entity mux2to1 is port ( I1,I2,s : in std_logic; f : out std_logic); End mux2to1; Architecture BHV of mux2to1 is begin f <= I0 when s = 0 else I1; End BHV;

Se crea la especificacin VHDL del componente.

Mux2to1.vhd

Reutilizacin de componentes
Se declara la biblioteca de componentes (lonchera)
Library ieee; Use ieee.std_logic_1164.all; Package mux2to1_pack is component mux2to1 port( I1,I2 : in std_logic; s : in std_logic; f :out std_logic); End component; End mux2to1_pack;

I1

I2

Mux2to1_pack.vhd

Reutilizacin por medio de una descripcin estructural


Library ieee; Use ieee.std_logic_1164.all; Library work; Use work.mux2to1_pack.all; D3 D2
S0

D1 D0

Entity mux4to1 is port ( D : in std_logic_vector ( 3 downto 0); S1 S : in std_logic_vector( 1 downto 0); F : out std_logic); End mux4to1;

Reutilizacin por medio de una descripcin estructural


Architecture structure of mux4to1 is signal q: std_logic_vector( 1 downto 0); Begin Mux1 : mux2to1 port map ( i1 => D(0), I2 => D(1), S => S(0), f => q(0)); Mux2 : mux2to1 port map ( i1 => D(2), I2 => D(3), S => S(0), f => q(1)); Mux3 : mux2to1 port map ( i1 => q(1), I2 => q(0), S => S(1), f => F); End structure;

D3 D2
S0
mux2
q(1)

D1 D0
mux1

q(0)

S1

mux3

Simulacin

Simulacin
Una primera aplicacin de los lenguajes de descripcin de hardware es la simulacin de circuitos/sistemas digitales. La simulacin de las especificaciones HDL permite validar la funcionalidad del circuito. La simulacin igualmente ayuda a detectar posibles fallas en una etapa temprana de diseo. Esto ahorra costos significativamente.

Simulacin
Ventana tpica de Simulador

Resultado de la simulacin

Referencias
Esta leccin est basada en las obras de referencia: Brown S., Fundamentos de Lgica digital con diseo VHDL, McGraw Gil, 2006 Actel Co, Actel HDL coding style guide, 2000

Potrebbero piacerti anche