Homework Assignments:

Homework 1 - Due In Class Friday October 11th
Homework 2 - Due In Class Friday October 18th
Homework 3 - Due In Class Friday October 25th
Homework 4 - Due In Class Friday November 1st
Homework 5 - Due In Class Friday November 15th
Homework 6 - Due In Class Monday November 25th
Homework 7 - Due In Class Friday December 6th

Homework Grading

Homework will be graded on both effort and correctness. If you find yourself having trouble with a problem write down what you know and how far you were able to get to get partial credit. Solutions that are correct but do not adequately explain the solution may not receive full credit. Solution that are incorrect and show no work will not receive any credit. There will be approximately one problem set assigned per week minus exam weeks and, if reasonable, holiday weeks (i.e. Thanksgiving) for a total of approximately 8 problem sets.

A Note on Homework...

Homework will be due in class on the specified due dates. Problem sets will be posted at least 72 hours after the deadline to accomodate anyone who has obtained an extension. Unless you have obtained an extension or otherwise specified, late homework without obtaining an extension is subject to a late penalty. Come talk to us and we'll negotiate what it is.

If you need an extension, you are required to submit a Shakespearean sonnet explaining why you need an extension BEFORE the homework deadline. Your sonnet must strictly follow the format rules with regards to iambic pentameter and rhymne scheme. If you don't know what the format is, Google it since we will check to make sure your sonnet follows the conventions.

For each homework assignment, please write your name and student ID legibly at the top right corner of at least one side of each sheet of paper you turn in. Also please make sure you staple or paperclip your homework together properly. We're not liable for losing papers that were not properly attached together.

Please complete your homework sets in a legible manner. If we can't decrypt your handwriting we can't grade it or give you credit for it. If you are unsure if your handwriting is legible or not, please consider typesetting your homework.

You are encouraged to collaborate with your peers. We realize that Google and Stack Overflow are very good at solving problems for you; rest assured we can use the Internet too. We tried our best to come up with Google-proof problems.

2013 Midterm Solutions

Coming soon. Sooner than you probably would like...

Past Midterms

2013sp midterm with solutions

2012sp midterm with solutions

Past Finals

2012sp final (no solutions)

CSE352 Hardware Design and Implementation

Welcome to the webpage for CSE352 Hardware Design and Implementation for the Autumn 2013 quarter. This website will be updated continuously throughout the semester so please make sure to check back frequently for assignments, laboratory documents, etc.

Make sure to check the class e-mail archive frequently and subscribe to the Piazza forum (see Discussion Board section). Some links may be inactive until later in the quarter.
If you have any problems with this document or the CSE 352 web, please send an email to the instructor and/or the TAs, or see us during office hours.

Course Scheduling Information:

MWF 1030AM-1120AM
134 Thomson Hall

Lab Sections:
Th 230PM-520PM
003 CSE
T 930AM-1220PM
003 CSE


Mark Oskin
Email: oskin@cs.washington.edu
Office Hours: By Appointment
Office: CSE564


Vincent Lee
Email: vlee2@cs.washington.edu
Office Hours: Monday 130PM-230PM
Office: CSE410

Mark Wyse
Email: wysem@cs.washington.edu
Office Hours: Wednesdays 2:30-3:20
Office: CSE220

We will cover most of the concepts in Digital Design and Computer Architecture by Harris and Harris.

Digital Design and Computer Architecture

Digital Design and Computer Architecture
David Money Harris and Sarah L. Harris
2nd Edition
ISBN-10: 0123944244
Mogan-Kaufman 2012
Digital Design and Computer Architecture 2nd Edition

The textbook is available at: Amazon
Note that the above text is second edition. Using the first edition is also okay; the reading sections however may differ in a limited number of places. If you intend to use the first edition please note the reported errata to date below:

September 2013
Mon Tue Wed Thu Fri
23 Second to Last Day of Summer Break #sadface 24 Last Day of Summer Break :( 25 Course Overview
Semiconductor Physics
26 No Lab 27 MOSFETs, VLSI
Reading: DDCA Chapter 1
HW1 Released
October 2013
Mon Tue Wed Thu Fri
30 CMOS Logic and Gate Implementation
1 Lab 1 Released

