Help
Exercises
- Exercises - many, many exercises to go with the lectures
- Powers of Two - a browser game to practice them
Interactive tools
- The Number Circle - numbers aren’t on a line, silly
- Load and Store Simulator - how loads and stores really work
Reference
- MIPS style guide - how to write asm that doesn’t look terrible.
- MIPS instructions - common instructions and what they do.
- MIPS cookbook - micro-tutorials on how to do common things in MIPS.
- MIPS ⬄ C correspondences - you write asm by pretending to be a compiler. These are the rules.
- Customizing Circuit Appearances - how to make your components look better (and be easier to use) in Logisim.
Examples
Right-click and save to download the asm and circuit files.
Safari users: Safari sometimes changes file extensions. Do not trust it.
Numerical examples | |
---|---|
IntRanges.java | Shows and explains the ranges of the integer types in Java. |
Bitwise.java | Shows several bitwise operators and oddities. |
Bitset.java | Bitsets are a way of treating the bits of an integer like a small array of booleans. |
Bitfields.java | Using bitwise operations to encode and decode colors. |
FloatBits.java | Shows some interesting examples of float bit patterns. |
Multiplication.java | Implementations of the exponential and linear time integer multiplication algorithms. |
Combinational Circuits | |
splitter_bitfields.circ | Using splitters to take apart/put together bitfields. |
not_gate.circ | How a NOT gate is constructed out of transistors. |
full_adder.circ | A 1-bit full adder made of gates. |
fast_mult_4x4.circ | A fast (combinational) 4x4 multiplier. |
Sequential Circuits | |
RS_latch.circ | An RS latch made of NOR gates. |
Circuit.js RS Latch | Circuit.js can simulate it at a lower level, so you can see the current and voltages. |
D_latch.circ | A D latch made from an RS latch. |
D_flipflop.circ | A D flip-flop made from 2 D latches. |
register_4bit.circ | A 4-bit register made from D flip-flops. |
simple_counter.circ | A register paired with an adder can count up each clock tick. |
fan_controller.circ | A simple FSM for controlling a ceiling fan. |
slow_mult_4x4.circ | An FSM that multiplies numbers using the slow (sequential) method. |
div_4x4.circ | An FSM that divides two 4-bit numbers. |
pc_fsm.circ | The "MIPS" PC FSM I made in class, but cleaned up. |
decoding.circ | Some examples of decoding an instruction. |