Classes/Building an 8-Bit CPU from Scratch: Difference between revisions

From Pumping Station One
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 5: Line 5:
| date = May 27, 2017
| date = May 27, 2017
| est_time = 16 Weeks
| est_time = 16 Weeks
| est_cost = $40
| est_cost = $75
| in_development = Yes
| in_development = Yes
| is_project = Yes
| is_project = Yes
Line 425: Line 425:
* Different types of resistors
* Different types of resistors


=== Week 2 - Implementing Logic with Transistors ===
=== Week 01 - Implementing Logic with Transistors ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 433: Line 433:
|}
|}


=== Week 3 - The CPU Clock Module ===
=== Week 02 - The CPU Clock Module ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 441: Line 441:
|}
|}


=== Week 4 - The 8-Bit Register Modules ===
=== Week 03 - The 8-Bit Register Modules ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 449: Line 449:
|}
|}


=== Week 5 - Designing an ALU ===
=== Week 04 - Designing an ALU ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 457: Line 457:
|}
|}


=== Week 6 - The ALU Module ===
=== Week 05 - The ALU Module ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 465: Line 465:
|}
|}


=== Week 7 - The RAM Module ===
=== Week 06 - The RAM Module ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 473: Line 473:
|}
|}


=== Week 8 - Building a Binary Counter ===
=== Week 07 - Building a Binary Counter ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 481: Line 481:
|}
|}


=== Week 9 - The Program Counter Module ===
=== Week 08 - The Program Counter Module ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 489: Line 489:
|}
|}


=== Week 10 - Designing for 7-Segment Displays ===
=== Week 09 - Designing for 7-Segment Displays ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 497: Line 497:
|}
|}


=== Week 11 - Introduction to EEPROM ===
=== Week 10 - Introduction to EEPROM ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 506: Line 506:




=== Week 12 - The Display Module ===
=== Week 11 - The Display Module ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 514: Line 514:
|}
|}


=== Week 13 - Connecting the Modules with a Bus ===
=== Week 12 - Connecting the Modules with a Bus ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 522: Line 522:
|}
|}


=== Week 14 - Designing Control Signals ===
=== Week 13 - Designing Control Signals ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 530: Line 530:
|}
|}


=== Week 15 - Control Logic Module ===
=== Week 14 - Control Logic Module ===
 
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
! Notice
|-
| This section is still under development.  Please check back later for more information.''
|}
 
=== Week 15 - Programming and Deployment ===


{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
{| style="width: 350px; margin: 25px auto; padding: 15px; border: 2px solid #cc0; border-radius: 20px; background: #ffc;"
Line 547: Line 555:
* Extend the processing capability to 16- or even 32-bit processing
* Extend the processing capability to 16- or even 32-bit processing
* Add additional input and output capabilities to the system (e.g., serial controllers, USB, disks, multi-line LCDs, etc...)
* Add additional input and output capabilities to the system (e.g., serial controllers, USB, disks, multi-line LCDs, etc...)
* Building the modules in an FPGA


[[Category:Classes]]
[[Category:Classes]]