ECE 550D: Fundamentals of Computer Systems and Engineering — Fall 2022
Class meeting times and location: MoWe 10:15–11:30AM (Prof. Younes) or TuTh 10:15–11:30AM (Prof. Li) — FITZPATRICK SCHICIANO A 1464
Recitation meeting time and location: Fr 10:15–11:30AM — French Science 2231
Lab location: Hudson Hall 214 and 202A
based on a diagram by Dr. Tyler Bletsch
Instructors: Dr. Rabih Younes, Dr. Hai "Helen" Li
Duke e-mails: rabih.younes, hai.li
Instructor 1-on-1 office hours are available by appointment (link to make appointments posted on Sakai).
To provide anonymous feedback about anything related to the course, please follow this link (password posted on Sakai).
Teaching Assistants (TAs):
- Bokyung Kim (bk174) and Shiyu Li (sl578) — Head TAs for projects
- Kean Shen (ks599) — Head TA for project autograding
- Hao Wu (hw269) — Head TA for recitations (ECE Graduate Program 2022-2023 Teaching Assistant Award)
- Hongyang Li (hl404) — Head TA for grading
- Sushant Ranjan (sr501) — Head TA for online student questions
- Hongming Zhang (hz223) — Head TA for plagiarism detection
- Yidan Sun (ys303) and Zelin Jin (zj65) — Head TAs for course improvement
- Sangwook Bok (sb712)
TA office hours (location: Hudson Hall 214):
- MWF: 11:45–1:45 (2-3 TAs)
- TuTh: 1:30–4:30 (2-4 TAs)
Course Description
Fundamentals of computer systems and engineering for Master's students whose undergraduate background did not cover this material. Topics covered include: Digital logic, assembly programming, computer architecture, memory hierarchies and
technologies, IO, and hardware implementation in HDL. Undergraduates may not take this course, and should take ECE 250D, ECE 353, and/or ECE 356 instead. 3 units. Co-requisite: ECE 551D.
Learning Outcomes
Having successfully completed this course, the student will be able to:
- design combinational and sequential circuits at the transistor (CMOS) and gate/logic levels;
- implement, simulate, and test logic circuits;
- use Verilog hardware description language;
- write programs using Assembly language;
- describe and analyze how computer memory operates;
- describe the basic operations of IO devices, interrupts, and exceptions; and
- design, implement, and test a processor.
Textbook and Other Course Material
Textbook not required. One suggested textbook is: David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 5th edition, Morgan-Kaufmann. (Amazon,
AddAll) —
(Not the "ARM" edition or the "Revised Printing").
All needed material will be posted on Sakai.
Grading Policy
- Recitations (15%): Recitations are sessions for hands-on practice using software and hardware tools. Grades are based on completion (must demonstrate working module to TA).
- Exam 1 (20%).
- Exam 2 (20%).
- Project (40%): Checkpoints that build up to implementing a processor.
- Project checkpoint 1 (Simple ALU): 6%
- Project checkpoint 2 (Full ALU): 7%
- Project checkpoint 3 (Register File): 7%
- Project checkpoint 4 (Simple Processor): 10%
- Project checkpoint 5 (Full Processor): 10%
- Project checkpoint 6 (Final Project): +5 extra credit points (on the final course grade)
- Concept maps (5%): Pre- and post-course concept maps to help measure learning.
- NO FINAL EXAM!
- Late policy: Late submissions are not allowed unless you have a valid excuse. In that case, email your instructor about it as soon as possible and wait for a decision (might involve a penalty, depending on the excuse). Refer
to this list of common but unacceptable excuses borrowed from Dr. Bletsch's webpage.
- Regrading policy: Regrade requests must be submitted no later than one week after the assignment grade is released.
- Grading schema (minimum %):
- 97: A+
- 93: A
- 90: A-
- 87: B+
- 83: B
- 80: B-
- 77: C+
- 73: C
- 70: C-
- 0: F
Class Flow
- Before class: 24h before each class, the slides and a video recording of the lecture are shared. You should thorowly study them and prepare questions to ask in class.
- During class:
- Lecture review
- Q&A
- Practice exercises/activities
- After class:
- Review class content
- Practice (individually)
- Prepare questions and ask them on Ed Discussion, or meet with the instructor or TAs during office hours.
Important Notes
***Extremely important advice:
- Start as early as you can! Leave ample time for testing!
- Review class material after/before every class.
- Manage your time well and work on multiple assignments (in different courses) concurrently. Split bigger task into smaller (realistic) ones. Make sure you use a calendar and a to-do list.
- Use Git to keep track of previous versions of your work and use a cloud storage service to back up your work (GitLab, GitHub, etc.).
- Ask questions! We are here to help! We want you to succeed!
We can only grade what we receive. Always check what you are submitting and make sure you submit the right files.
Contacting the instructor and the TAs:
- For questions that can be answered by any TA or the instructor: use Ed Discussion
- To contact a specific TA or the instructor: use email (do not use texting, social media, ...)
Misconduct
- Academic misconduct will not be tolerated and will be taken very seriously.
- You are expected to complete the assignments individually unless otherwise stated.
- Students are encouraged to share ideas, learn from each other, and learn from online sources, but cheating is not tolerated.
- Any borrowed design/code/etc. — if allowed to be borrowed — should be properly cited.
- Students suspected violating the Duke Community Standard will be reported.
- In addition to the measures taken by the administration, the affected assignment(s) will receive zero credit, or possibly -100% in extreme cases.
- If you are considering this course of action, please see me instead, and we can work something out! I want every student in my course to be successful.
- Note that programming submissions will be compared to one another and to previous semesters using Stanford's Measure of Software Similarity (MOSS) to detect signs of plagiarism.
Communications Support at Pratt
Graduate Communications and Intercultural Programs (GCIP) offers customized communications support for all graduate students at Pratt. They offer one-on-one coaching in the Graduate Communications Center (GCC) for all communications needs (e.g.,
academic writing, cover letters, presentations, pronunciation, master's theses/projects, PhD dissertations/publication/prelims). Additionally, GCIP offers a communication workshop series to help build specific communication skills throughout the
academic year. Visit this link or email gcc-pratt@duke.edu.
Week |
Date |
Topic |
Project (due Fridays at 11:59pm) |
Recitation (Friday, in teams of 2-3) |
1 |
Mo-Tu 8/29-30 |
Syllabus + Intro |
|
|
1 |
We-Th 8/31-9/1 |
From Transistors to Gates |
|
Quartus + Verilog Intro |
2 |
Mo-Tu 9/5-6 |
Combinatorial Logic |
|
|
2 |
We-Th 9/7-8 |
Digital Arithmetic |
|
Adder |
3 |
Mo-Tu 9/12-13 |
Digital Arithmetic |
|
|
3 |
We-Th 9/14-15 |
Storage and Clocking |
|
Multiplier |
4 |
Mo-Tu 9/19-20 |
Finite State Machines |
|
|
4 |
We-Th 9/21-22 |
ISA |
Simple ALU (PC1) |
FSM |
5 |
Mo-Tu 9/26-27 |
ISA |
|
|
5 |
We-Th 9/28-29 |
Datapath |
Full ALU (PC2) |
Behavioral Verilog |
6 |
Mo-Tu 10/3-4 |
Datapath |
|
|
6 |
We-Th 10/5-6 |
Datapath + Clock Division + FPGAs |
|
FPGA Board Intro |
7 |
Mo-Tu 10/10-11 |
NO CLASS (Fall Break) |
|
|
7 |
We-Th 10/12-13 |
Practice Problems |
Register File (PC3) |
I/O Interfacing: PS2 |
8 |
Mo-Tu 10/17-18 |
Exam 1 Review |
|
|
8 |
We-Th 10/19-20 |
Pipelining |
|
Exam 1 [beginning - Datapath] |
9 |
Mo-Tu 10/24-25 |
Exam 1 Muddiest Points |
|
|
9 |
We-Th 10/26-27 |
Pipelining |
|
Work on processor |
10 |
Mo-Tu 10/31-11/1 |
Memory Hierarchy |
|
|
10 |
We-Th 11/2-3 |
Memory Hierarchy |
Simple Processor (PC4) (in teams of 2-3) |
I/O Interfacing: VGA |
11 |
Mo-Tu 11/7-8 |
Virtual Memory |
|
|
11 |
We-Th 11/9-10 |
Virtual Memory |
|
Work on processor |
12 |
Mo-Tu 11/14-15 |
Interrupts, Exceptions, and System Calls |
|
|
12 |
We-Th 11/16-17 |
OS |
|
Work on processor |
13 |
Mo-Tu 11/21-22 |
I/O |
|
|
13 |
We-Th 11/23-24 |
NO CLASS (Thanksgiving Recess) |
Full Processor (PC5) (in teams of 2-3) |
|
14 |
Mo-Tu 11/28-29 |
Practice Problems |
|
|
14 |
We-Th 11/30-12/1 |
Exam 2 Review |
|
Exam 2 [Pipelining - OS] |
16 |
Fr 12/16 |
NO CLASS |
|
Final Project (PC6) Demo (in teams of 2-3) |