BREVE INTRODUCCIÓN
VHDL
• Es un lenguaje formal de diseño basado en texto que permite describir la especificación (tanto estructura como comportamiento) de un sistema digital a alto nivel.
• Sus siglas provienen de Very high speed Hardware Description (o design para algunos autores) Languaje: Lenguaje de alto nivel para descripción de hardware (IC digitales) de alta velocidad.
• Derivado de las iniciativas VHSIC y HDL.
• Desarrollado por IEEE.
• Otros: Verilog y ABEL (Advanced Boolean Equation Language)
¿Qué es VHDL?
• Objetivo original era poder describir y simular circuitos integrados de muy alta velocidad previo a su fabricación (VHSIC y HDL)
• Permite describir de manera formal un sistema digital a través de una notación (“programar el circuito”).
• A partir de esta descripción formal de alto nivel, un software puede determinar los circuitos digitales que implemente la funcionalidad del sistema descrito:• Se pueden obtener los esquemas, las tablas de verdad,
mapas de Karnaugh, etc.
• Se puede implementar todo el sistema empleando lógica programable, CPLDs y FPGAs
Potencialidades
• Sirve como herramienta de diseño lógico, posibilitando la documentación de los proyectos y su reutilización.
• Sirve como herramienta de especificación de proyectos.
• Permite generar proyectos con estructura del tipo jerárquica.
• Posibilita modelar el concepto de tiempo.
• Permite describir módulos con acciones que serán evaluadas luego en forma secuencial.
• Permite parametrización de componentes y portabilidad de los diseños independientes de la tecnología.
• Permite implementación de test-bench para simulación de diseños.
Características y ventajas
• Se describen las operaciones de un sistema hardware empleando las siguientes acciones posibles: • Indicar QUE debe hacer modelando por
“comportamiento” (behavior).
• Indicar COMO debe funcionar utilizando “algoritmos”.
• Indicar CON QUE hacerlo empleando “estructuras” o “flujo de datos”.
Metodología
• Funcional (Behavioral)• Algorítmico
• De flujo de datos
• Estructural
• Físico
Niveles de abstracción de diseño
• Sumador completo:
Proceso de diseño
• Definimos su archivo hdl:
Proceso de diseño
ENTITY full_adder ISPORT (a, b, cin: IN BIT; s, cout: OUT BIT);END full_adder;
ARCHITECTURE dataflow OF full_adder ISBEGIN s <= a XOR b XOR cin; cout <= (a AND b) OR (a AND cin) OR (b AND cin);END dataflow;
• Del hdl se realiza la síntesis y programación del dispositivo en lógica programable (FPGA o CPLD, por ejemplo) o se da a construir como IC:
Proceso de diseño
ENTITY full_adder ISPORT (a, b, cin: IN BIT; s, cout: OUT BIT);END full_adder;
ARCHITECTURE dataflow OF full_adder ISBEGIN s <= a XOR b XOR cin; cout <= (a AND b) OR (a AND cin) OR (b AND cin);END dataflow;
Síntesis
Programación (place and route)
del Dispositivo
Compilación
Compilación
OptimizaciónHardware
• Diferentes estilos según el nivel de abstracción Funcional o Estructural.
• Conformado por Unidades o estructuras: LIBRARY, PACKAGE, ENTITY y ARCHITECTURE.
• Al menos Entity y Architecture son requeridas.• LIBRARY: Contiene la lista de todas las bibliotecas a ser
usadas en el diseño. Por ejemplo:ieee, std, work, etc.
• ENTITY : Describe las entradas y salidas (pines) del circuito (Estructura).
• ARCHITECTURE : Contiene el código VHDL propiamente, define el comportamiento o funcionalidad del circuito.
• PACKAGE: Es una forma para almacenar y usar información útil que describe a un modelo (relacionada con library)
Estructura del archivo
Entity NAME_OF_ENTITY is [ generic generic_declarations);]
port (signal_names: mode type;
:
signal_names: mode type);
end [NAME_OF_ENTITY] ;
Architecture NAME_OF_ARCHITECTURE of full_adder IS
BEGIN
s <= a XOR b XOR cin;
cout <= (a AND b) OR (a AND cin) OR
(b AND cin);
END dataflow;
Estructura del archivo
Ejemplo de archivo VHDL
Ejemplo de archivo VHDL
ENTITY full_adder ISPORT (a, b, cin: IN BIT; s, cout: OUT BIT);END full_adder;
ARCHITECTURE dataflow OF full_adder ISBEGIN s <= a XOR b XOR cin; cout <= (a AND b) OR (a AND cin) OR (b AND cin);END dataflow;
1. Usar el ISE WebPACK de Xilinx• Software muy potente y completo
• Propietario
• Gran tamaño (5.9 GB)
2. Usar el Hardware Simulator de NAND2TETRIS• Software simplificado, con sintaxis un tanto diferente.
• Free
• Menor tamaño
Opciones para la asignación