BREVE INTRODUCCIÓN VHDL. Es un lenguaje formal de diseño basado en texto que permite describir la...

Preview:

Citation preview

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

Recommended