= Breadboard Computer Project =
{{{#!html
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
{{{#!html
Week 1 Presentation
 Summary
- Familiarized with breadboard computer components: ICs, logic gates, registers, breadboards, wires, and connectors.
 
- Learned about fundamental computer components: Fetch-Execute Cycle, CPU, RAM, ALU, and BUS.
 
- Explored the Fetch-Execute Cycle: Fetch, Decode, Execute.
 
- Studied the CPU: functions, clock, registers, and ALU.
 
- Understood RAM: its function, volatility, and direct access capabilities.
 
- Examined the ALU: performs arithmetic and logical operations.
 
- Investigated the BUS: facilitates communication between CPU, memory, and peripherals.
 
- Planned tasks for next week: model and test the ALU using TinkerCad, begin detailed documentation, construct the clock monitor, and build the registers.
 
}}}
== Week 2
{{{#!html
Week 2 Presentation
 Summary
- Started and Finished building different components of the clock module
 
- Started building the A register
 
- Added more pictures and videos of testing to the documentation
 
- Tested and troubleshooted problems related to the Clock Module
- First LED wasn't blinking
 
- Connectivity issues
 
- Push button wasn't functioning
- Fixed issue due to the different pins on the push button
 
 
 
}}}
== Week 3
{{{#!html
Week 3 Presentation
 Summary
- Continued and restarted building of the Clock Module
- Used Oscilloscope to reassure connection
 
- Fixed the push button to be powered by 555 chip
 
- Technical issue with Blinking LED
 
- Fixed response delay from Switch
 
 
- Finished building the A-Register
- Used 2 74LS173 chips and 1 7LS245 chip
 
 
- Started building the Random Access Memory (RAM)
- Used Inverting Chips, Signal Inversion, and Flip-Flop Chips
 
}}}
== Week 4
{{{#!html
Week 4 Presentation
 Summary
- Continued and restarted building of the Clock Module
 - Completed the construction of the B-Register
- Used as temporary data storage, one of the operands for the ALU, and holds data during transfers
 
- Contains 2 4-bit registers, each storing 4-bits of data
 
- Includes bidirectional bus transceivers to facilitate data flow between the B-Register and BUS
 
 - Continued building the Random Access Memory (RAM)
- Uses flip-flop chips to store 4 1-bit data units
 
- A multiplexer (Quad 2-to-1) is employed to channel multiple data lines into a single line
 
- The BUS transceiver chip is an 8-bit tri-state buffer that allows data to flow bidirectionally between two buses
 
 
- Continued documentation, focusing on schematics
 
}}}
== Week 5
{{{#!html
Week 5 Presentation
 Summary
- Rebuilt the A and B Registers.
 
- Completed the construction of the Program Counter.
- Counts in binary to track which instruction the computer is executing
 
- Utilizes JK flip-flops, which are storage elements that count binary numbers
 
- Connected to the Clock Module to test counter inputs
 
 
- Nearly finished building the RAM.
 
- Successfully completed the Clock Module.
- Resolved connection issues in all three uses of the 555 Chip: Switch, Button, and Flicker
 
- Incorporated three logic gates to connect to the clock signal:
- NOT Gate: Inverts input signal
 
- NAND Gate: Controls clock signal
 
- AND Gate: Combines signals
 
 
- Conducted tests with the RAM and Program Counter.
 
 
- Tested RAM through the Clock Module.
 
- Continued work on the Instruction Manual.
 
 
}}}
== Week 6
Week 6 Presentation
{{{#!html
}}}