Computer Engineering Project

You are here

Credits
6
Types
Specialization compulsory (Computer Engineering)
Requirements
  • Precorequisite: SO2
  • Precorequisite: DSBM
  • Precorequisite: AC2
Department
ESAII
Aquesta assignatura és impartida pel departament d'ESAII i el departament d'AC en quadrimestres alterns. El projecte a realitzar (i les seves tasques associades) és una mica diferent en funció del quadrimestre.

El quadrimestre de tardor (Q1) és impartit pel departament d'ESAII i el projecte consistirà en la obtenció d'un prototip en funcionament d'un disseny basat en sistemes encastats que haurà de complir amb unes especificacions marcades a principi del curs.

El quadrimestre de primavera (Q2) és impartit pel departament d'AC i el projecte consistirà en implementar completament un processador senzill en un dispositiu programable i programar un petit nucli de Sistema Operatiu.

Teachers

Person in charge

  • Josep-llorenç Cruz Diaz ( )

Others

  • Antonio Benito Martínez Velasco ( )
  • Carlos Morata Núñez ( )

Competences

Transversal Competences

Teamwork

  • G5 - To be capable to work as a team member, being just one more member or performing management tasks, with the finality of contributing to develop projects in a pragmatic way and with responsibility sense; to assume compromises taking into account the available resources.
    • G5.3 - To identify the roles, skills and weaknesses of the different members of the group. To propose improvements in the group structure. To interact with efficacy and professionalism. To negotiate and manage conflicts in the group. To recognize and give support or assume the leader role in the working group. To evaluate and present the results of the tasks of the group. To represent the group in negotiation involving other people. Capacity to collaborate in a multidisciplinary environment. To know and apply the techniques for promoting the creativity.

Entrepreneurship and innovation

  • G1 - To know and understand the organization of a company and the sciences which govern its activity; capacity to understand the labour rules and the relation between planning, industrial and business strategies, quality and benefit. To develop creativity, entrepreneur spirit and innovation tendency.
    • G1.3 - To have strong decision-making skills. To use knowledge and strategic skills for the creation and management of projects, apply systematic solutions to complex problems, and design and manage the innovation in the organization. To demonstrate flexibility and professionalism when developing her work.

Effective oral and written communication

  • G4 - To communicate with other people knowledge, procedures, results and ideas orally and in a written way. To participate in discussions about topics related to the activity of a technical informatics engineer.
    • G4.3 - To communicate clearly and efficiently in oral and written presentations about complex topics, becoming adapted to the situation, the type of audience and the communication goals, using the strategies and the adequate means. To analyse, value and respond adequately to the questions of the audience.

Technical Competences

Common technical competencies

  • CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
    • CT6.2 - To demonstrate knowledge, comprehension and capacity to evaluate the structure and architecture of computers, and the basic components that compound them.
  • CT7 - To evaluate and select hardware and software production platforms for executing applications and computer services.
    • CT7.1 - To demonstrate knowledge about metrics of quality and be able to use them.
  • CT8 - To plan, conceive, deploy and manage computer projects, services and systems in every field, to lead the start-up, the continuous improvement and to value the economical and social impact.
    • CT8.7 - To control project versions and configurations.

Technical Competences of each Specialization

Computer engineering specialization

  • CEC1 - To design and build digital systems, including computers, systems based on microprocessors and communications systems.
    • CEC1.1 - To design a system based on microprocessor/microcontroller.
  • CEC2 - To analyse and evaluate computer architectures including parallel and distributed platforms, and develop and optimize software for these platforms.
    • CEC2.1 - To analyse, evaluate, select and configure hardware platforms for the development and execution of computer applications and services.
    • CEC2.2 - To program taking into account the hardware architecture, using assembly language as well as high-level programming languages.
    • CEC2.3 - To develop and analyse software for systems based on microprocessors and its interfaces with users and other devices.
  • CEC3 - To develop and analyse hardware and software for embedded and/or very low consumption systems.
    • CEC3.2 - To develop specific processors and embedded systems; to develop and optimize the software of these systems. 

