Fundamentals of digital systems
Summary
Welcome to the introductory course in digital design and computer architecture. In this course, we will embark on a journey into the world of digital systems, exploring the fundamental principles and concepts that underpin modern computing technology.
Content
Part I: Number Systems
Digital systems are built from circuits that process binary digits (zeros and ones). This part of the course aims to show how familiar numeric quantities can be represented and manipulated in a digital system. We will describe binary number systems and show how addition and subtraction are performed.
Part II: Digital Logic and Design with Verilog
Binary logic circuits have the dominant role in digital technology. We will discover logic gates and expressions, combinational and sequential logic elements, and build state machines. We will design and simulate logic circuits in Logisim-Evolution and Verilog hardware description language.
Part III: Intro to Computer Architecture
We will discover the fundamental building blocks of computers and how they are organized. On one side, we will study a basic processor architecture and the RISC-V open-standard ISA. On the other, we will discuss the future of computing and the role of domain-specific architectures. The basics of FPGA architecture and design flow will also be covered.
Keywords
- number systems, logic gates, digital logic, delay, frequency, power, arithmetic circuits, combinational circuits, sequential circuits, finite state machines
- memory, computer organization, CPU, FPGA, GPU, TPU
- RISC-V ISA
- Logisim-Evolution, Verilog, Icarus Verilog, GTKWave, Visual Studio Code
Learning Outcomes
By the end of the course, the student must be able to:
- Analyze the behavior of a digital circuit
- Describe digital systems in Verilog
- Design and test digital systems
- Explain basic components of a computer
- Create fully functional digital systems, including a simple CPU
- Realize a fully functional piece of RISC-V assembly code
- Describe the functionality of a piece of RISC-V assembly code
- Characterize various number systems
- Reason about the factors affecting the performance of digital systems
- Describe the importance of reduced-precision computing
- Design common arithmetic circuits
Transversal skills
- Assess one's own level of skill acquisition, and plan their on-going learning goals.
- Communicate effectively, being understood, including across different languages and cultures.
- Continue to work through difficulties or initial failure to find optimal solutions.
- Use both general and domain specific IT resources and tools
Teaching methods
- Ex cathedra
- Flipped classroom
- Exercices
Expected student activities
- Attending the course and exercise sessions
- Completing the assignments
- Participating in the discussions on the forum
Assessment methods
- Midterm exam (written)
- Final exam in the exam session (written)
Supervision
Office hours | Yes |
Assistants | Yes |
Forum | Yes |
Resources
Virtual desktop infrastructure (VDI)
Yes
Bibliography
- Stephen Brown and Zvonko Vranesic (2014), Fundamentals of Digital Logic with Verilog Design (3rd ed.), McGraw-Hill
- John F. Wakerly (2018), Digital Design Principles and Practices with Verilog (5th ed.), Pearson
- Milos D. Ercegovac and Tomas Lang (2004), Digital Arithmetic, Morgan Kauffmann Publishers
- David Patterson and John Hennessy (2020), Computer Organization and Design RISC-V Edition: The Hardware Software Interface (2nd ed.), Morgan Kauffmann Publishers
- David Patterson and Andrew Waterman (2017), The RISC-V Reader: An Open Architecture Atlas (1st ed.), Strawberry Canyon LLC
Ressources en bibliothèque
- Fundamentals of Digital Logic with Verilog Design / Brown
- Digital Arithmetic / Ercegovac
- Digital Design Principles and Practices with Verilog / Wakerly
- Computer Organization and Design RISC-V Edition / Patterson
- The RISC-V Reader / Patterson
Websites
Moodle Link
Videos
Prerequisite for
CS-200 Computer Architecture
In the programs
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Fundamentals of digital systems
- Courses: 3 Hour(s) per week x 14 weeks
- Exercises: 4 Hour(s) per week x 14 weeks
- Type: mandatory
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Fundamentals of digital systems
- Courses: 3 Hour(s) per week x 14 weeks
- Exercises: 4 Hour(s) per week x 14 weeks
- Type: mandatory
- Semester: Spring
- Exam form: Written (summer session)
- Subject examined: Fundamentals of digital systems
- Courses: 3 Hour(s) per week x 14 weeks
- Exercises: 4 Hour(s) per week x 14 weeks
- Type: optional
Reference week
Mo | Tu | We | Th | Fr | |
8-9 | |||||
9-10 | |||||
10-11 | |||||
11-12 | |||||
12-13 | |||||
13-14 | |||||
14-15 | |||||
15-16 | |||||
16-17 | |||||
17-18 | |||||
18-19 | |||||
19-20 | |||||
20-21 | |||||
21-22 |