Escolar Documentos
Profissional Documentos
Cultura Documentos
VHDL
Laboratorio de diseo digital
5/2/2006
Ingeniera Electrnica
1
Describe los componentes de un circuito y su interconexin El formato EDIF (Electronic Design Interchange Format) es un estndar de los lenguajes de tipo Netlist
5/2/2006 2
+
IEEE
VHDL-93
VHDL: Evolucin
Se inicia como un leguaje de modelado y especificacin. Documentacin Simulacin Luego se incorporan herramientas de sntesis capaces de manejar este tipo de descripciones
Ligado a actividades de
VHDL: Evolucin
Es un lenguaje para el modelado, simulacin lgica dirigida por eventos y sntesis de sistemas de Hardware Sntesis Atraviesa verticalmente los niveles de abstraccin de la descripcin desde el ms alto al ms bajo
Subsisten problemas y algunas construcciones de alto nivel no resultan sintetizables Depende de la herramienta
5/2/2006
VHDL: Ventajas:
Es un estndar
Facilita la documentacin, minimiza los errores de comunicacin en el equipo de desarrollo e incrementa la portabilidad de los diseos.
Flexibilidad
Distintas metodologas de diseo: Top-down, Bottom-up, diseo jerrquico. Diversos niveles de descripcin en los componentes de un mismo circuito.
5/2/2006 7
VHDL:Ventajas
Independencia tecnolgica.
Los diseos pueden implementarse en dispositivos de diferentes tecnologas.
Bibliotecas y paquetes.
Gestin de diseo entre miembros de equipos de trabajo grandes. Diseo enfocado a la reutilizacin.
5/2/2006 8
Anlisis
Cdigo
Sntesis
Verificacin temporal
5/2/2006
Componente posterior
11
Entidad
Arquitectura
Descripcin comportamental
Interfaz
5/2/2006
13
Se pueden definir mltiples arquitecturas para una entidad. Una entidad de nivel superior puede instanciar mltiples entidades de niveles inferiores.
5/2/2006
Diseo jerrquico
14
Entidad B Arquitectura B
Entidad C Arquitectura C
Entidad D Arquitectura D
5/2/2006
Entidad E Arquitectura E
15
Compilador
Los objetos VHDL deben declararse en forma previa a su utilizacin en cualquier unidad de diseo.
5/2/2006 16
constant nombre_constante: tipo := expresin ; Cambian su valor con sentencias de asignacin. En general son locales a los procesos. No tienen significado fsico. variable nombre_variable: tipo ; nombre_variable := expresin ;
Variables
5/2/2006
17
18
generic
Las sentencias concurrentes se ejecutan en forma simultnea. Estilo estructural Estilo flujo de datos Estilo algortmico
22
alarma
La salida alarma es 1 si pnico es 1, o si habilitar es 1,salir es 0 y la casa no es segura. La casa es segura si puerta, ventana y garage son 1.
5/2/2006 23
puerta
5/2/2006 24
Nivel de Abstraccin
La descripcin de tipo NETLIST se corresponde en forma directa con su implementacin en hardware Sntesis directa de la descripcin
5/2/2006
26
--The IEEE standard 1164 package, declares std_logic, rising_edge(), etc. library IEEE; use IEEE.std_logic_1164.all; entity alarma is port ( panico, puerta,ventana,garage,salir,habilitar:in std_logic; alarma: out std_logic ); end alarma; architecture alarm_est of alarma is Modelado signal seguro: std_logic; signal noseguro: std_logic; VHDL signal nosalir: std_logic; signal suena: std_logic; component INV port (I:in std_logic; O:out std_logic) ; end component ; component AND3 Estilo port (I0,I1,I2:in std_logic; O:out std_logic) ; end component ; Estructural component OR2 port (I0,I1:in std_logic; O:out std_logic) ; end component ;
27
Declaraciones
5/2/2006
Entidad
begin U1: INV Modelado port map ( VHDL salir,nosalir ); U2: AND3 port map ( garage,ventana,puerta,seguro Las sentencias expresan ); la interconexin de los U3: INV port map ( componentes declarados seguro,noseguro ); U4: AND3 port map ( Estilo Netlist habilitar,nosalir,noseguro,suena ); U5: OR2 port map ( Estilo panico,suena,alarma Estructural ); end alarm_est; 5/2/2006 28 (continuacin)
Los componentes utilizados deben estar definidos Previamente en el diseo Bibliotecas del entorno Paquetes o bibliotecas adicionales
5/2/2006 29
Palabras clave que asocian una lista de los ports de la entidad con seales en la arquitectura.
5/2/2006 30
Las estructuras a nivel RTL tienen una correspondencia muy estrecha con su implementacin en hardware Sntesis bastante directa de la descripcin
5/2/2006 31
--The IEEE standard 1164 package, declares std_logic, rising_edge(), etc. library IEEE; Estilo use IEEE.std_logic_1164.all; entity alarma is Flujo de Datos port ( panico, puerta,ventana,garage,salir,habilitar:in std_logic; alarma: out std_logic ); end alarma; architecture arch_flu of alarma is signal seguro: std_logic; Modelado signal noseguro: std_logic; Declaraciones signal nosalir: std_logic; VHDL signal suena: std_logic; begin nosalir <= not salir; seguro <= puerta and garage and ventana; Sentencias noseguro <= not seguro; suena <= habilitar and nosalir and noseguro; concurrentes alarma <= suena or panico; end arch_flu;
5/2/2006 33
Concurrente
Secuencial
Se utilizan sentencias concurrentes para describir el comportamiento del circuito y poder simular. Estas sentencias son sensibles a seales
5/2/2006
Mide el tiempo real Ciclos de simulacin que se realizan sin incrementos reales de tiempo
delay
35
delay
Estos cambios disparan a su vez otras sentencias concurrentes
5/2/2006
5/2/2006
37
5/2/2006
Las asignacines condicional y con seleccin deben cubrir todos los posibles valores de la expresin
38
Describen comportamiento en forma secuencial pero su ejecucin conjunta es concurrente Introducen variables locales para soportar los clculos.
5/2/2006 40
El significado en hardware es ms difuso, las instrucciones se ejecutan cuando cambian ciertos argumentos. Sntesis mucho ms complicada
5/2/2006
41
--The IEEE standard 1164 package, declares std_logic, rising_edge(), etc. library IEEE; use IEEE.std_logic_1164.all; entity alarma is port ( panico,puerta,ventana,garage,salir,habilitar:in std_logic; alarma: out std_logic ); end alarma; Modelado architecture arch_alarAlg of alarma is VHDL begin process (panico, puerta,ventana,garage,salir,habilitar) variable nosalir, seguro,noseguro,suena: std_logic; begin nosalir := not salir; seguro := ventana and puerta and garage; noseguro := not seguro; Estilo suena := noseguro and nosalir and habilitar; Algortmico alarma <= panico or suena; end process; end arch_alarAlg;
5/2/2006 42
5/2/2006
43
n La forma habitual es con una lista de sensibilidad o Existe la posibilidad de usar un WAIT
explcito en algn lugar del bloque
5/2/2006 44
Lista de sensibilidad
Lista de seales
Esta estructura puede anidarse. elsif y else son optativas. Conviene contemplar todos los posibles casos. El resultado de la sntesis est ms optimizado
48
-- Ejemplo case nota is when 10 = > acta <= SOB; when 8 to 9 = > acta <= DIS; when 6 to 7 => acta <= BUE; when 4 | 5 => acta <= APR; when others = > acta <= INS; end case ;
La expresin de seleccin debe ser discreta. No puede haber casos duplicados. Se deben cubrir todas las opciones de seleccin.
5/2/2006 50
Entero o enumerado
bucle_id: for identificador in rango loop instrucciones end loop;
-- Lazo while cuenta := 5; while cuenta >= 0 loop tabla (cuenta) <= cuenta * 2; cuenta := cuenta - 1; end loop;
5/2/2006
-- Lazo for for cuenta in 5 downto 0 loop tabla (cuenta) <= cuenta * 2; end loop;
51
Detiene una iteracin del bucle y pasa a la siguiente Detiene la ejecucin y sale del bucle
fuera: while a < 10 loop -- varias sentencias dentro: for i in 0 to 10 loop; -- varias sentencias next fuera when i = a; end loop dentro; end loop fuera;
52
Sentencia configure:
Cuando un diseo incluye varias arquitecturas posibles para la misma entidad
Se debe indicar al compilador con cul de ellas se desea trabajar. Sentencia configure Si no se indica la arquitectura objetivo el compilador toma alguna desicin por defecto
5/2/2006 53
clkevent and clk = 1 Expresin reconocida por Synopsis para describir un flanco ascendente de reloj
55
5/2/2006
56
5/2/2006
Bibliografa
Pardo Carpio F. - Tecnologa Informtica - Universidad de Valencia - 1996. Villar, Teres, Olcoz, Torroja - VHDL Lenguaje estndar de diseo electrnico - Mc Graw Hill - 1998 Wakerly J. F. - Diseo digital: principios y prcticas Prentice Hall - 2001
5/2/2006
58