Proyecto de Ingeniería de Computadores

Usted está aquí

Créditos
6
Tipos
Obligatoria de especialidad (Ingeniería de Computadores)
Requisitos
  • Precorrequisito: AC2
  • Precorrequisito: DSBM
  • Precorrequisito: SO2
Departamento
DAC;ESAII
Esta asignatura es impartida alternadamente por el departamento de ESAII y el departamento de AC. El proyecto a realizar (y sus tareas asociadas) varía un poco dependiendo del semestre.

El semestre de otoño (Q1) es impartido por el departamento de ESAII y el proyecto consistirá en obtener un prototipo funcionante de un diseño basado en sistemas embebidos que deberá cumplir con las especificaciones establecidas al comienzo del curso.

El semestre de primavera (Q2) es impartido por el departamento de AC y el proyecto consistirá en implementar completamente un procesador sencillo en un dispositivo programable y programar un pequeño núcleo de Sistema Operativo.

Profesorado

Responsable

  • Antonio Benito Martínez Velasco ( )
  • Josep-Llorenç Cruz Diaz ( )

Otros

  • Carlos Morata Núñez ( )

Competencias

Competencias Transversales

Trabajo en equipo

  • G5 [Avaluable] - Ser capaz de trabajar como miembro de un equipo, ya sea como un miembro más, o realizando tareas de dirección con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
    • G5.3 - Identificar los papeles, habilitados y carencias de los diferentes miembros del grupo. Proponer mejoras en la estructura del grupo. Interactuar con eficacia y de forma profesional. Negociar y gestionar conflictos en el grupo. Reconocer y dar soporte o asumir el papel de líder en el grupo de trabajo. Evaluar y presentar los resultados del trabajo de grupo. Representar al grupo en negociaciones con terceros. Capacidad de colaborar en un entorno multidisciplinar. Conocer y saber aplicar las técnicas para promover la creatividad.

Espíritu emprendedor e innovador

  • G1 [Avaluable] - Conocer y comprender la organización de una empresa y las ciencias que rigen su actividad; capacidad de comprender las reglas laborales y las relaciones entre la planificación, las estrategias industriales y comerciales, la calidad y el beneficio. Desarrollar la creatividad, el espíritu emprendedor y la tendencia a la innovación.
    • G1.3 - Ser resolutivo. Utilizar conocimientos y habilidades estratégicas para la creación y gestión de proyectos, aplicar soluciones sistémicas a problemas complejos, y diseñar y gestionar la innovación en la organización. Demostrar flexibilidad y profesionalidad en el desarrollo de su trabajo.

Comunicación eficaz oral y escrita

  • G4 [Avaluable] - Comunicar de forma oral y escrita con otras personas conocimientos, procedimientos, resultados e ideas. Participar en debates sobre temas propios de la actividad del ingeniero técnico en informática.
    • G4.3 - Comunicarse de manera clara y eficiente en presentaciones orales y escritas sobre temas complejos, adaptándose a la situación, al tipo de público y a los objetivos de la comunicación utilizando las estrategias y los medios adecuados. Analizar, valorar y responder adecuadamente a las preguntas del auditorio.

Competencias Técnicas

Competencias técnicas comunes

  • CT6 - Demostrar conocimiento y comprensión del funcionamiento interno de un computador y del funcionamiento de las comunicaciones entre ordenadores.
    • CT6.2 - Demostrar conocimiento, comprensión y capacidad de evaluar la estructura y la arquitectura de los computadores, así como los componentes básicos que los conforman.
  • CT7 - Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
    • CT7.1 - Demostrar conocimiento de las métricas de calidad y saber utilizarlas.
  • CT8 - Planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha, su mejora continua y valorando su impacto económico y social
    • CT8.7 - Controlar versiones y configuraciones del proyecto.

Competencias Técnicas de cada especialidad

