64
Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1 1. Lenguajes de descripción de hardware. VHDL 1.1. Lenguajes de descripción de hardware 1.2. VHDL 1.2.1. Presentación del lenguaje VHDL 1.2.2. Objetos, tipos de datos y operadores 1.2.3. Sentencias secuenciales 1.2.4. Sentencias concurrentes 1.2.5. Sentencias estructurales 1.2.6. Unidades básicas de diseño 1.2.7. Descripción de máquinas de estado 1.2.8. Test bench

1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

  • Upload
    lyliem

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 2: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

HDL: Hardware Description Language

Surgen de la necesidad de una herramienta que permita al diseñador afrontar el modelado y simulación de sistemas electrónicos complejos:

• Descomposición en bloques (arquitectura)• Sincronización (Concurrencia y retardo)• Comunicación entre bloques (buses)• Reutilización de código

Estos lenguajes permiten definir los circuitos tanto de forma funcional (cómo funcionan) como estructural (cómo están realizados).

Page 3: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Proceso de diseño de un ASIC con HDL. Es un proceso iterativo dearriba abajo, de niveles de mayor complejidad a menor, para cadanivel:

• Esquema de bloques general (descripción estructural)• Descripción funcional de cada bloque. • Simulación del modelo anterior: permite comparar diversas arquitecturas.• Descripción estructural de cada uno de los bloques del modelo anterior• Simulación.• (...)

Así se seguiría hasta que toda la estructura del circuito estuviera definida en base a puertas elementales o macrocélulas (RAM, ROM...)

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Page 4: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

NIVEL CIRCUITO

NIVEL BLOQUE

NIVEL COMPONENTE

NIVEL CELDA

NIVEL ELEMENTAL

NIVEL SUBCOMPONENTE

Page 5: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

El resultado final del diseño sería una serie de bloques con descripciones estructurales a distintos niveles de complejidad y unos cuantos bloques elementales cuya descripción es funcional y a partir de los cuales se construye toda la estructura de bloques del circuito.

Por ejemplo, un sumador escalable:

XORANDOR

FULL ADDER HALF ADDER

SUMADOR n BITS

Descripción estructural

Descripción funcional

Page 6: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Una vez modelado el circuito es necesario hacer un test de funcionamiento, así se completa el trabajo de diseño con el HDL.

Este es el test bench (banco de pruebas), que responde al siguiente diagrama:

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Generador de

estímulos

Diseñoen

prueba(DUT: design under test)

Estructura de nivel superior (Test Bench)

Page 7: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Generador de estímulos

DUT

OK

Resultados correctos

Errores

Test Bench:

Page 8: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Existen muchos lenguajes de descripción de hardware (Verilog HDL, Zeus HDL, VHDL).

Nosotros estudiaremos el VHDL, (VHSIC Hardware Description Language, VHSIC: Very High Speed Integrated Circuit).

El VHDL es el estándar del IEEE. Surge en 1981 a partir de un proyecto promovido por el departamento de defensa de los EEUU. Se publica en 1985 y en 1987 es homologado por el IEEE (Institute of Electronic and Electrical Engineers).

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Page 9: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Las herramientas actuales permiten no sólo modelar, compilar y simular los diseños, sino también sintentizarlos, es decir, crear la información necesaria para implementar los diseños en un circuito integrado, o programar FPGA’s.

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Implementación de un sumador de 8 bits en una FPGA.

Page 10: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Diseño de un bloque de la FPGA para un sumador de 8 bits

Page 11: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Los pasos a dar para crear un nuevo diseño son:

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Especificación

Modelado VHDL

Descripción de bloques

Simulación y test

Simulación y test para Hw a implementar

Generación de información para fabricación

Fabricación

Independiente del Hardware

Dependiente del Hardware

Page 12: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Diferencia entre los dos tipos de test:

En el primer test se simulará teniendo en cuenta las características físicas que hayamos modelado (retardos, con la sentencia AFTER)

En el segundo test no se tendrán en cuenta esas características descritas, sino que se incluirán aquellas que genere el hardware en el que vamos a implementar el circuito (dependiendo de la tecnología utilizada).

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Page 13: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 14: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Modelo de estructura: componentes y jerarquía

– Descripción de un dispositivo en VHDL:La entidad o entity: interfaz del dispositivo con el exteriorLa arquitectura o architecture: descripción de la funcionalidad que realiza el dispositivo.

