Assignment 6
Our MIPS CPU Design in Logisim
So far in class, we’ve designed a partial MIPS CPU.

If you haven’t already, add on to your datapath so that it looks like this one.
Assignment Option 1
Update your control unit to support add, addi, sub, and, or, xor, andi, ori, xori, slt, and slti.
Write a MIPS program in MARS with these instructions and look at the bit-pattern in the code column of the Text Segment after it has been assembled. Copy this by hand into your CPU’s instruction memory.


Simulate it, and then prove that the program ran correctly by showing correct values in each of the relevant registers. You should be able to see the value of all registers by right-clicking (or ctrl-clicking) on the register file then select View RegisterFile after you have run the simulation.
Submit the following
- A screenshot of the Text Segment on the Execute tab from MARS which shows the MIPS program that you used to test your CPU. This MIPS program doesn’t have to do anything special, but it should show off all of the instructions that you want to get credit for.
- A screenshot of your control unit truth table that you used to generate your Control unit
- A screenshot of the circuit Logisim generated for your control unit
- A screenshot of your CPU design in Logisim
- A screenshot or your RegisterFile circuit (right/ctrl-click after simulating as described above) which shows the correct values being displayed on the registers.
- A short explanation describing what you did and why the registers all show the correct values

Do not zip up your files when you submit them
Option 1 Bonus Points
You can earn up to 4 points of extra credit by implementing lw, sw, beq, and bne in your CPU (1 point each). I’ll also entertain points for other kinds of instructions like shifting or jumping instructions. If you do this, make sure to describe what you did for extra credit, and show that you verified it works in a similar way to how you showed the other instructions work.
Option 1 Grading
This is an 8-point assignment. See the rubric from the syllabus.
Assignment Option 2
Design your own instruction set and then build the circuit in Logisim to simulate it.
Some interesting ideas you could look into include
- Stack-based machines which eliminates the need for most registers - you push operands onto the stack and then have a simple instruction like
addwhich means “add the top two values on the stack and then put the result back on the stack” - One-instruction set computer which is a computer that has only one instruction but is still a universal computer, so you can accomplish anything that you can with a bigger instruction set
In this case, you should submit a document which describes your instruction set and gives sample programs along with their expected behavior. You should also submit images of any of the circuits you created and demonstrate that it works.
Option 2 Grading
Any working instruction set and CPU design that you can get working (even if it is a small instruction set) will earn the full 8 points, with partial credit for progress towards a working solutions. Projects that are particularly creative or involve extra work are eligible for up to 4 additional points of extra credit.
What to turn in
Turn in the documentation described in the Assignment section.
Where to turn it in
Submit your document of images to the Assignment 6 hand-in form on Blackboard.