
Project
Spring 2001
The overall goal of this project is to design a computer
system, including registers, Alu, control, and memory. The project
will be done by teams in three parts.
The first part is to design the memory, the second part the
ALU and registers, the third part the control circuitry.
The timetable for the project is as follows:
- Friday, 23 March. Memory done, instruction set designed.
- Monday, 16 April. ALU and register set done.
- Monday, 30 April. Control done.
- Friday, 4 May. Entire project finished, printouts
of the components turned in, a description of the design and
instruction set turned in.
Note the following points about this schedule:
- Exam 2 will take place the 3rd of April.
- Spring break starts the 11th of March.
- 4 May is the last day of classes.
- There will be a final exam on Monday, 7 May at 7:30AM.
You will turn in the following items as part of your project
on the 4th of May:
- The LogicWorks files (including Libraries) necessary to
run your design.
- Printouts of the major components of your system.
- A short paper (3-5 pages) that details:
- What each person did on the project and the approximate
time spent by each person on each part of the project.
- The instruction set. You must give the instructions,
their binary equivalents, and what the instructions do.
Also give a chart that shows what control signals are activated
by the different instructions.
- Any known defects in your system/architecture.
- A description of the architecture. This includes a
schematic (written) of the data path and all hardware components
on the datapath. You cannot just turn in printouts of your
computer; you must show a stylized version of the datapath
similar to those given in the book.
- A list and description of examples that you have
tested your system with.
Memory
- You must implement a 2 1/2 D design of a 128X8 memory similar
to the design given in diagram B.26 of Patterson and Hennesy or
figure 3.7 of Maccabe ( Computer Systems, Arthur Maccabe,
Irwin, 1993. This is the old 210 book). You may not use a mux that
is larger than 8X1 or a decoder that is larger than 4X16. Your goal
(that you'll be graded on) is to minimize the number of "pins" (ie,
address and data lines) and to minimize the number of decoder gates.
- You must use column latches (CAS) and row latches (RAS).
- Your memory must accept 8 bit addressing and must store
1 byte (8 bit) words. Note that your instruction size and your
CPU word may be different sizes than your memory word, but you
will have to translate if they are different.
- You may not use any of the built-in memory that is available
in LogicWorks. You must create all of your memory elements from
flip-flops and gates, multiplexors, and decoders. If you need
additional components, check with me before you use them.
- You must turn in the LogicWorks file containing your memory
and a 2 page write up detailing the design of your circuit and
what each member of the team did on the project.
- You may work in teams of 1 or 2 for this project. You may
not have any larger teams.
Architecture
- All of the instructions given in chapter 4. These
include addition, subtraction, slt, branch equal, branch
not equal, jump, bitwise AND and OR, load word, and store word.
- Your ALU must check for overflow. You will need, of course,
a Zero line and a slt line.
- Your CPU must use 8-bit (i.e., byte) or larger words.
This means that 8 bits will be used to store instructions and that
integers will be 8-bits. Note: You will not be able
to have a three register instruction and encode all instructions
with 8-bits. You will either have to use an accumulator (a
register that always recieves the value from the ALU) or go
to a 16-bit architecture.
- Note that you do not have to represent floating-point
numbers.
- You may choose the size of memory and the number of
general purpose registers, but must have at least 4 registers
and 32 bytes of memory.
- If you do a single cycle implementation, you must
be able to read and write a register in the same cycle.
- You may use a separate data and instruction memory.
- Note that you will not need an ALU control unit (like
shown in the book) unless your instructions have a function
field.
- You must have some way of initializing memory so that
you can put a program into memory.
- You can use absolute labels, i.e., you do not have to shift
the label field in a beg or a bne instruction
before calculating the new address.
- There is also no offset in the jump instruction.
- You may use any of the devices given in the LogicWorks
libarary except you may not use RAM devices
or any arithmetic devices. If you have a question, ask me
before you use the device.
- You must design your CPU so that each instruction takes a
single cycle.
- You may design and incorporate as many computational devices
as you like.
- Your design does not have to be pipelined.
- You are encouraged to make extensive use of the device symbol
facilities. Your final system should resemble figure 5.22 on
page 364 of Patterson and Hennessy.
Instruction Set.
Your instruction set must include the following instructions:
- Arithmetic: add, sub
- Logical: and, or, ori
- Data Transfer: lw, sw
- Conditional Branch: beg, bne, slt
- Unconditional Branch: j
Example Programs.
Here are two programs that should run on your computer.
y = 0;
x = a + b
while (x > 0)
{
y = y + 1;
x = x - 1;
}
x = a + b;
y = c - d;
if (x < y)
z = y | x;
else
z = x & y;
Grading for Spring '01.
- An "A" project will have everything implemented and all
of the example programs running. The write up will have to
be of exceptional quality.
- A "B" project will have the three parts of the project
implemented and running, but not integrated. Thus you will
have three files, a file containing the memory, a file containing
the ALU with the registers, and a file for the control circuitry,
including all necessary hardware (except the ALU and register set).
This will include the sign extension unit, the PC, any extra
registers, any extra adders, etc. The documentation will have
to be complete.
- A "C" project will have the first two projects running completely.
The third project will be finished on paper, but will not be
completely implemented.
Last Modified: 5 February 2001
THIS PAGE MAINTAINED BY:
John Barr, Ithaca College