Computer Engineering Project

You are here

Credits
6
Types
Specialization compulsory (Computer Engineering)
Requirements
  • Precorequisite: AC2
  • Precorequisite: DSBM
  • Precorequisite: SO2
Department
DAC;ESAII
This subject is taught by the ESAII department and the AC department in alternate semesters. The project to be worked on (and associated tasks) is slightly different for each semester.

In the autumn semester (S1), it is taught by the ESAII department. The project consists in obtaining a working prototype of an embedded system design that must meet the specifications set at the beginning of the academic year.

In the spring semester (S2), it is taught by the AC department. The projects consists in fully implementing a simple processor in a programmable device and programming a small operating-system kernel.

Teachers

Person in charge

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

Others

  • Carlos Morata Núñez ( )

Competences

Transversal Competences

Teamwork

  • G5 [Avaluable] - 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 [Avaluable] - 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 [Avaluable] - 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. Name and define basic concepts in project management.
    Related competences: G1.3, G4.3, G5.3,
  2. (S1 - Embedded system design and implementation project) Specify the objectives of an embedded system.
    Related competences: G1.3, G5.3, CT6.2,
  3. (S1 - Embedded system design and implementation project) Describe the hardware of an embedded system from the specifications.
    Related competences: CEC2.1, G5.3, CEC1.1, CT6.2, CT8.7,
  4. (S1 - Embedded system design and implementation project) Obtain the hardware design from the block diagram.
    Related competences: CEC2.1, CEC3.2, G5.3, CEC1.1, CT6.2,
  5. (S1 - Embedded system design and implementation project) Implement the hardware of an embedded system.
    Related competences: CEC2.1, CEC3.2, CEC1.1,
  6. (S1 - Embedded system design and implementation project) Obtain the software design of an embedded system from the specifications.
    Related competences: CEC2.3, CEC3.2, G5.3, CEC1.1, CT8.7,
  7. (S1 - Embedded system design and implementation project) Implement the software of an embedded system.
    Related competences: G1.3, CEC2.3, CEC3.2, G5.3, CEC1.1, CEC2.2,
  8. (S1 - Embedded system design and implementation project) Integrate the hardware and software design in a prototype.
    Related competences: CEC2.1, CEC3.2, G5.3, CT8.7,
  9. (S2 - Processor implementation project) Use a hardware description language (VHDL) correctly and design digital systems using a hardware description language.
    Related competences: CEC1.1, CEC2.2,
  10. (S2 - Processor implementation project) Use tools and program development boards for an FPGA.
    Related competences: CEC1.1, CEC2.2,
    Subcompetences:
    • Use simulation tools correctly.
  11. (S2 - Processor implementation project) Understand and put a processor microarchitecture into practice at basic and advanced levels.
    Related competences: CEC2.1, CEC1.1, CT6.2,
    Subcompetences:
    • Understand some of the technological constraints on processor implementation.
  12. (S2 - Processor implementation project) Implement a simple (small) unicycle processor.
    Related competences: G5.3, CEC1.1, CT6.2, CEC2.2,
    Subcompetences:
    • Design the building blocks (register bank, ALU) of a processor.
    • Design a processor boot system.
    • Design a memory (ROM/RAM) in an FPGA.
    • Interpret an electronic circuit diagram correctly.
    • Use debugging tools correctly.
    • Design a processor control unit.
  13. (S2 - Processor implementation project) Implement a multicycle processor.
    Related competences: G5.3, CEC1.1, CT6.2, CT8.7, CEC2.2,
    Subcompetences:
    • Draw and interpret timing diagrams of the signals in a circuit correctly.
    • Design a memory controller for using external memories with the FPGA.
    • Create different clock signals for the operation of the different computer components.
  14. (S2 - Processor implementation project) Implement a processor with advanced features.
    Related competences: CT7.1, CT6.2,
    Subcompetences:
    • Add basic processor support for current operating systems (virtual memory management and privileged instruction execution).
    • Create a SoC (system on a chip) and add VGA display and PS/2 keyboard drivers to the processor.
    • Evaluate the energy use and performance of the processor implemented.
    • Add support for interrupts and exceptions.
  15. (S2 - Processor implementation project) Present and defend hardware design alternatives for different processor components.
    Related competences: G1.3, G4.3, CT6.2,
  16. (S2 - Processor implementation project) Implement a small Operating System kernel for the designed processor.
    Related competences: CEC2.3, CEC3.2, CEC2.2,

