Guía docente de Desarrollo de Hardware Digital (Especialidad Ingeniería de Computadores) (296113N)
Grado
Rama
Módulo
Materia
Curso
Semestre
Créditos
Tipo
Profesorado
Teórico
Práctico
Tutorías
María Begoña del Pino Prieto
Email- Primer semestre
- Martes de 16:30 a 18:30 (Etsiit, 2º Planta, Despacho 3)
- Miércoles de 11:30 a 13:30 (Etsiit, 2º Planta, Despacho 3)
- Jueves de 11:30 a 13:30 (Etsiit, 2º Planta, Despacho 3)
- Segundo semestre
- Lunes de 10:00 a 13:00 (Etsiit, 2º Planta, Despacho 3)
- Martes de 10:00 a 13:00 (Etsiit, 2º Planta, Despacho 3)
Prerrequisitos y/o Recomendaciones
No es necesario aprobar asignaturas, materias o módulos previos como requisito indispensable para cursar esta asignatura. No obstante, se recomienda tener conocimientos previos en Tecnología y Organización de Computadores, en especial en análisis y diseño de sistemas digitales.
En el caso de utilizar herramientas de IA para el desarrollo de la asignatura, se debe adoptar un uso ético y responsable de las mismas siguiendo las recomendaciones contenidas en el documento de "Recomendaciones para el uso de la inteligencia artificial en la UGR" publicado por la UGR. En general, no se permitirá el uso de herramientas de IA durante el desarrollo de las clases ni sesiones de prácticas, excepto autorización expresa del profesorado.
Breve descripción de contenidos (Según memoria de verificación del Máster)
- Metodologías de diseño y construcción de sistemas digitales.
- Hardware reconfigurable y plataformas de codiseño.
- Modelado y síntesis automática con lenguajes de descripción hardware, verificación.
- Desarrollo de procesadores específicos, módulos de interfaz y de comunicaciones.
- Integración de sistemas de cómputo específicos, codiseño Hardware/Software.
- Campos de aplicación.
Competencias
Competencias Generales
- CG09. Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
Resultados del proceso de formación y de aprendizaje
Conocimientos o Contenidos
- C01. Conoce las materias básicas y tecnologías que capacitan para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que dotan de una gran versatilidad para adaptarse a nuevas situaciones.
Competencias
- COM01. Concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto, de acuerdo con los conocimientos adquiridos, la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
- COM02. Dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos adquiridos.
- COM04. Definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
- COM08. Realizar mediciones, cálculos, valoraciones, tasaciones, peritaciones, estudios, informes, planificación de tareas y otros trabajos análogos de informática.
- COM09. Analizar y valorar el impacto social y medioambiental de las soluciones técnicas, comprendiendo la responsabilidad ética y profesional de la actividad del Ingeniero Técnico en Informática.
Habilidades o Destrezas
- HD01. Resuelve problemas con iniciativa, toma de decisiones, autonomía y creatividad, y sabe comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
- HD15. Posee la capacidad de organizar y planificar, así como de gestionar la información.
- HD16. Toma decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación disponibles), y argumenta y justifica lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista.
- HD17. Usa y aplica las TIC en el ámbito académico y profesional.
- HD18. Se comunica en lengua extranjera, particularmente en inglés.
- HD19. Trabaja en equipo, usando competencias demostrables mediante la elaboración y defensa de argumentos.
- HD20. Aplica principios de ética profesional para conseguir la mejora continua y la calidad de los productos actuando con rigor y responsabilidad.
- HD21. Respeta los derechos fundamentales y de igualdad entre hombres y mujeres.
- HD22. Proyecta los conocimientos, habilidades y destrezas adquiridos para promover una sociedad basada en los valores de la libertad, la justicia, la igualdad y el pluralismo.
Resultados de aprendizaje (Objetivos)
- Conocer diferentes metodologías de diseño y construcción de sistemas digitales, sus ventajas y limitaciones.
- Conocer dispositivos y plataformas de desarrollo de sistemas con hardware reconfigurable, y sus campos de aplicación.
- Utilizar apropiadamente herramientas software de síntesis automática y verificación para el diseño de módulos hardware específicos.
- Especificar sistemas digitales mediante un lenguaje de descripción estándar.
- Obtener descripciones sintetizables para inferencia de lógica combinacional y secuencial.
- Analizar y diseñar módulos hardware tales como procesadores específicos, módulos de interfaz y de comunicaciones.
- Comprender nociones básicas de codiseño hardware/software para la integración de sistemas de cómputo específicos.
Programa de contenidos Teóricos y Prácticos
Teórico
Tema 1. Metodologías de diseño y construcción de sistemas digitales
- Ciclo de desarrollo y requisitos de diseño
- Alternativas de implementación física
- Metodologías de diseño
- Síntesis automática: alto nivel (HLS), nivel RT, nivel lógico y nivel físico
- Herramientas de diseño hardware
- Evolución histórica del diseño digital
- Estado actual y tendencias
Tema 2. Hardware reconfigurable
- Conceptos generales y evolución histórica
- Tecnologías de configuración
- Dispositivos reconfigurables
- Arquitectura y organización interna de FPGAs SRAM
- Herramientas EDA para diseño en FPGA y plataformas de desarrollo
- Campos de aplicación tecnológica
Tema 3. Lenguaje de descripción hardware VHDL
- Introducción a los HDL y estándares IEEE
- Modelos de descripción hardware
- Estructura de diseño: entidades, arquitecturas, configuraciones
- Modularidad: paquetes y subprogramas
- Elementos del lenguaje: tipos, objetos, operadores, atributos
- Sentencias concurrentes y secuenciales
- Simulación de modelos
Tema 4. Diseño de hardware digital con VHDL
- VHDL sintetizable
- Descripciones funcionales y estructurales
- Síntesis de lógica combinacional
- Inferencia de elementos de memoria
- Diseño de máquinas de estados finitos
- Diseño de sistemas a nivel de transferencia de registros (RTL)
- Recomendaciones y buenas prácticas de diseño
Tema 5. SoC reconfigurables y aceleradores hardware
- Nociones de codiseño hardware/software
- Diseño basado en componentes IP y plataformas
- Arquitectura de sistemas SoC sobre FPGA
- Integración de procesadores empotrados (hard: ARM Cortex-A; soft: MicroBlaze, Nios II, RISC-V)
- Interconexión mediante buses de altas prestaciones (AXI, Avalon)
- Aceleradores hardware y módulos específicos
- Flujo de desarrollo e integración hardware/software
- Aplicaciones en sistemas reales: filtrado de datos en sistemas de adquisición, procesamiento en tiempo real, inteligencia artificial en el borde (edge AI), comunicaciones de altas prestaciones
Tema 6. Diseño y desarrollo de componentes IP
- Diseño modular y parametrización de componentes
- Desarrollo de componentes reutilizables (IP cores)
- Diseño de módulos: procesamiento, interfaces y comunicaciones
- Verificación funcional mediante bancos de prueba (testbenches)
- Métricas de rendimiento: área, latencia y frecuencia
- Técnicas básicas de optimización del diseño
Práctico
SEMINARIOS/TALLERES
- Seminario 1. Iniciación a una plataforma de desarrollo con hardware reconfigurable.
- Seminario 2. Herramientas de especificación, verificación y síntesis de sistemas digitales en FPGA.
- Seminario 3. Iniciación al codiseño HW/SW de sistemas empotrados sobre FPGA.
- Seminario 4. Integración de aceleradores hardware en sistemas SoC sobre FPGA.
PRÁCTICAS DE LABORATORIO
- Práctica 1. Fundamentos de diseño digital en FPGA: lógica combinacional y secuencial básica.
- Práctica 2. Diseño de un procesador sencillo: datapath y control.
- Práctica 3. Análisis e integración de un controlador de vídeo VGA.
- Práctica 4. Diseño de un acelerador hardware para procesamiento de datos en tiempo real.
- Práctica 5. Desarrollo e integración de un sistema SoC completo.
Bibliografía
Bibliografía fundamental
- Ashenden, P.J., The designer’s guide to VHDL, Morgan Kaufmann Publishers, c2008
- Chu, P. P., FPGA prototyping by VHDL examples : Xilinx Spartan-3 version , Wiley-Interscience, c2008.
- Hamblen, J.O., Hall T.S., Furman, M.D.: Rapid Prototyping of Digital Systems : SOPC Edition, Springer 2008
- Maxfield, C., FPGAs: Instant Access, Newnes 2008
- Rushton, A., VHDL for Logic Synthesis, John Wiley and Sons, 2011
- Terés, Ll. et al, VHDL, Lenguaje estándar de diseño electrónico, McGraw Hill, 1997
- Unsalan, C. and Tar B., Digital System Design with FPGA: Implementation Using Verilog and VHDL, McGrawHill, 2017.
- Bruno, F. and Eschemann, G., The FPGA Programming Handbook: An essential guide to FPGA design for transforming ideas into hardware using SystemVerilog and VHDL 2nd ed. Edition, Packt Publishing, 2024.
- Dally, W.J., et al, Digital Design Using VHDL: A Systems Approach, Cambridge University Press, 2015.
Bibliografía complementaria
- Ashenden, P. J., Digital Design: An Embedded Systems Approach Using VHDL, Elseiver 2008
- Ashenden, P.J., Lewis, J., VHDL-2008: just the new stuff, Elsevier/Morgan Kaufmann, c2008
- Bergeron, J., Writing Testbenches: Functional Verification of HDL Models, Second Edition, Springer 2003
- Brown, S. y Vranesic, Z., Fundamentals of digital logic with VHDL design, McGraw-Hill, 2009, 3rd ed (Traducida al castellano la edición anterior: Brown, S. y Vranesic, Z., Fundamentos de lógica digital con diseño VHDL, McGraw-Hill, 2006, 2ª ed)
- Cayssials, R, Sistemas embebidos en FPGA, Marcombo, 2014
- Chu , P.P., RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability, Wiley-IEEE Press, 2006
- Chu , P.P., Embedded SoPC design with NIOS II processor and Verilog examples, Wiley, c2012.
- Grout, I. Digital systems design with FPGAs and CPLDs. Elsevier, c2008 • Hwang, E.D., Digital Logic and Microprocessor Design with VHDL, Thomson, 2006
- Kafig, W., VHDL 101: everything you need to know to get started, Elsevier 2011
- Kits, S., Advanced FPGA Design: Architecture, Implementation, and Optimization, Wiley-IEEE Press, 2007
- LaMeres, B.J., Introduction to Logic Circuits & Logic Design with VHDL, Springer, 2017
- Maxfield, C., The design warrior’s guide to FPGAs: devices, tools and flows, Elsevier, c2004
- Meyer-Baese , U., Digital Signal Processing with Field Programmable Gate Arrays (Signals and Communication Technology), Springer; 3rd edition, 2007
- Navaby, Z., VHDL: Modular Desing and Synthesis of Cores and Systems, McGraw-Hill, 2007
- Pardo, F. Y Boluda, J.A., VHDL: lenguaje para síntesis y modelado de circuitos, Ra-Ma, 2011
- Pedroni, V.A., Digital electronics and design with VHDL, Elsevier Morgan Kaufmann Publishers, 2008
- Perry, D.L., VHDL programming by example, McGraw-Hill, 2002
- Ruz, J.L., VHDL: De la tecnología a la arquitectura de computadores, Editorial síntesis, 1997.
- Sass, R, Schmidt, A. G., Embedded Systems Design with Platform FPGAs: Principles and Practices. Elsevier 2010 (Recurso electrónico).
- Schaumont, P.R. , Hardware/Software Codesign: A Practical Introduction, Springer 2013
- Short, K.L., VHDL for Engineers, Prentice Hall, 2008
- Taraate, V., PLD Based Design with VHDL: RTL Design, Synthesis and Implementation Springer, 2017.
- Vahid, F., Embedded System Design: A Unified Hardware/Software Introduction, Wiley; 2001
- Wilson, P.R., Design recipes for FPGAs, Newnes, 2007
Enlaces recomendados
Fabricantes de dispositivos configurables
Estándares y documentación técnica
- IEEE Xplore (estándares IEEE, manuales de referencia de lenguajes HDL, bibliotecas, etc.)
Repositorios de hardware abierto
Otros recursos
- Recomendaciones para usar la IA en la UGR (recomendaciones, preguntas frecuentes, guía para usar herramientas de IA en UGR protegiendo tus datos).
Metodología docente
- MD01. Lección Magistral (Clases Teóricas-Expositivas)
- MD02. Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo).
- MD03. Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías).
- MD04. Actividades no presenciales Individuales.
- MD05. Actividades no presenciales Grupales.
- MD06. Tutorías Académicas.
Metodología docente
- MD01. Lección magistral.
- MD02. Actividades prácticas.
- MD03. Seminarios.
- MD04. Actividades no presenciales.
- MD05. Tutorías académicas.
Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)
Evaluación Ordinaria
Todo lo relativo a la evaluación se regirá por la normativa sobre evaluación y calificación vigente en la Universidad de Granada. El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el art. 5 del R. D 1125/2003, de 5 de septiembre, por el que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y validez en el territorio nacional.
La evaluación continua de la asignatura se compone de las siguientes actividades:
- Teoría (40%). La evaluación de los contenidos teóricos se realizará mediante:
- Evaluación individual de carácter formativo durante el semestre, mediante pruebas orales o escritas realizadas en las clases de teoría, orientadas al seguimiento y comprensión de los contenidos. Calificación máxima: 2,5 puntos.
- Examen final del conjunto del temario, que permitirá evaluar la comprensión global de los contenidos y su aplicación. Calificación máxima: 1,5 puntos.
- Criterios de evaluación: comprensión de los conceptos fundamentales, capacidad de razonamiento y análisis, aplicación de los conocimientos a la resolución de problemas.
- Prácticas y seminarios (60%) La evaluación de las prácticas de laboratorio y de los seminarios se realizará de forma conjunta mediante la realización de, al menos, dos pruebas individuales, de carácter oral o escrito, distribuidas a lo largo del semestre y en la evaluación final.
- Evaluación de prácticas de laboratorio
- Se propondrá la realización de un conjunto de actividades basadas en casos prácticos o ejercicios similares a los desarrollados en el laboratorio. Se plantearán una serie de cuestiones orientadas a la comprensión y aplicación de los contenidos prácticos, incluyendo la interpretación y modificación de descripciones hardware, el análisis del comportamiento de módulos y sistemas, la toma de decisiones de diseño e implementación y la evaluación de alternativas y su impacto en el funcionamiento del sistema, así como otros aspectos relevantes tratados en las prácticas de la asignatura.
- Criterios de evaluación: adecuación funcional de las soluciones planteadas, capacidad de análisis de sistemas hardware, fundamentación de las decisiones de diseño, precisión en las respuestas.
- Calificación máxima: 5 puntos.
- Evaluación de seminarios
- Se propondrán ejercicios y cuestiones relacionados con la temática tratada en los seminarios, orientados a la comprensión de las herramientas y metodologías de diseño empleadas.
- Criterios de evaluación: comprensión del flujo de desarrollo de sistemas hardware, capacidad de interpretación de herramientas y entornos de diseño, análisis de ventajas/limitaciones de las metodologías de diseño e integración de sistemas.
- Calificación máxima: 1 punto.
- Evaluación de prácticas de laboratorio
Evaluación Extraordinaria
En las convocatorias extraordinarias se utilizará la evaluación única final, tal y como se describe más abajo.
Evaluación única final
La evaluación única final se realizará en la fecha indicada por el Centro para tal efecto, y constará de las siguientes pruebas:
- Prueba de conocimientos teóricos y resolución de problemas (40%)
- Se plantearán cuestiones de teoría y problemas relacionados con el conjunto del temario, orientados a evaluar la comprensión de los contenidos y su aplicación.
- Criterios de evaluación: comprensión de los conceptos fundamentales, capacidad de razonamiento y análisis, aplicación de los conocimientos a la resolución de problemas.
- Prueba sobre prácticas y seminarios (60%)
- Se propondrá la realización de un conjunto de actividades basadas en casos prácticos o ejercicios similares a los desarrollados durante el curso. Se plantearán cuestiones orientadas a la comprensión y aplicación de los contenidos, incluyendo: interpretación y modificación de descripciones hardware, análisis del comportamiento de módulos y sistemas, toma de decisiones de diseño e implementación, evaluación de alternativas y su impacto en el funcionamiento del sistema, comprensión del flujo de desarrollo y de las herramientas y entornos de diseño, así como otros aspectos relevantes tratados en las prácticas y seminarios de la asignatura.
- Criterios de evaluación: adecuación funcional de las soluciones planteadas, capacidad de análisis de sistemas hardware, fundamentación de las decisiones de diseño, precisión en las respuestas, comprensión del flujo de desarrollo de sistemas hardware, capacidad de interpretación de herramientas y entornos de diseño, análisis de ventajas/limitaciones de las metodologías de diseño e integración de sistemas.
Información adicional
Información de interés para estudiantado con discapacidad y/o Necesidades Específicas de Apoyo Educativo (NEAE): Gestión de servicios y apoyos (https://ve.ugr.es/servicios/atencion-social/estudiantes-con-discapacidad).