My CPU uses an ALU, RAM, ROM, a PC, and a CU to run basic programs and do basic math and logic operations very easily. You can save 7 numbers at a time in RAM to use in logic and math operations. You can write programs with a maximum of 15 lines each. The PC counts each line with a 4-bit adder that can count up to 15, which then goes to a decoder to decode the binary and run that line. The ROM then runs that line and does the operations it needs to and outputs opcode to the CU. It brings immediates(constant numbers) to the ALU B input. The ROM also has a operand 1 and operand 2 address that takes the number from the specified register in RAM and brings it to the A and B inputs on the ALU. The RAM uses 7 registers to store 4-bit numbers to use in the ALU. The ALU is a modified adder with some features that allow it to use logic functions and subtraction. The ALU output then goes to the RAM and saves it.
To use my machine, reset the PC by flicking the lever that pulls the pistons up on the PC and turning the clock input on for a second, then turning it off. Then, you turn the pistons back on. Next, create a program by putting torches on the lines in the places where they need to go to do the desired action, such as placing torches as 0001 for subtraction on the opcode input, or putting 0100 on operand 1 to make the A input on the ALU register 4. Then input your numbers on the side of the 4 blue lines and press the corresponding button for saving that number to the desired register on the light blue save lines on the RAM. Lastly, to run your program, turn the clock input of the PC to on and watch the CPU run your program.