VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo...

58
09/05/05 1 Laboratorio de diseño digital Laboratorio de diseño digital Laboratorio de diseño digital Laboratorio de diseño digital Ingeniería Electrónica Ingeniería Electrónica Ingeniería Electrónica Ingeniería Electrónica Lenguaje de descripción de Hardware VHSIC VHDL

Transcript of VHDL · 2005-05-10 · 09/05/05 3 VHDL: Antecedentes históricos Uso de los lenguajes de tipo...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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