Syllabus

Bulletin description

COMP541 Digital Logic and Computer Design (4).  Prerequisite, COMP 411.  This course is an introduction to digital logic as well as the structure and electronic design of modern processors.  Students will implement a working computer during the laboratory sessions.

General Course Info

Term:  Fall 2014
Department:  COMP
Course Number:  541
Section Number:  001
Time:  MWF 1:00-2:15
Location:  FB007
Website:   http://www.cs.unc.edu/~montek

Instructor Info

Name:  Prof. Montek Singh
Office:  FB234 (Brooks)
Email:  montek@cs.unc.edu
Phone:  919-590-6132
Web:  http://cs.unc.edu/~montek
Office hours:  TBD

Teaching Assistant

Michael Rooney
SN332 (Sitterson)
mrooney@cs.unc.edu
Office hours:  TBD

Textbook and Resources

Digital Design and Computer Architecture 2nd ed. (July 2012)
ISBN 9780123944245
Morgan Kaufmann

Online resources will be provided for learning the Verilog hardware description language.

Each student must have full use of a personal laptop computer, which must be brought to the lab sessions.  The specialized software needed for this class (ISE Webpack from Xilinx) runs best on Windows and, with some initial effort, on Linux.  If your computer is running Mac OS, you will need Bootcamp or Parallels to run the Windows version of the software, which you must acquire on your own.  Compatibility of the software with Mac OS is not guaranteed.  Each student will need to download and install the ISE software, which can be downloaded for free, but needs up to 10 GB of disk space.

A hardware development kit will be loaned to each student; it is the student’s responsibility to return it at the end of the semester.  If there are more students than kits, some of the kits may have to be shared by two students each.

The course website will be the primary means for distributing information including lecture notes, homework and lab assignments.  Sakai will be used for reporting scores.  We will use Piazza for questions and announcements.  You will need to sign up for Piazza and monitor it regularly.

Course Description

In this course you will learn to design digital circuits and systems using state-of-the-art computer-aided design (CAD) tools.  You will learn how to represent a digital system using a hardware description language (Verilog HDL), how to simulate the design, and how to implement a prototype on a reconfigurable (i.e., rewritable/reprogrammable) chip (FPGA).  By the end of this course, each student will have designed a full basic microprocessor and written an assembly program to demonstrate its functionality.

Target Audience

This course is intended to be an advanced course in digital logic and computer design.  It is designed as a follow-up to COMP411 (Computer Organization).  While COMP411 introduces the conceptual design of a basic microprocessor (along with assembly and C programming), COMP541 takes the next step:  full gate-level implementation of a MIPS processor, including memories and input-output.  As such, this course is intended for those undergraduate students who might want to pursue a career or further studies in the fields of computer architecture, chip design, or related computer engineering disciplines, or those who might otherwise be interested in learning in a hands-on manner how a digital system is implemented.

Prerequisite

COMP 411.  This course directly builds on what students learn in COMP 411, which is a hard pre-requisite.

Goals and Key Learning Objectives

At the end of this course, a successful student should be able to:  (i) convert a specification of a small- to medium-scale digital system into an implementation; (ii) hierarchically decompose a complex specification into simpler components; (iii) understand concurrency and develop concurrent system specifications and implementations; (iv) test a given design for correctness by developing a test bench and performing simulation; (v) develop proficiency in using state-of-the-art software tools for hardware design.

Course Requirements

There will be a lab assignment approximately every week, forming a progression that culminates in the design of a full, though simple, computer.  Since each lab assignment builds on the prior ones, each student must successfully complete the assignments in order.  Once the design of the computer is complete, each student must demonstrate its functionality by writing a software application for it (in MIPS assembly language), and show a working demonstration.  The demonstrations will be in front of the entire class, and the department’s other faculty and students may be invited to attend as well.  These demonstrations may be recorded for use in future classes or for publicity purposes.  In addition, there will be homework assignments covering the theoretical aspects of the course, and quizzes and exams.

Key Dates

The dates of the quizzes and exams will be announced shortly.

Grading Criteria

The final grade will be based on the following:

Labs:  30%
Final Project:  20%
Homework:  15%
Quizzes:  10%
Midterm Exam:  10%
Final Exam:  15%

Bonus Points:  While the above percentages add up to 100%, the instructor reserves the right to add up to 5 bonus points to a student’s final score (out of 100) to reward the following:  work for extra credit, stellar work on lab assignments/project, class participation, and participation on the Piazza discussion board (especially, endorsed answers).

Course Policies

Late submissions of homework and lab assignments will be accepted with a late penalty.

Homework Late Policy:  Homework assignments must be submitted in class on the day they are due.  Work that is submitted after the end of that class and up to one class late will be assessed a 25% late penalty.  After then, work submitted by the beginning of the second class after it was due will be assessed a 50% late penalty.  Work submitted later than that will not be graded.

Lab Late Policy:  A buffer of 7 “free late days” will be given to each student at the start of the semester.  For each calendar day, or part thereof, that a lab assignment is late, one of these free days will be spent.  Once the free days are exhausted, for each calendar day, or part thereof, that a lab assignment is late, one point will be deducted from the total lab score (out of 100).

Exams and quizzes are open-book, unless otherwise stated.

Honor Code

You are allowed to (actually, encouraged to) discuss basic concepts as well as assignment tasks with other students.  However, you are required to write the solutions and code assignments individually:  i.e., what you hand in must be your own work.  The instructor reserves the right to allow teaming on final projects; in that case, what you hand in must be that team’s work.  Also, you cannot use solutions from previous offerings of the course.  Not following these rules is a violation of the honor code.

 Disclaimer

The professor reserves to right to make changes to the syllabus, including due dates.  These changes will be announced as early as possible.

Fall 2014 Course Website