The final code should be fully debugged, polished, tuned, commented, and include at least a short README explaining what it is, and what its results mean. You'll be graded on a combination of ambition, correctness, completeness, and comments/style. Style and clean code count!
HW1, due by the end of Tuesday, January 26, is to design a simple instruction set, and build and test the corresponding CPU circuit in logisim. Your CPU should:
Have more than 1 register.
Have registers capable of storing numbers up to at least 15.
Be able to load constants into registers.
Be able to do arithmetic between registers.
Have a conditional jump instruction.
Have a stored program that uses a loop to add up the numbers from 0 to 5, inclusive.
SAVE early and often. Turn in your working "CPU.circ" file, and a screenshot named "CPU.png" of the CPU having successfully finished the loop and computed 15, on Blackboard (log in first).
HW0 has 2 questions. Turn in your resulting files by the end of the day on Tuesday, January 19 on Blackboard (log in first).
Use Logisim to draw a circuit diagram for the boolean expression OR(AND(A,B),AND(NOT(A),XOR(C,D))). Save your .circ file as "1.circ", and give me a screenshot named "1.png". List all the values of A, B, C, and D that will make this expression evaluate to true, in a plain text file named "1.txt". (Clarification: feel free to use logic gates; you can use bare transistors if you think that's easier!)
Use NetRun to write some assembly code (for any machine) that uses a loop to add up the numbers from 0 to 5, inclusive, and returns this sum. Run the code, and verify the answer is 15. Copy the code out as a plain text file named "2.asm".