VHDL

Diseño Digital con Lógica Programable Tutorial de Quartus II software, con VHDL. Material didáctico de la Universidad d

Views 203 Downloads 2 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Diseño Digital con Lógica Programable Tutorial de Quartus II software, con VHDL.

Material didáctico de la Universidad de Vigo.

Tutorial de diseño con VHDL y FPGAs en la herramienta de CAD Quartus II de Altera

Indice „ „ „ „ „ „ „ „ „ 11/04/2007

Introducción. Creación de proyectos. Descripción mediante VHDL. Bibliotecas de Altera. Compilación. Síntesis. Simulación funcional. Implementación. Simulación temporal. Programación del circuito. Tutorial Quartus II con VHDL.

Introducción. „

En este tema vamos a realizar un ejemplo tutorial descrito en su totalidad en lenguaje VHDL, mediante la herramienta “Quartus II”, del fabricante Altera.

11/04/2007

Tutorial Quartus II con VHDL.

Creación de proyectos (I) „

„

„

La primera acción debe ser “Abrir un nuevo proyecto”, mediante el menú “File Æ New Project Wizard”. A continuación, deben seleccionarse determinados parámetros relacionados con el proyecto. En primer lugar, el nombre de los directorios y del fichero principal del proyecto.

11/04/2007

Tutorial Quartus II con VHDL.

Creación de proyectos (II) „

A continuación, debe seleccionarse el circuito en el que se desea implementar el sistema digital que se va a diseñar, aunque posteriormente puede elegirse otro circuito distinto.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (I) „

Una vez creado el proyecto, se procede a ir creando (“File Æ New”) los ficheros que describen el sistema digital. En este caso, vamos a crear un nuevo fichero de tipo VHDL.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (II) „

Ventana del editor de texto, con el fichero VHDL recién creado.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (III) „

„

En este primer fichero vamos a describir un contador síncrono reversible de 4 bits. Este contador debe tener puesta en estado cero asíncrona (reset), carga en paralelo síncrona (load) y señal de habilitación (enable).

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (IV) „

Para describir el contador en VHDL, en primer lugar definimos los terminales de entrada y salida del contador, mediante la entidad (“entity”) del circuito.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (V) „

A continuación, completamos la descripción del contador de 4 bits con la definición del comportamiento del circuito, mediante la sección arquitectura (“architecture”).

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (VI) „

„

Para comprobar si la sintaxis del fichero VHDL es correcta, podemos utilizar el botón “Analyze current file” de la barra de botones lateral. Si hay algún error, éste aparecerá en la ventana de mensajes.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (VII) „

„

Ahora describiremos en VHDL un decodificador de binario a 7 segmentos de CÁTODO común. Este decodificador debe tener una señal de habilitación de las salidas (enable).

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (VIII) „

Para describir el decodificador en VHDL, en primer lugar definimos los terminales de entrada y salida del decodificador, mediante la entidad (“entity”) del circuito.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (IX) „

A continuación, completamos la descripción del decodificador con la definición de la tabla de verdad del circuito, mediante la sección arquitectura (“architecture”) y la sentencia “With … select”.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (X) „

„

Ahora interconectaremos ambos circuitos en el fichero principal (top_tutorial_vhdl) mediante declaración e instanciación de los componentes creados anteriormente. Para instanciar un componente descrito en VHDL en otro fichero VHDL, hay que hacer lo siguiente:  Declarar el componente en la sección de declaraciones de la arquitectura, mediante la sentencia COMPONENT de VHDL.  Instanciar el componente en la sección de descripción de la arquitectura, mediante el nombre del componente.  Conectar sus entradas y salidas a las señales que corresponda.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (XI) „ „

Fichero principal (top_tutorial_vhdl.vhd) (1 de 3). Entidad del fichero principal y declaración del componente “sctr4”.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (XII) „ „

Fichero principal (top_tutorial_vhdl.vhd) (2 de 3). Declaración del componente “bin_to_7seg_cat” e instanciación del componente “sctr4”.

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (XIII) „ „

Fichero principal (top_tutorial_vhdl.vhd) (3 de 3). Instanciación del componente “bin_to_7seg_cat”.

11/04/2007

Tutorial Quartus II con VHDL.

Visor RTL (I) „

„ „

La herramienta visor RTL (“RTL Viewer”), disponible en el menú “Tools”, permite ver el esquema equivalente a nivel RTL (“Register Transfer Level”) de las descripciones realizadas en VHDL. Esquema correspondiente al fichero principal (top_tutorial_vhdl.vhd). El esquema que se muestra corresponde al sistema digital descrito, después del análisis y de la obtención de la lista de conexiones, pero antes de la síntesis y de la optimización.