– Cualquier elemento modelado en VHDL puede ser usado como un componente (component) de otro diseño.

AND

OR

a

b

d s

entity FUNC isport(a,b,d: in bit;

s: out bit);end FUNC;

architecture A_FUNC of FUNC isbegin

s<= d OR (a AND b) AFTER 4 ns;end A_FUNC;

Page 15: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

– El hardware por definición es concurrente: formado por un mar de puertas lógicas, funcionando en paralelo.

– Elemento básico para modelar el paralelismo: proceso (process).Describe comportamientos y el código interno se ejecuta de forma secuencial.Todos los procesos de una descripción se ejecutan de forma paralela.

– El elemento necesario para comunicar dos procesos es la señal(signal):

Objeto que puede ir variando su valor a lo largo de lasimulación.Tiene asociado una o varias colas de eventos (drivers) quedefine su comportamiento a lo largo del tiempo.

– Cada proceso tiene un conjunto de señales a las que es sensible.

Modelos de concurrencia: procesos, señales y eventos

Page 16: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

architecture ACIR...AND2: process (a,b)

beginc<=a and b after2 ns;

end process AND2;

Modelos de concurrencia: procesos, señales y eventos

a<=1

1. Se para la simulación2. Se calcula el resultado de los procesos (AND2)3. Se programan las colas de eventos de las señales4. El valor de c será 1 dentro de 2ns

2 ns

abdce

d<=01. Se para la simulación2. Se calcula el resultado de los procesos (OR2)3. Se programan las colas de eventos de las señales4. El valor de e será 0 dentro de 1.5ns1.5 ns

c<=1

1. Se para la simulación2. Se calcula el resultado de los procesos (OR2)3. Se programan las colas de eventos de las señales4. El valor de e será 1 dentro de 1.5ns

1.5 ns

En ese instante de la simulación la señal d tiene dos eventos futuros programados.

e<=0

e<=1

En estos eventos se pararía la simulación, pero al no haber procesos sensibles a esas señales, no pasaría nada más.

OR2: process (c,d)begin

e<=c or d after 1.5 ns;end process OR2;

...end ACIR;

Page 17: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

– La simulación de un modelo en VHDL es una simulación dirigida por eventos.

– El simulador mantiene unas listas de eventos (cambios en las señales internas del modelo y también de las entradas y salidas)que se han producido a lo largo de la simulación.

– El ciclo de simulación tiene dos etapas:Primera etapa: las señales actualizan su valor. Esta etapa finaliza cuando todas las señales que debían obtener unnuevo valor en el tiempo actual se simulación han sido actualizadas.Segunda etapa: los procesos que se activan (porque hacambiado alguna de las señales a la que son sensibles) seejecutan hasta que se suspenden.Cuando todos los procesos se hayan suspendido, el tiempode simulación avanza hasta el siguiente instante de tiempoen el que haya un evento programado.

Modelos de tiempo: ciclo de simulación

Page 18: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

– Importante: siempre hay un cierto retardo entre el momento en que un proceso coloca un nuevo valor en la cola de eventos de una señal y el momento en el que esta señal toma el valor programado en la cola de eventos.

Variable: actualiza su contenido en cuanto se ejecuta una asignación sobre ella.Señal: se actualiza sólo cuando todos los procesos se hayan ejecutado y estén suspendidos.

Modelos de tiempo: ciclo de simulación

Page 19: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 20: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

OBJETOS, TIPOS DE DATOS Y OPERADORES

Objetos del VHDL? Constantes

constant identificador {, ...}: tipo [:=expresión];? Variables

variable identificador {, ...}: tipo [:=expresión];? Señales

signal identificador {, ...}: tipo [:=expresión];? Ficheros

file identificador {, ...}: tipo_fichero [is dirección "nombre"];

Tipos de datosDetermina el conjunto de valores que puede asumir y las operaciones que se podrán realizar.Declaración de tipos de datos:

type identificador is definición_tipo

Page 21: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Tipos de datosstd_logic

Definido en el paquete std_logic_1164 de la biblioteca IEEElibrary IEEE;use IEEE.std_logic_1164.all;

