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.
[Link].- Metodología “top-down”.
[Link].- Metodología “bottom-up”.
[Link].- Recomendaciones para el establecimiento de una organización jerárquica adecuada.
[Link].- Síntesis incremental. Compilación incremental.
[Link].- Ejemplos.
5.2.2.- Diseño trasladable a otras tecnologías.
[Link].- Diseño independiente de la tecnología. Ventajas e inconvenientes.
[Link].- Diseño dependiente de la tecnología. Ventajas e inconvenientes.
[Link].- Ejemplos.
5.2.3.- Diseño temporal.
[Link].- Diseño asíncrono. Ventajas e inconvenientes.
[Link].- Diseño síncrono. Ventajas e inconvenientes.
[Link].- Diseño autosincronizado. Ventajas e inconvenientes.
[Link].- 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.
[Link].- Utilización adecuada de las señales de reloj.
[Link].- Utilización adecuada de las señales de puesta en estado inicial (“reset”).
[Link].- Utilización adecuada de las señales de habilitación de reloj (“clock enable”).
[Link].- Sincronización de entradas. Metaestabilidad.
[Link].- Sincronización de transferencias de datos entre sistemas con diferente señal de reloj.
[Link].- 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