11/04/2007

Tutorial Quartus II con VHDL.

Visor RTL (II) „ „

„

Esquema correspondiente al contador de 4 bits (sctr4.vhd). Estos esquemas permiten comprobar que no existen componentes adicionales inesperados o verificar que las conexiones son correctas, algo más difícil de hacer en VHDL. No obstante, a veces no resulta útil la descripción RTL, porque no sabemos cuál es la manera en que la herramienta Quartus II va a realizar el componente.

11/04/2007

Tutorial Quartus II con VHDL.

Visor RTL (III) „

Esquema correspondiente al decodificador de binario a 7 segmentos (bin_to_7seg_cat.vhd).

11/04/2007

Tutorial Quartus II con VHDL.

Descripción (XIV) „

El programa dispone de plantillas VHDL, muy útiles para la descripción de circuitos comunes. Estas plantillas están accesibles a través de la opción de menú “Edit Æ Insert Template” o del botón correspondiente de la barra de botones.

11/04/2007

Tutorial Quartus II con VHDL.

Bibliotecas (I) „

Además, Quartus II incorpora bibliotecas de componentes propios, que se pueden utilizar en cualquier fichero VHDL, mediante la declaración de la biblioteca y del paquete adecuado, y la declaración e instanciación del componente.

11/04/2007

Tutorial Quartus II con VHDL.

Bibliotecas (II) „

Ejemplo de utilización del componente “GLOBAL” del paquete “altera_primitives_components” de la biblioteca “altera”.

11/04/2007

Tutorial Quartus II con VHDL.

Bibliotecas (III) „

La ayuda del programa Quartus II permite conocer los parámetros de cada componente del paquete “lpm_components” de su biblioteca “lpm”, así como el formato de declaración del componente en VHDL.

11/04/2007

Tutorial Quartus II con VHDL.

Bibliotecas (IV) „

Ejemplo de utilización del componente registro (“lpm_ff”) del paquete “lpm_components” de la biblioteca “lpm” de la herramienta Quartus II, mediante la declaración e instanciación del componente (1 de 2).

11/04/2007

Tutorial Quartus II con VHDL.

Bibliotecas (V) „

Ejemplo de utilización del componente registro (“lpm_ff”) del paquete “lpm_components” de la biblioteca “lpm” de la herramienta Quartus II, mediante la declaración e instanciación del componente (2 de 2).

11/04/2007

Tutorial Quartus II con VHDL.

Componentes parametrizables (I) „

„

Una forma más sencilla de acceder a los componentes de la biblioteca “lpm” es crear un nuevo componente parametrizable. Para ello, se debe ejecutar la opción de menú “Tools Æ “MegaWizard Plug-In Manager”.

11/04/2007

Tutorial Quartus II con VHDL.

Componentes parametrizables (II) „

En este caso definiremos un registro de 8 bits mediante el componente “lpm_ff”, del grupo de componentes de almacenamiento (“storage”).

11/04/2007

Tutorial Quartus II con VHDL.

Componentes parametrizables (III) „

Parámetros del componente “registro_8_bits”, de tipo “lpm_ff”, del grupo de componentes de almacenamiento (“storage”) (I).

11/04/2007

Tutorial Quartus II con VHDL.

Componentes parametrizables (IV) „

Parámetros del componente “registro_8_bits”, de tipo “lpm_ff”, del grupo de componentes de almacenamiento (“storage”) (II).

11/04/2007

Tutorial Quartus II con VHDL.

Componentes parametrizables (V) „

„

„

Parámetros del componente “registro_8_bits”, de tipo “lpm_ff”, del grupo de componentes de almacenamiento (“storage”) (III). La plantilla de declaración del componente en VHDL se genera automáticamente, ya que la casilla correspondiente al fichero “nombre_componente.cmp” está marcada por defecto. Debemos marcar la casilla correspondiente al fichero “nombre_componente_inst.vhd”, para que se genere la plantilla de instanciación del componente en VHDL.

11/04/2007

Tutorial Quartus II con VHDL.

Componentes parametrizables (VI) „

„

Documentación relacionada con el componente “registro_8_bits”, del grupo de componentes de almacenamiento (“storage”), del tipo “Altera Megafunction”. Se puede acceder a ella a través del botón “Documentation” durante la definición de sus parámetros.

11/04/2007

Tutorial Quartus II con VHDL.