Objectives

  1. Nombrar i definir els conceptes bàsics en la gestió de projectes
    Related competences: G1.3, G4.3, G5.3,
  2. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Especificar els objectius d'un sistema encastat
    Related competences: G1.3, G5.3, CT6.2,
  3. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Descriure el hardware d'un sistema enquestat a partir de les especificacions
    Related competences: CEC2.1, G5.3, CEC1.1, CT6.2, CT8.7,
  4. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Obtenir el disseny hardware a partir de l'esquema de blocs
    Related competences: CEC2.1, CEC3.2, G5.3, CEC1.1, CT6.2,
  5. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Implementar el hardware d'un sistema encastat
    Related competences: CEC2.1, CEC3.2, CEC1.1,
  6. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Obtenir el disseny software d'un sistema enquestat a partir de les especificacions
    Related competences: CEC2.3, CEC3.2, G5.3, CEC1.1, CT8.7,
  7. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Implementar el software d'un sistema encastat
    Related competences: G1.3, CEC2.3, CEC3.2, G5.3, CEC1.1, CEC2.2,
  8. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Integrar el disseny hardware i software en un prototipus
    Related competences: CEC2.1, CEC3.2, G5.3, CT8.7,
  9. (Q2 – Projecte d'implementació d'un processador) Usar correctament el llenguatge de descripció del hardware (VHDL) i dissenyar sistemes digitals utilitzant un llenguatge de descripció del hardware.
    Related competences: CEC1.1, CEC2.2,
  10. (Q2 – Projecte d'implementació d'un processador) Usar les eines i programar les plaques de desenvolupament per a una FPGA.
    Related competences: CEC1.1, CEC2.2,
    Subcompetences:
    • Fer servir correctament eines de simulació.
  11. (Q2 – Projecte d'implementació d'un processador) Comprendre i posar en pràctica la microarquitectura d'un processador a nivell bàsic i avançat.
    Related competences: CEC2.1, CEC1.1, CT6.2,
    Subcompetences:
    • Entendre alguna de les restriccions tecnològiques en la implementació d'un processador.
  12. (Q2 – Projecte d'implementació d'un processador) Implementar un processador senzill (reduït) unicicle.
    Related competences: G5.3, CEC1.1, CT6.2, CEC2.2,
    Subcompetences:
    • Dissenyar els blocs bàsics (banc de registres i ALU) d'un processador.
    • Dissenyar un sistema d'arrancada per a un processador.
    • Dissenyar una memòria (ROM/RAM) en una FPGA.
    • Interpretar correctament l'esquema electrònic d'un circuit.
    • Fer servir correctament eines de depuració.
    • Dissenyar una unitat de control d'un processador.
  13. (Q2 – Projecte d'implementació d'un processador) Implementar un processador multicicle.
    Related competences: G5.3, CEC1.1, CT6.2, CT8.7, CEC2.2,
    Subcompetences:
    • Dibuixar i interpretar correctament els diagrames de temps dels senyals d'un circuit.
    • Dissenyar un controlador de memòria per a l'ús de memòries externes a la FPGA.
    • Crear diferents senyals de rellotge per a el funcionament dels diferents components del computador.
  14. (Q2 – Projecte d'implementació d'un processador) Implementar un processador amb característiques avançades.
    Related competences: CT7.1, CT6.2,
    Subcompetences:
    • Avaluar el consum i el rendiment del processador implementat.
    • Crear un SoC (System on Chip) afegint els controladors de pantalla VGA y teclat PS/2 al processador.
    • Afegir suport a interrupcions i excepcions.
    • Afegir un suport bàsic per part del processador per als sistemes operatius actuals (gestió de memòria virtual i execució d'instruccions de forma privilegiada).
  15. (Q2 – Projecte d'implementació d'un processador) Presentar i defensar alternatives de disseny hardware per a diferents components del processador.
    Related competences: G1.3, G4.3, CT6.2,
  16. (Q2 – Projecte d'implementació d'un processador) Implementar un petit nucli de Sistema Operatiu per al processador dissenyat.
    Related competences: CEC2.3, CEC3.2, CEC2.2,

Contents

  1. Introducció.
    Una breu presentació de l'assignatura. Una introducció a la gestió de projectes. En el Q1 una introducció al disseny basat en sistemes encastats i en el Q2 una introducció al dispositius programables (FPGA) i als llenguatges de descripció de hardware
  2. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Desenvolupament d'un projecte de sistema encastat
    Etapes de desenvolupament i planificació d'un sistema encastat.
    Eines de desenvolupament. Repercussions sòcio-ambientals del projecte. Memòria i plec de condicions.
  3. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Descripció hardware dels sistemes encastats
    Tècniques i eines de descripció del hardware d'un sistema encastat. Diagrames de blocs. Esquemes elèctrics. Sistemes de captura d'esquemes
  4. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Implementació hardware dels sistemes encastats
    Mètodes i eines per a l'obtenció d'un prototipus a partir del disseny
  5. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Disseny de sistemes autònoms low cost low power
    Es presenten les alternatives de disseny per tal d'obtenir sistemes de baix consum i baix cost
  6. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Descripció software dels sistemes encastats
    Tècniques i eines de descripció del software d'un sistema encastat. Diagrames de flux, diagrames d'estats, disseny basat en models. Idoneïtat segons l'aplicació.
  7. (Q1 – Projecte de disseny i implementació d'un sistema encastat) Implementació software dels sistema encastats
    Depuració i prova del firmware dels sistemes encastats
  8. (Q2 – Projecte d'implementació d'un processador) Eines de desenvolupament d'FPGA.
    Eines per a la descripció y programació de hardware sobre FPGA. Simuladors y depuradors (debuggers) de circuits. Descripció de la placa de proves. Implementació d'alguns blocs bàsics (multiplexors, sumadors, rellotges) en una placa de proves.
  9. (Q2 – Projecte d'implementació d'un processador) Llenguatges de descripció de hardware.
    Repàs dels conceptes bàsics de VHDL y ampliació dels coneixements en llenguatges de descripció del hardware.
  10. (Q2 – Projecte d'implementació d'un processador) Descripció del processador.
    Repàs d'alguns de des coneixements y tècniques adquirits prèviament en el disseny de computadors. Mostar el repertori d'instruccions i el disseny de blocs hardware del processador a implementar.
  11. (Q2 – Projecte d'implementació d'un processador) Implementació bàsica del processador.
    Implementació d'un processador bàsic (banc de registres i ALU simple) unicicle. Implementació d'una memòria en una FPGA.
  12. (Q2 – Projecte d'implementació d'un processador) Implementació del processador complert.
    Implementació d'un processador segmentat multicicle. Implementació d'un controlador de memòria que gestioni memòries ROM i RAM externes a la FPGA. Implementació més complerta d'una ALU i de les instruccions de salt. Implementació d'un controlador dels sistemes d'entrada/sortida. Afegir suport a interrupcions i excepcions. Afegir un suport bàsic per part del processador per als sistemes operatius actuals (gestió de memòria virtual i execució d'instruccions de forma privilegiada).

Activities

Activity Evaluation act


Introducció

  • (Q1) – Projecte de disseny i implementació d'un sistema encastat

    Presentació de l'assignatura. Introducció a la gestió de projectes. Introducció al disseny basat en sistemes encastats.

  • (Q2) – Projecte d'implementació d'un processador

    Presentació de l'assignatura. Introducció a la gestió de projectes. Introducció al dispositius programables (FPGA) i als llenguatges de descripció de hardware.
    Objectives: 1
    Contents:

  • Theory
    0h
    Problems
    0h
    Laboratory
    2h
    Guided learning
    0h
    Autonomous learning
    0h

    Fase inicial del projecte

  • (Q1) – Projecte de disseny i implementació d'un sistema encastat

    Especificacions i objectius del projecte. Obtenir unes especificacions dels sistema a partir de les alternatives donades pel professor. Definició dels blocs de tasques de desenvolupament i distribució en els diferents grups de laboratori. Diagrama de Gannt del projecte. Diagrama de blocs del sistema complint amb les especificacions. Generar un primer esquema del Hardware de la placa base del sistema.

  • (Q2) – Projecte d'implementació d'un processador

    Aprendre conceptes de VHDL. Pautes del disseny de blocs tipus sumadors, comptadors, registres.
    Objectives: 9 10 2 3 4
    Contents:

  • Theory
    0h
    Problems
    0h
    Laboratory
    6h
    Guided learning
    0h
    Autonomous learning
    6h

    Fase intermèdia del projecte

  • (Q1) – Projecte de disseny i implementació d'un sistema encastat

    Obtenció de la placa base prototip del sistema. Implementació del software del sistema. Obtenir el firmware de control dels diferents dispositius externs (perifèrics, interfícies ,sensors i actuadors). Posada en funcionament de la placa base i dels dispositius externs.

  • (Q2) – Projecte d'implementació d'un processador

    Primer implementar un processador unicicle senzill tipus RISC. Aquest processador estarà format nomes per dos blocs (Banc de Registres i ALU) i una petita lògica de control. Aquest processador serà la base per més endavant desenvolupar-ne un més complert. Seguidament implementar un processador multicicle. Recordar el concepte de fases d'execució. A més a més el processador gestionarà una memòria RAM externa per a les dades i una memòria Flash amb el programa a executar.
    Objectives: 11 12 13 4 5 6
    Contents:

  • Theory
    0h
    Problems
    0h
    Laboratory
    20h
    Guided learning
    0h
    Autonomous learning
    26h

    Fase avançada del projecte

  • (Q1) – Projecte de disseny i implementació d'un sistema encastat

    Integració hardware de tots els dispositius externs a la placa base. Integració del firmware de control dels dispositius externs a la placa base.

  • (Q2) – Projecte d'implementació d'un processador

    Connectar dispositius d'entrada/sortida més complexos. Implementar sistemes i estructures avançades en un processador. Afegir suport a interrupcions i excepcions. Afegir un suport bàsic per part del processador per als sistemes operatius actuals (gestió de memòria virtual i execució d'instruccions de forma privilegiada). Inicialització del sistema operatiu. Anàlisi de recursos.
    Objectives: 13 14 5 7 8
    Contents:

  • Theory
    0h
    Problems
    0h
    Laboratory
    20h
    Guided learning
    0h
    Autonomous learning
    26h

    Fase final del projecte

  • (Q1) – Projecte de disseny i implementació d'un sistema encastat

    Verificar que les prestacions i el funcionament del sistema integrat compleixen les especificacions i objectius marcats inicialment. Correcció i ajust de les desviacions.

  • (Q2) – Projecte d'implementació d'un processador

    Proposar e implementar millores en les capacitats del processadors, en l'arquitectura del processador, en els dispositius d'entrada/sortida o en el sistema operatiu del projecte realitzat.
    Objectives: 15 5 7 8 16
    Contents:

  • Theory
    0h
    Problems
    0h
    Laboratory
    12h
    Guided learning
    0h
    Autonomous learning
    18h

    Presentació oral del treball de recerca i avaluació de competències transversals.


    Objectives: 15
    Week: 15
    Type: assigment
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    3h
    Autonomous learning
    8h

    Entrega de la pràctica (documentació i codi) i entrevista del projecte



    Week: 15
    Type: assigment
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    3h
    Autonomous learning
    0h

    Teaching methodology

    L'assignatura només tindrà classes de laboratori. Al inici de cada sessió de laboratori es farà una breu explicació teòrica, d'uns 20 minuts de durada. Aquesta explicació teòrica serà per recordar els conceptes apresos en assignatures anteriors i per presentar en detall la tasca a realitzar en la sessió de laboratori.
    Les classes de laboratori seran setmanals.

    Durant el quadrimestre de tardor (Q1) es dissenyarà i es construirà el prototipus del sistema encastat, que es detallarà a les explicacions teòriques, amb l'ajuda d'un entorn de desenvolupament de microcontroladors i les tècniques d'implementació de prototipus.

    Durant el quadrimestre de primavera (Q2) al laboratori s'implementarà en una placa de desenvolupament de FPGA el processador mostrat a les explicacions teòriques, fent servir eines de desenvolupament professionals.

    Totes aquesta implementacions i dissenys es realitzaran en grups de 2 persones.

    Evaluation methodology

    (Q1) – Projecte de disseny i implementació d'un sistema encastat

    La nota final (NF) estarà formada per la suma de tres components:

    NF = 20% NP1 + 40% NP2 + 40% NP3
    · La nota NP1 correspon a les tasques realitzades durant la fase d'especificació del projecte (fase inicial del projecte)
    · La nota NP2 correspon a la avaluació de la implementació i integració del hardware i del software del sistema (fases intermèdia i avançada del projecte).
    · La nota NP3 correspon als resultats obtinguts comparant les especificacions i objectius marcats al principi de curs (fase final del projecte).

    Les notes de les competències transversals s'obtindran de la següent manera:
    Emprenedoria i innovació: es tindrà en compte la iniciativa en trobar solucions innovadores així com la seva originalitat

    Treball en equip: es tindrà en compte el treball de coordinació del propi grup de treball així com la coordinació entre els diferents grups a l'hora de prendre decisions de disseny i implementació comunes al projecte

    Comunicació eficaç oral i escrita: s'avaluarà la memòria del projecte així com la seva presentació oral. Es presentarà oralment fora d'hores de classe al final del curs (en hores d'activitats dirigides).



    (Q2) – Projecte d'implementació d'un processador

    La nota final (NF) estarà formada per la suma de tres components:

    NF = 5% NP1 + 75% NP2 + 20% NP3
    · La nota NP1 correspon a les tasques realitzades durant la fase d'aprenentatge de les eines i tècniques (fase inicial del projecte).
    · La nota NP2 correspon a la implementació del processador (fases intermèdia i avançada del projecte).
    · La nota NP3 correspon a la proposta e implementació de millores en el processador (fase final del projecte).

    Cadascuna de les notes NP2 i NP3 s'obtindran a partir de l'entrega i comprovació del funcionament de tot el disseny implementat i de l'entrega d'un informe sobre el projecte realitzat.

    Les notes de les competències transversals d'emprenedoria i innovació, i de treball en equip s'obtindran a partir de les propostes presentades en la fase avançada del projecte i dels resultats obtinguts.

    Les notes de la competència transversal comunicació eficaç oral i escrita s'obtindran mitjançant la preparació d'un treball escrit relacionat amb el temari del curs i d'una breu presentació oral. El treball es presentarà oralment fora d'hores de classe al final del curs (en hores d'activitats dirigides).

    La qualificació de les competències transversals: Tindran valors A, B, C o D (on A correspon a un nivell excel·lent, B correspon a un nivell desitjat, C correspon a un nivell suficient i D correspon a un nivell no superat).

    Bibliography

    Basic:

    Complementary:

    Web links

    Previous capacities

    L'estudiant ha de tenir les capacitats tècniques que li atorguen les assignatures cursades prèviament a més d'un nivell d'anglès suficient per a llegir i entendre una documentació tècnica.

    Coneixements de programació en llenguatge màquina i en codi assemblador.
    Conèixer el funcionament de les diferents portes lògiques i blocs combinacionals o seqüencials.
    Saber analitzar i sintetitzar circuits lògics.
    Saber el funcionament d'un computador a nivell de components i interconnexions.
    Conèixer el funcionament, els elements principals i l'estructura d'un processador.
    Coneixements de Sistemes Operatius a nivell de desenvolupador.
    Coneixements sobre l'arquitectura i funcionament els microcontroladors
    Saber configurar perifèrics integrats als microcontroladors
    Saber interconnectar els microcontroladors a perifèrics externs
    Coneixements del disseny de sistemes encastats (S.E)
    Aspectes Hardware i software dels SE
    Saber utilitzar les eines pel desenvolupament de S.E