CS-173 / 7 credits

Teacher: Stojilovic Mirjana

Language: English


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

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

Related courses

Results from graphsearch.epfl.ch.