Su definición:type std_logic is ('U', - No inicializado

'X', - Forzando desconocido'0', - Forzando cero'1', - Forzando uno'Z', - Alta impedancia'W', - Desconocido débil'L', - Cero débil'H', - Uno débil'-'); - Redundante

OBJETOS, TIPOS DE DATOS Y OPERADORES

Page 22: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Operadores

VHDL tiene predefinidos los operadores aritméticos, relacionales, lógicos y de concatenación de cualquier lenguaje de programación común (+,-,*, or, and,...) más los operadores de desplazamiento para vectores unidimensionales.

OBJETOS, TIPOS DE DATOS Y OPERADORES

Page 23: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 24: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

SENTENCIAS SECUENCIALES

Aquellas que nos permiten describir o modelar la funcionalidad de un componente.Pueden encontrarse en los procesos o en los cuerpos de los subprogramas.Pueden ser:

Sentencias de asignación (a señal y a variable)Sentencias condicionales (if, case)Sentencias iterativas (loop, exit, next)Otras sentencias (wait, assert, null)Llamadas a subprogramas

Page 25: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Sentencias secuenciales:

Pueden ser:Sentencias de asignación (a señal y a variable)Sentencias condicionales (if, case)Sentencias iterativas (loop, exit, next)Otras sentencias (wait, assert, null)Llamadas a subprogramas

SENTENCIAS SECUENCIALES

Page 26: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Asignación a señalSintaxis

nombre_señal<= valor {after expresion_tiempo}

Al ejecutarse una de estas sentencias, no se está modificando el contenido de la señal, sino que se está modificando el contenido de su cola de eventos: se está proyectando un posible cambio del valor futuro de la señal, que algunas veces puede no llegar a producirse.

process (a,b)begin

a<=b;b<=a;

end process;

Se intercambia el valor de las dos señales, ya que cuandose ejecuta la segunda sentencia, el valor de a aún no reflejala asignación a<=b.

Sentencias secuenciales de asignación

Page 27: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Asignación a variable:

Reemplaza el valor actual de la variable con el valor especificado por una expresión.Sintaxis

nombre_variable := expresion;

La variable toma el nuevo valor en el momento de ejecutarse la sentencia, de forma que las sentencias que se ejecuten a continuación ya pueden ver ese nuevo valor.

a:=b;b:=a;

No se intercambian las dos variables.Tmp := a;a:=b;b:=Tmp;

Ahora si.

Sentencias secuenciales de asignación

Page 28: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

La sentencia ifSintaxis

if condicion then sentencias_secuenciales{elsif condicion then sentencias_secuenciales}[else sentencias_secuenciales]end if;

La sentencia caseSintaxis

case expresion iswhen valor => sentencias_secuenciales;{when others=> sentencias_secuenciales;}end case;

La sentencia loopSintaxis

[while condicion_boolena | for control_repeticion] loopsentencias secuencialesend loop;

Sentencias condicionales e iterativas

Page 29: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 30: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Las sentencias concurrentes se ejecutan en paralelo.Las encontraremos en arquitecturas de los modelos y no estarán contenidas en ningún proceso.

Sentencia process.Asignación a señal concurrente.Llamada concurrentes a subprogramas.

SENTENCIAS CONCURRENTES

Page 31: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

La sentencia process

Es una sentencia concurrente que define su comportamiento a través de sentencias secuenciales.Sintaxis

[etiqueta]: process (nombre_señal {, ...})declaraciones

beginsentencias_secuenciales;

end process [etiqueta];

Asignación a señal concurrente

Sintaxisnombre_señal <= forma_onda;

Se comporta de la misma forma que la asignación secuencial. Su principal diferencia radica en que se encuentra en las arquitecturas, en lugar de encontrarse en procesos osubprogramas.Es sensible a las señales que se encuentren a la derecha de laasignación.

SENTENCIAS CONCURRENTES

Page 32: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Asignación a señal concurrenteEjemplo

Asignación concurrentea<=b;

Asignación secuencial equivalenteprocess (b)begin

a<=b;end process;

SENTENCIAS CONCURRENTES

Page 33: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 34: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Es el conjunto de sentencias dedicadas a la descripción de estructura del hardware.

Son sentencias concurrentes, ya que se ejecutan en paralelo con cualquier otra sentencia concurrente de la descripción.

Componentes

Para poder usar un componente VHDL se debe:

Declarar el componente

Hacer referencia o copia del componente

