Design of Digital Circuits SS17

Main content

Spring semester 2017
Course number: 252-0028-00L (7 ECTS)

Thursday, 13:15-15:00, in HG E 7
Friday, 13:15-15:00, in HG E 7

Lab sessions:
Tuesday, 15:15-17:00 (in HG E 19, E 26.1, E 26.3)
Wednesday, 15:15-17:00 (in HG E 26.1, E 26.3)
Friday, 08:15-10:00 (in HG E 26.1, E 26.3)
Friday, 10:15-12:00 (in HG E 27 and E 26.3)

Course responsible:
Prof. Dr. Onur Mutlu, D-INFK ()
Prof. Dr. Srdjan Capkun, D-INFK ()

Victoria Caparros Cabezas, Aritra Dhar, Marco Guarnieri, Hasan Hassan, Jeremie Kim, Sinisa Matetic, Minesh Patel, Francois Serre, Mridula Singh, David Sommer, Arash Tavakkol, Der-Yeuan Yu
Chris Mnuk, Daniel Gstöhl, Kick Nicolas, Artur Gigon Almada e Melo, Josua Cantieni, Andreas Brombach, Carsten Lau Nielsen, Anton Middelhaufe, Erand Smakaj, Alexander Breuss

Grading Policy: written exam: 75 percent, lab exercises: 25 percent


27.07: Practice Exercises 1 (PDF, 214 KB) and solution (PDF, 384 KB) updated.
19.07: Practice Exercises 3 solution (PDF, 1.5 MB). Harris & Harris exericses solution (PDF, 245 KB).
29.06: Practice Exercises 3 available here (PDF, 1.5 MB).
29.06: Practice Exercises 2 solution (PDF, 407 KB).
02.06: Practice Exercises 2 available here (PDF, 375 KB).
01.06: Practice Exercises for the Harris & Harris textbook are here (PDF, 160 KB).
01.06: Review session questions are available here (PDF, 337 KB). Solutions here (PDF, 471 KB).
29.05: Practice Exercises Solutions are available here (PDF, 384 KB).
26.05: Week 14 contents added
22.05: Week 13 contents and video added
15.05: Lab 9 online
12.05: Week 12 contents updated
05.05: Week 11 contents updated
03.05: Practice Exercises available here (PDF, 214 KB). Supplementary file here (CSV, 1 KB).
02.05: Lab 8 online
27.04: Week 10 contents online
16.04: Lab 7, Week 8,9 online
11.04: Lab 6 online
06.04: Lab 5 and Week 7 contents updated
31.03: Week 6 contents updated
27.03: Lab 4 and Week 5 contents online
20.03: Lab 3 online
17.03: Week 4 contents updated
12.03: Week 3 slides and Lab 2 online
06.03: Lab 1 online
05.03: Week 2 slides online
01.03: Lab time and group assignments are here.
24.02: Lecture videos can be found here.
23.02: Slides for Week 1 uploaded. Digital version of additional reference book will be provided later. Please access it through the department library for now.
22.02: We've created an FAQ for you in the Help section.
22.02: The labs begin in the second week of March.
31.01: Webpage online

Course Content

This course provides an introduction to the design of digital circuits and computer architecture. It covers the technical foundations of logic gates, an introduction to hardware description languages (and their use in the design process), as well as processor and computer architectures.

We will use this textbook: Digital Design and Computer Architecture by David Harris and Sarah Harris. The textbook is available online (through the ETH network or the ETH VPN). [First Edition | Second Edition]

Additional Recommended Reference: Introduction to Computing Systems: From Bits and Gates to C and Beyond, 2/e by Yale N. Patt and Sanjay J. Patel. The textbook is available digitally and in the D-INFK library. Selected exercise solutions are can be found here.

Lecture Schedule

Week 1:
Introduction and Basics [ppt (PPT, 20.1 MB)|pdf (PDF, 8.5 MB)]
Mysteries Continued [ppt (PPT, 25.8 MB)|pdf (PDF, 3.9 MB)]
Video: ThursdayFriday 
Reading Assignment:
Binary Numbers [pptx (PPTX, 747 KB)|pdf (PDF, 1.2 MB)]
Harris & Harris, Chapter 1
Patt and Patel, Chapters 1 & 2

Week 2:
Introduction to FPGAs (by Der-Yeuan Yu) [pptx (PPTX, 1.3 MB)|pdf (PDF, 774 KB)]
Combinational Circuits (Guest lecture by Frank Gürkaynak) [pptx (PPTX, 3.2 MB)|pdf (PDF, 2.3 MB)]
Video: Thursday

Week 3:
Combinational Circuits continued from Week 2 (Guest lecture by Aanjhan Ranganathan)
Sequential Circuits (Guest lecture by Frank Gürkaynak) [pptx (PPTX, 1.5 MB)|pdf (PDF, 719 KB)]
Video: Thursday 
Reading Assignment:
Harris & Harris, Chapters 2, 3, 4

Week 4:
Sequential Circuits continuted from Week 3 (Guest lecture by Aanjhan Ranganathan)
Timing and Verification (Guest lecture by Frank Gürkaynak) [pptx (PPTX, 4.5 MB)|pdf (PDF, 1.8 MB)]
Video: Thursday

Week 5:
MIPS Assembly (Guest lecture by Aanjhan Ranganathan) [pptx (PPTX, 1.5 MB)|pdf (PDF, 1 MB)]
MIPS Programming (Lecture by Der-Yeuan Yu) [pptx (PPTX, 679 KB)|pdf (PDF, 1.1 MB)]
Video: Thursday, Friday

Week 6:
Microarchitecture (Guest lecture by Aanjhan Ranganathan) [pptx (PPTX, 1.8 MB)|pdf (PDF, 1.2 MB)]
Video: ThursdayFriday

