CURSO “DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS”
40 horas (15 horas teoría + 25 horas práctica)
OBJETIVOS 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 Xilinx mediante la herramienta Foundation ISE. - 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 Xilinx incluidas en la herramienta Foundation ISE 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 Xilinx mediante la herramienta Foundation ISE. - Realización de ejemplos prácticos de sistemas digitales de complejidad media-alta mediante la herramienta Foundation ISE.
Curso “Diseño con VHDL para FPGAs de Xilinx”. 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 XILINX. 2.1.- Introducción. 2.2.- Recursos lógicos. 2.3.- Recursos de interconexión. 2.4.- Arquitectura de las FPGAs de la familia Spartan de Xilinx. 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 Virtex de Xilinx. 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 Xilinx”. 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 Xilinx”. 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 FOUNDATION ISE DE XILINX. 4.1.- Introducción. Diagrama de flujo general de la herramienta Foundation ISE. 4.2.- Captura de esquemáticos. Biblioteca de componentes para esquemático de Foundation ISE. 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 Spartan y Virtex de Xilinx. 4.8.- Informes de síntesis para las FPGAs de la familia Spartan y Virtex de Xilinx. 4.9.- Implementación del sistema digital diseñado. 4.10.- Opciones de implementación para las FPGAs de la familias Spartan y Virtex de Xilinx. 4.11.- Informes de implementación para las FPGAs de la familia Spartan y Virtex de Xilinx. 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 Xilinx. Curso “Diseño con VHDL para FPGAs de Xilinx”. Programación
4/5
4.16.- Obtención del fichero de configuración. 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 Xilinx”. Programación
5/5