SENTENCIAS ESTRUCTURALES

Page 35: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Declaración del componente:

component nombre_componente[generic (lista_generic);][port (lista_puertos);]end component [nombre_componente];

La declaración del componente debe coincidir con la declaración de la entidad de dicho diseño: debe tener los mismos puertos, definidos del mismo tipo y dirección.

Referencia o copia del componente:

Es una sentencia recurrente que se ejecuta en paralelo con las demás sentencias concurrentes de la arquitectura.Cada copia o referencia a un componente se ejecutará cada vez que se produzca un evento en alguna de las señales conectadas a sus puertos de entrada o de entrada/salida.

etiqueta_referencia: nombre_componente[generic map (lista_asociación);][port map(lista_asociación);]

Componentes

Page 36: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Declaración “Generate”:

Es una sentencia recurrente que se ejecuta en paralelo con las demás sentencias concurrentes de la arquitectura. Se usa para describir estructuras repetitivas de componentes: matrices de componentes:

architecture SUM16_ARCH of SUM16 iscomponent FAport(A,B,CIN: in std_logic;S,COUT: out std_logic );

end component;signal CARRY : std_logic_vector (16 downto 0);

beginSUMA : for I in 0 to 15 generateCELL : FA port map (A16(I), B16(I), CARRY(I),

S16(I), CARRY(I+1));end generate SUMA;

CARRY(0) <= '0';OVF <= CARRY(16);

end SUM16_ARCH;

Matrices de componentes

Page 37: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 38: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

UNIDADES BÁSICAS DE DISEÑO

Cinco tipos de unidades de diseño:La declaración de entidad (entity)La arquitectura de una entidad (architecture)La configuración (configuration)La declaración de un paquete (package declaration)El cuerpo del paquete (package body)

Page 39: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Declaración de entidadDefine la interfaz del dispositivo con su entorno.Sintaxis:

entity identificador is[genéricos][puertos][declaraciones][begin sentencias]end [entity][identificador];

Ejemploentity mux21 isport ( a : in std_logic;

b : in std_logic;crtl : in std_logicz : out std_logic);

Entidad

abc

z

Page 40: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Define la funcionalidad de la entidad que representa.Describe un conjunto de operaciones sobre lasentradas de la entidad que determinan el valor de las salidas en cada momento.Sintaxis

architecture identificador of identificador_entidad is[declaraciones]begin[sentencias concurrentes]

end [architecture][identificador];

Arquitectura

Page 41: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Define la funcionalidad del dispositivo mediante un algoritmo ejecutado secuencialmente.No se hace nunguna referencia a la estructura que se seguirá para implementar el algoritmo en hardware.

Arquitectura: estilo algorítmico

Page 42: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Refleja la funcionalidad de un dispositivo mediante un conjunto de ecuaciones ejecutadas concurrentemente, que determinan el flujo que van a seguir los datos entre módulos encargados de implementar las operaciones.

Existe una correspondencia directa entre el código y su implementacion hardware.

Arquitectura: estilo flujo de datos

Page 43: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Consiste en definir la arquitectura como un conjunto de componentes interconectados mediante señales.No incluye ningún tipo de funcionalidad.

Arquitectura: estilo estructural

Page 44: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 45: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

Máquina de Moore:

Máquina de Mealy:

CIRC.COMB.

ENTRADABIESTABLES

CIRC.COMB.SALIDA

CIRC.COMB.

ENTRADASALIDA

BIESTABLES

St

StEt

Et

Normalmentemás compacta

Page 46: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Estilo explícito 1.

La máquina de estado se describe utilizando:Un proceso combinacional para describir la función del próximo estado y las asignaciones de salida .Un proceso secuencial para describir las asignaciones sobre el registro de estados en la transición activa de la señal de reloj.

entity FSM isport (reloj, reset: in std_logic;

x1, ... xn : in std_logic;z1, ... zm : out std_logic);

end FSM;

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

Page 47: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

Estilo explícito e1

architecture e1 of FSM istype estados is (s0, ... sp);signal estado: estados;signal nxt_estado: estados;

beginprocess (estado, x1, ... xn)begin

case s0 => -- acciones del estado so:--asignación de est. próximo--asignaciones de salida

case sp =>...

end case;end process;

process (reset, reloj)beginif (reset='0') then

