Information

6.205 Fall 2025 Syllabus

You are not logged in.

Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

Catalog Description

6.205/[6.111] investigates digital design in the context of Field Programmable Gate Arrays (FPGAs), however many of the topics we go over are applicable to the field of digital design as a whole. The class uses the Verilog Hardware Description Language, iVerilog for simulations, and the Vivado/Xilinx/AMD ecosystem for a toolchain and hardware. The primary goal is to actually get in and build something and get it working and to see the good and the bad and the beautiful of hardware design. The first half of the class is devoted to lectures, problem sets, and labs. The latter half of the class is focused on large final projects. There are no exams. The class has a significant technical communication component and therefore counts as a CI-M.

Prerequisites

The prerequisite for class is 6.191/[6.004]. If you don't have it, we'd prefer you be taking it at the same time. If you don't do that, you need to email me because we'll need a very good reason as to why you do not have the prerequisite.

Units

3-7-2

Lectures

Tuesday, Thursday 2:30-4:00 pm in 45-230. They will be recorded; I make no promise about quality; whatever MIT's auto-capture thing gives us is what we get. We will try to post these in a timely manner, but for whatever reason lectures recorded in the latter half of the day sometimes get backlogged and don't show up until later in the evening.

Lab Space

The lab room is the left (southern) portion of building 38's 6th floor. Office hours will take place here. You can work at any lab benches. Lab is open from 9am-11:59pm Monday-Thursday, 9am-5pm Friday, and 1pm-11:59pm Sunday.

Lab Kit

You will be provided a Real Digital Urbana FPGA development board for this class for 2025 which you must take care of and return. This will be used in all labs and will likely form the center of your final project.

Piazza

The class piazza will be used for all important announcements as well as our official help forum for the class. It is your responsibility to make sure to join it and to set their email up so they see these announcements in a timely manner.

Textbook

There are Verilog textbooks out there, but we don't have an official required one. Internet searches and StackOverflow are good starting points for most questions/references. In terms of particular Verilog things:

Staff

Show/Hide:



Adan
Abu Naaj

LA
 
 
Anthony
Acevedo

LA
 
 
Monica
Chan

TA
 
 
Justin
Chen

LA
 
 
Yoland
Gao

TA
 
 
Luc
Gatskill

LA
 
 
Patrick
Haertel

LA
 
 
Yeabsira
Hawaz

LA
 
 
Heba
Hussein

LA
 
 
Joe
Steinmeyer

Instructor
EE
38-583
M.
Subhi Abo Rdan

LA
 
 
Gilford
Ting

LA
 
 
Luis
Turino

LA
 
 
Srinidhi
Venkatesh

LA
 
 
Kiran
Vuksanaj

TA
 
 
Elise
Wingard

LA
 
 
Hasan
Zeki Yildiz

TA
 
 
Reng
Zeng

LA
 
 

Grading

Your overall grade is based on the following breakdown:

  • Seven Weekly Assignments: 48%
  • Final Project: 52% (Including the technical and communication components of abstract, proposal, revisions, meetings, and final report)

A large number of students do "A" level work and are, indeed, rewarded with a grade of "A". The corollary to this is that, since average performance levels are so high, punting any part of the subject can lead to a disappointing grade.

Weekly Assignments

Every week after class on Thursday, the upcoming week's assignments will be released. They will be due the following Wednesday night at 11:59:00pm Boston time. The assignment for the week is comprised of a number of chunks, specifically:

  • Exercises: Smaller assignments that look at digital design concepts as well as Verilog practice and other related topics. These are generally completed without your lab kit.
  • Labs: An (often) multi-part set of tasks you complete using your labkit.

Assignments should generally be completed in the order that they appear on the assignment page. The order is assumed and very important in some weeks, so be cautious in skipping around.

