Programa

!!! "It's not a BUG, /o o\ / it's a FEATURE!" ( > ) \ - / _] [_ (jcooley 1991)
 
UNIDAD 1: Tecnología FPGA

Arquitecturas de FPGAs. Bloques lógicos programables. Interconexión programable. I/O programable. Skew y distribución de reloj. Frecuencia máxima. Modelo de Retardos. Memoria (distribuida, doble puerto, blockRAM, SRL), cadenas de acarreo, multiplicadores embebidos. DLLs y DCMs. Consumo de potencia.

 

UNIDAD 2: Herramientas EDA para diseño con FPGA

Diagrama de flujo de diseño y opciones tecnológicas. Technology Mapping, Place-Route. Simulated Annealing. Simulación: Controlabilidad y observabilidad. Herramienta Vivado. Project Navigator (Códigos fuentes y procesos asociados). Herramientas de Síntesis (Xilinx Synthesis Tool - XST). Design Entry Tools. Opciones de Implementación. Análisis de Reportes. Simulador Modelsim (Behavioral and Timing Simulation). Opciones Avanzadas de Diseño: User Constraint File (Fichero UCF). FPGA Editor. Xpower (estimación de consumo).

 

UNIDAD 3: Elementos Avanzados en VHDL

Simulación funcional, post-síntesis y post-layout de un diseño lógico.

Configuraciones. Manejo del simulador stand-alone o desde ISE. Diseño orientado a síntesis: inferencia de memoria, circuitos aritméticos, combinacionales y FSMs. Módulos parametrizables (generic).

Procedimientos, funciones y paquetes en VHDL. Estructuras repetitivas y generadores de módulos. Manejo del tiempo en VHDL. Interacción con simuladores (Tcl/Tk).

 

UNIDAD 4: Microprocesadores dedicados en FPGA
             Soft cores y hard cores de procesadores embebidos en FPGA. Introducción al diseño de sistemas embebidos en FPGA. Características y ejemplos de diseño con picoBlaze (microcontrolador embebido).
 
UNIDAD 5: Síntesis de alto nivel (HLS, High Level Synthesis)  
            Introducción a la aceleración de algoritmos en hardware.