{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. Transistors"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Table of Contents\n",
"* [1. Transistors](#1.-Transistors)\n",
"\t* [1.1 Low-level Physics](#1.1-Low-level-Physics)\n",
"\t\t* [1.1.1 How semiconductors work](#1.1.1-How-semiconductors-work)\n",
"\t\t* [1.1.2 Switches and Logic Gates](#1.1.2-Switches-and-Logic-Gates)\n",
"\t* [1.2 Circuit](#1.2-Circuit)\n",
"\t* [1.3 Simulation](#1.3-Simulation)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1.1 Low-level Physics"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Solid state - not mechanical, electrons do all of the work\n",
"* switch - on/off"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.1.1 How semiconductors work"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"format": "tab"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%python\n",
"\n",
"from metakernel.display import YouTubeVideo, display\n",
"\n",
"display(YouTubeVideo(\"33vbFFFn04k\", width=600))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Review:\n",
"\n",
"* silicon \"crystals\" - matrix/lattice; **insulator** - doesn't conduct electricity\n",
"* But \"doping\" turns silicon into a conductor\n",
" * phosphorus - extra electron/proton; **conductor** N-type (negative charge carrier, electrons)\n",
" * boron - one fewer electron/proton; **conductor** P-type (positive charge carrier, holes)\n",
" * Not charged! But have ability to move electrons\n",
"* interesting place: P-N, N-P boundaries\n",
"* no charge carriers in \"depletion region\" - insulator\n",
" * one direction, gets larger, other gets smaller\n",
" * diode\n",
"* semiconductor"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.1.2 Switches and Logic Gates"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Breadboard:\n",
"\n",
"
\n",
"\n",
"LED:\n",
"\n",
"* Light-emitting Diode"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"format": "tab"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%python\n",
"\n",
"from metakernel.display import YouTubeVideo, display\n",
"\n",
"display(YouTubeVideo(\"sTu3LwpF6XI\", width=600))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1.2 Circuit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"PNP 2N4403\n",
"\n",
"1. Look at number on part, 2N4403\n",
"2. Look up \"datasheet\": http://pdf.datasheetcatalog.com/datasheet/philips/2N4403.pdf\n",
"3. Get specifications: \n",
" * Collector, Emitter, and Base\n",
" * PNP"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1.3 Simulation"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"Change the voltage on the base to allow conductivity on the wire:\n",
"\n",
"http://www.falstad.com/circuit/e-pnp.html"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## MOS Transistors\n",
"\n",
"https://en.wikipedia.org/wiki/MOSFET\n",
"\n",
"* p-type: when gate is supplied with voltage, it acts like an open switch (open circle)\n",
"* n-type: when gate is supplied with voltage, it acts like a closed wire (no circle)\n",
"\n",
"CMOS: complementary metal-oxide semiconductor, made up of n-type and p-type transistors\n",
"\n",
"
\n",
"\n",
"http://solarwiki.ucdavis.edu/The_Science_of_Solar/Solar_Basics/D._P-N_Junction_Diodes/I._P-Type,_N-Type_Semiconductors\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Inverter\n",
"\n",
"
\n",
"\n",
"### NOR\n",
"\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### NAND Gate\n",
"\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Abstraction!\n",
"\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Decoder\n",
"\n",
"2-input, 4-output decoder\n",
"\n",
"#### Multiplexer (mux)\n",
"\n",
"2-input, 1-output\n",
"\n",
"#### Full-adder\n",
"\n",
"Bit adder:\n",
"\n",
"* 3-input (bit 1, bit 2, carry bit)\n",
"* Output: sum and carry\n",
"\n",
"Repeat for each bit.\n",
"\n",
"#### PLA - Programmable Logic Array\n",
"\n",
"All combinations (AND array), pick which ones give true (OR array)\n",
"\n",
"* Can compute any logical function\n",
"\n",
"### Registers\n",
"\n",
"**R-S Latch**\n",
"\n",
"R = 1, S = 1 then latch holds its memory (whatever that is).\n",
"\n",
"* R = 1, momentarily set S = 0, latch is 1\n",
"* S = 1, momentarily set R = 0, latch is 0\n",
"\n",
"**Gated D Latch**\n",
"\n",
"* D is the data in\n",
"* WE (write enable) says to store data in latches\n",
"\n",
"**Register**\n",
"\n",
"Series of Gated D Latches, one per bit.\n",
"\n",
"### Memory\n",
"\n",
"Decoders and muxes.\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Calysto LC3",
"language": "gas",
"name": "calysto_lc3"
},
"language_info": {
"codemirror_mode": {
"name": "gas",
"version": 3
},
"file_extension": ".asm",
"mimetype": "text/x-gas",
"name": "gas"
}
},
"nbformat": 4,
"nbformat_minor": 0
}