Category | Difficulty |
---|---|
HW | 5 |
Exams | 4 |
Quiz | 2 |
Project | 5 |
This course is a perfect opportunity to work on interesting Machine Learning hardware projects and also get familiarised with a various basic principles of digital design. Well rounded exposure to digital design and important fundamentals. The projects in this course involve designing gate level RTL for various machine learning algorithms and also working on synthesis for the same.
The lectures are very informative and structured. Each lecture introduces a topic on digital design. These topics definitely help in the projects but are not directly related to the projects. They go over the fundamentals that you should know.
Before taking this class, you should have basic knowledge on digital design and be familiar with RTL and system verilog.
You will have at least 1 submission (either homework or projects) every week. Consistency is key to do well in this course. It is well structured. This is a circuit design course and you learn a lot on timing, area efficiency, verification/DFT, stability, hazards etc.
Homeworks are related to the lectures. They are not straightforward and you might have to spend some good time on them. Get to it early. You will have approx. 7 homework sets. The ones towards the end may be a little more tricky.
##Quiz
You will have a lecture quiz every week. This counts towards 5% of your total grade. It is pretty straightforward. Looking at the lectures is good enough to crack them.
The recent iteration had pre-recorded lectures and you will have to review a bunch of them every week. The lecture slots are for any questions and announcements. Most of the lecture slots are also for guest lectures from people working in the industry and also from other professors having similar expertise. You will get exposed to the industry mind-set and also learn about major issues from an industry stand point.
If there is just one takeaway from this, it should be start the projects early. Some of the project's area and timing requirements can be a little challenging. Try to work on the extra credits as well. This can offset any dip in the grade from the homework or exams. There are plenty of opportunity to get extra credits on this course. Ask the TAs for help if you are stuck anywhere. They are pretty helpful and will guide you in the right direction.
You will have some points allocated to neat coding. So work on modularising your code from the beginning. Work on adding a lot of comments to make it readable. You will definitely be rewarded for that. These projects require gate level design and you will have to spend some time on them.
The project 0 is a great way to see if you have the skills for this course. If project 0 is extremely difficult then you will probably need to put in a lot more effort to complete the other projects.
Exams are not as difficult as homework. There are practice exams that give you what topic each question will come from. If the practice exam is easy, you will not have any problem in the exam. HWs are a great way to understand the type of questions that may appear in the exam. You will have enough time to finish the exam. Make sure you are not stressed before the exam.
A reasonable study plan is to
- Do the practice exam. Identify the problem areas.
- Go over the HW and the mistakes in them.
- Glance over the lecture material and the reference material.
- Be consistent.
- Make notes while looking into the lectures.
- Lecture Notes and videos from the course.
- There will also be attached reference materials for the course.
- Computer Arithmetic: Algorithms and Hardware Designs, 2nd Edition authored by Behrooz Parharmi and published by Oxford Press.