Especialidad ingeniería de computadores

  • CEC1 - Diseñar y construir sistemas digitales, incluyendo computadores, sistemas basados en microprocesadores y sistemas de comunicaciones.
    • CEC1.1 - Diseñar un sistema basado en microprocesador/microcontrolador.
  • CEC2 - Analizar y evaluar arquitecturas de computadores incluyendo plataformas paralelas y distribuidas, y desarrollar y optimizar software para dichas plataformas.
    • CEC2.1 - Analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y la ejecución de aplicaciones y servicios informáticos.
    • CEC2.2 - Programar considerando la arquitectura hardware, tanto en ensamblador como en alto nivel.
    • CEC2.3 - Desarrollar y analizar software para sistemas basados en microprocesadores y sus interfícies con usuarios y otros dispositivos.
  • CEC3 - Desarrollar y analizar hardware y software para sistemas empotrados y/o de muy bajo consumo.
    • CEC3.2 - Desarrollar procesadores específicos y sistemas empotrados; desarrollar y optimizar el software de estos sistemas. 

Objetivos

  1. Nombrar y definir los conceptos básicos en la gestion de proyectos
    Competencias relacionadas: G1.3, G4.3, G5.3,
  2. (Q1 - Diseño e implementación de un sistema embebido) Especificar los objetivos de un sistema embebido.
    Competencias relacionadas: G1.3, G5.3, CT6.2,
  3. (Q1 - Diseño e implementación de un sistema embebido) Describir el hardware de un sistema embebido a partir de las especificaciones.
    Competencias relacionadas: CEC2.1, G5.3, CEC1.1, CT6.2, CT8.7,
  4. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Obtener el diseño hardware a partir del esquema de bloques
    Competencias relacionadas: CEC2.1, CEC3.2, G5.3, CEC1.1, CT6.2,
  5. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementar el hardware de un sistema empotrado
    Competencias relacionadas: CEC2.1, CEC3.2, CEC1.1,
  6. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Obtener el diseño software de un sistema embebido a partir de las especificaciones
    Competencias relacionadas: CEC2.3, CEC3.2, G5.3, CEC1.1, CT8.7,
  7. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementar el software de un sistema empotrado
    Competencias relacionadas: G1.3, CEC2.3, CEC3.2, G5.3, CEC1.1, CEC2.2,
  8. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Integrar el diseño hardware y software en un prototipo
    Competencias relacionadas: CEC2.1, CEC3.2, G5.3, CT8.7,
  9. (Q2 - Proyecto de implementación de un procesador) Usar correctamente el lenguaje de descripción del hardware (VHDL) y diseñar sistemas digitales utilizando un lenguaje de descripción del hardware.
    Competencias relacionadas: CEC1.1, CEC2.2,
  10. (Q2 - Proyecto de implementación de un procesador) Usar las herramientas y programar las placas de desarrollo para una FPGA.
    Competencias relacionadas: CEC1.1, CEC2.2,
    Subcompetences:
    • Emplear correctamente herramientas de simulación.
  11. (Q2 - Proyecto de implementación de un procesador) Comprender y poner en práctica la microarquitectura de un procesador a nivel básico y avanzado.
    Competencias relacionadas: CEC2.1, CEC1.1, CT6.2,
    Subcompetences:
    • Entender alguna de las restricciones tecnológicas en la implementación de un procesador.
  12. (Q2 - Proyecto de implementación de un procesador) Implementar un procesador sencillo (reducido) uniciclo.
    Competencias relacionadas: G5.3, CEC1.1, CT6.2, CEC2.2,
    Subcompetences:
    • Diseñar los bloques básicos (banco de registros y ALU) de un procesador.
    • Diseñar un sistema de arranque para un procesador.
    • Diseñar una memoria (ROM/RAM) en una FPGA.
    • Interpretar correctamente el esquema electrónico de un circuito.
    • Emplear correctamente herramientas de depuración.
    • Diseñar una unidad de control de un procesador.
  13. (Q2 - Proyecto de implementación de un procesador) Implementar un procesador multiciclo.
    Competencias relacionadas: G5.3, CEC1.1, CT6.2, CT8.7, CEC2.2,
    Subcompetences:
    • Dibujar e interpretar correctamente los diagramas de tiempo de las señales de un circuito.
    • Diseñar un controlador de memoria para el uso de memorias externas en la FPGA.
    • Crear diferentes señales de reloj para el funcionamiento de los distintos componentes del computador.
  14. (Q2 - Proyecto de implementación de un procesador) Implementar un procesador con características avanzadas.
    Competencias relacionadas: CT7.1, CT6.2,
    Subcompetences:
    • Añadir un soporte básico por parte del procesador para los sistemas operativos actuales (gestión de memoria virtual y ejecución de instrucciones de forma privilegiada).
    • Crear un SoC (System on Chip) añadiendo los controladores de pantalla VGA y teclado PS/2 al procesador.
    • Evaluar el consumo y rendimiento del procesador implementado.
    • Añadir soporte a interrupciones y excepciones.
  15. (Q2 - Proyecto de implementación de un procesador) Presentar y defender alternativas de diseño hardware para distintos componentes del procesador.
    Competencias relacionadas: G1.3, G4.3, CT6.2,
  16. (Q2 - Proyecto de implementación de un procesador) Implementar un pequeño núcleo de Sistema Operativo para el procesador diseñado.
    Competencias relacionadas: CEC2.3, CEC3.2, CEC2.2,

