Capítulo 2: LENGUAJES DE DESCRIPCIÓN DE HARDWARE: VHDL

Anuncio
Capítulo 2:
LENGUAJES DE DESCRIPCIÓN DE HARDWARE:
VHDL
– Generalidades
– Ventajas e inconvenientes de los HDL´s
– Características generales del VHDL
– Modelo del Hw
– Introducción al lenguaje VHDL
Lenguajes de descripción de hardware
(HDLs)
• Estos lenguajes fueron desarrollados para hacer
frente a la creciente complejidad de los diseños.
• Se puede hacer una analogía con los que se pueden
llamar lenguajes de descripción de software:
Lenguajes de descripción de hardware
(HDLs)
• Los HDLs son usados para modelar la arquitectura y
comportamiento de sistemas electrónicos discretos.
• Se utilizan en la fase de diseño
• Necesidad de Simulador lógico
– 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 puertas: SÍNTESIS
Lenguajes de descripción de hardware (HDLs).
Síntesis lógica
Síntesis lógica: convierte una descripción de un sistema
digital mediante un HDL en una implementación
tecnologíca.
Puertas
Descripción HDL:
library ieee;
use ieee.std_logic_1164.all;
entity puertas is
port ( A, B, C : in std_logic;
Y:
out std_logic
);
end puertas;
ARCHITECTURE a of puertas is
begin
Y <= (A and B) or
end a;
C;
Síntesis
Lenguajes de descripción de hardware (HDLs).
Síntesis lógica
• El hecho de realizar una síntesis lógica obliga a ciertas
restricciones en la tarea de realizar las descripciones
con HDLs.
• No se pueden utilizar todas las construcciones de los
lenguajes, y las que están permitidas hay que utilizarlas
adecuadamente.
• Cada uno de los sintetizadores que existen actualmente
en el mercado tienen unas restricciones distintas, si
bien, son muy parecidas en cada uno de ellos.
Ventajas del uso de HLDs
• El lenguaje es independiente de la tecnología:
– El mismo modelo puede ser sintetizado en librerías
de distintos vendedores.
– Reducción de la dependencia con el fabricante de
ASICs, ya que la portabilidad a otra tecnología es
mucho más rápida.
– Reutilizar el diseño en componentes tan distintos
como ASICs o FPGAs con un esfuerzo mínimo.
Ventajas del uso de HLDs
• Soportan tres estilos de descripción básicos:
– DESCRIPCIÓN COMPORTAMENTAL (behavioral)
– DESCRIPCIÓN DE FLUJO DE DATOS (data-flow)
– DESCRIPCIÓN ESTRUCTURAL
(estructural)
Un diseño puede ser descrito con una
combinación de los tres estilos.
Ventajas del uso de HLDs
Se puede verificar la funcionalidad del diseño muy
pronto en el proceso de diseño.
La simulación del diseño a tan alto nivel, antes de la
implementación a nivel de puertas, permite testar la
arquitectura y rectificar decisiones en las primeras
fases de diseño, con un esfuerzo mucho menor que si
se realizase en fases posteriores.
Ventajas del uso de HLDs
• Sencillez
– Como la descripción se centra más en la
funcionalidad que en la implementación, resulta más
sencillo para una persona comprender qué función
realiza el diseño a partir de una descripción HDL que
a partir de un esquemático de interconexión de
puertas
begin
Y <= (A and B) or
end a;
C;
Ventajas del uso de HLDs
• Ahorro de tiempo
– Facilita las correcciones en el diseño debidas a fallos
de diseño o cambio de especificaciones.
– La existencia de herramientas comerciales
automáticas (sintetizadores RTL) que permiten crear
descripciones gate-level a partir de los modelos a
nivel RTL
– 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.
Ventajas del uso de HLDs
• El lenguaje puede ser usado como un medio
de intercambio entre los fabricantes de
ASICs y los usuarios de herramientas CAD.
– Diferentes vendedores de ASICs pueden suministrar
descripciones HDL de sus componentes a
diseñadores de sistemas. Los usuarios de
herramientas CAD pueden usar esta descripción para
capturar el comportamiento de este diseño a un nivel
de abstracción alto para la simulación funcional.
Además, se están convirtiendo en los lenguajes de
simulación más utilizados por los distintos
vendedores.
Ventajas del uso de HLDs
• El lenguaje también puede ser usado como
medio de comunicación entre diferentes
herramientas CAD y CAE.
– Un programa de captura de esquemáticos puede ser
utilizado para generar descripciones HDL del diseño,
lo cual puede ser usado como entrada a un
simulador.
Ventajas del uso de HLDs
• La propia descripción en el lenguaje de alto nivel sirve
como especificación del comportamiento del sistema a
diseñar (tanto a nivel funcional como las restricciones
temporales), y el interface con el resto del sistema.
– Los modelos descritos con estos lenguajes, pueden
ser verificados fácilmente y de forma precisa por
simuladores definidos en base a estos HDL.
– Además, cumple con un requerimiento muy
importante en toda especificación: no es ambiguo.
Asimismo sirve como documentación del diseño.
Ventajas del uso de HLDs
• Los "Test Bench" pueden ser escritos en el
mismo lenguaje que con el que han sido
modelados los diseños (HDL).
– Esto permite un mejor manejo del modelo, ya que se
puede asociar el modelo a sus estímulos de
simulación.
– No limitamos el uso de dichos estímulos a un
determinado simulador, pudiendo ser reutilizados
dichos estímulos aunque se use un simulador
distinto.
– Los retardos de propagación y limitaciones
temporales, pueden ser descritos con estos HDL
Ventajas del uso de HLDs
• El lenguaje soporta jerarquía;
– 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.
Ventajas del uso de HLDs
• 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 propietary" (especialmente
en el caso del VHDL).
Ventajas del uso de HLDs
• Es un estándar ANSI e IEEE; por lo tanto, los modelos
descritos en estos lenguajes (VHDL o VERILOG) son
totalmente portables.
• No hay limitaciones impuestas por el lenguaje en el
tamaño del diseño.
– Los HDL tienen elementos que permiten el diseño a
gran escala, de forma fácil; por ejemplo,
componentes, funciones, procedimientos, paquetes.
– La capacidad de definir tipos de datos sofisticados,
suministra la potencia de describir y simular nuevos
diseños a un nivel de abstracción en el cual aún no
se barajan detalles de la implementación
Ventajas del uso de HLDs
• El uso de genéricos y atributos en los modelos facilitan
la labor de backannotation de información
proviniente del dominio físico después de haber
realizado el "placement and routing".
• Los genéricos y atributos facilitan la descripción de
modelos parametrizables. El modelo, a través de los
atributos, puede contener información del diseño en
sí mismo, no solo de la funcionalidad: por ejemplo,
informaciones tales como el área y velocidad.
Inconvenientes del uso de HDLs
• 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.
Historia de VHDL
– Diversos grupos de investigadores empiezan a crear
y desarrollar los llamados "lenguajes de descripción
de hardware" cada uno con sus peculiaridades,
buscando una solución a los problemas que
presentaba el diseño de los sistemas complejos.
– Ejemplos:
• IDL desarrollado por IBM ,
• TI - HDL de Texas Instruments,
• ZEUS de General Electric,
• prototipos de universidades
LENGUAJES DE DESCRIPCIÓN DE HARDWARE.
•En la actualidad se utilizan fundamentalmente VHDL, Verilog y
SystemC . Otro HDL, el UDI/L se utiliza exclusivamente en Japón.
•VHDL (Very High Speed Integrated Circuit Hardware Description
Language). Nace como proyecto del Departamento de Defensa
(DoD) de EEUU (año 82) 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.
•Verilog: Sw de la firma Gateway y posteriormente de Cadence.
Estándar industrial hasta que apareció el VHDL como estándar
IEEE. En 1990 Cadence lo hace público y el IEEE lo estandariza en
1995.
•SystemC: es una extensión del C++, que utiliza unas bibliotecas
de clase para describir y simular circuitos digitales. Se publicó en
1.999 .
Historia de VHDL
– Estos lenguajes nunca alcanzaron el nivel de difusión y
consolidación necesarios por motivos distintos.
• los industriales, por ser propiedad de la empresa
permanecieron encerrados en ellas y no estuvieron
disponibles par su estandarización y mayor difusión,
• los universitarios, perecieron por no disponer de soporte
ni mantenimiento adecuado.
• En 1981 el Departamento de Defensa de los Estados Unidos
• Proyecto VHSIC (Very High Speed Integrated Circuit )
• Objetivos:
– rentabilizar las inversiones en hardware haciendo
más sencillo su mantenimiento.
– resolver el problema de modificar el hardware
diseñado en un proyecto para utilizarlo en otro
Historia de VHDL
• VHDL acrónimo de VHSIC Hardware Description Lenguaje
– 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 Version 7.2
– Tras colaboraciones de industrias y universidades en
1987 VHDL se convierte en Standard IEEE 1076-1987 y
en 1988 en standard ANSI
– En 1993 fue revisado el standard VHDL
– La última revisión se realizó en 2002.
VHDL: CARACTERÍSTICAS GENERALES
VHDL: lenguaje orientado a la descripción o modelado de Hw
similar a lenguajes de alto nivel de propósito general (ADA
en especial): de ellos hereda:
• Concepto de tipo de datos, con posibilidad de
definir nuevos tipos → facilita la descripción de
circuitos con diversos niveles de abstracción.
•Sentencias de control de flujos (if, for while). Junto
con la característica anterior → potencia para
desarrollar algoritmos.
•Capacidad de estructurar el código (subprogramas,
funciones o procedimiento), permite afrontar
algoritmos complejos.
•Posibilidad de utilizar y desarrollar bibliotecas de
diseño,
Incorpora conceptos específicos para el modelado del
Hw, como concurrencia y ciclo de simulación.
MODELO DEL HW
Modelo de estructura: componentes y jerarquía
•Permiten describir cualquier sistema digital con diferentes
grados de abstracción.
•Un sistema digital (independientemente de su complejidad)
estará definido por dos elementos principales:
–Interfaz con el exterior (la entidad o entity), indicará que
entradas y salidas (ports) le relacionan con el exterior.
–Descripción de la funcionalidad que realiza el dispositivo
(architecture). Para una misma entity pueden existir
diversos módulos architerture de estilos descriptivos
distintos. Pudiéndose especificar para cada diseño en
concreto que implementación de una entidad se utiliza
(configuration).
–Se puede utilizar cualquier elemento modelado en VHDL
en otro diseño haciendo referencia a él (component) y
conectando sus puertos en el nuevo circuito.
MODELO DEL HW
Modelo de concurrencia: procesos, señales y eventos.
•El Hw tiene naturaleza concurrente.
•El elemento básico de concurrencia es el proceso
(process) que está formado por sentencias secuenciales.
•Los procesos se comunican entre ellos mediante señales
(signal).
•Cada proceso tiene un conjunto de señales a las que es
sensible, de forma que un cambio en alguna (evento) de
ellas hace que se ejecute.
•Las señales tienen asociadas una o varias colas de
eventos, pares tiempo–valor (drivers), que definen su
comportamiento en el transcurso de una simulación.
MODELO DEL HW
Modelo de tiempo:
ciclo de simulación
INICIO SIMULACIÓN
Ejecutar estamentos
concurrentes
correspondientes al tiempo
de simulación actual
Avanzar tiempo de
simulación
Incrementar
retardo delta
(δ)
SI
Eventos
en cola?
NO
NO
Transacciones?
SI
Eventos?
FIN
SIMULACIÓN
NO
SI
Ejecutar estamentos
concurrentes
correspondientes al tiempo
de simulación actual
MODELO DEL HW
Modelo de tiempo: ciclo de simulación
Retardo delta (δ).
A: 1→0
n1
n2
Z
B=1
C=0
A
n1
n2
Z
T
T+δ T+2δ T+3δ
∆T
COMPOSICIÓN DE UN DISEÑO VHDL
Diseño VHDL
Fichero VHDL
Fichero VHDL
Paquetes
Constantes, tipos de datos,
componentes y subprogramas
utilizados en varios diseños o entidades
Fichero VHDL
Entidades
Interfaces de los
componentes
Fichero VHDL
Arquitecturas
Implementación de las
entidades
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];
lista de puertos←(identificador{,...}:[modo]indicación_tipo
[:=expresión]) {;...}
modo← in | out | inout | buffer | linkage
lista de genéricos← (identificador {,...}:tipo[:=expresión])
{;..}
DECLARACIÓN DE ENTIDAD
Ejemplos:
entity sumador_total is
port (a,b,c: in bit;
s,c: out bit);
end sumador_total;
entity Mux21 is
entity Mux21 is
port (a: in bit;
generic (t_delay:time:=5ns);
b: in bit;
port (a, b: in bit;
canal : in bit:=‘1’;
canal : in bit:=‘0’;
z: out bit);
z: out bit);
end Mux21;
end Mux21;
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 los tres
niveles de abstracción vistos anteriormente:
- Algorítmico: descripciones al estilo de Sw de alto
nivel, que reflejan la funcionalidad de los módulos .
-Flujo de Datos: descripciones basadas en
ecuaciones y expresiones que reflejan el flujo de
datos y las dependencias entre datos y operaciones.
-Estructural: se especifican componentes, conexiones
y puertos de E/S
-Estilo mixto de los anteriores.
DECLARACIÓN DE ARQUITECTURA
architecture identificador of identificador_entidad is
{declaraciones}
begin
{sentencias_concurrentes}
end [architecture] [identificador];
entity Mux21 is
port(a, b, canal :in bit;
z: out bit);
end Mux21;
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;
DECLARACIÓN DE ARQUITECTURA
entity Mux21 is
port(a, b, canal :in bit;
z: out bit);
end Mux21;
architecture FlujoDatos of Mux21 is
signal canal_n,n1,n2:bit;
begin
-- operaciones concurrentes
canal_n<= not canal after 1ns;
n1<=canal_n and a after 2ns;
n2<=canal and b after 2ns;
z<=n1 or n2 after 2ns
end FlujoDatos;
DECLARACIÓN DE ARQUITECTURA
entity Mux21 is
port(a, b, canal :in bit;
z: out bit);
end Mux21;
architecture Estructural of Mux21 is
signal canal_n,n1,n2:bit;
component INV
port (x:in bit;z:out bit);
end component;
component AND2
port(x,y:in bit; z:out bit);
end component;
component OR2
port(x,y:in bit; z:out bit);
end component;
begin
U0:INV port map (canal,canal_n);
U1:AND2 port map(canal_n,a,n1);
U2:AND2 port map(canal,b,n2);
U3:OR2 port map(n1,n2,z);
end Estructural;
Descargar