ECTS
5 credits
Component
Faculty of Science
Description
This course covers a wide range of knowledge from the foundations of Boolean logic to the architecture of Systems-on-Chips (SoC), including logic synthesis flows, processor architecture and the basics of embedded software. VHDL, a hardware description language, also plays an important role in this course and will be studied in class and used in practical exercises, as well as in 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 exercises (design of a simple stack processor), and an "Embedded system" student project makes it possible to deepen knowledge in the area.
Objectives
The objective of this course is to acquire a solid background in digital systems, their hardware implementation and software aspects.
The UE also includes a practical work and an embedded system project:
Practical work (10,5h)
Here the idea would clearly be to become familiar with 2 technologies:
- Microcontrollers (STM32 or RISC-V) with a performance and real time approach
- FPGAs via VHDL because it is essential, and we can go to a case study on acceleration (always CNN :-)
Project (10,5h)
The project could be a bit "à la carte" with more generalist formulas (microcontrollers and FPGA) and more computer architecture oriented topics. I think it's flexible.
------------------------------------------------------------------------------------------------------------------------------------------------------------
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 pre-requisites
Basics of 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 address the following:
1- foundations of logic: sequential and combinatorial circuits
2- basic architectures: finite state machine, shift registers, data paths, memories etc.
3- Hardware description language: VHDL for modeling, simulation and logic synthesis
4- computer architecture: from the Von Neumann machine to modern processor architectures
- Microcontrollers
- study of standard instruction set (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
Additional information
CM : 21
TP : 10.5 + 10.5 (Project)