ECTS
5 credits
Component
Faculty of Science
Description
This course covers a wide range of knowledge from the foundations of Boolean logic to Systems-on-Chips (SoC) architecture, logical synthesis flows, processor architecture, and the basics of embedded software. VHDL, a material description language, also occupies an important place in this UE and will be studied in class and used in practical work, as well as in the framework of an "Embedded Systems" project.
------------------------------------------------------------------------------------------------------------------------------------------------------------
This course covers a wide range of topics ranging from fundamentals of Boolean logic to digital SoC (Systems-on-Chips) architecture, including digital design flows, computer architecture and embedded software basics. VHDL will be studied in this lecture, for both logic synthesis and modelling / simulation purposes. Labs include hands-on VHDL exercices (design of a simple stack processor), and an "Embedded system" student project makes it possible to deepen knowledge in the area.
Objectives
The aim of this course is to provide a solid grounding in digital systems, their hardware implementation and software aspects.
The UE also includes a practical course and an embedded systems project:
Practical work (10.5h)
Here, the idea would clearly be to familiarize ourselves with 2 technologies:
- Microcontrollers (STM32 or RISC-V) with a performance and real-time approach
- FPGAs via VHDL because it's a must, and we can move on to a case study on acceleration (always CNN :-)
Project (10.5h)
The project could be a bit "à la carte", with more general formulas (microcontrollers and FPGAs) and more computer architecture-oriented topics. In my opinion, it's modular.
------------------------------------------------------------------------------------------------------------------------------------------------------------
This course has for objective to provide students with a solid background on digital systems and their hardware implementation, alongside software basics.
The lecture will cover the following topics:
Reading
1- Fundamentals of digital logic: combinatorial and sequential circuits
2- Basic constructs: Finite State Machines, shift registers, datapaths, memories etc.
3- Hardware Description Language: VHDL for modeling, simulation and logic synthesis
4- Computer architecture: from the Von Neumann machine to modern computer architectures
- Microcontrollers
- standard instruction set architectures (MIPS32, RISC-V)
- computer organization: memories, busses, cache memories, instruction pipeline, interfaces
5-Advanced concepts: NUMA, cache coherence, shared / distributed memories, compute acceleration
6- Fundamentals of operating systems
The course further includes Labs and part-time student projects:
Labs (10.5h)
Hands-on exercises with
- VHDL basics, simulation
- Logic synthesis (ASIC)
- FPGA prototyping (optional)
Projects (10.5h)
Projects topic decided upon course start. Possible topics cover microcontrollers, compute accelerator implementation and exploitation for 32-bit processors etc.
Necessary prerequisites
Basic analog electronics, Boolean logic.
Recommended prerequisites* :
Knowledge of CMOS logic, C language.
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Fundamentals of electronics and Boolean logic.
Recommended prerequisites* :
CMOS logic, C language.
Syllabus
The course will cover the following aspects:
1- foundations of logic: sequential and combinatorial circuits
2- basic architectures: finite-state machines, shift registers, data paths, memories, etc.
3- hardware description language: VHDL for modeling, simulation and logic synthesis
4- Computer architecture: from Von Neumann's machine to modern processor architectures
- Microcontrollers
- study of standard instruction sets (MIPS32, RISC-V)
- system architectures: memories, buses, caches, instruction pipelines, interfaces
5- advanced computer architectures: NUMA, cache coherence, shared/distributed memory, computational gas pedals
6- notions of operating systems and parallelism
Further information
CM: 21
TP: 10.5 + 10.5 (Project)