2 Circuit Delays, and Glitches
Reading: DDCA 2.9, 2.5.3
4 Latches and Flip Flops
Reading: DDCA 3.1, 3.2
HW2 Released
7 Sychronous Logic Design
Reading: DDCA 3.3
8 Lab 2 Released 9 SRAM, and DRAM
Reading: DDCA 5.5
10 Lab 1 Due @ 5:20PM
11 Decoders
Reading: DDCA 2.8
HW1 Due in Lecture
HW3 Released
14 Adders
Reading: DDCA 5.2.1, 5.2.2
15 Lab 3 Released 16 Carry Lookahead Adders, Multipliers
Reading: 5.2.6
17 Lab 2 Due @ 5:20 PM
18 FPGAs
Reading: DDCA 5.6.2
HW2 Due in Lecture
HW4 Released
21 Verilog Basics
Reading: See Piazza
22 Lab 4 Released
23 Verilog (cont'd)
Field Programmable Gates
24 Lab 3 Due @ 5:20PM
25 FPGAs (cont'd) HW3 Due In Lecture
HW5 Released
28 Processor Design
Reading: DDCA 7.3
29 Lab 5 Released
30 Processor Design (cont'd)
31 Lab 4 Due @ 5:20 PM
1 Processor Design (cont'd) HW4 Due in Lecture
November 2013
Mon Tue Wed Thu Fri
4 Pipelining and Hazards
Reading: DDCA 7.4, 7.5
5 LAB CANCELLED 6 Pipelining and Hazards (cont'd)
7 LAB CANCELLED 8 MIDTERM EXAM in Class 10:30-11:20AM
HW6 Released
12 Lab 6 Released 13 CLASS CANCELLED 14 Lab 5 Due @ 11:00 PM 15 HW5 Due in Lecture
HW7 Released
18 Caches and Memory Hierarchy DDCA: 8.3
19 Lab 7 Released 20 Caches and Memory Hierarchy (cont'd)
22 Memory Systems
HW7 Released
25 Cache Coherency, Out of Order Execution
HW6 Due in Lecture
26 Lab 6 Due @ 11:59 PM
December 2013
Mon Tue Wed Thu Fri
3 4 5 Lab 7 Due @ 11:59 PM 6 HW7 Due in Lecture

Course Goals

  1. Understanding digital logic at the gate and switch level including combinational and sequential logic elements
  2. Understanding clocking methodologies and system timing
  3. Learning how to specify digital-logic designs and compile these into digital circuit implementations
  4. Understanding the design and implementation of processor architectures

Course Syllabus

  1. Introduction to modern digital-logic design
  2. Combinational logic
    • Switch logic and basic gates
    • Boolean algebra
    • Multilevel networks and transformations
    • Programmable logic devices
    • Delay and circuit performance
    • Case studies
  3. Sequential logic
    • Clocks and timing methodologies
    • Registers, register files and memories
    • Case studies
  4. Processor Design
    • Arithmetic circuits
    • Arithmetic and logic units
    • Register and bus structures
    • Instruction set implementation
    • Memory system
    • Pipelining
    • Interrupts, memory-mapped I/O and embedded systems concepts
  5. Computer-aided design tools for logic design
    • Schematic entry
    • Hardware-description-languages
    • Simulation and synthesis
  6. Practical topics
    • Asynchronous inputs and metastability
    • Serial and parallel communication
    • Memories: RAM and ROM
    • FPGA architectures


The course consists of the following components:

  1. Lectures: There will be about 30 lectures. Attendance and participation is expected at all of them.
  2. Laboratory Assignments: The lab assignments will be the focus of the course work and will be where you learn the CAD tools and put together your processor. Lab assignments are not canned. They are open-ended design sessions that will carry over from one week to the next and you will often need more time than the 3 hour lab session to complete your work. Attendance during the scheduled lab time when the TAs are available is very important. Please come to lab prepared so that you get as much done as possible with the extra help. Laboratory assignments will be closely tied to the written homework assignments and are intended to give you a taste of working with real digital hardware. The initial set of labs are to be completed individually. We will let you know later when you may start working with a partner.
  3. Assignments: Written homework with design problems will be assigned to reinforce class concepts. Many of these will mesh with the lab assignments and will require you to use the CAD design tools.
  4. Midterm exam: The midterm exam will test your knowledge on the first half of the course. The date, length and scope is being determined.
  5. Final exam: A two-hour exam during finals week as per the University’s final exam schedule.

We will try to ensure that the workload is typical for a four-credit course, namely, nine to twelve hours per week outside of the lectures. If we do not succeed, please let us know in whichever way you feel the most comfortable (person-to-person, e-mail, anonymous feedback) and explain which parts of the course are causing you to spend too much time non-productively.

We have structured the course so that spending an hour or two per day will maximize your efficiency. You will work this way in the real world—you cannot cram a three-month design assignment into the last night—so you may as well work this way now. Plus, you will understand the material better. If you leave the homework for the day before it is due you will not have time to ask questions when (not if) the software misbehaves.

Software tools frequently consume more time then they should. We have designed the assignments to get you up to speed gradually (over the period of a few weeks), but undoubtedly there will be some start-up cost (as with any new tool). Essentially, you are learning a new language, a compiler, and getting familiar with a process. Every tool imposes a certain model. Your frustration can be high until you assimilate that model and learn to use it effectively. Be sure to use the tutorials, and do not spend countless hours making no progress. Ask for help. Remember that these tools are written by engineers for engineers and will not necessarily conform to expectations you may have of consumer-oriented tools such as Word.


Assignments are generally due a week after being posted, at the beginning of class on the assigned due date. Homework will no longer be accepted after a solution has been published (usually within 3-4 days). If you cannot hand in an assignment in time, please email the TAs before the assignment deadline to obtain an extension. You are strongly encouraged to review the assignment solutions to ensure you understood all the problems.

Your assignments must be neat and legible. We will not spend time trying to decipher messy work. We urge you to use the graphical and word processing tools that are readily available to you in all the labs in the department. Please make good use of the schematic diagram editor in the tools you'll be using to make neat circuit diagrams to include in your assignments.


Homework assignments: Unless specifically stated otherwise, we encourage collaboration on homework, provided (1) You spend at least 15 minutes on each and every problem alone, before discussing it with others, and (2) You write up each and every problem in your own writing, using your own words, and understand the solution fully. Copying someone else's homework is cheating (see below), as is copying the homework from another source (prior year's notes, etc.). Homework assignments are your chance to practice the concepts and make sure you know them well.

Labs: Unless specifically stated otherwise, the labs are meant to be conducted individually. Make sure you go through each step individually to understand the techniques and challenges behind digital systems design. The final labs on the microprocessor design will be conducted in groups.

Grading (may be revised)

  • Midterm: 15%
  • Final: 35%
  • HW: 10%
  • Labs: 40%
  • Cheating

    Cheating is a very serious offense. If you are caught cheating, you can expect a failing grade and initiation of a cheating case in the University system. Basically, cheating is an insult to the instructor, to the department and major program, and most importantly, to you and your fellow students. If you feel that you are having a problem with the material, or don't have time to finish an assignment, or have any number of other reasons to cheat, then talk with the instructor. Just don't cheat.

    To avoid creating situations where copying can arise, never e-mail or post your solution files. You can post general questions about interpretation and tool use but limit your comments to these categories. If in doubt about what might constitute cheating, send the instructor email describing the situation.

    We will be using Piazza as our class forum this quarter. The Piazza forum for this quarter can be accessed here: https://piazza.com/washington/fall2013/cse352

    If you are not already enrolled in the Piazza forum please add yourself to the course.

    This forum will be used for all (important) announcements regarding homework, exams, sections, office hours, gifs, trolls, etc.

    Grade book is located on Catalyst:

    The Dropbox page is accessible here.


    Chip Map Reference
    Another Chipmap
    Lab 1 Due Thursday @ 5:20PM 10/10/13
    Lab 2 Due Thursday @ 5:20PM 10/17/13
    Lab 3 Due Thursday @ 5:20PM 10/24/13
    Lab 4 Due Thursday @ 5:20PM 10/31/13
    Lab 5 Due Thursday @ 5:20PM 11/14/13
    Lab 6 Due Tuesday @ 11:59PM 11/26/13>
    Lab 7 Due Thursday @ 11:59PM 12/5/13>

    Lab Submission Policy

    Labs will be checked off in lab sections and office hours (if held in the lab). Please be prepared when asking for a check off since there may be other students waiting for check off or help in the lab. Labs will generally be due during the last lab section the following week that they are assigned unless otherwise specified. You are free to attend either lab section for check off, however if there are not enough workstations to accomodate everyone, those who are enrolled in the section will be granted priority to the workstations.

    Late lab check offs are subject to a 20% late penalty. The final lab assignments towards the end of the class may not be turned in late. The final due date for all lab assignment checkoffs is the last scheduled lab section. Beyond that date, all incomplete checkoffs will receive a score of 0.


    We will be using the Dell PCs located in the Baxter Computer Engineering Laboratory, CSE 003. Please do not eat or drink in the laboratory, and respect both the equipment and your fellow students.

    Logic Design Tools

    We will be using Active-HDL from Aldec Inc. This tool combines schematics, the Verilog harware description language and simulation into one package. This tool will allow us to design at different levels of abstraction and interfaces to a variety of implementation tools for FPGAs and ASICs. We will be using the Aldec tools for CSE467 and CSE477, so learning it in CSE352 will be valuable for future classes.

    Active-HDL from Aldec is installed in the Baxter Laboratory. We will be giving you tutorials for learning Active-HDL. These will be sufficient for this class, but you may want to check out the online documentation as well.

    Remote Access

    Active-HDL and Quartus are available outside of the 003 laboratory only for students currently enrolled in CSE352. It utilizes a license server on campus so your machine will require reasonable Internet access when you are using the tool. However, we have a limited number of concurrent licenses for this software. It is EXTREMELY IMPORTANT that if you use Active-HDL at home you completely shut down the applications when you are not actively using it so that the license is released for others to use. If you do not, and we have difficulty getting everyone access to the tool because of this, then we will have to limit home use.

    If you understand this usage model and are willing to cooperate in making sure that the most students possible can make effective use of the tool, then you can find download instructions here.

    Tutorial 0
    Tutorial 1
    Tutorial 2
    Tutorial 3
    Tutorial 4

    Read tips and hints.
    How to work from home.

    The CSE 352 Web: © 2012, Department of CS&E, University of Washington.