CS 208: Computer Organization and Architecture
Implementing the PDP-8, Phase 1: the Datapath
Over the next couple weeks, you will diagram in detail a datapath and the associated
control to implement most of the PDP-8 instruction set. This assignment will come in three
phases: design a datapath, implement the control for a selection of instructions, and finally,
implement the rest of the control and put it all together. Phases 1 and 2 will be
done in groups, and Phase 3 will be part of the next takehome exam.
For Phase 1, your job is to draw a datapath (analogous to the datapath from your
textbook with which we have been working in class) that will be able to support
all the op-code 0, 1, 2, 3, 4, 5, and 7 instructions from the PDP-8 instruction set.
Some details:
- You will work with a group of between 2 and 4 people. We will create the
groups during class on Wednesday, Oct 26.
- You will hand in your datapath drawing via e-mail to
jondich@carleton.edu by 8:00AM Friday,
October 28. The drawing should be submitted as either a .png or a .jpg file.
- Your diagram should show all the input lines and output lines, including
clock lines (unlike in the textbook, where the clock lines are not shown to reduce
clutter), for each element of the datapath.
- Each input or output line should be either unlabelled (in which case it is
assumed to be a 1-bit line) or labelled with a slash on the line and an integer
value next to the slash showing the number of bits the line carries.
- Use your judgement to provide understandable labels and abbreviations for the
various elements of the datapath. PC for the program counter, Data In for an input
line on a memory element, etc.
- Keep in mind that the PDP-8 does not have separate Instruction Memory and Data Memory
as in the datapath we have been studying lately.
- Unless you indicate otherwise, I will assume that each of your memory elements
(PC, RAM, AC, L, and any other memory you find useful) is composed of falling-edge-triggered
D flip-flops. If you want a memory element to have different behavior than that,
you need to include that information somewhere on your diagram (with an asterisk and a footnote,
for example).
- For now, Control can be in the form of blobs as in the datapath we have been
studying. We'll begin to fill in the details of Control in Phase 2.
- It's really important to submit your diagram before class on Friday, since
we will build a single datapath for the whole class to use in Phases 2 and 3 during class.
Have fun, and let me know if you have questions.