4-bit discrete logic CPU (Credit: Dave Feinberg)
The purpose of CHUMP (Cheap Homemade Understandable Minimal Processor) is both to demonstrate how a computer works on the lowest level, and compute simple numbers using standard mathematical operations. CHUMP is a 4-bit CPU built from off-the-shelf TTL logic chips. The original design was modified to include expanded features (such as an 8-bit program counter, increased clock speed, I/O registers, and PWM capability).
The standard CHUMP consists of several 4-bit busses and a 10-bit control bus that connect the various components together. The program counter starts at 0 and increments on each rising edge of the clock. The outputs of the program counter are fed directly into the program ROM which contains an OpCode and operand for each value of the program counter. The OpCode corresponds to a series of control bits and tells the processor which instruction to execute.
CHUMP has 3 locations that it can store values: the RAM and accumulator, which can hold data indefinitely, and the address buffer, which can hold data for a single clock cycle. The accumulator is meant to temporarily store values and can hold exactly one 4-bit value which is pulled directly from the output of the ALU. On any instruction that manipulates numbers, the accumulator is enabled, which means that it takes the value from the ALU on the rising edge of the clock cycle.