LENGUAJES DE DESCRIPCIÓN
DE HARDWARE (HDL)
Ing. José Arturo Marín Thames
Introducción
El proceso de búsqueda de un diseño
digital con compuertas lógicas que sea
eficiente, casi siempre termina en un
proceso manual de simplificación de
tablas de verdad o la conversión de
una máquina de estados finitos en un
esquema de compuertas lógicas.
2
Introducción
Diseño combinacional utilizando herramientas de software
3
Desarrollo de HDL
En los años 90 los diseñadores
electrónicos encontraron que era más
productivo si se trabajaba en un nivel
de abstracción superior, especificando
solo la función lógica y utilizando
herramientas CAD (Diseño Asistido
por Computadora) para producir el
diseño óptimo de compuertas.
4
Desarrollo de HDL
Descripción Verilog de un FLIP FLOP
5
Desarrollo de HDL
Se puede hacer una analogía con los
lenguajes de programación (software):
Nivel de abstracción
Código máquina Transistores
Ensamblador Netlists
Lenguajes de alto nivel HDL
6
Historia de los HDL
Diversos grupos de investigadores crean
lenguajes de descripción de hardware
buscando solución a los problemas de
diseño digital de sistemas complejos.
Ejemplos:
1. IDL por IBM
2. TI – HDL por Texas Instruments
3. Zeus por General Electric
7
Historia de los HDL
VHDL (Very High Speed Integrated Circuit
Hardware Description Language).
Nace como proyecto del Departamento de
Defensa (DoD) de EEUU (año 1982) para
disponer de una herramienta estándar,
independiente para la especificación
(modelado y/o descripción) y
documentación de los sistemas
electrónicos.
El IEEE lo adopta y estandariza en 1987.
8
VHDL
En 1983, al grupo formado por las empresas
Intermetrics, IBM y Texas Instruments se le
adjudicó un contrato para desarrollar el VHDL.
En 1985, la versión final del lenguaje bajo contrato
gubernamental se dio a conocer : VHDL Versión
7.2
Tras colaboraciones de industrias y universidades
en 1987 VHDL se convierte en Standard IEEE
1076-1987 y en 1988 standard ANSI
En 1993 fue revisado el Standard VHDL
La última revisión se realizó en 2002.
9
Verilog
Fue desarrollado por Gateway Design
Automation en 1984.
La compañía Gateway fue adquirida por
Cadence en 1989 y Verilog fue hecha
un estándar abierto en 1990 bajo el
control de Open Verilog International.
Verilog se convirtió en un lenguaje
estándar de IEEE en 1995 y actualizado
en 2001.
10
Características
Los HDL son usados para modelar la arquitectura y
comportamiento de sistemas electrónicos discretos.
Se utilizan en la fase de diseño.
Necesitan de un simulador lógico que es una
herramienta necesaria para reproducir el
comportamiento del sistema modelado.
Permite la verificación del sistema diseñado.
Actualmente existen herramientas software que
permiten pasar de dichas descripciones a diseños a
nivel de compuertas lógicas (SÍNTESIS).
11
Características del diseño CAD
Concepción del diseño
INGRESO DE DISEÑO
Captura esquemática VHDL o Verilog
Síntesis
Simulación funcional
NO
¿Diseño
correcto?
SI
Diseño físico
Simulación de
tiempo
NO ¿Requisitos de
tiempo satisfechos?
SI
12
Configuración de
chip
INGRESO DE DISEÑO
Concepción y planteo de la idea
estructura general. Se realiza
manualmente y requiere del criterio,
experiencia e intuición.
Existen dos métodos para el ingreso
del diseño.
13
CAPTURA ESQUEMÁTICA
Un circuito lógico puede describirse
dibujando compuertas lógicas e
interconectándolas.
Se utilizan las herramientas gráficas
de la computadora.
Se vuelve su uso muy complicado de
usar cuando trabajamos con circuitos
muy grandes.
14
CAPTURA ESQUEMÁTICA
A B C
15
Lenguajes HDL
Como se explicó se apoyan más en la funcionalidad
del sistema y no tanto en el aspecto físico de la
circuitería.
El diseño se ingresa mediante la escritura de código .
Las señales se representan como variables de código
y las funciones se expresan mediante la asignación de
valores a dichas variables.
En HDL puede hacerse un diseño jerárquico, en
donde circuitos pequeños sean incorporados como
partes de otros más grandes.
La modularidad lograda en Verilog y VHDL hace que
la definición de entradas y salidas sea transparente
para el usuario, en caso de usarlas como funciones
recursivas en un diseño más grande.
16
Lenguajes HDL
17
Diseño de un sumador completo FULL ADDER con VHDL y Verilog.
VHDL
La biblioteca de
library IEEE; use IEEE.STD_LOGIC_1164.all; funciones y
equivalencias
entity sillyfunction is
port (a, b, c: in STD_LOGIC; Declaración de
y: out STD_LOGIC); la entidad. lista
end; de los nombres
de modulo y sus
entradas y
architecture synth of sillyfunction is salidas.
begin
y __ ((not a) and (not b) and (not c)) or El cuerpo de la
(a and (not b) and (not c)) or arquitectura
(a and (not b) and c); indica lo que el
end; módulo hace
18
Verilog
module sillyfunction (input a, b, c, output y);
assign y = ~a & ~b & ~c |
a & ~b & ~c |
a & ~b & c;
endmodule
• Un modulo Verilog comienza con el nombre del módulo y un
listado de entradas y salidas.
•La instrucción assign describe la lógica combinacional del
módulo. 19
Síntesis
Es el proceso mediante el cual se
genera un circuito lógico a partir de
una especificación de un diagrama
esquemático o de código HDL.
El proceso de compilación en un
circuito de compuertas forma parte de
la síntesis.
20
Síntesis
21
Simulación funcional
La herramienta utilizada se conoce como
simulador funcional.
Durante la simulación las entradas son
aplicadas a un módulo y se observa el
comportamiento de las salidas para
verificar que el módulo funciona
correctamente.
La simulación lógica es fundamental para
probar un sistema antes de construirlo.
22
Simulación funcional
23
Diseño físico
Las herramientas de
diseño físico mapean
un circuito
especificado mediante
expresiones lógicas en
una forma física en la
que se usan los
recursos disponibles
en el chip.
24
Ventajas de HDL
Facilita las correcciones en el diseño debidas a
fallos de diseño o cambio de especificaciones.
Si bien, el diseño final no suela estar tan optimizado
como si lo hubiera realizado un humano, la mayoría
de las veces es necesario sacrificar un mínimo en
las prestaciones, para poder llevar a cabo el
proyecto.
Para ello se necesita la disponibilidad de dichas
herramientas, las librerías de síntesis del fabricante
y sus archivos de tecnología.
25
Ventajas de HDL
El lenguaje soporta jerarquía de funciones.
Un sistema digital puede ser modelado como
un conjunto de componentes
interconectados; a su vez cada componente
puede ser modelado como un conjunto de
subcomponentes.
El lenguaje soporta metodologías de
diseño diferentes: top-down, bottom-up, o
mixtas.
26
Ventajas de HDL
Soporta modelos de tiempos síncronos y
asíncronos.
Posibilidad de implementar distintas
técnicas de modelado digital (descripciones
de máquinas de estados finitos (FSM),
descripciones algorítmicas, redes de Petri y
ecuaciones Booleanas.
El lenguaje es público y "not proprietary"
(especialmente en el caso del VHDL).
27
Desventajas de HDL
Supone un esfuerzo de aprendizaje, ya que
prácticamente se puede considerar como nueva
metodología.
Necesaria la adquisición de nuevas herramientas:
– Simuladores
– Sintetizadores de HDL, teniendo que mantener el
resto de las herramientas para otras fases del diseño.
El uso de estos lenguajes hace que involuntariamente
se pierda un poco de control sobre el aspecto físico del
diseño, dándole una mayor importancia a la
funcionalidad de dicho diseño.
28
Composición de un diseño VHDL
29
DECLARACIÓN DE ENTIDAD
La entidad modela la interfaz del circuito,
indicando sus terminales de entrada y
salida, parámetros de diseño, declaraciones
de tipos, constantes, etc.
entity <identificador> is
[generic (lista_de_genéricos);]
[port (lista_de_puertos);]
{declaraciones}
[begin sentencias]
end [entity] [identificador];
30
Ejemplos de entidad
entity sumador_total is
port (a,b,c: in bit;
s,c: out bit);
end sumador_total;
entity Mux21 is
generic (t_delay:time:=5ns);
port (a, b: in bit;
canal : in bit:=‘0’;
z: out bit);
end Mux21;
31
DECLARACIÓN DE
ARQUITECTURA
Son las unidades definidas en VHDL para describir el
funcionamiento interno de las entidades. Describe un
conjunto de operaciones sobre las entradas de la entidad,
que determinan el valor de las salidas en cada momento.
Para una entidad pueden existir varias arquitecturas.
Pueden modelar el funcionamiento de una entidad según tres
niveles de abstracción:
1. Algorítmico: descripciones al estilo de Sw de alto
nivel, que reflejan la funcionalidad de los módulos .
2. Flujo de Datos: descripciones basadas en ecuaciones y
expresiones que reflejan el flujo de datos y las dependencias
entre datos y operaciones.
3. Estructural: se especifican componentes, conexiones
y puertos de E/S
32
DECLARACIÓN DE
ARQUITECTURA
architecture identificador of
identificador_entidad is
{declaraciones}
begin
{sentencias_concurrentes}
end [architecture] [identificador];
33
Ejemplos de arquitectura
architecture algoritmico of Mux21 is
begin
process (a,b, canal)
begin
if (canal=‘0’) then
z<=a;
else
z<=b;
end if;
end process;
end algoritmico;
34