E85 Syllabus
Teaching Team
| Item | Information |
|---|---|
| Instructors | Prof. Josh Brake, Prof. David Harris |
| Tutoring & Tau Beta Pi | Vikram Krishna, Madeleine Kan, Jessica Liu, Troy Kaufman, Roman De Santos |
Schedule
| Name | Info | Location |
|---|---|---|
| Lecture | TR 1:15 - 2:30 pm | SHAN 3481 |
| Office Hours | TBD | Digital Lab |
“Office hours” is code for “come hang out.” You are encouraged to attend office hours to ask questions, get help with your labs, talk about careers and graduate school, or chat about something on your mind (whether it is related to this class, academics, or anything else). I am available more often than not, so try dropping me a line via Discord or email if you are having a problem with your lab or want to set up a time. You may also contact the lab assistant(s) for questions when I am not available.
Readings for each lecture are listed on the schedule below. Many students say they have found the readings valuable and enjoyable. You’ll get the most out of the class if you read the sections in advance of the class time and come with questions, and then reread as necessary when you work your problem sets and labs.
| Lecture | Date | Topic | Class Activity | Readings | Assignment |
|---|---|---|---|---|---|
0 |
21-Jan | Introduction: digital abstraction, numbers | Welcome: numbers | 1.1-1.5 | |
1 |
23-Jan | Logic gates, static discipline, transistors | Soldering (Digital Lab) | 1.6-1.9, A1-A7 | |
10 |
28-Jan | Combinational logic design | Datasheets & Circuits | 2.1-2.8 | PS 1 due |
11 |
30-Jan | Timing, sequential circuits | Logic Design | 2.9-2.10, 3.1-3.2 | Lab 1 due Digital Circuits |
100 |
4-Feb | Finite state machines | FSM Design | 3.3-3.4 | PS 2 due |
101 |
6-Feb | Dynamic discipline, metastability | Timing Optimization | 3.5-3.7 | Lab 2 due Comb Logic |
110 |
11-Feb | Hardware Description Languages: Verilog, Part I | Verilog FSM | 4.1-4.3 | PS 3 due |
111 |
13-Feb | Verilog, Part II | Verilog to Schematics | 4.4-4.10 | Lab 3 due Structural FSM |
1000 |
18-Feb | Arithmetic circuits | Block Design | 5.1-5.2 | PS 4 due |
1001 |
20-Feb | Fixed and floating-point number systems | Number Examples | 5.3 | Lab 4 due Behavioral FSM |
1010 |
25-Feb | Sequential building blocks, arrays | Sequential Examples | 5.4-5.7 | PS 5 due |
1011 |
27-Feb | Midterm Review | Midterm Review | Lab 5 due Multicycle Control | |
| 4-Mar | Midterm | Midterm Due 2:30 pm | |||
1100 |
6-Mar | C Programming | C Examples | C.1-C.7 | |
1101 |
11-Mar | C Programming | C Examples | C.8-C.11 | |
1110 |
13-Mar | Microcontrollers: Memory-mapped I/O | SEGGER Embedded Studio | 9.1-9.3.3 | PS 6 due |
1111 |
18-Mar | Parallel & serial interfacing, ADCs | Lights & Switches | 9.3-9.4 | Lab 6 due C Programming |
| 20-Mar | Spring Break | ||||
| 25-Mar | Spring Break | ||||
10000 |
27-Mar | I/O libraries and examples | SPI Accelerometer | PS 7 due | |
10001 |
1-Apr | Assembly language | Assembly Examples | 6.1-6.3.6 | Lab 7 due Simon |
10010 |
3-Apr | Function calls | Assembly Functions | 6.3.7-6.9 | |
10011 |
8-Apr | Machine language | Lab 8 due SPI | ||
10100 |
10-Apr | Single-cycle processor datapath | Pulse Width Modulation | 7.1-7.3.1 | PS 8 due |
10101 |
15-Apr | Single-cycle processor control, Verilog | Sidewalk Processor | 7.3, 7.6 | Lab 9 due Sound & Light |
10110 |
17-Apr | Multicycle processor | Multicycle Processor | 7.4 | PS 9 due |
10111 |
22-Apr | Pipelining | Hazards, add instrs | 7.5.1-2 | Lab 10 due Multicycle Control |
11000 |
24-Apr | Advanced architecture: a sampler | Free time for Lab 10 | 7.7 | PS 10 due |
11001 |
29-Apr | Case study: Processors | Processor Hall of Fame | 6.7, 8.7, 8.5 | Lab 11 due Multicycle CPU |
| 1-May | Class summary and review | Final Review | |||
Text
Harris & Harris, Digital Design and Computer Architecture, RISC-V Ed., Morgan Kaufmann 2021.
Electronic Communication
| Web page: | https://hmc-e85.github.io/ |
| Email list: | eng-85 [at] g.hmc.edu |
| Discord Server: | See course introductory email for invite |
Be sure to join the class Discord and check it regularly as it will be the main source of course-related communication for this semester.
Communication Policy
Please note that I do not always respond immediately to messages. In particular I typically do not check email or Discord between 6:00 pm and 6:00 am on weeknights, and I typically do not check these at all on weekends.
That said,
- Messages sent on a weekday (Monday-Friday) before 4:00 pm PT will get a response the same day.
- Messages sent after 4:00 pm PT Monday-Thursday will get a response the next day.
- Messages sent after 4:00 pm PT on Fridays or on the weekend will get a response the following Monday.
Lab
Software Requirements
You can do your lab assignments on the computers in the Digital Lab in the Parsons basement, or on your own computer. You will be using ModelSim-Intel(R), which runs on Windows and Linux. For Mac users, it will also run in a virtual machine installation of Windows using Parallels, VM Fusion, or VirtualBox. For the second half of the class, you’ll also be using SEGGER Embedded Studio, which runs on Windows, Mac, and Linux.
To install ModelSim, navigate to the download page on Intel’s website to download the most recent version of the ModelSim software. The latest release as of this writing is 20.1.1.
If you’re unable to access ModelSim in the digital lab or on your own computer, reach out to an instructor to discuss potential workarounds.
Course Learning Objectives
Digital systems have revolutionized our world. From television to cell phones to GPS to warfare to medicine to automobiles, computers and digital processing have reshaped the way we live and work. Computers are also a vital part of daily practice in every field of science and engineering.
Previous generations of engineers learned the “nuts and bolts” of the profession by doing things like disassembling and rebuilding engines. As technology has advanced, cars have become too complicated for the layperson to work on. Ironically, the same advances have made computers much easier to build. While most fields of engineering require extensive mathematics and complicated analysis of even rather simple components, digital systems merely require counting from 0 to 1. Their challenge, instead, is in combining many simple building blocks into a complex whole. Field programmable gate arrays (FPGAs), containing the equivalent of thousands or millions of logic gates, make it possible to build these complex systems in the lab without the tedium of manually connecting components. In this class, you will build your own microprocessor and test it on a FPGA. In the process, you will master the art and science of digital design. You will learn to speak to and control processors in their native tongue, assembly language. And you will put all the pieces together to demystify how a computer works.
As you probably know, very few complex systems work the first time you put them together. Engineers must become good at systematically and efficiently debugging their creations. One of the course objectives that can be frustrating but vitally important is to learn to teach yourself professional-strength computer-aided design tools and to use these tools to debug systems.
By the end of this course, you should be able to:
- Build digital systems at levels of abstraction from transistors through circuits and logic.
- Manage complexity using the digital abstraction, static and dynamic disciplines, and hierarchical design.
- Design and implement combinational and sequential digital circuits using schematics and hardware description languages.
- Analyze and trade off performance, cost, and power consumption of digital circuits.
- Begin the practice of implementing and debugging digital systems with appropriate lab techniques including breadboarding and interpreting datasheets.
- Simulate digital circuits
Grading
E85
| Item | Weight |
|---|---|
| In-class Activities | 5% |
| Labs | 30% |
| Problem Sets | 20% |
| Midterm | 20% |
| Final | 25% |
E85A
| Item | Weight |
|---|---|
| In-class Activities | 5% |
| Labs | 30% |
| Problem Sets | 20% |
| Midterm | 45% |
Solutions to the labs and problem sets from previous semesters are undoubtedly floating around campus and on the web. You may not refer to solutions while doing the assignments; they must be your own work.
Course Policies
Deadlines
Labs and homework are due by the end of class. You may have a one-week extension on one assignment of your choice (except Lab 11) and are responsible for tracking this yourself under the honor code (no need to notify the instructor; just turn it in with the following week’s assignment). Your lowest problem set and lab grade will each be dropped. Please ration your extension and drops carefully lest you find yourself ill at the end of the semester and out of options. The class moves quickly and it is difficult catching up if you fall behind. Contact the Academic Deans (academicdeans@g.hmc.edu) if you have or anticipate a protracted situation; they can coordinate additional flexibility for this class and/or others.
Drops and Deadline Flexibility
Your lowest problem set and lab grade of the semester will each be dropped, as will your three lowest lecture practice assignments. The dropped lab and problem set are intended to accommodate illness, travel, and personal emergencies. However, if you have already used your drop and need flexibility on a second lab or problem set, please contact the instructor at least two days in advance for an extension. The class moves quickly and it is difficult to catch up if you fall behind. Handling extensions in the MOOC is cumbersome, so late lecture practice questions are not accepted.
Based on last year’s experience, it is likely that multiple people in the class will experience prolonged illness and/or mental health challenges during these difficult times. If you find yourself in this circumstance, please reach out to the Academic Deans as soon as you can. They are great advocates who can help arrange flexibility across your multiple classes. E85 will make unusual accommodations as needed in such circumstances. The sooner you report a problem, the more likely it is that the deans can help you find a graceful solution.
Collaboration Policy
You are welcome to discuss labs and problem sets with other students or with the instructor or lab assistants or tutors after you have made an effort by yourself. However, you must turn in your own work, not work identical to that of another student. For labs, asking classmates or tutors for help when you are stuck on a specific issue is encouraged (especially on difficulties with the tools and equipment), but sitting at adjacent computers and working through the lab together in lock-step is specifically prohibited. Pair/group programming is also prohibited, as is getting your answer from an AI tool, search engine, or other source that bypasses your own critical thought and opportunity to practice the material. It is an honor code violation to simply copy someone else’s work.
AI Policy
An exception to the AI policy is that each week’s problem set will have one optional problem in which AI is required rather than prohibited. You can use ChatGPT or any other AI tool. The question will be worth one point of extra credit, not to bring the problem set total above 100%. You may photograph the question into the AI app, or cut and paste it into the prompt. Learning objectives include:
- Begin to understand what AI is and is not capable of answering in this technical discipline
- Critically assess the quality of the answer, including whether the AI is hallucinating, and whether the solution is similar, better, or worse than what you would have done yourself in a reasonable amount of time.
- Explore modifying your prompt to get a better answer if the initial answer is unsatisfactory.
Honor Code Violations
Students in this class are expected to follow the HMC honor code. An honor code policy appears below and prescribes behavior that is considered honorable, so read those maxims and follow them closely. Any honor code violations will be handled through JB.
Honor Code Policy
- All students enrolled in this course are bound by the HMC Honor Code. More information on the HMC Honor Code can be found in the HMC Student Handbook.
- It is your responsibility to determine whether your actions adhere to the HMC Honor Code. If this document does not clarify the legitimacy of a particular action, you should contact the course instructor and request clarification.
- Work you submit for individual assignments should be your own, and you should complete all assignments based on your own understanding of the underlying material. If you work with, or receive help from, another individual on an assignment, provide a written acknowledgement in complete sentences that includes the person’s name and the nature of the help.
- This document is not meant to be an exhaustive list of every possible Honor Code violation. Infractions not explicitly mentioned here may still violate the Honor Code.
- Boundaries of Collaboration Verbal collaboration with other students on individual assignments is encouraged AFTER you have given serious thought to each component yourself. However, all submitted written work should be written by yourself individually, and not a collaborative effort or copied from a common source (e.g., a chalkboard). It is NOT acceptable to work on labs in lockstep with another classmate.
- Use of Computer Software The use of graphing calculators and computer software to aid in course work is acceptable, as long as it does not substitute for an understanding of the course material.
- Use of Web Resources The use of Internet resources to aid in course work is acceptable, as long it does not substitute for an understanding of the course material. Plagiarism and direct copying from online (or any other) sources is strictly prohibited.
- Use of Your Own Work from Previous Semesters If you have previously attempted this course, you may resubmit your work from previous semesters as this semester’s coursework, as long as you understand the underlying material.
- Use of Other Course Resources from Previous Semesters You may not reference assignments (labs, problem sets, activities) of this course from previous semesters.
- Retention of Course Resources Assignments and exams from this course may not be committed to dorm repositories or otherwise used to help future students.
Health and Wellness
College students often experience issues that may interfere with academic success such as academic stress, sleep problems, juggling responsibilities, life events, relationship concerns, or feelings of anxiety, hopelessness, or depression. If you or a friend is struggling, we strongly encourage you to seek support. Helpful, effective resources are available on campus, at no charge.
- If you are struggling with this class, please visit during office hours or contact an instructor by email.
- Check-in with an academic dean if you are struggling in courses or unsure what academic resources are available at HMC by emailing academicdeans@g.hmc.edu.
- Reach out to The Office of Health and Wellness to discuss options available by emailing wellness@hmc.edu.
- MCAPS provides crisis support services 24/7/365. Students can call us at 909-621-8202 and press “1” at the prompt to speak with a crisis counselor. Other prompt options are available for those not in crisis.
Inclusiveness and Harassment
We do difficult work in this class and everyone should feel comfortable engaging with the material. We explicitly want you to feel safe doing this work, so it is worth stating that the instructors are committed to making the class a safe space for everyone regardless of race, gender, ethnicity, sexual orientation, religion, and academic history. If you feel that you are experiencing a hostile environment, speak to an instructor immediately.
Educational Accessibility
HMC is committed to providing an inclusive learning environment and support for all students. Students with a disability (including mental health, chronic or temporary medical conditions) who may need some accommodation in order to fully participate in this class are encouraged to contact Educational Accessibility Services at ability@g.hmc.edu to request accommodations. Students from the other Claremont Colleges should contact their home college’s disability resources officer.