Aprendizaje del lenguaje VHDL para el diseño de sistemas digitales sobre dispositivos lógicos programables (FPGA).
- Adquirir una base sólida de fundamentos del lenguaje VHDL.
- Aprendizaje del proceso de diseño de sistemas complejos con VHDL para su implementación con FPGAs de Altera mediante la herramienta Quartus II. - Desarrollo de bancos de pruebas para la simulación con VHDL. - Realización de ejemplos prácticos de sistemas digitales con VHDL, usando máquinas de estado, contadores, registros de desplazamiento, circuitos aritméticos, memorias de tipo ROM, RAM, FIFO y lógica de interconexión e control. - Instanciación de componentes propios de las bibliotecas de Altera incluidas en la herramienta Quartus II en los sistemas digitales descritos en VHDL. - Diseño de bibliotecas de componentes propios en VHDL para su posterior utilización en otros proyectos. - Recomendaciones de diseño con VHDL para síntesis con FPGAs. - Análisis de las opciones de síntesis, asignación de recursos, posicionamiento y enrutado más adecuadas para la implementación de los sistemas digitales descritos con VHDL en FPGAs de Altera mediante la herramienta Quartus II. - Realización de ejemplos prácticos de sistemas digitales de complejidad media-alta mediante la herramienta Quartus II.
Curso “Diseño con VHDL para FPGAs de Altera”. Programación 1/5
“DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS”
PROGRAMA
TEMA 1 (1 h. teoría). INTRODUCCIÓN AL DISEÑO DE SISTEMAS DIGITALES MEDIANTE
LÓGICA PROGRAMABLE (PLDs Y FPGAs). 1.1.- Introducción. 1.2.- Definición y clasificación de los Circuitos de Lógica Programable. 1.3.- Características generales de los Circuitos de Lógica Programable. 1.4.- Fases del diseño de sistemas digitales mediante Circuitos de Lógica Programable. 1.5.- Ventajas de los Circuitos de Lógica Programable. 1.6.- Aplicaciones de los Circuitos de Lógica Programable. 1.7.- Análisis comparativo. 1.7.1.- Circuitos de Lógica Programable frente a circuitos digitales estándar. 1.7.2.- Circuitos de Lógica Programable frente a circuitos semimedida.
TEMA 2 (2 h. teoría). ARQUITECTURAS DE LAS FPGAs DE ALTERA.
2.1.- Introducción. 2.2.- Recursos lógicos. 2.3.- Recursos de interconexión. 2.4.- Arquitectura de las FPGAs de la familia Cyclone de Altera. 2.4.1.- Recursos lógicos: 2.4.2.- Recursos de interconexión. 2.4.3.- Tecnología y métodos de configuración. 2.4.4.- Otras características. 2.5.- Arquitectura de las FPGAs de la familia Stratix de Altera. 2.5.1.- Recursos lógicos: 2.5.2.- Recursos de interconexión. 2.5.3.- Tecnología y métodos de configuración. 2.5.4.- Otras características.
TEMA 3 (8 h. teoría + 4 h. práctica). Lenguaje VHDL.
3.1.- Lenguajes de descripción del hardware (0’5 h) • Introducción • Génesis • Características • Aplicaciones • Limitaciones • El lenguaje VHDL • Ventajas de VHDL para el diseño de sistemas digitales • Otros lenguajes de descripción del hardware
3.2.- Fundamentos de VHDL (0,5 h)
• Fundamentos de una descripción • Entidades y arquitecturas • Bibliotecas y paquetes • Configuraciones • VHDL concurrente y secuencial • Metodología de diseño con VHDL
Curso “Diseño con VHDL para FPGAs de Altera”. Programación 2/5
3.3.- Elementos de lenguaje (1 h) • Identificadores • Delimitadores • Comentarios • Tipos de datos • Nuevos tipos y subtipos • Literales • Operadores • Objetos • Cuestiones y ejercicios
3.4.- Declaraciones básicas (1 h + 1 h prácticas)
• Entidades • Arquitecturas • Descripciones simples • Constantes, variables y señales • Modos y asociación de puertos • Sentencias assert y report • Cuestiones y ejercicios
3.5.- VHDL concurrente y secuencial (1 h + 1 h prácticas)
• Sentencias concurrentes • Sentencias secuenciales • Alcance y visibilidad de objetos • Cuestiones y ejercicios
3.6.- Declaraciones avanzadas (1,5 h)
• Subprogramas • Lógica multivaluada • Señales • Atributos • Alias • Sobrecarga de funciones y operadores • Funciones de resolución • Sentencia generate • Conversión de tipos. Conversiones explícita e implícita • Cuestiones y ejercicios
3.7.- Paquetes y bibliotecas (0,5 h)
• Paquetes • Bibliotecas • Alcance y visibilidad de las declaraciones • Configuraciones • Cuestiones y ejercicios
3.8.- Análisis y simulación de un diseño (1 h)
• Concepto de unidad de diseño • Compilación • Elaboración
Curso “Diseño con VHDL para FPGAs de Altera”. Programación 3/5
• Modelo de tiempo • Ciclo de simulación • Creación de un banco de pruebas para simulación • Cuestiones y ejercicios
3.9.- Introducción general a la Síntesis (1 h)
• Introducción. La síntesis en el proceso de diseño • Herramientas de síntesis • Flujo de la síntesis • Código VHDL sintetizable • VHDL no sintetizable • Síntesis guiada • Verificación formal
3.10.- Descripción de circuitos sintetizables (2 h prácticas).
• Descripción de circuitos combinacionales. o Decodificadores. o Codificadores. o Multiplexores. o Demultiplexores. • Descripción de circuitos secuenciales. o Registros. o Registros de desplazamiento. o Contadores. o Máquinas de estado. o Memorias. • Descripción de circuitos aritméticos. o Sumadores. o Restadores. o Multiplicadores. o Divisores.
TEMA 4 (2h. teoría + 6 h. práctica). HERRAMIENTA DE DISEÑO QUARTUS II DE ALTERA.
4.1.- Introducción. Diagrama de flujo general de la herramienta Quartus II. 4.2.- Captura de esquemáticos. Biblioteca de componentes para esquemático de Quartus II. Realización de un nuevo componente a partir de un esquemático. 4.3.- Utilización del editor HDL. 4.4.- Inclusión de un componente HDL en un esquemático. 4.5.- Simulación funcional. 4.6.- Síntesis del sistema digital diseñado. 4.7.- Opciones de síntesis para las FPGAs de la familias Cyclone y Stratix de Altera. 4.8.- Informes de síntesis para las FPGAs de la familia Cyclone y Stratix de Altera. 4.9.- Implementación del sistema digital diseñado. 4.10.- Opciones de implementación para las FPGAs de la familias Cyclone y Stratix de Altera. 4.11.- Informes de implementación para las FPGAs de la familia Cyclone y Stratix de Altera. 4.12.- Utilización del editor de FPGAs. 4.13.- Simulación temporal. 4.14.- Análisis de retardos mediante el fichero de informe de retardos. 4.15.- Placas de desarrollo basadas en FPGAs de Altera. 4.16.- Obtención del fichero de configuración.
Curso “Diseño con VHDL para FPGAs de Altera”. Programación 4/5
4.17.- Programación de la FPGA. 4.18.- Comprobación del circuito. 4.19.- Programación de una memoria de configuración. 4.20.- Realización de un ejemplo tutorial.
TEMA 5 (2 h. teoría + 2 h. práctica). DISEÑO DE SISTEMAS DIGITALES COMPLEJOS CON
FPGAs. 5.1.- Introducción. 5.2.- Diseño de sistemas digitales mediante Circuitos Digitales Configurables. 5.2.1.- Diseño jerárquico. 5.2.1.1.- Metodología “top-down”. 5.2.1.2.- Metodología “bottom-up”. 5.2.1.3.- Recomendaciones para el establecimiento de una organización jerárquica adecuada. 5.2.1.4.- Síntesis incremental. Compilación incremental. 5.2.1.4.- Ejemplos. 5.2.2.- Diseño trasladable a otras tecnologías. 5.2.2.1.- Diseño independiente de la tecnología. Ventajas e inconvenientes. 5.2.2.2.- Diseño dependiente de la tecnología. Ventajas e inconvenientes. 5.2.2.3.- Ejemplos. 5.2.3.- Diseño temporal. 5.2.3.1.- Diseño asíncrono. Ventajas e inconvenientes. 5.2.3.1.- Diseño síncrono. Ventajas e inconvenientes. 5.2.3.1.- Diseño autosincronizado. Ventajas e inconvenientes. 5.2.3.4.- Ejemplos. 5.2.4.- Diseño síncrono. 5.2.4.- Razones para la elección de una metodología de diseño síncrona. 5.2.5.- Normas de diseño de sistemas digitales síncronos mediante FPGAs. 5.2.5.1.- Utilización adecuada de las señales de reloj. 5.2.5.2.- Utilización adecuada de las señales de puesta en estado inicial (“reset”). 5.2.5.3.- Utilización adecuada de las señales de habilitación de reloj (“clock enable”). 5.2.5.4.- Sincronización de entradas. Metaestabilidad. 5.2.5.5.- Sincronización de transferencias de datos entre sistemas con diferente señal de reloj. 5.2.5.6.- Ejemplos.
TEMA 6 (13 horas práctica). REALIZACIÓN DE SISTEMAS DIGITALES DE COMPLEJIDAD
MEDIA-ALTA. - Circuito de lectura de un teclado PS2. - Realización de periféricos de microprocesadores (UART RS-232). - Generador digital de señales.
Curso “Diseño con VHDL para FPGAs de Altera”. Programación 5/5