Week 7:
Multi-Cycle Microarch. [ppt (PPT, 6 MB)|pdf (PDF, 5.3 MB)]
Microprogramming [ppt (PPT, 4.7 MB)|pdf (PDF, 3.2 MB)]
Video: Thursday, Friday
Patt and Patel, Chapters 4, 5, Revised Apendix C
The LC-3b ISA [pdf (PDF, 151 KB)]
The Microarchitecture of the LC-3b, Basic Machine [pdf (PDF, 95 KB)]
LC-3b Figures [pdf (PDF, 333 KB)]
Harris & Harris, Chapter 7.4
Optional: Maurice Wilkes, "The Best Way to Design an Automatic Calculating Machine" [pdf (PDF, 297 KB)]

Week 8:
Pipelining [ppt (PPT, 2.4 MB)|pdf (PDF, 1.9 MB)]
Video: Thursday
Harris & Harris, Chapter 7.5

Week 9 (Easter holidays):
Harris & Harris, Chapter 7.6-7.9
Optional: Smith and Sohi, "Microarchitecture of Superscalar Processors", Proc. IEEE, 1995.

Week 10:
Dependence Handling [ppt (PPT, 2 MB)|pdf (PDF, 1.2 MB)]
Pipelining Issues [ppt (PPT, 1.5 MB)|pdf (PDF, 632 KB)]
Video: ThursdayFriday

Week 11:
Out-of-Order Execution [ppt (PPT, 5.1 MB)|pdf (PDF, 5.2 MB)]
Tomasulo's algorithm [pdf (PDF, 7.2 MB)]
Approaches to Concurrency [ppt (PPT, 3.8 MB)|pdf (PDF, 3 MB)]
Video: Thursday, Friday

Week 12:
SIMD Processors [ppt (PPT, 3.4 MB)|pdf (PDF, 1.8 MB)]
GPUs [ppt (PPT, 2.3 MB)|pdf (PDF, 1.7 MB)]
Video: Thursday, Friday

Week 13:
Memories [ppt (PPTX, 885 KB)|pdf (PDF, 1.1 MB)]
Cache Architectures [ppt (PPTX, 5.1 MB)|pdf (PDF, 1.8 MB)]
We removed the slides on IO Systems since they were not covered in lecture. However, memory-mapped IO concepts were covered in the labs and as part of the LC-3b Microarchitecture lectures. For the exam, you are responsible for only what is covered in the labs and lectures.
Video: ThursdayFriday

Week 14:
Systolic Arrays and Beyond [ppt (PPT, 4.2 MB)|pdf (PDF, 3.7 MB)]
Video: Friday

Lab Schedule

- You will work in groups of two. There are 9 labs in total.
- You will do hands-on exercises and be required to demonstrate your implementation.
- The required demonstration is mentioned in the lab exercises sheet at the end of the manual. Only the demonstration is requried, you do not need to hand in the sheet.

Lab 1: Drawing a Basic Circuit [Manual (PDF, 228 KB)]
Lab dates: Tue 07.03, Wed 08.03, Fri 10.03

Lab 2: Mapping Your Circuit to FPGA [Manual (PDF, 830 KB)]
Lab dates: Tue 14.03, Wed 15.03, Fri 17.03

Lab 3: Verilog for Combinatorial Circuits [Manual (PDF, 450 KB)]
Lab dates: Tue 21.03, Wed 22.03, Fri 24.03

Lab 4: Finite State Machines [Manual (PDF, 377 KB)]
Lab dates: Tue 28.03, Wed 29.03, Fri 31.03

Lab 5: Implementing an ALU [Manual (PDF, 386 KB)]
Lab dates: Tue 04.04, Wed 05.04, Fri 07.04

Lab 6: Testing the ALU [Manual (PDF, 1 MB)|Files (ZIP, 2 KB)]
Lab dates: Tue 11.04, Wed 12.04, Fri 28.04

Lab 7: Writing Assembly Code [Manual (PDF, 1.3 MB)|Files (ZIP, 2.9 MB)]
Lab dates: Tue 25.04, Wed 26.04, Fri 05.05

Lab 8: Full System Integration [Manual (PDF, 755 KB)|Files (ZIP, 41 KB)]
Lab dates: Tue 02.05, Wed 03.05, Fri 12.05

Lab 9: The Performance of MIPS [Manual (PDF, 267 KB)|File1 (ZIP, 19 KB)|File2 (ZIP, 892 Bytes)]
Lab dates: Tue 16.05, Wed 17.05, Fri 26.05

Working with the FPGA Board

For this course, we use the software Vivado for FPGA programming. The computers in rooms HG E26.1 and 26.3 are already installed with the necessary software. If you wish to use your own computer, you can refer to the following instructions:

You can also find examples for the Basys 3 board and a master constraint file here:


For technical questions, please write to . All lecturers and assistants will receive this e-mail and try to respond quickly. For other inquiries please email the TA or the lecturers.

Frequently Ased Questions:

Q: Can I use my lab grades from previous years?
A: Yes. You can look up your past grades here:

Q: Can I use my lab grades from previous years and still do the labs?
A: Sure! We will provide you with this option in the sign-up form.

Q: Can I do the labs and decide at the end of the semester whether to use the my grades from previous years?
A: No. You need to decide at the beginning of the semester.

Q: I don't have a partner. What do I do?
A: Make new friends and find one:) Otherwise we will assign you with another person who has not found a partner.

Q: Can we have groups of three students?
A: No. We will assign you with another prson who has not found a partner. Groups of two are much better for your learning experience instead of three so we will only make exceptions if absolutely necessary.

Page URL:
© 2017 Eidgenössische Technische Hochschule Zürich