You are on page 1of 27

UNIVERSIDAD DE SEVILLA

Dpto. de Ingeniera Electrnica

AREA DE TECNOLOGIA ELECTRONICA

VHDL (1 parte)
Introduccin al lenguaje VHDL

Introduccin a los lenguajes HDL y conceptos bsicos de VHDL

Marzo de 2005

Tema 1:

Introduccin a los lenguajes HDL


1.1 Introduccin 1.2 Los HDL en la metodologa de diseo 1.3 Niveles de abstraccin en HDL 1.4 HDL: Programa o diseo 1.5 VHDL vs. Verilog 1.6 Sntesis de circuitos

Bibliografa
Douglas

L. Perry. VHDL. McGraw-Hill, 2 Edicin. 1994. de ctedra

Apuntes

Tema 1:

Introduccin a los lenguajes HDL


1.1 Introduccin
1.2 Los HDL en la metodologa de diseo 1.3 Niveles de abstraccin en HDL 1.4 HDL: Programa o diseo 1.5 VHDL vs. Verilog 1.6 Sntesis de circuitos

Introduccin

Cada da aumenta la complejidad de los circuitos digitales.

El cuello de botella est en el diseo.

Tema 1:

Introduccin a los lenguajes HDL


1.1 Introduccin

1.2 Los HDL en la metodologa de diseo


1.3 Niveles de abstraccin en HDL 1.4 HDL: Programa o diseo 1.5 VHDL vs. Verilog 1.6 Sntesis de circuitos

Flujo de diseo: Metodologa clsica


DESCOMPOSICIN DESCENDENTE DEL DISEO

PLD CPLD FPGA ASIC

SI

INTRODUCCIN DEL DISEO MEDIANTE ESQUEMAS EN REALIZACIN ASCENDENTE

NO

CONFORME ESPECIFICACIONES?

SIMULACIN FUNCIONAL Y VERIFICACIN

BASE DE DATOS CON LAS PRIMITIVAS DEL FABRICANTE

DISEO NIVEL FSICO

NO

CONFORME ESPECIFICACIONES?

SI

Flujo de diseo con HDL


DESCOMPOSICIN DESCENDENTE DEL DISEO
NO

CONFORME ESPECIFICACIONES?

SI

PLD CPLD FPGA ASIC

INTRODUCCIN DEL DISEO MEDIANTE LENGUAJE VHDL REALIZACIN ASCENDENTE

DISEO NIVEL FSICO

CONDICIONES DE DISEO. RESTRICCIONES


SIMULACIN ALTO NIVEL Y VERIFICACIN

SINTESIS LGICA

NO

CONFORME ESPECIFICACIONES?

SI

BASE DE DATOS CON LAS PRIMITIVAS DEL FABRICANTE

Flujo de diseo. Ventajas e inconvenientes de HDL Ventajas


Capacidad de modificacin y reutilizacin Diseo independiente del dispositivo, tecnologa y software de diseo Simulacin de cdigo muy rpida Reduce el tiempo de desarrollo y el coste Diferentes circuitos dependiendo de las restricciones.

Inconvenientes
Se pierde control de la implementacin a nivel de puertas. Implementaciones lgicas automticas no ptimas La calidad de la sntesis depende del software

Tema 1:

Introduccin a los lenguajes HDL


1.1 Introduccin 1.2 Los HDLs en la metodologa de diseo

1.3 Niveles de abstraccin en HDL


1.4 HDL: Programa o diseo 1.5 VHDL vs. Verilog 1.6 Sntesis de circuitos

Niveles de abstraccin en HDLs


Niveles de abstraccin Nivel funcional (grandes bloques) Nivel de transferencia de registros (RTL) Estilo descriptivo (HDL) Algortmico o descriptivo Flujo de datos Tipo de datos Abstracto Compuestos
NIVEL DE DETALLE

Nivel de puerta lgica


Nivel de circuito

En forma de esquema
Interconexin de transistores. No es posible en HDL

Bit
Tensin e intensidad

Tema 1:

Introduccin a los lenguajes HDL


1.1 Introduccin 1.2 Los HDLs en la metodologa de diseo 1.3 Niveles de abstraccin en HDL

1.4 HDL: Programa o diseo


1.5 VHDL vs. Verilog 1.5 Sntesis de circuitos

HDL: Programa o diseo


La
LENGUAJE DE PROGRAMACIN DE ALTO NIVEL LENGUAJE DE DESCRIPCIN HARDWARE

PROGRAMA A NIVEL DE LENGUAJE MQUINA

DESCRIPCIN A BAJO NIVEL DE ABSTRACCIN (p.e. NIVEL LGICO)

sintaxis es muy similar. En VHDL no se programa, se describe. Hay que pensar siempre que la descripcin se corresponde con circuitos funcionando en paralelo

COMPILACIN

SNTESIS

Tema 1:

Introduccin a los lenguajes HDL


1.1 Introduccin 1.2 Los HDLs en la metodologa de diseo 1.3 Niveles de abstraccin en HDL 1.4 HDL: Programa o diseo

1.5 VHDL vs. Verilog


1.6 Sntesis de circuitos

