vhdl · 2005-05-10 · 09/05/05 3 vhdl: antecedentes históricos uso de los lenguajes de tipo...
TRANSCRIPT
![Page 1: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/1.jpg)
09/05/05 1
Laboratorio de diseño digitalLaboratorio de diseño digitalLaboratorio de diseño digitalLaboratorio de diseño digital
Ingeniería ElectrónicaIngeniería ElectrónicaIngeniería ElectrónicaIngeniería Electrónica
Lenguaje de descripción deHardware VHSIC
VHDL
![Page 2: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/2.jpg)
09/05/05 2
Primera descripción de un diseñomediante un lenguaje
El formato EDIF (Electronic Design Interchange Format)es un estándar de los lenguajes de tipo Netlist
VHDL: Antecedentes históricos
NETLIST
Describe los componentes de un circuito y su interconexión
Herramientas EDA Necesidad de intercambiode información
![Page 3: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/3.jpg)
09/05/05 3
VHDL: Antecedentes históricosUso de los lenguajes de tipo Netlist
Sugiere la idea de una descripción de mayor nivelde abstracción (descripción funcional)
Un lenguaje permite la edición más rápida y sencilla
Una descripción con esquemas resulta más fácil de entender
![Page 4: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/4.jpg)
09/05/05 4
DoD+
IEEEPatrocinan el desarrollo en los 80´s
Es estándar de IEEE en 1987 VHDL-87
El estándar se amplía en 1993 VHDL-93
Existen otros HDL populares como ABEL y VERILOG
VHDL: Antecedentes históricos
Necesidad de estandarizar los diseños
![Page 5: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/5.jpg)
09/05/05 5
Se inicia como un leguaje de modelado y especificación.
Ligado a actividades de Documentación
Simulación
Luego se incorporan herramientas de síntesiscapaces de manejar este tipo de descripciones
VHDL: Evolución
Ambientes integrados de diseño de ASIC´s
![Page 6: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/6.jpg)
09/05/05 6
VHDL: EvoluciónEs un lenguaje para el modelado, simulación lógica
dirigida por eventos y síntesis de sistemas de Hardware
SíntesisAtraviesa verticalmente los niveles
de abstracción de la descripcióndesde el más alto al más bajo
Subsisten problemas y algunas construccionesde alto nivel no resultan sintetizables
Depende de la herramienta
![Page 7: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/7.jpg)
09/05/05 7
! Es un estándar
! Flexibilidad
Distintas metodologías de diseño: Top-down,Bottom-up, diseño jerárquico.
Diversos niveles de descripción en los componentesde un mismo circuito.
VHDL: Ventajas:
Facilita la documentación, minimiza los erroresde comunicación en el equipo de desarrollo e
incrementa la portabilidad de los diseños.
![Page 8: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/8.jpg)
09/05/05 8
! Independencia tecnológica.
!Bibliotecas y paquetes.
Gestión de diseño entre miembrosde equipos de trabajo grandes.
Diseño enfocado a la reutilización.
VHDL:Ventajas
Los diseños pueden implementarse endispositivos de diferentes tecnologías.
![Page 9: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/9.jpg)
09/05/05 9
VHDL como lenguaje de alto nivel
Lenguaje fuertemente tipado
El compilador no permite asignarun valor a un objeto a menos que
coincida con el tipo declaradopreviamente para ese objeto.
Programas más confiables y fáciles de depurar
Necesidad de conversiones de tipo
![Page 10: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/10.jpg)
09/05/05 10
VHDL como lenguaje de alto nivel
Potente control de flujo
Control de condiciones: if-then, case
Control de iteraciones: for, while
Estructuración de código con funciones y procedimientos
Desarrollo y utilización de bibliotecas de diseño
![Page 11: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/11.jpg)
09/05/05 11
Flujo de diseño VHDL
Análisis Código Compilación Simulación
Síntesis Mapeo, rutasy ubicación
Componentefrontal
Componente posterior
Verificacióntemporal
![Page 12: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/12.jpg)
09/05/05 12
VHDL como lenguaje de alto nivel
Modelo de estructura
Modelo de concurrencia
Modelo de tiempo
1º OBJETIVO Modelar Hardware
VHDL incorporatres características.
![Page 13: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/13.jpg)
09/05/05 13
VHDL: Modelo de estructura
Componentes y jerarquía
DispositivoVHDLEntidad Arquitectura
Declaración de I/ODescripción
comportamental
InterfazDistintos
estilos
![Page 14: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/14.jpg)
09/05/05 14
VHDL: Modelo de estructuraPrograma VHDL Entidad
Arquitectura
Una entidad de nivel superior puede instanciarmúltiples entidades de niveles inferiores.
Se pueden definir múltiples arquitecturas para una entidad.
Archivo de texto
Diseño jerárquico
![Page 15: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/15.jpg)
09/05/05 15
VHDL: Modelo de estructura, uso jerárquico
Arquitectura A
Entidad A
Arquitectura C
Entidad C
Arquitectura B
Entidad B
Arquitectura D
Entidad D
Arquitectura E
Entidad E
![Page 16: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/16.jpg)
09/05/05 16
Objetos VHDL: Constantes, variables y señales
Los objetos VHDL deben declararse en forma previa asu utilización en cualquier unidad de diseño.
Un objeto VHDL es un elemento que guarda un valorde un tipo de datos específico. Sobre él puedeninvocarse operaciones coherentes con su tipo.
Compilador
![Page 17: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/17.jpg)
09/05/05 17
Objetos VHDL: Constantes, variables y señales
constant nombre_constante: tipo := expresión ;
Contribuyen a la legibilidad, mantenimientoy portabilidad del programa. No cambian suvalor una vez inicializadas.
Variables
Constantes
Cambian su valor con sentencias de asignación.En general son locales a los procesos.No tienen significado físico.
variable nombre_variable: tipo ;nombre_variable := expresión ;
![Page 18: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/18.jpg)
09/05/05 18
Objetos VHDL : Constantes, variables y señales
Señales
! Cambian su valor con sentencias de asignación.! Tienen una analogía física directa.! Interconectan componentes de un circuito.! Sincronizan la ejecución y suspención de procesos.! Son visibles para todos los procesos y bloques de unaarquitectura.! Los puertos de una entidad son señales.
signal nombre_señal: tipo ;nombre_señal <= expresión ;
Las señales son abstracciones de conexiones físicas o buses.
![Page 19: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/19.jpg)
09/05/05 19
Componentes básicos: Declaración de entidad
entity nombre_entidad is [ generic (lista propiedades);] [ port (nombre_señal : modo tipo_señal ); port (nombre_señal : modo tipo_señal) ; ............ port (nombre_señal : modo tipo_señal ) ;] [ declaraciones ][ begin
sentencias]end [ nombre_entidad] ;
Define el módulo
![Page 20: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/20.jpg)
09/05/05 20
Componentes básicos: Declaración de entidad
entity nombre_entidad isend ;
Entidadmínima
genericPermite utilizar parámetros en
la definición de la entidad
Al instanciar el componente se establece el valor
Ejemplo: cantidad de bits de un sumador
![Page 21: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/21.jpg)
09/05/05 21
Componentes básicos: Declaración de entidad
! in: Entrada, se lee. No se le puede asignar valor.! out: Salida, se le asigna valor. No se puede leer.! inout: Entrada / Salida. Puede ser escrito por múltiplesfuentes, se puede producir la destrucción del chip.
port Define las entradas y salidas
port (nombre_señal : modo tipo_señal) ;Modo
Tipo Define los valores y operaciones legales
![Page 22: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/22.jpg)
09/05/05 22
Componentes básicos:Declaración de arquitecturaarchitecture nombre_arquitectura of entidad is [declaraciones] begin
[sentencias concurrentes]end [nombre_arquitectura];
La arquitectura puedemodelarse en tres estilos
! Estilo estructural! Estilo flujo de datos! Estilo algorítmico
Las sentencias concurrentes seejecutan en forma “simultánea”.
Se modela HARDWARE
Define el comportamiento
del módulo
![Page 23: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/23.jpg)
09/05/05 23
Modelado de circuitos combinacionalesProblema:
?
pánicohabilitar
salirpuerta
ventanagarage
alarma
La salida alarma es ‘1’ si pánico es ‘1’, o si habilitares ‘1’,salir es ‘0’ y la casa no es segura. La casa es
segura si puerta, ventana y garage son ‘1’.
![Page 24: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/24.jpg)
09/05/05 24
Modelado del circuito con esquemas:
pánico
habilitar
salir
ventana
puerta
garage
alarma
![Page 25: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/25.jpg)
09/05/05 25
Estilos de descripción VHDL:
Descripción Estructural
Descripción de Flujo de datos
Descripción Algorítmica
Nivel de A
bstracción
Lista de componentes interconectados
interconexión entre objetos del lenguaje
Descripción comportamental p. p. dicha
![Page 26: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/26.jpg)
09/05/05 26
Elementos de diseño Estructural:Describe la estructura del circuito como
interconexíón entre componentes
Descripción similar a un NETLIST(lenguaje de descripción de estructura)
La descripción de tipo NETLIST se corresponde enforma directa con su implementación en hardware
Síntesis directade la descripción
![Page 27: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/27.jpg)
09/05/05 27
--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 issignal seguro: std_logic;signal noseguro: std_logic;signal nosalir: std_logic;signal suena: std_logic;component INV port (I:in std_logic; O:out std_logic) ;end component ;component AND3 port (I0,I1,I2:in std_logic; O:out std_logic) ;end component ;component OR2 port (I0,I1:in std_logic; O:out std_logic) ;end component ;
Estilo Estructural
ModeladoVHDL
Dec
lara
cion
esE
ntid
ad
![Page 28: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/28.jpg)
09/05/05 28
beginU1: INV port map (
salir,nosalir );
U2: AND3 port map (
garage,ventana,puerta,seguro );
U3: INV port map (
seguro,noseguro );
U4: AND3 port map (
habilitar,nosalir,noseguro,suena );
U5: OR2 port map (
panico,suena,alarma );
end alarm_est;
ModeladoVHDL
Estilo Estructural
(continuación)
Las sentencias expresanla interconexión de los
componentes declarados
Estilo Netlist
![Page 29: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/29.jpg)
09/05/05 29
Elementos de diseño Estructural:
Declaración de componente:
component INV port (I:in std_logic; O:out std_logic) ;end component ;
Los componentes utilizadosdeben estar definidos
! Previamente en el diseño! Bibliotecas del entorno! Paquetes o bibliotecas adicionales
![Page 30: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/30.jpg)
09/05/05 30
Elementos de diseño Estructural:
Sentencia component:
U1: INV port map ( salir,nosalir );
Nombre de una entidad ya definidaque se usará en la arquitectura.
Palabras clave que asocian una lista de los portsde la entidad con señales en la arquitectura.
![Page 31: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/31.jpg)
09/05/05 31
Elementos de diseño de Flujo de Datos:
Describe el flujo de datos entre módulos usandoecuaciones de transferencia concurrentes.
Descripción a nivel transferencia de registros (RTL)
Las estructuras a nivel RTL tienen una correspondenciamuy estrecha con su implementación en hardware
Síntesis bastante directade la descripción
![Page 32: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/32.jpg)
09/05/05 32
Elementos de diseño de Flujo de Datos:
Es un estilo de descripción a mitad de camino entre unadescripción estructural y una completamente abstracta
Describe interconexionesentre objetos del lenguaje
Permite estructuras de tipo condicionaltípicas de una descripción más abstracta
Todas las sentencias de la descripción son concurrentes.
![Page 33: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/33.jpg)
09/05/05 33
--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 arch_flu of alarma issignal seguro: std_logic;signal noseguro: std_logic;signal nosalir: std_logic;signal suena: std_logic;beginnosalir <= not salir;seguro <= puerta and garage and ventana;noseguro <= not seguro;suena <= habilitar and nosalir and noseguro;alarma <= suena or panico;end arch_flu;
ModeladoVHDL
EstiloFlujo de Datos
Declaraciones
Sentenciasconcurrentes
![Page 34: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/34.jpg)
09/05/05 34
VHDL: Modelo de concurrenciaSe modela HARDWARE usando SOFTWARE
Concurrente Secuencial
Se utilizan sentencias “concurrentes” para describir elcomportamiento del circuito y poder simular.
Estas sentencias sonsensibles a señales
Los cambios en lasseñales son eventos.
![Page 35: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/35.jpg)
09/05/05 35
VHDL: Modelo de tiempo
Dirigida por eventosSIMULACIÓN
Mide el tiempo real
Ciclos de simulación que se realizansin incrementos reales de tiempo
Interactúan para soportarconcurrencia en la simulación
Macroescala
Microescala
δ delay
Dos escalas de tiempo
![Page 36: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/36.jpg)
09/05/05 36
VHDL: Modelo de concurrencia / Tiempo
SeñalesCambian su valor alfinalizar cada ciclo
de simulación
Cada paso de simulación consiste en la ejecuciónde una sentencia concurrente.
δ delay
Estos cambios disparan asu vez otras sentencias
concurrentes
Otros pasos desimulación
![Page 37: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/37.jpg)
09/05/05 37
Elementos de diseño de Flujo de Datos:
nosalir <= not salir;
Asignación concurrente de señal:
Asignación condicional: WHEN ... ELSE
architecture mux_flu of mux isbegin
salida <= a when selec = ‘0’ else b;end mux_flu;
Sentencias concurrentes que se disparan cuando cambia elvalor de alguno de los argumentos de las asignaciones.
![Page 38: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/38.jpg)
09/05/05 38
Elementos de diseño de Flujo de Datos:Asignación con selección:WITH...SELECT...WHEN
with estado select semaforo <= “rojo” when “01”,
“verde” when “10”, “amarillo” when “11”, “no funciona” when others;
Simulaciones incorrectas oimposibilidad de síntesis.
Se modela Hardware
Expresiones convalores indefinidos
Las asignaciónes condicional y conselección deben cubrir todos losposibles valores de la expresión
![Page 39: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/39.jpg)
09/05/05 39
Elementos de diseño algorítmico:Es una descripción de funcionalidad
con un alto nivel de abstracción.
Se necesitan instrucciones más complejas para:
No es suficiente asignar valores a señales.
Realizar cálculos.
Acumular resultados intermedios.
Repetir una secuencia de operaciones.
![Page 40: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/40.jpg)
09/05/05 40
Se necesitan instrucciones de ejecución secuencialsimilares a los lenguajes software de alto nivel
Sentencias concurrentesbastante particulares.
Elementos de diseño algorítmico:
PROCESOS
Describen comportamiento en forma secuencialpero su ejecución conjunta es concurrente
Introducen variables locales para soportar los cálculos.
![Page 41: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/41.jpg)
09/05/05 41
Elementos de diseño algorítmico:
El significado en hardware es más difuso, las instruccionesse ejecutan cuando cambian ciertos argumentos.
Síntesis mucho más complicada
SEÑALES Sincronizan procesos entre sí.
Sensibles a
PROCESOS Instrucciones secuenciales.
![Page 42: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/42.jpg)
09/05/05 42
--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 arch_alarAlg of alarma isbeginprocess (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;suena := noseguro and nosalir and habilitar;alarma <= panico or suena;end process;end arch_alarAlg;
Estilo Algorítmico
ModeladoVHDL
![Page 43: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/43.jpg)
09/05/05 43
Elementos de diseño algorítmico:El bloque PROCESS
Compuesto por un conjunto de instrucciones secuenciales
En un programa puede haber varios bloques PROCESS
Cada bloque PROCESS esuna instrucción concurrente
Permite estructuras más abstractascomo la ejecución de bucles
![Page 44: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/44.jpg)
09/05/05 44
Elementos de diseño algorítmico:
¿Cómo se activa el bloque PROCESS?
"""" La forma habitual es con una lista de sensibilidad
#### Existe la posibilidad de usar un WAITexplícito en algún lugar del bloque
![Page 45: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/45.jpg)
09/05/05 45
Elementos de diseño algorítmico:
process (panico, puerta,ventana,garage,salir,habilitar)
Lista de sensibilidadLista de señales
Cada vez que cambiaalguna de las señales se
ejecuta el bloque
Activación habitual del bloque PROCESS
![Page 46: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/46.jpg)
09/05/05 46
Elementos de diseño algorítmico:Activación del bloque PROCESS con wait
wait on lista-sensible until condición for timeout
wait on pulso;wait until contador > 6;wait on interrupción for 25 ns;wait on reloj, sensor until contador > 5 for 50 ns;
Ejemplos
Los tres parámetros son optativos.El que se verifique antes continuará la ejecución del bloque.Si el bloque tiene una lista sensible no puede tener wait.
![Page 47: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/47.jpg)
09/05/05 47
Elementos de diseño algorítmico:
El bloque PROCESStiene dos estados posibles
EJECUCION
SUSPENDIDO
El proceso debe tener una lista sensible o un wait, encaso contrario se ejecuta en forma indefinida.
En simulación no se podría salirnunca del lazo del process.
![Page 48: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/48.jpg)
09/05/05 48
Elementos de diseño algorítmico:
Sentencia condicional IF...THEN...ELSE
if condición then sentenciaselsif condición then sentencias $ $ $
else sentenciasend if ;
Esta estructura puede anidarse.
elsif y else son optativas. Convienecontemplar todos los posibles casos.
El resultado de la síntesisestá más optimizado
![Page 49: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/49.jpg)
09/05/05 49
Elementos de diseño algorítmico:Sentencia condicional IF...THEN...ELSE
-- Ejecución secuencialprocess ( a, b, c )beginif a > b thenp <= 2;elsif a > c then p <= 3;elsif (a = c and c = b) thenp <= 4else p <= 5;end if ;end process ;
-- Ejecución concurrentep < = 2 when a > b else 3 when a > c else 4 when (a = c and c = b) else 5 ;
En asignaciones tiene suequivalente concurrente.
La lista sensible debe incluir todas lasseñales cuyo cambio es importante.
![Page 50: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/50.jpg)
09/05/05 50
Sentencia de selección CASE
Elementos de diseño algorítmico:
case expresión is when caso1 = > instrucciones when caso2 = > instrucciones $ $ $
when others = > instruccionesend case ;
-- Ejemplocase 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 expresión de selección debe ser discreta.! No puede haber casos duplicados.! Se deben cubrir todas las opciones de selección.
![Page 51: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/51.jpg)
09/05/05 51
Sentencia de bucles WHILE Y FOR
Elementos de diseño algorítmico:
bucle_id:for identificador in rango loop
instruccionesend loop;
Bucle_id:while condición loop
instruccionesend loop;
-- Lazo forfor cuenta in 5 downto 0 loop tabla (cuenta) <= cuenta * 2;end loop;
-- Lazo whilecuenta := 5;while cuenta >= 0 loop tabla (cuenta) <= cuenta * 2; cuenta := cuenta - 1;end loop;
Entero o enumerado
![Page 52: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/52.jpg)
09/05/05 52
Elementos de diseño algorítmico:Interrupción de los bucles
next bucle_id when condición ;
exit bucle_id when condición ;
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;
Detiene una iteración delbucle y pasa a la siguiente
Detiene la ejecucióny sale del bucle
Interrumpe el fory sigue en el while
![Page 53: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/53.jpg)
09/05/05 53
Sentencia configure:
Cuando un diseño incluye varias arquitecturasposibles para la misma entidad
Se debe indicar al compilador con cuál de ellasse desea trabajar.
Sentencia configure
Si no se indica la arquitectura objetivo elcompilador toma alguna desición por defecto
![Page 54: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/54.jpg)
09/05/05 54
Sentencia configure: Sintaxisentity Mux2 is Port ( a : in bit; b : in bit; ctrl : in bit; z : out bit );end Mux2;-- Definición arquitectura Algoritmica para la entidad mux2-- Definición arquitectura Flujo para la misma entidad
-- Uso de sentencia configureconfiguration confmux2 of mux2 is for Algoritmicaend for;end;
Se liga la arquitecturaAlgorítmica con la
entidad mux2
![Page 55: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/55.jpg)
09/05/05 55
Modelado de circuitos secuenciales
Para la descripción se utilizan los recursos ya analizados.
Se describen circuitos temporizados
Es necesario recoconocer un flanco activo de reloj.
Atributoevent
clk’event and clk = ‘1’
Expresión reconocida porSynopsis para describir unflanco ascendente de reloj
Se depende de unaherramienta de síntesis
![Page 56: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/56.jpg)
09/05/05 56
Ejemplo de código para un registro de desplazamientolibrary IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;--Registro con reset sincrónico load paralelo y corrimiento--lógico a la izquierda, con prioridades en ese orden.-- Se dejo la salida paralela (bout) para claridad en--simulación, corresponde mantener sólo la salida s.entity regis is port ( din: in STD_LOGIC_VECTOR (3 downto 0); clk: in STD_LOGIC; l: in STD_LOGIC; r: in STD_LOGIC; shl: in STD_LOGIC; s: out STD_LOGIC; bout: out std_logic_vector (3 downto 0) );end regis;
![Page 57: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/57.jpg)
09/05/05 57
architecture register_arch of regis isbeginprocess (clk)variable dout : std_logic_vector (3 downto 0);variable aux: std_logic_vector (2 downto 0);beginaux := (r,l,shl);if ( clk'event and clk = '1') then case conv_integer (aux) iswhen 4 | 6 | 7 => dout := ('0','0','0','0');when 2 | 3 => dout := din;when 1 => dout := dout (2 downto 0) & '0';when others => null;end case;s <= dout(3);bout<= dout;end if;end process;end register_arch;
Registro de desplazamiento: Continuación
Flanco ascendente del reloj.
![Page 58: VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo Netlist Sugiere la idea de una descripción de mayor nivel de abstracción (descripción](https://reader031.vdocuments.pub/reader031/viewer/2022011819/5e934dfdf491472ef74d8f79/html5/thumbnails/58.jpg)
09/05/05 58
Bibliografía
Pardo Carpio F. - Tecnología Informática - Universidadde Valencia - 1996.
Villar, Teres, Olcoz, Torroja - VHDL Lenguaje estándarde diseño electrónico - Mc Graw Hill - 1998
Wakerly J. F. - Diseño digital: principios y prácticasPrentice Hall - 2001