estado <=s0;elsif (relok'event and reloj ='1') then

estado<=nxt_estado;end if;end process;

end e1;

Page 48: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

Ejemplo

entity FSM isport( CLK, RESET, X : in std_logic;

Z : out std_logic);end FSM;

architecture E1 of FSM is

type ESTADOS is (S0, S1, S2, S3);signal ESTADO, NXT_ESTADO: ESTADOS := S0;

begin

process (RESET, CLK)begin

if RESET = '0' then ESTADO <= S0;elsif (CLK'event and CLK='1') thenESTADO <= NXT_ESTADO;

end if;end process;

process (ESTADO, X)begin

case ESTADO iswhen S0 => Z <= '0';

if X='0' then NXT_ESTADO <= S1;else NXT_ESTADO <= S2;

end if;when S1 => Z <= X;

NXT_ESTADO <= S0;when S2 => Z <= '0';

if X='0' then NXT_ESTADO <= S1;else NXT_ESTADO <= S3;

end if;when S3 => z <= '1';

if X='1' then NXT_ESTADO <= S1;end if;

end case;end process;

end E1;

Page 49: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Estilo explícito 2

Se describe la máquina de estados utilizando un único proceso secuencial con una sentencia de espera de reloj.

Todas las acciones tienen lugar en sincronía con la señal de reloj, por lo que sólo es posible describir máquinas de Moore.

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

architecture e2 of FSM istype estados is (s0, ... sp);signal estado: estados;

beginprocessbegin

wait until reloj = '1';if (reset='0') then

estado:= s0;else

case estado iswhen s0=> -- acciones

del estado s0

... -- transición de estado y-- asignaciones de salida

when sp => ...

end case;end if;

end process; end e2;

Page 50: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Estilo explícito e2

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

entity FSM isport( CLK, RESET, X : in std_logic;

Z : outstd_logic);

end FSM;

architecture E2 of FSM is

type ESTADOS is (S0, S1, S2, S3);signal ESTADO: ESTADOS := S0;

begin

processbegin

wait until CLK ='1';if RESET ='0' then ESTADO <= S0;

else

case ESTADO iswhen S0 => Z <= '0';

if X='0' then ESTADO <= S1;else ESTADO <= S2;

end if;when S1 => Z <= X;

ESTADO <= S0;when S2 => Z <= '0';

if X='0' then ESTADO <= S1;else ESTADO <= S3;

end if;when S3 => z <= '1';

if X='1' then ESTADO <= S1;end if;

end case;end if;

end process;end E2;

Page 51: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Estilo explícito 3

Se describe utilizando un único proceso secuencial con las señales de reloj, reset, registros de estado y entradas en la lista de sensibilidad.

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

architecture e3 of Fsm istype estados is (s0,... sp);signal estado: estados := s0;beginprocess (reset, estado, x1, ...

xn)begin

..... --lógica combinatorialif (reset ='0') then

estado <= s0elsecase estado is

when s0=> -- acciones del estado s0;

-- transición de estado-- asignaciones a registro de entradawhen sp=>...

end case;end if;...

end process;end e3;

Page 52: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

Ejemplo

entity FSM isport( CLK, RESET, X : in std_logic;

Z : out std_logic);end FSM;

architecture E3 of FSM is

type ESTADOS is (S0, S1, S2, S3);signal ESTADO: ESTADOS := S0;

begin

process (RESET, ESTADO, CLK)begin

case ESTADO iswhen S1 => Z<= X;when S3 => Z<= '1';when others => Z<='0';end case;

if RESET = '0' then ESTADO <= S0;elsif CLK'event and CLK = '1' thencase ESTADO is

when S0 => if X='0' then ESTADO <= S1;else ESTADO <= S2;end if;

when S1 => ESTADO <= s0;when S2 => if X='0' then ESTADO <= S1;

else ESTADO <= S3;end if;

when S3 => if X='1' then ESTADO <= S1;end if;

end case;end if;

end process;end E3;

Page 53: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

Estilo implícito

Se describe la máquina de estados utilizando un proceso con varias sentencias de espera de la señal de reloj.Recibe el nombre de estilo descriptivo implícito debido a que además de los P estados explícitos en la declaración del tipo "estados" de la señal de estado, la descripción incluye los N estados introducidos por las sentencias de espera.

El número de estados total de la máquina es N*P.Sólo es posible describir máquinas de Moore.

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

architecture implicita of FSM istype estados is (s0, ... sp);signal estado: estados :=s0;

beginprocessbegin

....

....wait until reloj ='1';

....wait until reloj='1';....

end process;end implicita;

Page 54: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

Ejemploentity FSM is

port( CLK, RESET, X : in std_logic;Z : out std_logic);

end FSM;

architecture E4 of FSM is-- implicitabegin

processbegin

-- S0wait until CLK ='1';z <= '0';if X='1' thenwait until CLK = '1';

-- S2Z<='0';if X='1' then

wait until CLK ='1';

-- S3Z<='1';while X = '0' loopwait until CLK = '1';Z <= '1';

end loop;end if;

end if;-- S1

wait until CLK = '1';Z <= X;

end process;end E4;

Page 55: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

DESCRIPCIÓN DE MÁQUINAS DE ESTADO

Para el ejemplo anterior, el diagrama de estados sería:

S0Z=‘0’

S2Z=‘0’

S1Z=X

S3Z=‘1’

X=0

X=1

X=1

X=1 X=0

X=0

Page 56: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

OTROS TEMAS IMPORTANTES

Simulación de retardo de transporte e inercial (AFTER, TRANSPORT):

Inercial:library IEEE;

USE IEEE.std_logic_1164.ALL;ENTITY buf ISPORT ( a : IN std_logic;

b : OUT std_logic);END buf;ARCHITECTURE buf OF buf ISBEGIN

b <= a AFTER 20 ns;END buf;

Transporte:library IEEE;

USE IEEE.std_logic_1164.ALL;ENTITY delay_line ISPORT ( a : IN std_logic;

b : OUT std_logic);END buf;ARCHITECTURE delay_line OF delay_line ISBEGIN

b <= TRANSPORT a AFTER 20 ns;END buf;

Page 57: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

OTROS TEMAS IMPORTANTES

Sentencia de espera (WAIT), tres usos:

WAIT FOR: una determinada cantidad de tiempo...WAIT FOR 10 ns;...

WAIT ON: cambios en la señal...WAIT ON a, b;...

WAIT UNTIL: una expresión sea verdadera...WAIT UNTIL clk=‘1’ and clk’event;...

Page 58: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

OTROS TEMAS IMPORTANTES

TextIO: Input/Output de texto:...PROCESSVARIABLE linea : line;FILE fichout : TEXT IS OUT “xxx.txt";

BEGIN...WRITE(linea, “ A = “);WRITE(linea, A);- - Salida por pantallaWRITELINE(OUTPUT, linea);- - Salida por ficheroWRITELINE(fichout, linea);...

END PROCESS;...PROCESSFILE fichin : TEXT IS IN “yyy.txt";VARIABLE linea : line;

BEGIN...READLINE(fichin, linea);READ(linea, A);...

END PROCESS;...

Page 59: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

1. Lenguajes de descripción de hardware. VHDL

1.1. Lenguajes de descripción de hardware1.2. VHDL

1.2.1. Presentación del lenguaje VHDL1.2.2. Objetos, tipos de datos y operadores1.2.3. Sentencias secuenciales1.2.4. Sentencias concurrentes1.2.5. Sentencias estructurales1.2.6. Unidades básicas de diseño1.2.7. Descripción de máquinas de estado1.2.8. Test bench

Page 60: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

TEST BENCH

Un test bench se usa para verificar la funcionalidad del diseño. El test bench esta en el nivel más alto de la jerarquía del diseño. El test bench crea una instancia (una copia) del DUT, lo estimula y comprueba los resultados.

La única característica que diferencia el test bench de un diseño de un circuito es que no tiene entradas y salidas, que genera internamente y secuencialmente una serie de señales con las que estimula la instancia del circuito que está en prueba.

Page 61: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

TEST BENCH

library ieee ;use ieee.std_logic_1164. all;use std.textio.all;use ieee.std_logic_textio.all;

-- El test bench es una caja negra sin entradas ni salidas que funciona de forma autonomaENTITY FA_TB is END FA_TB ;

ARCHITECTURE FA_TB_arch of FA_TB IS -- Declaración de señales, variables, componentes, funciones, procedimientos que se usaran

COMPONENT FA IS port(A: IN std_logic;B: IN std_logic;CIN: IN std_logic;S: OUT std_logic;COUT: OUT std_logic);END COMPONENT ;

CONSTANT period : time := 50 ns ;

SIGNAL A_IN, B_IN, CIN_IN, COUT_OUT, S_OUT, CLOCK : std_logic := '0' ;SIGNAL done : BOOLEAN := FALSE ;SHARED VARIABLE Cycle : NATURAL := 0 ;

PROCEDURE PrintStatus ISVARIABLE lout : line ; BEGIN

WRITE(lout, Cycle);WRITE(lout, " ");WRITE(lout, CLOCK);WRITE(lout, " A = ") ;WRITE(lout, A_IN) ;WRITE(lout, " B = ") ;WRITE(lout, B_IN) ;WRITE(lout, " CIN = ") ;WRITE(lout, CIN_IN) ;WRITE(lout, " COUT = ") ;WRITE(lout, COUT_OUT) ;WRITE(lout, " S = ") ;WRITE(lout, S_OUT) ;--Por defecto, la salida estandar es la pantallaWRITELINE(OUTPUT, lout) ;

END PrintStatus ;

BEGIN -- En todo momento (Concurrente) se asignan las señales a las entradas/salidas del DFFU1: FA

PORT MAP(A => A_IN,B => B_IN,CIN => CIN_IN,S => S_OUT,COUT => COUT_OUT) ;

ClkProcess: PROCESS(done, CLOCK) -- Proceso (Concurrente) que va marcando el reloj con un periodo fijado por period

BEGINIF (NOT done) THEN

IF (CLOCK = '1') THENCycle := Cycle + 1 ;END IF ;

CLOCK <= NOT CLOCK after period / 2 ;END IF ;

END PROCESS ;TestBench: PROCESS-- Proceso Concurrente que fija los valores de entrada para el test

BEGINwait until (CLOCK = '0') ;A_IN <= '0';B_IN <= '1';CIN_IN <= '0';wait for period * 1 ;CIN_IN <= '1';wait for period * 1 ;done <= TRUE ;WAIT ;

END PROCESS ;Monitor: PROCESS

FILE fichout : TEXT IS OUT "FA.txt";VARIABLE fout : line;BEGIN

if done = TRUE thenwait;

elseWAIT FOR 5 ns; PrintStatus ;

end if;END PROCESS ;

END FA_TB_arch ;

Page 62: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

VHDL PARA SINTESIS

Proceso: descripción disminuyendo el nivel de abstracción hasta llegar a descripciones puramente estructurales

Cualquier descripción VHDL es sintetizable:

- No tiene por qué ser la síntesis óptima.- La complejidad del circuito dependerá de cómo se haga la descripción.

Mapeado tecnológico. Descripción de los componentes de una determinada librería que representa una determinada tecnología con la que se realizará el circuito físico.

Page 63: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

VHDL PARA SINTESIS

Restricciones de la descripción:

¿cómo la herramienta de síntesis interpreta las instrucciones VHDL?

Siempre que se pueda hay que facilitar el trabajo al sintetizador.Los fabricantes dan ciertas recomendaciones para las descripciones:

-Evitar cláusulas temporales-Los sintetizadores ignoran/prohiben los retardos en la asignación-No se puede asignar dos valores a una misma señal en la misma sentencia

-Identificar cada puerta con claridad

-Evitar sentencias de espera WAIT. Aunque no esta prohibido pero algunos sintetizadores tienen dificultades. Es mejor utilizar listas de sensibilidad

Page 64: 1. Lenguajes de descripción de hardware. VHDL · Estos lenguajes permiten definir los circuitos tanto de forma funcional ... – La simulación de un modelo en VHDL es una simulación

Universidad Antonio de Nebrija Tecnología electrónica II. Tema 1

VHDL PARA SINTESIS

Restricciones de la descripción:

-Señales de reloj.-Sólo se permite una señal de reloj por proceso-Se debe especificarse claramente el flanco de reloj (clk=‘1’ and clk’event)-Esta condición sólo puede ponerse una vez en el proceso-No se puede poner else en el if en el que se usó la condición

-Utilizar CASE mejor que IF anidados. Las herramientas los sintetizan mejor.

-Utilizar el estilo indicado para las máquinas de estado.

-En sentencias condicionales para descripción combinacional, es obligatorio poner todos los casos de la condición (else, when others..)