= Breadboard Computer Project =
  **WINLAB Summer Internship 2024**
  **Advisors:** Dr. Richard Howard, Dr. Richard Martin
  **Group Members:** Dilan Gandhi, Rithvik Madiraju
== Project Objective
{{{#!html
 Overview
The goal of our project is to build an 8-bit computer from scratch on a breadboard using different electrical components like Integrated Circuits, LEDs, Wires, etc.
 Specific Goals:
- Construction: Build a fully functional 8-bit computer using discrete components.
 
- Documentation: Create comprehensive documentation covering each step, allowing others to replicate the process. Our aim is to document the step-by-step process, including schematics, notes, and procedures so that others can replicate the creation of their own Breadboard Computer.
 
}}}
== Week 1
[https://docs.google.com/presentation/d/1c9irrGH6oN6t1X8-bA7KdQUW0zcgMQI_xBgJ5M8MH9s/edit?usp=sharing Week 1 Presentation]
{{{#!html
 Summary
- Read and familiarize ourselves with the components of the breadboard computer.
 
- Learned about the components of computers
- Fetch-Execute Cycle
 
- CPU
 
- Random Access Memory (RAM)
 
- Arithmetic Logic Unit (ALU)
 
- BUS
 
 
 What We Worked On
 Component Familiarization
We began by reading and familiarizing ourselves with the various components required for the breadboard computer, such as:
- Integrated Circuits (ICs)
 
- Logic gates (AND, OR, NOT, etc.)
 
- Registers
 
- Breadboards
 
- Wires and Connectors
 
 Computer Components Learning
We delved into understanding the fundamental components of computers and their functions. This included studying:
 Fetch-Execute Cycle
Understanding the core cycle through which a CPU processes instructions:
- Fetch:  CPU loads instructions into the registers from RAM.
 
- Decode:  Instruction and its address are sent to the instruction register to be interpreted.
 
- Execute:  The CPU executes the instruction and stores the result in the accumulator.
 
 Central Processing Unit (CPU)
- Function: Executes instructions from programs by performing basic arithmetic, logic, control, and input/output operations.
 
- Parts: 
- Clock: Generates timing signals to coordinate CPU activities. With each tick, the CPU performs steps of the fetch-execute cycle.
 
- Registers: Temporary storage for data and instructions within the CPU.
 
- ALU: Executes arithmetic and logical operations.
 
 
 Random Access Memory (RAM)
- Function: Stores data and machine code currently being used. It allows for quick read and write operations.
 
- Characteristics: 
- Volatile Memory: Data is lost when power is turned off.
 
- Direct Access: Any memory location can be accessed directly and quickly.
 
 
 Arithmetic Logic Unit (ALU) & BUS
 ALU
- Functions:
- Performs arithmetic operations: Addition, Subtraction, Multiplication, Division.
 
- Executes logical operations: NOT, OR, AND.
 
 
- Importance:  Central to performing computations required by programs.
 
 BUS
- Purpose:  Facilitates communication between the CPU, memory, and other peripherals.
 
- Types: 
- Data Bus:  Carries data between components.
 
- Address Bus:  Carries memory addresses that the CPU wants to access.
 
- Control Bus:  Carries control signals from the CPU to other components.
 
 
 Goals For Next Week
 Tasks
- Model and Test ALU:
- Utilize TinkerCad to model and simulate the ALU component of the computer.
 
- Ensure correct functioning through testing various arithmetic and logical operations.
 
 
- Documentation:
- Begin detailed documentation of each part of the computer.
 
- Include schematics, notes, and images for clarity.
 
 
- Clock Monitor:
- Start and complete the construction of the clock monitor, which will manage the timing signals within the CPU.
 
 
- Registers
- Initiate the building of the registers, essential for temporary data storage within the CPU.
 
 
}}}