CSE 141L: Introduction to Computer Architecture Lab
Please note adjusted duration!
Join and monitor this google group immediately:
Monitor the class Moodle page!
|| The Lab
|| Thursday nights (except May 26); will arrive at ~8p |
and stay until questions (or Redbull) run out.
|| Mon 2:00-3:00p
+1 Hour TBA
|| EBU3b B260
|| Vikram Bhatt
|| Sun 2:00p-3:00p
|| EBU3b B260
Final project demo schedule
You can check your project demo scchedule here.
From this course, you will:
- Learn correct hardware design practices suitable for FPGA and VLSI digital design.
- Learn how to write Synthesizable Verilog, and use the tools to turn it into a circuit.
- Design, Implement and Test your own processor, although way to an FPGA bitstream.
- Learn about computer architecture in the best way -- by doing.
- Work in a team, building a large, complex system using design principles that apply to both software and hardware.
- Help your classmates and exercise your creativity.
This course is taught in tandem with CSE 141. Unless you have discussed it with me, you should be enrolled in both.
We will be using moodle for several aspects of this course,
including the class forums and announcements. As a part of your grade will depend on your participation
on the forums, it is extremely important that you are active on moodle. If you are enrolled in the course,
you should automatically be added to
the course's moodle page. Please try logging in to moodle as soon as possible to ensure that you are
correctly setup to use the site. If you have any problems, please e-mail one of the TAs and describe
If you are an extension student without a UCSD active directory ("AD") account, you
will not automatically have access to moodle. Please e-mail one of the TAs and let them know you are
an extension student in need of a moodle account.
NOTE: Starting with Lab 2, we will be using google groups for forum traffic.
Please sign up immediately:
There are two ways to get an "A" in this class. One is to implement a working processor by the end of the quarter that executes the selected programs in an ISA of your design. This is the grading option you should strive for; however even for the strongest student, there is always the chance you will be unlucky.
The other way is to do well on the labs and class participation. If your processor doesn't turn out as well, I will consider your performance on the labs and participation (see below). Your grade will be at least the maximum of the "your processor works" grade and the lab assignment grade.
In addition to the labs, you should be an active contributer in the class moodle page. The tools are challenging and sometimes buggy. Your classmates (in addition to the course's staff) are an excellent resource for help with the tools.
This class is about doing. You will learn almost everything you learn in this class by doing it. This means that you (or your team) must do all your own work. As long as you meet this criteria, you can consult with and discuss your project with other groups. We have structured the course so that there is no incentive to be stingy with your knowledge of the tools or in sharing your expertise with your classmates.
||They are equally weighted.
||Being an active and positive influence in class and on the moodle class forums
START YOUR LABS AS SOON AS THEY ARE HANDED OUT.
Late turn-ins: For many of you, this project will be the most complex thing you have ever designed. Each of the labs uses the results of the last, so you cannot simply skip a lab. Worse, each lab seems hard, but seems easy in comparison to the next. If you are late on one lab, then it will have a cascading effect on future labs, and you will run out of time at the end of the class. In order to encourage timely turn-ins, we will offer "limited amnesty" for late labs, which means that the penalty applied to your grade is a function of time. The slope of the amnesty curve is set after the lab is turned in, and can be as high as 15% per day.
Tool Problems: Tool problems are part of the hardware design process. You should expect to have unexpected delays. To the extent that it is a fundamental issue with the
tools that requires real resolution by the TA, we will be more understanding if 1) you posted the issue on moodle, 2) show clear evidence that you
actively tried to solve the problem yourself and 3) it was clear you started early on the lab.
Grading Appeal Process: If you feel there has been an error in how an assignment
was graded, you have one week from when the assignment is return to bring it to our attention.
You must submit to the appropriate TA a written description of the problem issue, what you
feel the fair resolution is, and your unmodified
coursework. We photocopy a random sampling of student work
to detect inappropriate modifications.
Note that we regrade the entire assignment; so your grade may either rise or fall after resubmission.
Should, after you appeal, you be unsatisfied with the TA's treatment of the issue, you may
resubmit the appeal to the professor.
NOTE: Subject to skew and jitter. We reserve the right to change this.
I will post the slides for most lectures. Since the slides contain
material I am not allowed to distribute publicly, they may only
be available from UCSD network or via the proxy.
| Wed, March 30 || Lab 1: Introduction; Verilog || slides
| Wed, April 06 || Lab 2A (New Naming) || Here is the Lab 2A (Old Naming) only if you have already started with it. slides
| Wed, April 13 || Lab 2B: Fetch Unit Control || Lab 2A Due. slides
| Wed, April 20 || || Lab 2B Beta Due
| Wed, April 27 || Lab 3A || Lab 2B Due
| Wed, May 04 || Lab 3B slides || Lab 3A Due Sun May 8
| Wed, May 11 || || Lab 3B Beta Due Sun May 15
| Wed, May 18 || Lab 4 || Lab 3B Final Due Sun May 22
| Wed, May 25 || || Lab 4 Due Sun May 28
| Wed, June 01 || Last Day of Class ||
| Fri, June 10 3p || Finals Slot |
Pizza/Head-to-Head Battle-of-the-ISAs/Awards Ceremony
Starting with Lab 3A, you will be working in a team of two people. For this Quarter, doing solo is not
an option, so working with a partner is mandatory.
I highly recommend against taking another major project class at the same time as 141L.
Pick your partner wisely, and show your partner that you are
a good candidate by doing well in the Labs 1, 2A, and 2B. It's
perfectly reasonable to ask what their grade was on the assignment
before agreeing to partner with them. You may also want to talk about
what your expectations for how aggressive a project you want to do.
If you have already taken CSE 141 in
the past, and thus are not currently enrolled, then you should start looking for a partner immediately, because it may
be harder for you to find one.
You are not allowed to join a team unless you have completed Labs 1, 2A, and 2B. It's not fair to the other
members if you do not have the basic knowledge to design hardware.
You may not switch team members. However, in extreme cases, you may elect to leave the group; you
should talk to the professor and TA in this case.
Cheating is unacceptable. Our policy in this class is to aggressively pursue
cheaters, and to ensure that they receive the maximum penalty allowable under
the University of California academic system. If you are choosing between turning
in an assignment late, or using somebody's else work, do yourself a favor and just turn it in late.
You are facing a permanent mark on your academic record and a certainty of having to explain
it to any future employer or school that you apply to.
Initial Labs For the initial labs, you will work alone. You may post code on Moodle
to demonstrate a question or an answer, but you may not post any part of your assignment that you plan to turn in.
Project For the labs, if they are group labs, you may obviously
work with your group members. With non-group members, you may brainstorm
about your design but you better make sure there are substantial differences between what
you and they are doing, and you must write your own code.
We will use automatic software for finding inappropriate similarities between student code, and substantial
similarities in student designs (including to
previous teachings of the class) could result in us requiring the student to redo the
assignment. In cases of code copying, we will refer the student to UCSD for cheating.