Lab 10 - GilesVolmir/Skylar-Scott--308L-Junior-Lab GitHub Wiki

I. Making a NOT gate with 2N7000 transistor. Following Dr. Koch's example in lecture, I made a NOT gate by connecting +5 to 270ohm resistor to drain, then source to ground, and gate to input logic, and between resistor and drain as output voltage. While making this I noticed I could effect the input voltage (which was as of yet unconnected but had a wire in the air) simple by moving a static charged poptart bag closer or further from the wire. I could only do it a few times before it stopped working. presumably it put enough of a voltage on the transistor to switch the gate. When the input is off, there is no current drawn through the transistor. When the input is on the current drawn through the transistor is 17.55mA. The voltage between GND and +5 is 4.95V. The voltage between source and drain is 4.95V when the input is off, and 0.059V when the output is on. This makes sense because voltage between ground and output needs to be low when the input is on, and high when the input is low. Putting two NOT gates in series: behavior is as expected, TRUE in gives TRUE out, FALSE in gives FALSE out. I also added two LEDs to ground, one at each output. It was cool.

II. Making a NAND the value table: | 0 1 |_______ 0 | 1 1 1 | 1 0

When I measure current running through resistor (and therefor the transistors) I find it is zero unless both inputs are on, in which case it is 17.38mA. Since the current is high when the voltage is low, then this is the correct behavior for a NAND gate. Checked with and LED from input (between resistor and first drain) to ground and it works like a NAND! (yay) The way this is set up, it will only draw a lot of current when the output is off. (so, when both inputs are on)

At the instruction's suggestion, I looked up CMOS. It is indeed an elegant and seems to be power saving design.

I used labview to create all kinds of logic gates out of NAND gates. I also learned that on the tables, NOTing an input or output is just like swapping all values, and can be used to 'invert' or 'flip over' value tables.