
This custom microprocessor was designed using simple logic gates such as “AND,” “OR,” and “NOT,” to achieve the functionality desired of the device. At the core of the microprocessor is an Algorithmic Logic Unit or ALU; this subsection performs seven simple operations that can be mixed in ways that allow for complex electronic mathematics like division and multiplication. Four-bit numbers are presented to the ALU over a data bus from ROM memory locations. Instructions that control the ALU functions are also stored in ROM, together the data and instructions form the microprocessors programming. A device suitably called an Instruction Decoder reads instructions from ROM and configures the ALU to perform a specific action either with data the follows or without. Eight basic instructions were created for this microprocessor: Load, Store, Zero, Stop (Halt), Add, Subtract, Not (Invert), and OR. As it stands now this microprocessor is more than suitable to perform simple mathematical and logical calculations on 4-bit numbers, looping and decision making could be devised through additional instructions. While merely simulated, this device could be constructed from silicon and its operation would be identical. In fact, this project moved on to form the core of my FPGA education. The functionality of this simulation has been duplicated in a Xilinx Spartan 3E FPGA.