A minimal Arithmetic and Logic Unit (ALU) built using 74-series TTL ICs and controlled via an Arduino interface. This project demonstrates how core processor logic can be replicated with basic hardware components and interfaced with software over UART.
This project replicates the arithmetic core of a processor — the ALU — using physical hardware logic gates. The ALU is implemented with TTL chips, while the Control Unit and Registers are emulated using an Arduino, which interfaces with a C#-based desktop GUI via UART.
- 🟢 Minimal Instruction Set Architecture (ISA):
NOTANDORADD
- 🔌 Built using TTL Logic Chips: 7400, 7408, 7432, 7486
- 💡 LED Output: ALU output is visualized using LEDs
- 🧭 Arduino as Control Unit: Decodes instructions and manages data flow
- 🖥️ Desktop GUI: C# Windows Forms application to control the ALU and display results
| Component | Description |
|---|---|
| 7400 | Quad 2-input NAND gate |
| 7408 | Quad 2-input AND gate |
| 7432 | Quad 2-input OR gate |
| 7486 | Quad 2-input XOR gate |
| Arduino (Uno) | Acts as control unit + UART bridge |
| LEDs & Resistors | For output display and input indication |
| Breadboards & Wires | For circuit prototyping |
- UART Serial Protocol is used between the desktop GUI and the Arduino
- Control Signals are decoded by the Arduino and applied to the ALU circuit
- Result Data is captured from ALU output pins and sent back for GUI display
- Replace Arduino-based control with Hardwired Control Logic using MUX ICs
- Transition from hand-drawn circuit to schematic/PCB layout tools
- Expand the instruction set to include SUB, XOR, and Shift operations
- Add support for multiple bit-width operations (e.g., 4-bit ALU)
- Arduino IDE: To upload the Arduino code that interfaces with the ALU
- C#/.NET Framework 4.7: To run the GUI built with Windows Forms
- TTL ICs: Required for building the ALU hardware on a breadboard
- UART Interface: For communication between the Arduino and the GUI
- Connect the ALU circuit to Arduino as per the circuit diagram.
- Upload the Arduino sketch (
control_unit.ino) to the Arduino. - Launch the C# GUI application built in Windows Forms.
- Select the operation, input values, and send the instruction from the GUI.
- View the ALU's output on the LEDs and the GUI interface.
Minimalistic-ALU/
│
├── Arduino/ # Arduino code to control the ALU hardware
│ └── Minimalistic-ALU/
│ └── ALU_revision_2 # Arduino code for ALU hardware control
│
├── ISA/ # Instruction set and encodings
│ └── minimal_isa.pdf # PDF with the minimal instruction set
|
|── All other files are for the GUI made in C# and WindowsForms
This project is open-source under the MIT License.
- TTL datasheets and logic gate theory from standard digital electronics references
- Arduino community for serial communication tools
- Inspiration from basic computer architecture tutorials and textbooks


