Classes/Building an 8-Bit CPU from Scratch: Difference between revisions
From Pumping Station One
No edit summary |
|||
| (4 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 170: | Line 170: | ||
| Clock, Display | | Clock, Display | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | | style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.59 | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | | style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.59 | ||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 74LS32 | | [https://www.digikey.com/product-detail/en/texas-instruments/SN74LS32N/296-1658-5-ND/277304 74LS32] | ||
| Quad OR Gate | | Quad OR Gate | ||
| Clock | | Clock | ||
| Line 413: | Line 413: | ||
* Introduction to integrated circuits | * Introduction to integrated circuits | ||
After the lesson, students will receive | After the lesson, students will receive an [[File:Electronics_Cheat_Sheet.pdf|Electronics Cheat Sheet]] for their reference throughout the rest of the course. | ||
==== After the Class ==== | ==== After the Class ==== | ||
| 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;" | |||
! Notice | |||
|- | |||
| This section is still under development. Please check back later for more information.'' | |||
|} | |||
=== 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 514: | Line 522: | ||
|} | |} | ||
=== Week 13 - | === 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 522: | Line 530: | ||
|} | |} | ||
=== Week 14 - | === Week 14 - Control Logic 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 530: | Line 538: | ||
|} | |} | ||
=== Week 15 - | === 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]] | ||