Classes/Building an 8-Bit CPU from Scratch: Difference between revisions
From Pumping Station One
| Line 56: | Line 56: | ||
{| class="wikitable sortable" style="width: 75%; min-width: 350px; margin: 25px auto;" | {| class="wikitable sortable" style="width: 75%; min-width: 350px; margin: 25px auto;" | ||
! Category | ! Category | ||
! Cost<br/><small>(Individual)</small> | |||
! Cost<br/><small>(Class Rate)</small> | |||
! Quantity | ! Quantity | ||
! Component | ! Component | ||
| Line 62: | Line 64: | ||
|- | |- | ||
! rowspan="2" | Base | ! rowspan="2" | Base | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | -- | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | -- | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| colspan="2" | [http://amzn.to/2qqAGFi 22AWG Solid Wire Kit], Various Colors (see below) | | colspan="2" | [http://amzn.to/2qqAGFi 22AWG Solid Wire Kit], Various Colors (see below) | ||
| All | | All | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $38.76 | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $38.76 | |||
| style="text-align: center;" | 14 | | style="text-align: center;" | 14 | ||
| colspan="2" | [http://amzn.to/2s1DxWp Full-Sized (830-Point) Breadboards]<sup>†</sup> | | colspan="2" | [http://amzn.to/2s1DxWp Full-Sized (830-Point) Breadboards]<sup>†</sup> | ||
| Line 71: | Line 77: | ||
|- | |- | ||
! rowspan="6" | Resistors | ! rowspan="6" | Resistors | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.80 | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.18 | |||
| style="text-align: center;" | 8 | | style="text-align: center;" | 8 | ||
| [ | | [https://www.digikey.com/product-detail/en/stackpole-electronics-inc/CF14JT470R/CF14JT470RCT-ND/1830342 470Ω Resistor] | ||
| ¼W, ±5% Tolerance | | ¼W, ±5% Tolerance | ||
| Clock, RAM, Display | | Clock, RAM, Display | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.90 | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.20 | |||
| style="text-align: center;" | 9 | | style="text-align: center;" | 9 | ||
| [ | | [https://www.digikey.com/product-detail/en/stackpole-electronics-inc/CF14JT1K00/CF14JT1K00CT-ND/1830350 1kΩ Resistor] | ||
| ¼W, ±5% Tolerance | | ¼W, ±5% Tolerance | ||
| Bus | | Bus | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.80 | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.18 | |||
| style="text-align: center;" | 8 | | style="text-align: center;" | 8 | ||
| [ | | [https://www.digikey.com/product-detail/en/stackpole-electronics-inc/CF14JT10K0/CF14JT10K0CT-ND/1830374 10kΩ Resistor] | ||
| ¼W, ±5% Tolerance | | ¼W, ±5% Tolerance | ||
| Clock, Display | | Clock, Display | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.20 | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.08 | |||
| style="text-align: center;" | 2 | | style="text-align: center;" | 2 | ||
| [ | | [https://www.digikey.com/product-detail/en/stackpole-electronics-inc/CF14JT100K/CF14JT100KCT-ND/1830399 100kΩ Resistor] | ||
| ¼W, ±5% Tolerance | | ¼W, ±5% Tolerance | ||
| Bus | | Bus | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.10 | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $0.04 | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| [ | | [https://www.digikey.com/product-detail/en/stackpole-electronics-inc/CF14JT1M00/CF14JT1M00CT-ND/1830423 1MΩ Resistor] | ||
| ¼W, ±5% Tolerance | | ¼W, ±5% Tolerance | ||
| Clock | | Clock | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $2.48 | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $2.18 | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 1MΩ Potentiometer | | [https://www.digikey.com/product-detail/en/bourns-inc/3386F-1-105TLF/3386F-1-105TLF-ND/2536915 1MΩ Potentiometer] | ||
| ½W | | ½W | ||
| Clock | | Clock | ||
|- | |- | ||
! rowspan="3" | Capacitors | ! rowspan="3" | Capacitors | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 6 | | style="text-align: center;" | 6 | ||
| 0.01µF Capacitor | | [0.01µF Capacitor] | ||
| Ceramic, ±10% 50V | | Ceramic, ±10% 50V | ||
| Clock, RAM, Display | | Clock, RAM, Display | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 2 | | style="text-align: center;" | 2 | ||
| 0.1µF Capacitor | | 0.1µF Capacitor | ||
| Line 112: | Line 134: | ||
| Clock | | Clock | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 1µF Capacitor | | 1µF Capacitor | ||
| Line 118: | Line 142: | ||
|- | |- | ||
! rowspan="17" | Integrated Circuits | ! rowspan="17" | Integrated Circuits | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 4 | | style="text-align: center;" | 4 | ||
| 555 | | 555 | ||
| Line 123: | Line 149: | ||
| 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;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 74LS00 | | 74LS00 | ||
| Line 128: | Line 156: | ||
| RAM | | RAM | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 5 | | style="text-align: center;" | 5 | ||
| 74LS04 | | 74LS04 | ||
| Line 133: | Line 163: | ||
| Clock, RAM, Controller | | Clock, RAM, Controller | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 2 | | style="text-align: center;" | 2 | ||
| 74LS08 | | 74LS08 | ||
| Line 138: | 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;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 74LS32 | | 74LS32 | ||
| Line 143: | Line 177: | ||
| Clock | | Clock | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 74LS76 | | 74LS76 | ||
| Line 148: | Line 184: | ||
| Display | | Display | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 74LS86 | | 74LS86 | ||
| Line 153: | Line 191: | ||
| ALU | | ALU | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 74LS138 | | 74LS138 | ||
| Line 158: | Line 198: | ||
| Controller | | Controller | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 74LS139 | | 74LS139 | ||
| Line 163: | Line 205: | ||
| Display | | Display | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 4 | | style="text-align: center;" | 4 | ||
| 74LS157 | | 74LS157 | ||
| Line 168: | Line 212: | ||
| RAM | | RAM | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 4 | | style="text-align: center;" | 4 | ||
| 74LS161 | | 74LS161 | ||
| Line 173: | Line 219: | ||
| Program Counter, Controller | | Program Counter, Controller | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 7 | | style="text-align: center;" | 7 | ||
| 74LS173 | | 74LS173 | ||
| Line 178: | Line 226: | ||
| Register, RAM | | Register, RAM | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 2 | | style="text-align: center;" | 2 | ||
| 74LS189 | | 74LS189 | ||
| Line 183: | Line 233: | ||
| RAM | | RAM | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 6 | | style="text-align: center;" | 6 | ||
| 74LS245 | | 74LS245 | ||
| Line 188: | Line 240: | ||
| Register, ALU, Ram, Program Counter | | Register, ALU, Ram, Program Counter | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| 74LS273 | | 74LS273 | ||
| Line 193: | Line 247: | ||
| Display | | Display | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 2 | | style="text-align: center;" | 2 | ||
| 74LS283 | | 74LS283 | ||
| Line 198: | Line 254: | ||
| ALU | | ALU | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 4 | | style="text-align: center;" | 4 | ||
| colspan="2" | 28C16 EEPROM | | colspan="2" | 28C16 EEPROM | ||
| Line 203: | Line 261: | ||
|- | |- | ||
! rowspan="4" | Switches | ! rowspan="4" | Switches | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 2 | | style="text-align: center;" | 2 | ||
| Double-Throw Toggle Switch | | Double-Throw Toggle Switch | ||
| Line 208: | Line 268: | ||
| Clock, RAM | | Clock, RAM | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 2 | | style="text-align: center;" | 2 | ||
| Momentary Tactile Switch | | Momentary Tactile Switch | ||
| Line 213: | Line 275: | ||
| Clock, RAM | | Clock, RAM | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| colspan="2" | 8-Position DIP Switch | | colspan="2" | 8-Position DIP Switch | ||
| RAM | | RAM | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
| colspan="2" | 4-Position DIP Switch | | colspan="2" | 4-Position DIP Switch | ||
| Line 222: | Line 288: | ||
|- | |- | ||
! rowspan="5" | LEDs | ! rowspan="5" | LEDs | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 41 | | style="text-align: center;" | 41 | ||
| Red LED | | Red LED | ||
| Line 227: | Line 295: | ||
| Bus, Register, ALU, RAM | | Bus, Register, ALU, RAM | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 20 | | style="text-align: center;" | 20 | ||
| Yellow LED | | Yellow LED | ||
| Line 232: | Line 302: | ||
| Register, RAM, Controller | | Register, RAM, Controller | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 11 | | style="text-align: center;" | 11 | ||
| Green LED | | Green LED | ||
| Line 237: | Line 309: | ||
| Ram, Program Counter, Controller | | Ram, Program Counter, Controller | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 22 | | style="text-align: center;" | 22 | ||
| Blue LED | | Blue LED | ||
| Line 242: | Line 316: | ||
| Clock, Register, Controller | | Clock, Register, Controller | ||
|- | |- | ||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: right; font-family: Courier New, Courier, fixed-width;" | $ | |||
| style="text-align: center;" | 4 | | style="text-align: center;" | 4 | ||
| 7-Segment Display | | 7-Segment Display | ||