Indice
Lenguajes descriptores de hardware
VHDL
– Introducción
– Entidad de diseño (declaración de entidad y cuerpo de arquitectura)
– Tipos
– Objetos
– Operadores
– Expresiones concurrentes y secuenciales
– Subprogramas
– Funciones de resolución
– Instanciación de un componente
Bancos de prueba
Funciones de conversión
Máquinas de estado
Un lenguaje descriptor de hardware es un lenguaje para la descripción formal y el diseño de circuitos electrónicos. Puede ser utilizado para describir el funcionamiento de un circuito, su diseño y organización, y para realizar las pruebas necesarias para verificar el correcto funcionamiento.
Ejemplos de este tipo de lenguaje son VHDL, Verilog, ABEL, AHDL, SystemC, SystemVerilog).
Lenguajes descriptores de hardware
Introducción
Especificación de circuitos electrónicos
Documentación
Simulación/Verificación de los circuitos antes de
ser implementados
Lenguajes descriptores de hardware
Objetivos
VHDL significa Very High Speed Integrated Circuit (VHSIC)
Hardware Description Language.
Fue desarrollado originalmente por pedido del departamento
de defensa de Estados Unidos.
El lenguaje está especificado en la norma IEEE-1076
Es utilizado para modelar circuitos digitales, especificando
su comportamiento, y para simulación.
La descripción de los circuitos puede hacerse en base a
tres modelos: Comportamiento, Estructural y Flujo de datos
VHDL
Introducción
1980
DoD de EEUU
Inicia el proyecto
para crear un HDL estándar dentro del programa VHSIC
Se produce la
reunión inicial
entre el gobierno, las universidades y la industria
1981
1983
Se concede a
Intermetrics, IBM y Texas Instruments un contrato para
desarrollar VHDL
Versión 7.2 de
dominio
público
1985
1987
Estándar
IEEE 1076-87
VHDL es revisado
y ampliado convirtiéndose
en estándar 1076 ’93
(VHDL-93)
1993
2008
Estándar
IEEE 1076-2008
(Revisión de
1076-2002)
VHDL es revisado
convirtiéndose
en estándar
1076-2002
(VHDL-2002)
2002
2000
VHDL es revisado
convirtiéndose
En estándar
IEEE 1076-2000
(VHDL-2000)
VHDL
Historia
Existen cuatro tipo de objetos en VHDL: constantes,
variables, señales y archivos.
Es un lenguaje “strong typing”, lo que implica que
no pueden asignarse valores a señales o variables que no
sean del tipo declarado para esa señal o variable.
Para realizar lo antes mencionado se debe llamar a una
función de conversión de tipo.
– Permite dividir un diseño de hardware en módulos más
chicos.
VHDL
Características
Permite la definición de nuevos tipos
El código suele más extenso que el desarrollado en
Verilog (se busca que el mismo sirva como documentación)
Posee librerías estándar
No todo lo descripto en VHDL podrá ser utilizado para
configurar una FPGA (¡No todo VHDL es sintetizable!).
No es “case sensitive”. Es lo mismo entity que ENTITY.
Los comentarios se expresan con — (doble guión).
Las instrucciones finalizan con el carácter ; (punto y coma).
VHDL
Características
La entidad de diseño es la principal abstracción de hardware en VHDL. Representa una porción del diseño de un hardware que tiene entradas y salidas definidas y realiza una determinada función. Puede representar un sistema completo, un subsistema, una plaqueta, un chip, una macrocelda, una compuerta lógica o cualquier nivel de abstracción que se encuentre entre los antes mencionados.(*)
(*) IEEE Std 1076™-2008 – IEEE Standard VHDL Language
Entidad de diseño
Una entidad de diseño puede ser descripta en términos de una jerarquía de bloques, cada uno de los cuales representa una porción del diseño completo. El bloque superior (top-level) en esta jerarquía es la propia entidad de diseño; tal bloque es un bloque externo y puede ser utilizado como componente de otros diseños. Los bloques anidados en la jerarquía son bloques internos. (*)
(*) IEEE Std 1076™-2008 – IEEE Standard VHDL Language
Entidad de diseño
Entidad de diseño
(Gp:) Declaración de entidad
(Gp:) Declaración de la interfaz
(Gp:) Cuerpo de arquitectura
(Gp:) Descripción del funcionamiento
Entidad de diseño
Una declaración de entidad define la interfaz entre una
entidad de diseño dada y el entorno en el cual es usada. (*)
– Define cuáles son los puertos y los modos de los mismos
(*) IEEE Std 1076™-2008 – IEEE Standard VHDL Language
(Gp:) A
(Gp:) B
(Gp:) C
Declaración de entidad
entity nombre_entidad is
[generic (generic_variable_declarations) ;]
[port (lista_de_interfaz) ;]
[declaraciones]
[begin
[sentencias]]
end [entity] [nombre_entidad]; (*)
(*) IEEE Std 1076™-2008 – IEEE Standard VHDL Language
Declaración de entidad
Sintaxis
Un cuerpo de arquitectura define el cuerpo de una entidad
de diseño. Especifica las relaciones entre las entradas y
las salidas de esta, y puede estar expresada en términos
de estructura, flujo de datos o comportamiento. (*)
(*) IEEE Std 1076™-2008 – IEEE Standard VHDL Language
(Gp:) A
(Gp:) B
(Gp:) C
C <= A xor B
Cuerpo de arquitectura
Introducción
(*) IEEE Std 1076™-2008 – IEEE Standard VHDL Language
architecture nombre_arquitectura of nombre_entidad is
[declaraciones]
begin
[sentencias]
end [architecture] [nombre_arquitectura]; (*)
Cuerpo de arquitectura
Sintaxis
Library
Entity
Architecture
library IEEE;
use IEEE.std_logic_1164.all;
entity negador is
port (
a: in std_logic;
b: out std_logic
);
end;
architecture beh of negador is
begin
b <= not a;
end beh;
Estructura del código VHDL
(Gp:) a
(Gp:) b
(Gp:) c
(Gp:) d
(Gp:) e
(Gp:) AND
(Gp:) AND
(Gp:) OR
entity circuito is
port (
a : in bit;
b : in bit;
c : in bit;
d : in bit;
e : out bit);
end circuito;
architecture arq of circuito is
signal aux1: bit;
signal aux2: bit;
begin
aux1 <= a and b;
aux2 <= c and d;
e <= aux1 or aux2;
end arq;
aux1
aux2
(Gp:) e <= (a and b) or (c and d);
Ejemplo en VHDL
Página siguiente |