Homemade in Vermont
In November 2005 five students in an intro Computing course at Bennington College, Vermont were inspired to design and build their own microprocessor and crazy enough to think they could do it. Though atypical at other computer science programs, these doughty students were encouraged to give it a try. They worked long evenings and weekends and with the guidance of their instructor completed the project just before winter break.
The result: nine square feet of prototype boards, sixty yards of wire, seventy-nine LEDs and fifty-three integrated circuits. Although not as "micro" as modern samples, it's Turing complete and given the chance could compile your mom.
How It Works
This microprocessor, named Logic Machine 3000 uses 16-bit instruction words stored in its two RAM chips. It runs through the program with the program counter and branch unit.
The instruction decoder takes the instructions and coordinates data movement on the data bus. In case of a data fire our friend the fireman is ready with extinguishers.
8-bit values are stored in the three registers (R0-R2). Math is handled by the Arithmetic Logic Unit (ALU), which is adept at adding and subtracting. The status register watches the ALU output and manages the state of its zero flag.
We only recently began to document the work on the microprocessor, so the schematics and such are still being worked on. We plan to draw up full schematics and put them on the wiki. In fact we intend to create a full "how-to" style document for the project, such that another person interested in building a microprocessor from scratch in order to understand how they work could do so. Check back over the next several weeks, as more will be posted soon.
Please feel free to leave comments or questions on the talk page.
- Multiplication Program – by Eben
- Numbers 0-9 Squared Program – by Reid
- Square Root Program – by Joe
- Fibonacci Numbers - by Ang and Reid and Joe
- Hi-Low Program - by Reid
- Multiplication Program 2 - by Reid
- The Registers
- The Arithmetic Logic Unit
- The Program Counter and Branch Unit
- The Memory
- The Status Register
- The Instruction Decoder
- The Clock
- The Full Block Diagram
Take a look at its Technical Specifications.
- Reid Ginoza is a 1st-year at Bennington College studying dance, taking a drama class, and learning percussion, much to the displeasure of his family. He grew up watching the sunsets over Pearl Harbor, Hawaii. email
- Eben Packwood is a 4th-year at Bennington College where he studied Literature and Mathematics. In the future he hopes to work at as a reference librarian or an archivist. email
- Aurora Thornhill is a 3rd-year at Bennington College currently studying Computing & Digital Art. In addition to computers Aurora also takes interest in music and science. email
- Angela Traficante is a 1st-year at Bennington College currently studying Lighting Design, Literature and Computing. She grew up in the Boston area and, aside from building complex electronics projects, enjoys reading, writing and gardening. email
- Joe Holt is the Computing teacher at Bennington College. Before this, he was a Senior Computer Scientist at Apple Computer, where he co-wrote iMovie and worked on OS X. email
Instruction Decoder, version 1 (with Reid Ginoza)
Instruction Decoder, current version (with Joe Holt)
Instruction Decoder, version 1 (with Mary Casserly)
Instruction Set Architecture
Instruction Decoder, current version (with Mary Casserly)
Arithmetic Logic Unit
Thanks Federico Faggin!