Contents

  1. Introduction
    A brief presentation of the subject. An introduction to project management. In S1, an introduction to embedded system design. In S2, an introduction to programmable devices (FPGAs) and hardware description languages.
  2. (S1 - Embedded system design and implementation project) Development of an embedded system project.
    Development and planning stages of an embedded system.
    Development tools. Socio-environmental repercussions of the project. Report and conditions.
  3. (S1 - Embedded system design and implementation project) Hardware description of embedded systems.
    Techniques and tools for hardware description of embedded systems. Block diagrams. Wiring diagrams. Schematic capture systems.
  4. (S1 - Embedded system design and implementation project) Hardware implementation of embedded systems.
    Methods and tools for obtaining a prototype from a design.
  5. (S1 - Embedded system design and implementation project) Low-cost, low-power autonomous system design.
    Design alternatives for devising low-cost and low-power systems are presented.
  6. (S1 - Embedded system design and implementation project) Software description of embedded systems.
    Techniques and tools for software description of embedded systems. Flow diagrams, state diagrams, model-based design. Suitability for each application.
  7. (S1 - Embedded system design and implementation project) Software implementation of embedded systems.
    Debugging and testing of embedded systems' firmware.
  8. (S2 - Processor implementation project) FPGA development tools.
    Tools for describing and programming hardware on an FPGA. Circuit simulators and debuggers. Description of the breadboard. Implementation of basic building blocks (multiplexors, adders, clockers) in a breadboard.
  9. (S2 - Processor implementation project) Hardware description languages.
    Revision of basic VHDL concepts and further content on hardware description languages.
  10. (S2 - Processor implementation project) Description of the processor.
    Revision of previously acquired knowledge and techniques in computer design. Demonstrate the repertoire of instructions and the design of hardware blocks of the processor to be implemented.
  11. (S2 - Processor implementation project) Basic implementation of the processor.
    Implementation of a basic unicycle processor (register bank and simple ALU). Implementation of a memory in an FPGA.
  12. (S2 - Processor implementation project) Implementation of the complete processor.
    Implementation of a segmented multicycle processor. Implementation of a memory controller that manages ROM and RAM external to the FPGA. Fuller implementation of an ALU and the jump instructions. Implementation of an input/output system controller. Add support for interrupts and exceptions. Add basic support on the part of the processor for current operating systems (virtual memory management and privileged instruction execution).

Activities

Activity Evaluation act


