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 Benedico Blanes (toni.benedico@upc.edu)
- Josep-Llorenç Cruz Diaz (cruz@ac.upc.edu)
Otros
- Carlos Morata Núñez (carlos.morata@upc.edu)
Competencias
Trabajo en equipo
- 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.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.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 comunes
- 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.1 - Demostrar conocimiento de las métricas de calidad y saber utilizarlas.
- CT8.7 - Controlar versiones y configuraciones del proyecto.
Especialidad ingeniería de computadores
- CEC1.1 - Diseñar un sistema basado en microprocesador/microcontrolador.
- 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.2 - Desarrollar procesadores específicos y sistemas empotrados; desarrollar y optimizar el software de estos sistemas.
Objetivos
-
Nombrar y definir los conceptos básicos en la gestion de proyectos
Competencias relacionadas: G1.3, G4.3, G5.3, -
(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, -
(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, -
(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, -
(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, -
(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, -
(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, -
(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, -
(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, -
(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.
-
(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.
-
(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.
-
(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.
-
(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.
-
(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, -
(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
-
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 -
(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. -
(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 -
(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 -
(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 -
(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. -
(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 -
(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. -
(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. -
(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. -
(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. -
(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
<li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> Presentación de la asignatura. Introducción a la gestión de proyectos. Introducción al diseño basado en sistemas empotrados. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> Conceptos teóricos sobre la gestión de proyectos. Definición del proyecto. Etapas y tareas de desarrollo. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> Conceptos teóricos sobre la gestión de proyectos y sobre el funcionamiento de los dispositivos programables (FPGA)
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Fase inicial del proyecto
<li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> Aprender conceptos de VHDL. Pautas del diseño de blogs tipo sumadores, contadores, registros.- Laboratorio: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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.
Contenidos:
- 9 . (Q2 - Proyecto de implementación de un procesador) Lenguajes de descripción de hardware.
- 8 . (Q2 - Proyecto de implementación de un procesador) Herramientas de desarrollo de FPGA.
- 2 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Desarrollo de un proyecto de sistema empotrado
- 5 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Diseño de sistemas autónomos low cost low power
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h
Fase intermedia del proyecto
<li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> Desarrollar las tareas comenzadas en el laboratorio.
Contenidos:
- 10 . (Q2 - Proyecto de implementación de un procesador) Descripción del procesador.
- 11 . (Q2 - Proyecto de implementación de un procesador) Implementación básica del procesador.
- 2 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Desarrollo de un proyecto de sistema empotrado
- 3 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Descripción hardware de los sistemas empotrados
- 4 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementación hardware de los sistemas empotrados
- 7 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementación software de los sistema empotrados
Teoría
0h
Problemas
0h
Laboratorio
20h
Aprendizaje dirigido
0h
Aprendizaje autónomo
26h
Fase avanzada del proyecto
<li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> Adaptación de los códigos, sistema base y control de dispositivos externos para su integración en un único sistema. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> Desarrollar las tareas comenzadas en el laboratorio.
Contenidos:
- 12 . (Q2 - Proyecto de implementación de un procesador) Implementación del procesador completo.
- 4 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementación hardware de los sistemas empotrados
- 7 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementación software de los sistema empotrados
Teoría
0h
Problemas
0h
Laboratorio
20h
Aprendizaje dirigido
0h
Aprendizaje autónomo
26h
Fase final del proyecto
<li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> Verificar que las prestaciones y funcionamiento del sistema integrado cumplen las especificaciones y objetivos marcados inicialmente. Corrección y ajuste de las desviaciones. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> Corrección y ajuste de las desviaciones detectadas en los objetivos, prestaciones o funcionamiento del sistema integrado. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> 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: <li>(Q1) - Proyecto de diseño e implementación de un sistema empotrado<p> 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. <br> <li>(Q2) - Proyecto de implementación de un procesador<p> Desarrollar las tareas comenzadas en el laboratorio.
Contenidos:
- 12 . (Q2 - Proyecto de implementación de un procesador) Implementación del procesador completo.
- 4 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementación hardware de los sistemas empotrados
- 7 . (Q1 - Proyecto de diseño e implementación de un sistema empotrado) Implementación software de los sistema empotrados
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)
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Entrega de la práctica (documentación y código) y entrevista del proyecto
Semana: 15 (Fuera de horario lectivo)
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
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
Cualquier acto de fraude académico, plagio o uso o mera tenencia al alcance de medios no autorizados en cualquier actividad de
evaluación comportará la calificación de cero (0) en la prueba o entrega afectada. Además, de acuerdo con la normativa de la
Universidad, la posible derivación de los hechos para la apertura de un expediente disciplinario implicará que la asignatura quede en
el estado provisional de "pendiente de evaluación" hasta la resolución del expediente. La gestión de estas incidencias se lleva a cabo
de acuerdo con el Marco de actuación para la integridad académica en la evaluación de la UPC.
(Q1) - Proyecto de diseño e implementación de un sistema empotradoLa 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ásico
-
Computer architecture: a quantitative approach
- Hennessy, J.L.; Patterson, D.A,
Elsevier/Morgan Kaufmann,
2019.
ISBN: 9780128119051
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004117509706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Estructura y diseño de computadores: la interfaz software/hardware
- Patterson, D.A.; Hennessy, J.L,
Reverté,
2011.
ISBN: 978-84-291-2620-4
http://cataleg.upc.edu/record=b1387697~S1*cat -
The art of designing embedded systems
- Ganssle, J.G,
Elsevier / Newnes,
2008.
ISBN: 9780750686440
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003636679706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The art of programming embedded systems
- Ganssle, J.G,
Academic Press,
1992.
ISBN: 0122748808
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003931829706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Better embedded system software
- Koopman, P,
Drumnadrochit Press,
2010.
ISBN: 9780984449002
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003826209706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementario
-
LittleProc: disseny d'un microprocessador en una plataforma reconfigurable
- Saiz, J.; Portero, A.; Aragonès, R,
Servei de Publicacions de la Universitat Autònoma de Barcelona,
2010.
ISBN: 9788449026355
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003931779706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Designing embedded hardware
- Catsoulis, J,
O'Reilly,
2005.
ISBN: 0596007558
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002895339706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Design with PIC microcontrollers
- Peatman, J.B,
Prentice Hall,
1998.
ISBN: 0137592590
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001882099706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- web de sistemes encastats http://www.embedded.com
- Web de disseny basat en microcontroladors http://www.epanorama.net/links/microprocessor.html
- Grup especialitzat en sistemes encastats http://www.ganssle.com/
- Web dels microcontroladors PIC http://www.microchipc.com/
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