VHDL vs. Verilog (RTL)


VHDL Verilog

Basado en ADA Normalizado por la IEEE 1076 Pensado para descripcin precisa Incorpora muy buenas libreras, contempladas en el estndar.

Basado en C Propiedad de CADENCE Pensado para diseo rpido Muy integrado con el software de CADENCE

VHDL vs. Verilog


EXAMPLE: FLIP-FLOP DESIGN
module flip-flop (clk, ff_input, Q) input clk, reset; input ff_input; ff_input reg Q; always @ (posedge clk) clk Q= ff_input; always @ (reset) if (reset=1) assign Q=0; else deassign Q; end;
FF

reset,

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FF IS PORT ( reset: IN STD_LOGIC; clk: IN STD_LOGIC; ff_input: IN STD_LOGIC; Q: OUT STD_LOGIC ); END FF; ARCHITECTURE behavioral OF FF IS BEGIN flipflop: PROCESS (reset, clk) BEGIN IF reset='1' THEN Q <= 0'; ELSIF clk'event AND clk='1' THEN Q <= ff_input; END IF; END PROCESS; END behavioral;

reset

endmodule

Tema 1:

Introduccin a los lenguajes HDL


1.1 Introduccin 1.2 Los HDLs en la metodologa de diseo 1.3 Niveles de abstraccin en HDL 1.4 HDL: Programa o diseo 1.5 VHDL vs. Verilog

1.6 Sntesis de circuitos

Sntesis de circuitos
DESCRIPCIN FUNCIONAL EN HDL

Descripcin del comportamiento

Sntesis

ANALISIS y ELABORACIN. Convertir la descripcin HDL a cajas negras y registros.

Tecnologa

Descripcin compuesta de: Resgistros Seales de I/O Lgica combinacional Identificar componentes

OPTIMIZACIN. Depende de: 1. Expresiones lgicas 2. Dispositivo 3. Restricciones de diseo

NETLIST. Descripcin a bajo nivel de abstraccin para su uso en el place and route.

PLACE AND ROUTE

Tema 2:

Estructura de un diseo en VHDL


1.1 Introduccin y ejemplo simple
1.2 La seccin ENTITY 1.3 La seccin ARCHITECTURE 1.4 La seccin CONFIGURATION 1.5 La seccin LIBRARY

Introduccin
Lenguaje VHDL:
Lenguaje de descripcin de hardware. En VHDL se describe no se programa. Permite documentar diseos.

Sntesis Lgica con VHDL:


Diseos reutilizables => Herramienta CAD. Circuitos diferentes dependiendo de restricciones.

Introduccin
El VHDL es complejo pero:
El subconjunto necesario para sntesis es muy pequeo. Solo utilizaremos:
Asignaciones:
estado_siguiente <= REPOSO ;

Comparaciones y operadores lgicos


= (igual), /= (no igual), > (mayor que), <= (menor o igual que), etc And, xor, or, nand, nor, xnor, not, etc

Sentencia if
If (estado_actual=REPOSO) then . End if;

Sentencia case

Introduccin
-- -- es comentario --Zona de declaracin de libreras Declaracin de libreras y LIBRARY nombre_librera; paquetes USE librera.paquete_funciones.all; --Cabecera de la entidad Definicin de la entidad ENTITY nombre_entity IS GENERIC(..........); PORT(................); END nombre_entity; --Cuerpo de la entidad ARCHITECTURE nombre_architecture OF nombre_entity IS Descripcin de la --Declaracin de componentes y seales arquitectura BEGIN --Descripcin de la funcionalidad END nombre_architecture; --Enlace con las arquitecturas de otras entidades CONFIGURATION nombre_configuracion OF nombre_entidad IS Seleccin de la FOR nombre_arquitectura configuracin --Cuerpo de la configuracin END nombre_configuracion;

Ejemplo bsico
-- Multiplexor de dos entradas entity mux21 is port ( e1, e2: IN std_logic; sel: IN std_logic; o1: OUT std_logic); end mux21; arquitecture A of mux21 is begin process(e1,e2, sel) begin if (sel=0) then o1 <= E1; else o1<= e2; endif; end process; end A;

MUX21 e1 e2 sel o1

e1 e2

MUX21 o1 sel

Tema 2:

Estructura de un diseo en VHDL


1.1 Introduccin y ejemplo simple

1.2 La seccin ENTITY


1.3 La seccin LIBRARY 1.4 La seccin ARCHITECTURE 1.5 La seccin CONFIGURATION

La seccin ENTITY
ENTITY contador IS GENERIC ( N: integer := 10 ); PORT ( clk: IN STD_LOGIC; reset: IN STD_LOGIC; enable: IN STD_LOGIC; cuenta: OUT STD_LOGIC_VECTOR(N-1 downto 0) );

La seccin ENTITY. Declaracin de puertos


Un

puerto debe tener:

Nombre Direccin
IN OUT INOUT BUFFER

Tipo de dato

La seccin ENTITY. Declaracin de puertos


Ejercicio

IN IN IN

B C
ENB

OUT

INOUT

IN

D Z Zint BUFFER OUT

Z <= Zint;

You might also like