100 likes | 210 Views
Explore a CPU project created in Logisim in Spring Term 2011. Learn about CPU development, simulation, and challenges faced. The project involves MIPS instruction set, binary code, and document loading. Discover lessons learned and key insights in CPU design.
E N D
Logisim CPU Project Erty Seidel Spring Term 2011
Logisim • Logic Simulation Program • http://ozark.hendrix.edu/~burch/logisim/ • Cross-platform ( > Java 5) • Recent Update • Plugins and mods • FOSS (GPL) • [Demonstration]
CPU Project • About one month • 60-100 Hours • 5 Versions (1 rebuild) • Still in development • SVN repository • Probably should have been doing homework
Running a Program • Consult MIPS instruction set • Write out binary code • Use windows calculator to convert to hex • Write to a text document • Load into I-mem and D-mem • Run!
What Works? • [See Excel spreadsheet]
Big Problems? • No support for I-format arithmetic • Registers cannot write and read at the same time • Multiplication / Division are weird when working with highest-order bit • No branching • No exceptions • No forwarding / hazard detection
The CPU • [Demonstration]
Lessons Learned • CPUs are serious business • Simple pipelining is easy, anything more is very difficult • MIPS instructions are a bit arbitrary • The carry-in for signed subtraction must be 1
Thanks • Prof. Evans • Helped talk through problems • Jorge Seidel • Solved subtraction, mult/div issues