CS/EE 3710 - Computer Design
Fall 2002
General Information
- Instructor: Erik Brunvand, elb@cs.utah.edu, MEB 4160
- Classes: T,Th 3:40pm - 5:00pm, EMCB 104
- Erik's Office Hours: After class or by appointment
- TA: Himanshu Singh, hsingh@eng.utah.edu
- The TA's office hours are T,Th 1:00-3:30 (in the CADE lab for
now, later he'll move to the DSL).
- Textbook: None. I'll hand out notes about the project, and about
VHDL.
- Class Mailing List: cs3710@cs. Please use the majordomo system to
sign up for the mailing list. Send a message to majordomo@cs.utah.edu
with "subscribe cs3710" (without the quotes) in the body of the
message. Email sent to this list will go to everyone in the
class.
- Prof. and TA Mailing List: teach-cs3710@cs Email sent to this
list will go to both the professor and the TA.
Lectures
This is a lab class. Although there are lectures scheduled on Tuesday
and Thursday from 3:40pm - 5:00pm, the main point of the class is the
project. The lectures will present material related to the project,
and there will be TA hours held in the digital systems lab (MEB 3133)
both so that you can get help from the TA, and also to check off
project milestones.
Prerequisites
CS3700 (digital design) and CS3810 (computer architecture) or
equivalant classes
College Guidelines
College guidelines for adding, dropping, and other administrative
issues can be found
here.
Web Page
Information about the course, copies of the handouts, and other
information will be available on the class web page at
http://www.cs.utah.edu/classes/cs3710 (which you probably already
know, since you're looking at it!)
Course Objectives
This is a laboratory class in which groups of students (groups can be
of size 3 or 4) design, build, and test a simple computer. The idea
is to use the digital design skills from 3700, and the computer
architecture knowledge from 3810, and put it all together in a
semester-long project. There is no text for this class, and there
will be no midterm exams, although there will be a final exam. There
will be a few intro labs, but the main class work is a laboratory
project that will be divided up into parts that are due over the
course of the quarter to help you budget your time. In addition to
demonstrating your working hardware, a final written report will be
required. This report will document your design, and will be due on
the last day of class, Thursday Dec 5th.
The implementation technology for this version of CS3710 will be
different than in CS/EE 3700. Instead of the lab kit boards, we'll be
mostly using boards from Xess that feature a Xilinx SpartanII FPGA,
16Mbytes of SDRAM, and some other goodies that we'll go over in class.
All projects will be designed and simulated using the Viewlogic
tools. You'll also have assess to the Xilinx ISE design tools which
you can use if you choose, but the instructor and TA won't be able to
help you as much with these tools.
We will also be able to use VHDL for control state machine in parts of
your design. We will use the fpga_compilerII VHDL synthesis tool from
Synopsys in conjunction with the Fusion simulator for this.
Grading
Approximate weights are as follows:
- Lab Checkpoints: 30%
- Final Written Report: 50\%
- Final Exam: 20\%
Lab Partners
You must choose a lab partner or partners as soon as possible and let
Erik and the TA know who the groups are. Groups should be 4-5
persons.
Design Tools
I'd like all groups to use Powerview for designing their projects. We
will have to use Xilinx ISE for the final stage of mapping to
the FPGA, but I think it will cause far fewer problems if we all use
the same tool for drawing schematics and simulating both circuits and
VHDL.
Use the class bsheet, or copy it and modify it for your own team. Make
the text in the schematics big enough to read, and take the time to
make your schematics look nice (straighten wire jogs, line up
components, don't put too much on one sheet, etc etc). I'm sure you'll
remember this from CS/EE 3700!
You should also remember that espresso and misII are available that
you used in CS/EE3700.
The version of Fusion that we'll be using is a newer version than
we used in CS/EE 3700. This is specifically to support the Xilinx
SpartanII chip on the Xess board. The interface looks different
(mostly it's in a different color), but it's really just the same
interface you used last semester. The only thing that's changed a bit
is the VHDL library setup procedure. The tutorial will go over that.
Handouts and Assignments
- Syllabus: See this web page! This is the syllabus...
- Assignment 1: Review of Digital Design,
Due Friday, August 30th.
in PDF or in
HTML.
- Instruction set requirements handouts
in
PDF. This is actually a handout from
CSEE427 at the University of Michigan. It's pretty close to the CR16
that I've used in the past, but has a much simpler instruction
encoding. So, I thought we'd try the simpler version this year and
remove a little of the instruction-decoding pain. You can see the
complete, original CR16 instruction set in the CR16
Programmer's Reference Manual (further down on this web page).
- Lab 1: Introduction to the Xess Board (Individual Lab!)
Due Monday, September 16.
in
PDF and in HTML.
- Tutorial 1: Covers the entire path starting from VHDL code, then
simulating that code, then synthesizing that code to a circuit,
bringing the synthesized code back into Powerview, simulating the
circuit, mapping the circuit to the Xilinx bitstream, downloading the
bitstream to the Xess board, and testing the circuit using the PC
parallel port. Available in
Word and in
PDF and in
html. The VHDL files used in the
tutorial are
fulla.vhd and
full4.vhd.
- Lab 2 ALU design: Due Monday, September
30th. in PDF and in HTML.
- Forming Groups! This needs to be done quickly - at least by Friday September 6th!. The form is here in PDF and in HTML.
- Lab 3, Datapath and memory infrastructure: Due
Monday, October 14th. in PDF and in HTML.
- Lab 4, Control and decoding: Due Monday
October 28th. in PDF and in HTML.
- Lab 5, Final assembly, and extensions and I/O planning: Due Monday
November 11 , in PDF and in HTML.
- Lab 6, Final report and demo: in PDF and in HTML. The demo will be on Thursday,
December 5th in the DSL during class time (3:40pm-5:00pm), the final
report will be due on Monday December 9th.
- Evaluations: There are two evaluations that I'd like you to
fill out by Monday Dec 9th.
Tool Information
- Information about espresso in
Postscript, or
PDF, or
HTML format.
- Information about MisII in
Postscript, or
PDF, or
HTML format.
- Information about a VGA interface in
Postscript, or
PDF
- Information about a ps/2 keyboard
interface in
Postscript, or
PDF
- Information about programming the parallel port on the host PC is
available in lots of places on the web. I did a quick search and came
up with the following sites which seem to have decent information
about the PC parallel port. Check them out:
- Here is the lab handout for the CS/EE 3700 UART project in Postscript, and in HTML.
- Here are two example VHDL files ready that you can simulate in
Powerview and synthesize in Synopsys for practice. They are:
- Here's a two-page VHDL syntax
reference sheet in PDF format. It has pretty much all the VHDL
syntax you'd ever want, which means more than you'll use in this
class, but it can come in handy when you need to know the syntax of a
specific language construct.
- You can find some simple VHDL tutorials here from Green Mountain
Computing Systems, and another one from a class at
Mississippi State Some details on the specific of the language
definition can be found from a page from Auburn
University and and
another page from Penn.. Here's a page of VHDL links
that includes links to other tutorials.
I can't vouch for the accuracy or helpfulness of any
of these links, but you might take a look if you're curious. There are
a gazillion VHDL tutorials and information pages out there on the
web. I don't certify these as the best, just the ones I found easily
in a few minutes...
Lecture Slides
Helpful Links
Xess Board and Xilinx FPGA Info
I/O datasheets and information
- 16550D UART chip This is
the recommended I/O chip to consider if you don't want to go too far
off the deep end.
- DP5380 Asynchronous SCSI
Interface Using this chip is a little more complicated than the
UART, and the SCSI peripherals that you might connect to it could be a
little more complicated than a terminal. Here's come extra info on
this chip:
- Real time clock for
microprocessors
- Computer controlled audio circuits:
- DTMP generator for binary
data. Digitally controlled telephone tone generator
- Liquid crystal display
driver. add a small LCD panel to your processor.
National Semiconductor CR16 Processor Info
- PDF version of CR16A Programmer's Reference
Manual.
- The cr16 directory contains lots of goodies The bin directory
has programs like the crasm assembler, the doc directory has
postscript files for all sorts of tools, and the example directory has
example code. This directory is on /services/classes/cs3710 on the CS
filesystem, and /home/cs/handin/cs3710 in the CADE lab. (Note that as
of Thursday, 8/24 these directories have no data yet, but it's
coming...)
- Home
page at National for a bunch of other CR16 documents. Note that we are
more interested in the CR16A than in the CR16B, although they are
very similar.