Contenidos

  1. Introducción
    Una breve presentación de la asignatura. Una introducción a la gestión de proyectos. En el Q1 una introducción al diseño basado en sistemas empotrados y en el Q2 una introducción a los dispositivos programables (FPGA) ya los lenguajes de descripción de hardware
  2. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Desarrollo de un proyecto de sistema empotrado
    Etapas de desarrollo y planificación de un sistema empotrado. Herramientas de desarrollo. Repercusiones socio-ambientales del proyecto. Memoria y pliego de condiciones.
  3. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Descripción hardware de los sistemas empotrados
    Técnicas y herramientas de descripción del hardware de un sistema empotrado. Diagramas de blogs. Esquemas eléctricos. Sistemas de captura de esquemas
  4. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementación hardware de los sistemas empotrados
    Métodos y herramientas para la obtención de un prototipo a partir del diseño
  5. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Diseño de sistemas autónomos low cost low power
    Se presentan las alternativas de diseño para obtener sistemas de bajo consumo y bajo coste
  6. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Descripción software de los sistemas empotrados
    Técnicas y herramientas de descripción del software de un sistema empotrado. Diagramas de flujo, diagramas de estados, diseño basado en modelos. Idoneidad según su aplicación.
  7. (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementación software de los sistema empotrados
    Depuración y prueba del firmware de los sistemas empotrados
  8. (Q2 - Proyecto de implementación de un procesador) Herramientas de desarrollo de FPGA.
    Herramientas para la descripción y programación de hardware sobre FPGA. Simuladores y depuradores (debuggers) de circuitos. Descripción de la placa de pruebas. Implementación de algunos bloques básicos (multiplexores, sumadores, relojes) en una placa de pruebas.
  9. (Q2 - Proyecto de implementación de un procesador) Lenguajes de descripción de hardware.
    Repaso de los conceptos básicos de VHDL y ampliación de los conocimientos en lenguajes de descripción del hardware.
  10. (Q2 - Proyecto de implementación de un procesador) Descripción del procesador.
    Repaso de algunos de los conocimientos y técnicas adquiridos previamente en el diseño de computadores. Mostar el repertorio de instrucciones y el diseño de blogs hardware del procesador a implementar.
  11. (Q2 - Proyecto de implementación de un procesador) Implementación básica del procesador.
    Implementación de un procesador básico (banco de registros y ALU simple) uniciclo. Implementación de una memoria en una FPGA.
  12. (Q2 - Proyecto de implementación de un procesador) Implementación del procesador completo.
    Implementación de un procesador segmentado multiciclo. Implementación de un controlador de memoria que gestione memorias ROM y RAM externas a la FPGA. Implementación más completa de una ALU y las instrucciones de salto. Implementación de un controlador de los sistemas de entrada/salida. Añadir soporte a interrupciones y excepciones. Añadir un soporte básico por parte del procesador para los sistemas operativos actuales (gestión de memoria virtual y ejecución de instrucciones de forma privilegiada).

Actividades

Actividad Acto evaluativo


Introducción

  • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

    Presentación de la asignatura. Introducción a la gestión de proyectos. Introducción al diseño basado en sistemas empotrados.

  • (Q2) - Proyecto de implementación de un procesador

    Presentación de la asignatura. Introducción a la gestión de proyectos. Introducción a los dispositivos programables (FPGA) ya los lenguajes de descripción de hardware.

    • Laboratorio:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Conceptos teóricos sobre la gestión de proyectos. Definición del proyecto. Etapas y tareas de desarrollo.

    • (Q2) - Proyecto de implementación de un procesador

      Conceptos teóricos sobre la gestión de proyectos y sobre el funcionamiento de los dispositivos programables (FPGA)

    Objetivos: 1
    Contenidos:
  • Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Fase inicial del proyecto

  • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

    Especificaciones y objetivos del proyecto. Obtener unas especificaciones del sistema a partir de las alternativas dadas por el profesor. Definición de los bloques de tareas de desarrollo y distribución en los distintos grupos de laboratorio. Diagrama de Gannt del proyecto. Diagrama de bloques del sistema cumpliendo con las especificaciones. Generar un primer esquema de Hardware de la placa base del sistema.

  • (Q2) - Proyecto de implementación de un procesador

    Aprender conceptos de VHDL. Pautas del diseño de blogs tipo sumadores, contadores, registros.

    • Laboratorio:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Discusión de las distintas alternativas. Consensuar una propuesta de objetivos y prestaciones. Estudiar los dispositivos, interfaces y periféricos externos que necesita el sistema para cumplir con las especificaciones. Identificación de los distintos bloques de tareas a realizar. Distribuir los distintos bloques entre los grupos de laboratorio. Aprenda a utilizar la captura de esquemas de la herramienta CAD de diseño de circuitos impresos.

    • (Q2) - Proyecto de implementación de un procesador

      Recordar conceptos básicos VHDL. Hacer un ejemplo paso a paso y completo con diagrama de bloques (Schematic) y después con VHDL implementar un circuito utilizando los switch y leds de la placa. Aprender a utilizar el simulador Qsim. Explicar conceptos nuevos de VHDL y pautas del diseño de blogs tipo sumadores, contadores, registros. Explicar funcionamiento del reloj de la placa FPGA y cómo hacer múltiples con VHDL. Trabajar en la conexión y jerarquía de componentes en VHDL.

    • Aprendizaje autónomo:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Generar unas especificaciones técnicas del sistema. Generar diagrama de Gannt del proyecto. Generar el esquema de blogs del sistema a partir de las especificaciones del proyecto. Generar un primer esquema hard de la placa base del sistema a partir del diagrama de blogs, utilizando una herramienta de captura de esquemas compatible con herramientas CAD de diseño de circuitos impresos.

    • (Q2) - Proyecto de implementación de un procesador

      Diseñar bloques sencillos (multiplexor Mx4-1). Aprenda a utilizar los interruptores, pulsadores y visores 7-segmentos de la placa. Realizar un traductor de algunos caracteres alfabéticos codificados en 4 bits, almacenados en un registro, en el alfabeto Morse y mostrar el resultado por los leds de la placa.

    Objetivos: 9 10 2 3 4
    Contenidos:
  • Teoría
    0h
    Problemas
    0h
    Laboratorio
    6h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    6h

    Fase intermedia del proyecto

  • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

    Obtención de la placa base prototipo del sistema. Implementación del software del sistema. Obtener el firmware de control de los diferentes dispositivos externos (periféricos, interfaces, sensores y actuadores). Puesta en funcionamiento de la placa base y dispositivos externos.

  • (Q2) - Proyecto de implementación de un procesador

    Primero implementar un procesador uniciclo sencillo tipo RIESGO. Este procesador estará formado sólo por dos bloques (Banco de Registros y ALU) y una pequeña lógica de control. Este procesador será la base para más adelante desarrollar uno más completo. Seguidamente implementar un procesador multiciclo. Recordar el concepto de fases de ejecución. Además, el procesador gestionará una memoria RAM externa para los datos y una memoria Flash con el programa a ejecutar.

    • Laboratorio:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Construcción de un placa base prototipo que incluye una CPU con la conexión de los distintos dispositivos externos (periféricos, interfaces, sensores y actuadores) atendiendo a las metodologías descritas por el profesor. Disposición de los elementos necesarios para garantizar la alimentación de la placa base y todos los dispositivos externos. Puesta en funcionamiento del prototipo base y de los distintos dispositivos externos. Depuración y perfeccionamiento del código de funcionamiento de la placa base, así como del código de los distintos dispositivos externos por separado.

    • (Q2) - Proyecto de implementación de un procesador

      Primero aprender la arquitectura del procesador básico, su repertorio de instrucciones y su funcionamiento. Aprender a realizar un banco de registros y una ALU de ejemplo en VHDL. Aprenda diseñar el sistema de arranque para el procesador. Aprender a diseñar una memoria (ROM/RAM) en una FPGA. Diseñar el Banco de Registros del procesador y ALU. Comprobar su funcionamiento con un simulador. Diseñar la lógica de control del procesador. Hacer una memoria ROM en la FPGA y cargar instrucciones para su ejecución. Ejecutar el primer programa en el computador. Seguidamente, aprender el procesador multiciclo para poder realizar accesos a memoria. Aprender el sistema de memoria del procesador (concepto básico). Recordar el concepto de fases de ejecución (fetch, decode, ejecución, acceso a memoria, escritura datos). Aprenda a implementar un grafo de estados con VHDL. Aprender a generar varias señales de reloj ya realizar un circuito de inicialización. Realizar una ALU completa para el procesador. Aprender a crear e interpretar correctamente los diagramas de tiempo de las señales de un circuito. Aprender a diseñar un controlador de memoria para el uso de memorias externas en la FPGA. Crear diferentes señales de reloj para el funcionamiento de los distintos componentes del computador. Implementar el grafo de estados de control del procesador mediante VHDL. Modificar el ALU del procesador para que sea cumplida. Modificar la UC para soportar las nuevas instrucciones. Añadir nuevas instrucciones de salto e implementar el nuevo fetch. Añadir dispositivos de entrada/salida.

    • Aprendizaje autónomo:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Generación del código del sistema base y de los dispositivos externos en lenguaje C y con el entorno de desarrollo propuesto, atendiendo al diseño del software y recomendaciones propuestas por el profesor.

    • (Q2) - Proyecto de implementación de un procesador

      Desarrollar las tareas comenzadas en el laboratorio.

    Objetivos: 11 12 13 4 5 6
    Contenidos:
  • Teoría
    0h
    Problemas
    0h
    Laboratorio
    20h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    26h

    Fase avanzada del proyecto

  • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

    Integración hardware de todos los dispositivos externos en la placa base. Integración del firmware de control de los dispositivos externos en la placa base.

  • (Q2) - Proyecto de implementación de un procesador

    Conectar dispositivos de entrada/salida más complejos. Implementar sistemas y estructuras avanzadas en un procesador. Añadir soporte a interrupciones y excepciones. Añadir un soporte básico por parte del procesador para los sistemas operativos actuales (gestión de memoria virtual y ejecución de instrucciones de forma privilegiada). Inicialización del sistema operativo. Análisis de recursos.

    • Laboratorio:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Conexión de todos los dispositivos externos en la placa base. Integración del código de control de dispositivos externos con el código de la placa base. Pruebas y depuración de los códigos.

    • (Q2) - Proyecto de implementación de un procesador

      Conectar controladores de pantalla VGA y teclado PS/2 en el procesador diseñado para crear un SoC (System on Chip). Agregar el sistema de gestión de interrupciones y excepciones al procesador y generar juegos de pruebas que funcionen por interrupciones. Definir el modo sistema del procesador y añadir el sistema de llamadas a sistema. Definir y añadir una TLB al procesador y las instrucciones para su gestión. Implementación de un sistema de arranque para un sistema operativo. Diseñar un mini sistema operativo que funcione sobre la placa con el procesador implementado. Este sistema operativo gestionará los mecanismos de entrada/salida al sistema y gestionará la memoria basada en paginación y el control de procesos. Analizar los recursos usados. Realizar análisis del rendimiento, coste. Posibles optimizaciones.

    • Aprendizaje autónomo:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Adaptación de los códigos, sistema base y control de dispositivos externos para su integración en un único sistema.

    • (Q2) - Proyecto de implementación de un procesador

      Desarrollar las tareas comenzadas en el laboratorio.

    Objetivos: 13 14 5 7 8
    Contenidos:
  • Teoría
    0h
    Problemas
    0h
    Laboratorio
    20h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    26h

    Fase final del proyecto

  • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

    Verificar que las prestaciones y funcionamiento del sistema integrado cumplen las especificaciones y objetivos marcados inicialmente. Corrección y ajuste de las desviaciones.

  • (Q2) - Proyecto de implementación de un procesador

    Proponer e implementar mejoras en las capacidades de los procesadores, en la arquitectura del procesador, en los dispositivos de entrada/salida o en el sistema operativo del proyecto realizado.

    • Laboratorio:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Corrección y ajuste de las desviaciones detectadas en los objetivos, prestaciones o funcionamiento del sistema integrado.

    • (Q2) - Proyecto de implementación de un procesador

      A partir de un diseño del procesador que se ha implementado añadirle nuevas funcionalidades o mejorar las ya existentes a nivel de arquitectura o sistema operativo.

    • Aprendizaje autónomo:
    • (Q1) - Proyecto de diseño e implementación de un sistema empotrado

      Pruebas en el entorno de trabajo del sistema. Detección de las desviaciones en los objetivos, prestaciones o funcionamiento del sistema respecto a las marcadas en las especificaciones iniciales. Valoración de los resultados obtenidos. Obtención de una memoria del proyecto.

    • (Q2) - Proyecto de implementación de un procesador

      Desarrollar las tareas comenzadas en el laboratorio.

    Objetivos: 15 5 7 8 16
    Contenidos:
  • Teoría
    0h
    Problemas
    0h
    Laboratorio
    12h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    18h

    Presentación oral del trabajo de investigación y evaluación de competencias transversales.


    Objetivos: 15
    Semana: 15 (Fuera de horario lectivo)
    Tipo: entrega
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    11h

    Entrega de la práctica (documentación y código) y entrevista del proyecto



    Semana: 15 (Fuera de horario lectivo)
    Tipo: entrega
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    3h

    Metodología docente

    La materia solo tendrá clases de laboratorio. Al comienzo de cada sesión de laboratorio se hará una breve explicación teórica de una duración de aproximadamente 20 minutos. Esta explicación teórica será para refrescar los conceptos aprendidos en materias anteriores y presentar en detalle la tarea a realizar en la sesión de laboratorio.
    Las clases de laboratorio serán semanales.

    Durante el semestre de otoño (Q1), se diseñará y construirá el prototipo del sistema embebido, que se detallará en las explicaciones teóricas, con la ayuda de un ambiente de desarrollo de microcontroladores y técnicas de implementación de prototipos.

    Durante el semestre de primavera (Q2), en el laboratorio, se implementará en una placa de desarrollo de FPGA el procesador mostrado en las explicaciones teóricas, utilizando herramientas de desarrollo profesionales.
    Todas estas implementaciones y diseños se realizarán en grupos de 2 personas.

    Método de evaluación

    (Q1) - Proyecto de diseño e implementación de un sistema empotrado

    La nota final (NF) estará formada por la suma de tres componentes:

    NF = 20% NP1 + 40% NP2 + 40% NP3
    · La nota NP1 corresponde a las tareas realizadas durante la fase de especificación del proyecto (fase inicial del proyecto)
    · La nota NP2 corresponde a la evaluación de la implementación e integración del hardware y del software del sistema (fases intermedia y avanzada del proyecto).
    · La nota NP3 corresponde a los resultados obtenidos comparando las especificaciones y objetivos marcados al principio de curso (fase final del proyecto).

    Las notas de las competencias transversales se obtendrán de la siguiente forma:
    Emprendimiento e innovación: se tendrá en cuenta la iniciativa al encontrar soluciones innovadoras así como su originalidad

    Trabajo en equipo: se tendrá en cuenta el trabajo de coordinación del propio grupo de trabajo así como la coordinación entre los distintos grupos a la hora de tomar decisiones de diseño e implementación comunes en el proyecto

    Comunicación eficaz oral y escrita: se evaluará la memoria del proyecto así como su presentación oral. Se presentará oralmente fuera de horas de clase al final del curso (en horas de actividades dirigidas).



    (Q2) - Proyecto de implementación de un procesador

    La nota final (NF) estará formada por la suma de tres componentes:

    NF = 5% NP1 + 75% NP2 + 20% NP3
    · La nota NP1 corresponde a las tareas realizadas durante la fase de aprendizaje de las herramientas y técnicas (fase inicial del proyecto).
    · La nota NP2 corresponde a la implementación del procesador (fases intermedia y avanzada del proyecto).
    · La nota NP3 corresponde a la propuesta e implementación de mejoras en el procesador (fase final del proyecto).

    Cada una de las notas NP2 y NP3 se obtendrán a partir de la entrega y comprobación del funcionamiento de todo el diseño implementado y de la entrega de un informe sobre el proyecto realizado.

    Las notas de las competencias transversales de emprendeduría e innovación y de trabajo en equipo se obtendrán a partir de las propuestas presentadas en la fase avanzada del proyecto y de los resultados obtenidos.

    Las notas de la competencia transversal comunicación eficaz oral y escrita se obtendrán mediante la preparación de un trabajo escrito relacionado con el temario del curso y una breve presentación oral. El trabajo se presentará oralmente fuera de horas de clase al final del curso (en horas de actividades dirigidas).

    La calificación de las competencias transversales: Tendrán valores A, B, C o D (donde A corresponde a un nivel excelente, B corresponde a un nivel deseado, C corresponde a un nivel suficiente y D corresponde a un nivel no superado).

    Bibliografía

    Básica:

    Complementaria:

    Web links

    Capacidades previas

    El estudiante debe tener las capacidades técnicas que le otorgan las asignaturas cursadas previamente a más de un nivel de inglés suficiente para leer y entender una documentación técnica.

    Conocimientos de programación en lenguaje máquina y en código ensamblador.
    Conocer el funcionamiento de las distintas puertas lógicas y bloques combinacionales o secuenciales.
    Saber analizar y sintetizar circuitos lógicos.
    Saber el funcionamiento de un computador a nivel de componentes e interconexiones.
    Conocer el funcionamiento, elementos principales y estructura de un procesador.
    Conocimientos de sistemas operativos a nivel de desarrollador.
    Conocimientos sobre la arquitectura y funcionamiento de los microcontroladores
    Saber configurar periféricos integrados en los microcontroladores
    Saber interconectar los microcontroladores a periféricos externos
    Conocimientos del diseño de sistemas empotrados (S.E)
    Aspectos Hardware y software de los SE
    Saber utilizar las herramientas para el desarrollo de S.E