Help

Exercises

Interactive tools

Reference

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.