Aperçu des semaines

  • Real Time Embedded Systems, CS-476

    Type of teaching

    Ex cathedra, laboratories and a miniproject

    Required prior knowledge

    Embedded Systems, Real time Programming, VHDL

    Objectives

    A real time system has to accept important temporal constraints. A real time embedded system must be able to react to events with a limited time.
    During this course, the measures of response time to interruptions are studied and tested in laboratories, such as for example the influence of dynamic memories, of cache memories, of option of compilation. Measurements of response time to the interruptions, tasks commutations, primitives of synchronizations are carried out on an embedded system based on a FPGA.
    Multiprocessors, accelerators, custom instructions, specialized hardware are some ways to improve the performance of a specific application. Those concepts are developed through laboratories and a mini-project.

    Content

    The course includes the study of models of management of an embedded system by polling, interruptions and using a real time kernel and these primitives of tasks management and synchronizations.
    Specialized programmable interfaces are carried out in VHDL to help with these measurements. A real time kernel is studied and used at the time of the laboratories. A system of acquisition is carried out and the gathered data transmitted by an embedded Web server. To ensure the real time acquisition and reading by the Web server, a multiprocessor system is developed and carried out on FPGA. An Accelerator makes it possible to facilitate the optimization of functions by hardware on FPGA. Cross development tools are used.

    Each topic is treated by a theoretical course and an associated laboratory. The laboratories are realized on a FPGA board especially developed for teaching. A real time operating system is studied and used with the laboratories.

    Students work

    The students will have to implement a full embedded system based on a FPGA and softcore NIOSII processors and/or an hardcore ARM-A9 multi-processors. Embedded operating system, specialized interfaces and specific architectures are the basics tools of the course.
    You will have to develop a system as a Web server with specialized functions. A final presentation and demonstration will be part of the evaluation. Regular work reports complete the evaluation.

    Bibliography

    Teaching notes and suggested reading material
    Specialized datasheet and norms

    Systèmes embarqués temps réel, CS-476

    Forme d'enseignement

    Ex-cathedra, laboratoires dirigés et mini-projet

    Prérequis

    Systèmes embarqués, programmation temps réel, VHDL

    Objectifs

    Un système temps réel doit répondre à des contraintes temporelles importantes. Un système embarqué temps réel doit être capable de répondre à des évènements avec un temps borné.
    Lors de ce cours, les éléments déterminants de temps de réponses à des interruptions sont étudiés et testés en laboratoires, comme par exemple l'influence d'une mémoire dynamique, d'une mémoire cache, d'option de compilation. Des mesures de temps de réponses aux interruptions, de commutations de tâches, de primitives de synchronisations sont réalisées sur un système embarqué basé sur une FPGA.

    Contenu

    Le cours comprend l'étude de modèles de gestion d'un système embarqué par scrutation, par interruptions et à l'aide d'un noyau temps réel et de ses primitives de gestion de tâches et de synchronisations.
    Des modules interfaces sont réalisés en VHDL pour aider à ces mesures. Un noyau temps réel est étudié et utilisé lors des laboratoires. Un système d'acquisition est réalisé et les données acquises transmises par un serveur web embarqué.
    Pour assurer le lien entre acquisition temps réel et lecture par le serveur web, un système multiprocesseur est développé et réalisé sur FPGA. 
    Des outils de développement croisés sont utilisés.

    Chaque thème est traité par un cours théorique et un laboratoire associé. L'ensemble des laboratoires est effectué sur des cartes spécialement développées pour ce cours. Un système d'exploitation temps réel est étudié et utilisé avec les laboratoires.
  • 18 février - 24 février

  • 25 février - 3 mars

  • 4 mars - 10 mars

    (3) 1h lecture / 3h laboratory

    This Monday is a 1 hour only lecture and 3h for laboratory,


    Lecture:
    Come with your question about design of the timer/parallel port or VHDL.
    We will finish in the class room the design of the timer module together if necessary.

    This course is optional for the students who have followed the course "Embedded Systems", and mandatory if you are in trouble with VHDL and the design of programmable interface.

    Laboratory:
    End of Timing Analysis

  • 11 mars - 17 mars

    (4)

    4h laboratory  --> INF 3

    End of Timing measurement, Interruptions


  • 18 mars - 24 mars

    (5)  2h lecture / 2h laboratory

    Real-time operating system

    • uC/OS-II principle
    • primitives
    • semaphore, event, message, tasks, ...


    • Laboratory on OS performance measurement

    Ref, tutorial on MicroC/OSII with NIOS SBP software:
    http://www.altera.com/literature/tt/tt_nios2_MicroC_OSII_tutorial.pdf

  • 25 mars - 31 mars

    (6) 2h lecture / 2h laboratory

    Program profiling

    • Hardware profiling
    • Software profiling
    • Specific counter profiling
    • Custom Instruction
    • Accelerator on FPGA
    • DMA unit (masters)


    • Laboratory on profiling, custom instruction ans hardware accelerator

    Report on profiling, custom instruction and hardware accelerator --> see assignments


    Ref:

    http://www.altera.com/literature/lit-nio2.jsp


  • 1 avril - 7 avril

    (7) 4h laboratory, with short presentation in INF3 @8h15 on master unit

    Mandatory for students that didn't follow Embedded Systems !!


    • Laboratory on Custom instruction and accelerator (continue)

    Report date --> see assignments




  • 8 avril - 14 avril

    (8) 2h lecture / 2h laboratory

    Multi-masters system on FPGA

    • DMA unit
    • Accelerators
    • Multiprocessors
    • Communication between multiprocessors, some models
    • memories

    Ref: http://www.altera.com/literature/tt/tt_nios2_multiprocessor_tutorial.pdf

  • 15 avril - 21 avril

  • 22 avril - 28 avril

    Vacances de Pâques
  • 29 avril - 5 mai

    (10) 1h course / 3h laboratory

    • Laboratory on Multiprocessor system with DE1-SOC system

    Mini projects definition

    • Proposition of mini-projects
    • Group of 2 students (usually)
    • Start of system architecture

    • Laboratory, start of mini project

    Hardcore multi-processor & FPGA

    • Exemple of Cyclone V - SOC

    Mini-Project selection

    During the mini-project you have to create and develop a multimaster system.

    • One of the master is an ARM (baremetal coding or Linux)  or NIOSII processor with a RTOS and could run as a Web server
    • Another master can be a second ARM or NIOSII processor dedicated to real-time application, and will generate data for the 1st processor. It could be a specialized unit with DMA capabilities as an accelerator

    You have to propose your choice for the project and analyze the architecture for hardware design part and software. Specifically for synchronization between the processors.

    Grade

    A report is due by group and a final oral presentation and a demonstration. 

    Some subjects

    • Analog data acquisition through an SPI interface (4 channels)
    • Audio player
    • Camera interface for a Web server
    • Linux web server for FPGA services
    • Camera on a Web server
    • Pictures viewer on the FPGA4U from a Web server
    • A SD card Reader/Writer, data on a Web server
    • Audio In, processing, Audio Out
    • Data logger of A/D, i2c, SPI interfaces
    • Data filtering from a camera interface (i.e. contour extraction, math. morphology, filter, rotation, zooming, etc..)
    • Thermal Camera IR, could be stereoscopic
    • LCD TFT24, VGA as display
    • … your own idea

    In all case, do a profiling of your project and analyze the performance of your system.

    Compare with a software only solution.


  • 6 mai - 12 mai

    (11) 4h laboratory

    Time for laboratory, Mini project start

  • 13 mai - 19 mai

    (12) 4h laboratory

    Mini-Project


    Deadline for the report --> 
    Final report the 10th of June.


  • 20 mai - 26 mai

    (13) Mini project work


    Only with the assistants !

  • 27 mai - 2 juin

    (14) Mini-project work


    For the groups ready with the mini-project, you can present it this week !

    Otherwise the next one.

  • 3 juin - 9 juin

    (15) Final oral presentation and demo for the groups that did not presented the previous week.

    Provide your slides before your presentation. 
    --> Presentation the Monday 3rd of June


    Reserve a time-slot on doodle:

    https://epfl.doodle.com/poll/27qnwr638b4ea38a

    Only one selection per group: first select, first reservation

    15min/group max.

    - Resume of your mini-project, 5 slides with :
    • what is the goal of the mini-project
    • global architecture
    • specific topics
    • results
    • conclusion
    - Demo
    - Question


    In your report, please prepare a one page resume of your project with some general block diagrams of your system architecture.

    Normal delay 7th of June
    Very very max delay for report 10th of June