We expect to have seven weeks of assignments for Fall 2025 before we start final projects. See the calendar for particular dates of when they are released and when they are due, but it will largely be a Thursday-to-Wednesday pattern. You are to work on these assignments in your own time (there are no "lab" sessions), though you should feel free to come to office hours and utilize Piazza. Parts of labs will contain checkoffs with a staff member to get credit for the lab portions. This will usually involve demonstrating your simulations, device, and answering questions.

Each week of assignments is worth approximately 6.86% of your final grade (7 weeks of pre-project assignments). You must have a non-zero score for all labs and all labs must be checked off in order to pass the class. A missing lab will result in a failing grade.

Labs will have in-person components. There is a help queue in class, however remote usage is only reserved for extenuating circumstances pre-arranged with staff. If you need remote help, please use Piazza.

For 2025, labs can be done remotely since you have a kit, however checkoffs must be done in person in lab! If you ask for a remote checkoff and/or you inquire about remote support for checkoffs on Piazza, that is functionally equivalent to saying that you didn't read the syllabus.

Final Project

Collectively this makes up approximately 52% of your grade. There will be more details as we get closer to final projects.

(No) Exams

There will be no exams in 6.205. You are welcome.

Late Submissions

  • Non-Project-related assignments have due dates. However they can be turned in late with an increasing point penalty based on lateness. Every day late, they lose 20%. Some clarifications:
    • Lateness is calculated to the day (minutes and seconds do not come into play) and rolls over immediately. So if an assignment is due on Wednesday at 11:59:00pm Boston time, and you do not finish it by then, instead turning it in at some point on Thursday (including 12:00am midnight on that Thursday), the incomplete portions will get 80% maximum credit.
    • Lateness is applied to each assignment individually. For hypothetical Lab N, if you get Checkoffs 1 and 2 done on time, and get Checkoff 3 done one day late, the lateness is only applied to Checkoff 3.
    • There is a 48-hour freeze on the accrual of late days from 11:59:00pm on Friday to 11:59:00pm on Sunday. Consequently assignments due Wednesday night can be turned in on Saturday or Sunday for 60% credit (the same as on Friday), and turning in on Monday would be 40%, Tuesday 20%, the following Wednesday 0%, the following Thursday -20% (lol/jk it would be 0%).
    • If you feel you need an extension on a assignment, email me (jodalyst@mit.edu) >= 48 hours in advance of the assignment deadline. Let me know what's going on / how the lab is coming / a general reason why you need some extra time, and as long as you get to me before that 48-hour mark you can generally assume we will grant you a 1 day (24 hour) extension on the lab. Do not abuse this policy. Be careful with pushing work back; things can snowball quickly. My response to extension requests will be stateful, meaning previous requests will be taken into account so if you plan on repeatedly asking for extensions, there will be issues.
  • If you have any additional extenuating circumstances that warrant additional extensions please go to S^3 and then reach out to Joe (jodalyst@mit.edu)

CI-M Status

6.205 counts as a CI-M. There will be a significant amount of writing and presentation going on with projects to satisfy the requirements that come with being a CI-M. Tons of details to follow when final projects show up.

Collaboration and Work That is Not Your Own

Do the Work, Don.

To make it short and simple: Everything in this class should be your own work. You can work together, of course, at a high level, but do not copy someone else's work. This includes using some online tool that generates answers for you (some generative AI thing). Do not email working code to "help" one another. Do not submit somebody else's code. Do not use "your" "friend"'s module because it works and is easier or you're tired.

Do not vibe code. You're here to learn. What a waste of everybody's time if you're not trying to do that. Your work should be your own. You should not use tools like ChatGPT or anything else to create modules and/or code or reports or presentations. Your work needs to be your own. The point of you doing assignments is to improve yourself. The point is not to provide me with a working design. If I just wanted to get a working design, I would do it myself and not ask you to do it. If we catch you, it will result in a grade of zero on the assignment, and it will be reported to the Committee on Discipline (COD). Just don't do it.