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>&dagger;</sup>
| colspan="2" | [http://amzn.to/2s1DxWp Full-Sized (830-Point) Breadboards]<sup>&dagger;</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
| [http://www.mouser.com/ProductDetail/Yageo/CFR-25JR-52-470R/ 470Ω Resistor]
| [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
| [http://www.mouser.com/ProductDetail/Yageo/CFR-25JR-52-1K/ 1kΩ Resistor]
| [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
| [http://www.mouser.com/ProductDetail/Yageo/CFR-25JR-52-10K/ 10kΩ Resistor]
| [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
| [http://www.mouser.com/ProductDetail/Ohmite/OK1045E-R52/ 100kΩ Resistor]
| [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
| [http://www.mouser.com/ProductDetail/Ohmite/OK1055E-R52/ 1MΩ Resistor]
| [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