Introduction

  • (S1) - Embedded system design and implementation project

    Introduction to the subject. Introduction to project management. Introduction to embedded system design.

  • (S2) - Processor implementation project

    Introduction to the subject. Introduction to project management. Introduction to programmable devices (FPGA) and hardware description languages.
    Objectives: 1
    Contents:

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

    Initial stage of the project

    (S1) - Embedded system design and implementation project

    Project specifications and objectives. Obtain system specifications from the alternatives given by the professor. Definition of batches of development tasks and their distribution among the laboratory groups. Gantt chart of the project. Block diagram of the system that meets the specifications. Generate an initial diagram of the system's motherboard hardware.

  • (S2) - Processor implementation project

    Learn VHDL concepts. Guidelines for designing building blocks such as adders, counters, registers.
    Objectives: 9 10 2 3 4
    Contents:

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

    Intermediate stage of the project

  • (S1) - Embedded system design and implementation project

    Obtain the system's motherboard prototype. Implementation of the system's software. Obtain the firmware for controlling external devices (peripherals, interfaces, sensor and actuators). Operation of the motherboard and external devices.

  • (S2) - Processor implementation project

    First, implement a RISC-type, simple unicycle processor. This processor comprises just two blocks (register bank and ALU) and a small control logic. This processor is the basis for developing a more complex one later on. Second, implement a multicycle processor. Recall the concept of execution stages. In addition, the processor will manage an external RAM for data and a flash memory containing the program to run.
    Objectives: 11 12 13 4 5 6
    Contents:

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

    Advanced stage of the project

  • (S1) - Embedded system design and implementation project

    Hardware integration of all the devices external to the motherboard. Integration of the control firmware of the devices external to the motherboard.

  • (S2) - Processor implementation project

    Connect more complex input/output devices. Implement advanced systems and structures in a processor. Add support for interrupts and exceptions. Add basic support on the part of the processor for current operating systems (virtual memory management and privileged instruction execution). Initialisation of the operating system. Resource analysis.
    Objectives: 13 14 5 7 8
    Contents:

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

    Final stage of the project

  • (S1) - Embedded system design and implementation project

    Check that the features and functioning of the integrated system meet the specifications and objectives stated at the start. Corrections and adjustments.

  • (S2) - Processor implementation project

    Propose and implement improvements in the processor's capacities, its architecture and the input/output devices or in the operating system of the project.
    Objectives: 15 5 7 8 16
    Contents:

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

    Oral presentation of the research and assessment of cross-disciplinary competencies


    Objectives: 15
    Week: 15 (Outside class hours)
    Type: assigment
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    11h

    Submission of the practical (documentation and code) and project interview



    Week: 15 (Outside class hours)
    Type: assigment
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    3h

    Teaching methodology

    The subject has laboratory classes only. A brief lecture lasting about 20 minutes is given at the start of each class. The lecture is designed to remind students of concepts learnt in previous subjects and to present the task to be carried out in the laboratory in detail.
    Laboratory classes are held once a week.

    In the autumn semester (S1) the embedded system prototype is designed and built, details on which will be given in the lecture, with the help of a microcontroller development environment and prototype implementation techniques.

    In the spring semester (S2) the processor shown in the lectures is implemented in an FPGA development board in the laboratory using professional development tools.

    The implementations and designs are done in groups of two.

    Evaluation methodology

    (S1) - Embedded system design and implementation project

    The final mark (NF) is the sum of the following three components:

    NF = 20% NP1 + 40% NP2 + 40% NP3
    · The NP1 mark is for the tasks carried out in the project's specification stage (initial stage of the project).
    · The NP2 mark is for the implementation and integration of the system's hardware and software (intermediate and advanced stages of the project).
    · The NP3 mark is for the results obtained compared with the specifications and objectives stated at the start of the course (final stage of the project).

    The marks for cross-disciplinary competencies are based on the following.
    Entrepreneurship and innovation: initiative in finding innovative solutions and the originality of these solutions.

    Teamwork: coordination of the work group and coordination among groups when shared design and implementation decisions are taken.

    Effective oral and written communication: the project report and its oral presentation. The oral presentation takes place outside class hours (in hours for directed activities) at the end of the course.



    (S2) - Processor implementation project

    The final mark (NF) is the sum of the following three components:

    NF = 5% NP1 + 75% NP2 + 20% NP3
    · The NP1 mark is for the tasks carried out in the tools and techniques learning stage (initial stage of the project).
    · The NP2 mark is for the implementation of the processor (intermediate and advanced stages of the project).
    · The NP3 mark is for the proposal and implementation of processor improvements (final stage of the project).

    Each of the NP2 and NP3 marks will be based on the submission and demonstration of the design implemented and the submission of a report on the project.

    The marks for cross-disciplinary competencies in entrepreneurship and innovation and teamwork are based on the proposals presented in the advanced stage of the project and the results obtained.

    The marks for cross-disciplinary competencies in effective oral and written communication are for a written assignment on the topics covered and a brief oral presentation. The presentation takes place outside class hours (in hours for directed activities) at the end of the course.

    The following grades will be awarded for the cross-disciplinary competencies: A, B, C or D (Excellent, Good, Pass or Fail, respectively).

    Bibliography

    Basic:

    Complementary:

    Web links

    Previous capacities

    Students must have acquired technical skills in the subjects they have taken previously and have a sufficient command of English to read and understand technical documents. They must be able to:
    Program in machine language and assembly code.
    Understand how logic gates and combinational and sequential blocks work.
    Analyse and synthesise logic circuits.
    Understand how a computer's components and interconnections work.
    Understand how a processor and its basic elements and structure work.
    Understand operating systems at the developer level.
    Understand the architecture of microcontrollers and how they work.
    Configure microcontroller peripherals.
    Interconnect microcontrollers and external peripherals.
    Show some awareness of embedded system design.
    Understand aspects of embedded system hardware and software.
    Use tools to develop embedded systems.