The ReaLC-3
The ReaLC-3 is
(or will be) a real bona fide working computer built by a bunch of very
neat, energetic people that are studying computer science at Eastern
Michigan University. The computer is based upon the design of the LC-3
computer as described in the wonderful book "Introduction to Computer
Systems: From Bits and Gates to C and Beyond" by Yale Patt and Sanjay
Patel. My main objective for wanting to do this project was as follows:
as a person trained in the software side of computers, microprogramming
and register transfer language were more of an abstract art than a real
thing. I wanted something "hands-on" (rather than just a simulator) for
demonstrating these ides to students (and myself). My second objective
was more presonnal, and here I have to admit a bit of envy for the
computer engineer: those folks get to build things! I've taught out of
the Patt/Patel book for sometime, and I think the an implied message of
the book (as well as other hardware/digital logic books) is that this
stuff is not so hard. Complex computing systems **can** be build from
simple circuits. OK. So now I needed a few interested and motivated
people. Not so hard here; I knew in a computer science department I
could round up a few folks.
Recipe for finding
motivated people:
1) Gather a
bunch of people that have seen combinatorial circuits designed on the
blackboard in class
2) Place people
from 1) in a lab with a handfull of ICs, LEDs , trainer breadboard and
a power supply
3) Show people
that putting 5 volts through an LED is a bad idea. Introduce resistors.
4) Print off a
datasheet for any IC on hand (e.g. 7408)
5) Show folks
how to find pin 1, input lines and output lines. Wire up Vcc and Vss.
6) Tell people
to wire up the 7408 to demonstrate that it is in fact an AND gate
7) After the LED
lights up, ask how many are interested in building a computer
I have noted an
inverse relation after doing the preceding: the less electronics the
person knows, the more excited they are to engage in this project.
Fortunately, I also had some very electronic saavy people
interested as well.
With interested people now in place, we made some design decisions:
- While interesting, building the LC-3 up from the transistor level
would be too burdensome: the machine would be too large and the
educational apsects probably lost in a tangle of wires . So we decided
to build from the IC level. Interested readers might want to look at www.homebrewcpu.com for an
example computer built from the transistor level up.
- We decomposed
our initial design into several large sub-components: the ALU, the file
register store, RAM , and the control unit. Note: at this point, I/O
has not been given much thought and initially we intend to use LEDs for
I/O.
- There was much discussion about whether we wanted to etch our own
circuit boards or design and custom make them. Custom made
circuit boards are not cheap (in the area of $200-$300), but my
department head, Dr. Bill McMillan , has been most supportive of this
project. So cost was not an issue.
- As of this writing (mid December 2008) , we have designed the ALU and
the file register store. We decided that the ALU was simple enought
that we could etch these boards ourselves (more on this later). The
file register store looked too complicated to etch, and we will have
this board custom made.
Links of activities to date:
Breadboarding
and Design
Etching
the ALU