Classes/Building an 8-Bit CPU from Scratch: Difference between revisions
From Pumping Station One
m →Topics |
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 = $ | | 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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 | === 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]] | ||