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 ( antonio.b.martinez@upc.edu )
- Josep-Llorenç Cruz Diaz ( cruz@ac.upc.edu )
Others
- Carlos Morata Núñez ( carlos.morata@upc.edu )
Competences
Teamwork
- 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.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.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.
Common technical competencies
- CT6.2 - To demonstrate knowledge, comprehension and capacity to evaluate the structure and architecture of computers, and the basic components that compound them.
- CT7.1 - To demonstrate knowledge about metrics of quality and be able to use them.
- CT8.7 - To control project versions and configurations.
Computer engineering specialization
- CEC1.1 - To design a system based on microprocessor/microcontroller.
- 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.2 - To develop specific processors and embedded systems; to develop and optimize the software of these systems.
Objectives
-
Name and define basic concepts in project management.
Related competences: G1.3, G4.3, G5.3, -
(S1 - Embedded system design and implementation project) Specify the objectives of an embedded system.
Related competences: G1.3, G5.3, CT6.2, -
(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, -
(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, -
(S1 - Embedded system design and implementation project) Implement the hardware of an embedded system.
Related competences: CEC2.1, CEC3.2, CEC1.1, -
(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, -
(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, -
(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, -
(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, -
(S2 - Processor implementation project) Use tools and program development boards for an FPGA.
Related competences: CEC1.1, CEC2.2,
Subcompetences- Use simulation tools correctly.
-
(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.
-
(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.
-
(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.
-
(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.
-
(S2 - Processor implementation project) Present and defend hardware design alternatives for different processor components.
Related competences: G1.3, G4.3, CT6.2, -
(S2 - Processor implementation project) Implement a small Operating System kernel for the designed processor.
Related competences: CEC2.3, CEC3.2, CEC2.2,
Contents
-
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. -
(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. -
(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. -
(S1 - Embedded system design and implementation project) Hardware implementation of embedded systems.
Methods and tools for obtaining a prototype from a design. -
(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. -
(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. -
(S1 - Embedded system design and implementation project) Software implementation of embedded systems.
Debugging and testing of embedded systems' firmware. -
(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. -
(S2 - Processor implementation project) Hardware description languages.
Revision of basic VHDL concepts and further content on hardware description languages. -
(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. -
(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. -
(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
<li>(S1) - Embedded system design and implementation project<p> Introduction to the subject. Introduction to project management. Introduction to embedded system design. <br> <li>(S2) - Processor implementation project<p> 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<p> 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. <br> <li>(S2) - Processor implementation project<p> Learn VHDL concepts. Guidelines for designing building blocks such as adders, counters, registers.Objectives: 9 10 2 3 4
Contents:
- 9 . (S2 - Processor implementation project) Hardware description languages.
- 8 . (S2 - Processor implementation project) FPGA development tools.
- 2 . (S1 - Embedded system design and implementation project) Development of an embedded system project.
- 5 . (S1 - Embedded system design and implementation project) Low-cost, low-power autonomous system design.
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
6h
Intermediate stage of the project
<li>(S1) - Embedded system design and implementation project<p> 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. <br> <li>(S2) - Processor implementation project<p> 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:
- 10 . (S2 - Processor implementation project) Description of the processor.
- 11 . (S2 - Processor implementation project) Basic implementation of the processor.
- 2 . (S1 - Embedded system design and implementation project) Development of an embedded system project.
- 3 . (S1 - Embedded system design and implementation project) Hardware description of embedded systems.
- 4 . (S1 - Embedded system design and implementation project) Hardware implementation of embedded systems.
- 7 . (S1 - Embedded system design and implementation project) Software implementation of embedded systems.
Theory
0h
Problems
0h
Laboratory
20h
Guided learning
0h
Autonomous learning
26h
Advanced stage of the project
<li>(S1) - Embedded system design and implementation project<p> Hardware integration of all the devices external to the motherboard. Integration of the control firmware of the devices external to the motherboard. <br> <li>(S2) - Processor implementation project<p> 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
<li>(S1) - Embedded system design and implementation project<p> Check that the features and functioning of the integrated system meet the specifications and objectives stated at the start. Corrections and adjustments. <br> <li>(S2) - Processor implementation project<p> 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)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
Submission of the practical (documentation and code) and project interview
Week: 15 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
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 projectThe 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
-
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
Complementary
-
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/
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.