ECE385
ECE385 (Digital Systems Laboratory) is a 3-credit-hour course that is required for all ECE students. It is offered in the fall, spring, and summer.
Content Covered
- Conditional logic circuits
- Storage Elements
- Hazards
- Circuit characteristics
- Field Programmable Gate Arrays (FPGAs)
- Combinational and sequential networks in SystemVerilog
- Synchronous state machines
- Timing analysis, clock domains, metastability, and synchronization
- Logic simulation and testbenches
- Microprocessors and system on chip
- Final project using a microprocessor and system on chip concepts
The content in ECE385 is separated into chunks based on the weekly lab assignments. The first lab is an introduction to lab reports that helps orient students to the quality that the TAs are looking for. The second lab has students design, build, and test a logical processing unit with routing using chips, LEDs, resistors, switches, and a breadboard. The rest of the labs are primarily software based and have students master their SystemVerilog and C programming skills. Labs include designing different types of adders and a multiplier as well as designing, programming, and testing a modified version of LC-3.
The class begins to shift at Lab 6 when students are introduced to the ability to create a System on Chip (SoC) that can process C code. This lab teaches students the basics of USB communication from the FPGA to a keyboard/mouse with the goal of making a ball move on a screen through VGA communication. Students also learn how to display text on screen.
The course wraps up on required new content on Lab 7 where students program a basic graphical processing unit that is able to display colored text on screen.
After Lab 7, students get a few weeks to work on their own final project to put everything they learned in class to use.
Prerequisites
ECE110 is mainly a prerequisite because of the circuit designing, building, and testing required for Lab 2. The more pertinent prerequisite is ECE220 as this class requires students to know C programming, but there is a much heavier emphasis on logical programming and design.
When to Take it
Take this course as soon as possible if you want to increase your odds of getting a hardware based internship. Make sure to take this course soon after ECE120 as there is a significant overlap in content. Take this class when you have a relatively lighter schedule as it will take up a significant portion of your time even though it is a 3 credit hour course.
Course Structure
This is a partner based lab class with weekly quizzes and demos. The demos and quizzes are on Friday and the reports are usually due over a week afterwards. It is not necessary to take this class with a partner, but it is highly recommended in order to split the workload. This means that you and your partner will be getting the same exact grades on the lab reports (except for Lab 1), demos, and the final project. The only way that you can get a different grade from your partner is based on how well you do on the weekly quizzes and if your partner gave you a high feedback score or not. Make sure you pick a partner that works with your workstyle and has the same goals for the class as you. You do have some time to find a partner because the first report is individual, but it is recommended to partner up before the class.
The lectures usually introduce new concepts and help students get started on the lab. All of the lectures are recorded and can be found on the class website. There are only 2 lectures a week, but Professor Cheng usually holds a Friday twitch stream where he goes over the lab and answers questions from the chat.
The demos are used as a way for you to show your TA that you completed the lab and that it functions correctly. The point outline for the demo is usually in the lab documentation and clearly states what is to be shown during the demo session. After the demo, your TA will ask you a question that either relates to the lab or the lecture material. The TA will then ask your partner a question. You may not receive any help from any source during the quiz, so make sure you are fully prepared. 6/10 of your quiz points come from how well you answer your question while the remaining 4 points come from your partner. If you do not have a partner, you will be asked two questions instead.
The final project includes a proposal, a midpoint check-in, a report, and a demo.
At the very end of the class, there is also a partner survey that is worth a handful of points and allow students to rate their partners. You can give your partner a point rating anywhere from 0-5.
Instructors
Professor Cheng is the main instructor for this class, but you will primarily be interfacing with the CAs and your TA that you pick at the beginning of the semester.
Course Tips
This class is notoriously known for the sheer amount of time it takes. The criteria for the lab reports are extremely specific and it can take anywhere from 10-20+ pages in order to address every criterion. Because of this, it is advised that students start the lab report early and not push it off to the last day. There is sometimes a large gap between report due dates as some labs are split into two full weeks, which causes some students to forget what they did and struggle to finish the lab report if they started it too late.
Make sure that you pick a good partner. I cannot stress this enough. A bad partner can sometimes be worse than no partner at all as they can negatively impact your quiz grade.
If you are lost while doing the lab or are encountering a strange bug, go to office hours. The CAs are extremely helpful and can help with just about anything. Do not go to office hours if you have not already put in effort to solve your problem as they are there to help you, not to do the lab for you. Also make sure that you have proper hygiene as the office hours room does not have good ventilation. Make sure to always treat the CAs with decency and kindness. They are students too with stressful schedules so do not ask them ECE385 related questions when they are not on the clock.
Start early. Many students underestimate the time that it will take them to complete the labs (and lab reports) which results in all nighters and unhealthy caffeine dependencies. Take advantage of the office hours on the weekends as they are usually pretty barren which means that the CAs can spend more time helping you. This class can take up to 30 hours per week depending on the lab.
Review lectures before quizzes. Many of the quiz questions are directly from the lectures.
Attempt all extra credit, even if it may be tedious. Every point counts in this class and partial credit may be awarded.
Life After
The direct next class after ECE385 would be ECE395 - Advanced Digital Projects Laboratory. This course is aimed more towards computer engineers that are interested in advanced microcomputer-based topics such as microcomputer networks, robotics, image and voice recognition, music synthesizers, and vehicle simulators. If you liked Lab 5 (LC-3 Lab), then look into taking ECE391 - Computer Systems Engineering and ECE411 - Computer Organization and Design by extension. ECE385 is also a prerequisite for ECE445 - Senior Design Project Laboratory.
Infamous Topics
- Lab 2.1: Even Professor Cheng states that this lab is essentially hazing. Have fun debugging a circuit with over 10 chips! This is the first and last time that you will see a breadboard in this class.
- Lab 5: This lab is extremely tedious to design, program, and test. A lot of staring at waveforms and trying to figure out exactly what went wrong and where in the datapath it occurred.
- Lab 7.1: The compile times can be upwards of 20 minutes based on your computer (may be less as Fall 2023 will have new software and hardware).
- Documentation: The documentation for this course is intentionally hard to read as it is “supposed to prepare students for jobs in the real world where documentation is usually bad.” -Professor Cheng
Resources
- Demo wednesdays: HKN hosts demos of past ECE385 final projects to help inspire students as they try to figure out what they want to do with their project.
- ECE120 textbook