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 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