I read an old textbook on digital electronics and built myself eight nor gates
and eight nand gates from discrete CMOS pairs of transistors. I can
screw the gates together to form typical textbook examples like 2bit-demux,
latches and the like. This works for most simple circuits, but does not scale
well due to signal degredation. I can't explain that phenomenon, but my suspicion
is that the p-channel fet and the n-channel fet are not quite appropriate for each other.
USING 2N7000 and VP2106
I used ye olde 2N7000 (n-channel) and a VP2106 (p-channel) at first. That
somewhat works, but I ended up with logical zeroes as high as 0.8 V and
ones as low as 4V for a rail voltage of ca. 5V at some spots in some
circuits. I tested scaling with what I considered an extreme test, cascading
nands and nors in such a manner that each is the inverter between the
previous and next inverter. That gave me consistent ones and zeroes with
0V and 5V, respectively, with differences in the range of a couple of
hundredth of a volt. The other test was to drive multiple inputs with
a single output, what worked equally well.
Those are not good tests, as it has turned out.
Such constructions always work very well, even
for voltages as low as 3V, and even if the same gates do not work
so well in other circuits.
To wit, things become less digital in an unclocked D-latch and
a purely combinational humble Xnor from four nors. What's more, those
circuits fail to process all inputs correctly at 5V rail voltage
and need 6V in most cases. This I do understand -- at 5V, the
VP2106 is not quite in the range of saturation, as the datasheet
reveals. I did not look at the datasheets at first, because there
were circuits on the internet that totally worked in aforementioned
cascades of gates. Not before the problems occurred did I read
the datasheets.
USING 2N7000 and ZVP3306
So I made a batch of four nands and four nands using pairs of ye olde
2N7000 and another small-signal p-channel fet, the ZVP3306.
The p-channel ZVP3306 reaches saturation at
slightly lower voltages, and I want circuits to work with
4.5V (three AA batteries) or even 3V (two AA batteries).
The new gates worked with 4.5V rail voltage, even the D-latch,
but signal degredation got worse for the Xnor circuit.
I guess I made things worse with the ZVP3306, because it is
more sensitive at low voltages than the VP2016, meaning it
amplifies small disturbances more than the
VP2106. In extreme cases, several 2N7000 got hot enough to really
hurt -- presumably, because the complementary p-channel transistor(s)
don't turn off correctly and a short between the +V and 0
occurs. (This is not supposed to happen with CMOS.)
I did all sorts of voltage measurements, tabulating all
drain-source-voltages and drain-gate-voltages on each transistor
in the circuit.
I found that the voltage measurements
give strange results in and around the spots where the
problems occur (duh). Often the measurement interferes with the
outcome. Those are not contact problems or symptoms of floating inputs,
because swapping gates does not swap the troublesome spots
with them. And I tested all connections with the beeper
on my multimeter.
Each abberation is intrinsic to the schematic and particular interactions
of transistors. The problems are consistent.
(that is, until the one or other 2N7000 gets really hot and dies.)
WHAT CAN I DO?
I'm still working on my understanding of transistors, so it is still
spotty. I guess parasitic capacitance in the FETs is to blame, or
something practical like that. (I wanted to ground my understanding
of ethereal logic in something real and hands-on and electronic,
so those technical problems are probably exactly what I asked for,
although I did not know that when I started. CMOS was a concession
to my ignorance -- I thought it would be the easiest thing to
do, even for a rookie.)
What can I do? Would it help to use CD4007 chips?
Those are (mostly) discrete transistors on a chip, so my hope
is that they are exact complements and scale well for larger
circuits, perhaps longish shift-registers or even a digital
clock.
I would prefer discrete TO92-transistors for reasons of glamour
and nostalgia, but I learned from the internet that
discrete 4-pin small-signal FETs are not made anymore, so I
will need CD4007s for future transmission gates anyway.
(Not needed for simple nors or nands, of course.)
Thanks for your help, or your attention, at this point.
I understand that, before chips, CMOS was not used at all
in digital electronics, or any FET, for that matter.
I'm more than willing to back
off from CMOS, but I also want to build transmission gates,
and that seems to be easiest with FETs. My feeling is
that CD4007s are the ticket, with many textbook-examples
available, but then again, textbook-examples apparently
don't work as advertised for even modestly complex
circuits. I could not find practicioners on the internet
who use discrete CMOS fets for building such circuits.
This suggests that it is a bad idea to begin with. Suggestions,
opinions, anyone?
and eight nand gates from discrete CMOS pairs of transistors. I can
screw the gates together to form typical textbook examples like 2bit-demux,
latches and the like. This works for most simple circuits, but does not scale
well due to signal degredation. I can't explain that phenomenon, but my suspicion
is that the p-channel fet and the n-channel fet are not quite appropriate for each other.
USING 2N7000 and VP2106
I used ye olde 2N7000 (n-channel) and a VP2106 (p-channel) at first. That
somewhat works, but I ended up with logical zeroes as high as 0.8 V and
ones as low as 4V for a rail voltage of ca. 5V at some spots in some
circuits. I tested scaling with what I considered an extreme test, cascading
nands and nors in such a manner that each is the inverter between the
previous and next inverter. That gave me consistent ones and zeroes with
0V and 5V, respectively, with differences in the range of a couple of
hundredth of a volt. The other test was to drive multiple inputs with
a single output, what worked equally well.
Those are not good tests, as it has turned out.
Such constructions always work very well, even
for voltages as low as 3V, and even if the same gates do not work
so well in other circuits.
To wit, things become less digital in an unclocked D-latch and
a purely combinational humble Xnor from four nors. What's more, those
circuits fail to process all inputs correctly at 5V rail voltage
and need 6V in most cases. This I do understand -- at 5V, the
VP2106 is not quite in the range of saturation, as the datasheet
reveals. I did not look at the datasheets at first, because there
were circuits on the internet that totally worked in aforementioned
cascades of gates. Not before the problems occurred did I read
the datasheets.
USING 2N7000 and ZVP3306
So I made a batch of four nands and four nands using pairs of ye olde
2N7000 and another small-signal p-channel fet, the ZVP3306.
The p-channel ZVP3306 reaches saturation at
slightly lower voltages, and I want circuits to work with
4.5V (three AA batteries) or even 3V (two AA batteries).
The new gates worked with 4.5V rail voltage, even the D-latch,
but signal degredation got worse for the Xnor circuit.
I guess I made things worse with the ZVP3306, because it is
more sensitive at low voltages than the VP2016, meaning it
amplifies small disturbances more than the
VP2106. In extreme cases, several 2N7000 got hot enough to really
hurt -- presumably, because the complementary p-channel transistor(s)
don't turn off correctly and a short between the +V and 0
occurs. (This is not supposed to happen with CMOS.)
I did all sorts of voltage measurements, tabulating all
drain-source-voltages and drain-gate-voltages on each transistor
in the circuit.
I found that the voltage measurements
give strange results in and around the spots where the
problems occur (duh). Often the measurement interferes with the
outcome. Those are not contact problems or symptoms of floating inputs,
because swapping gates does not swap the troublesome spots
with them. And I tested all connections with the beeper
on my multimeter.
Each abberation is intrinsic to the schematic and particular interactions
of transistors. The problems are consistent.
(that is, until the one or other 2N7000 gets really hot and dies.)
WHAT CAN I DO?
I'm still working on my understanding of transistors, so it is still
spotty. I guess parasitic capacitance in the FETs is to blame, or
something practical like that. (I wanted to ground my understanding
of ethereal logic in something real and hands-on and electronic,
so those technical problems are probably exactly what I asked for,
although I did not know that when I started. CMOS was a concession
to my ignorance -- I thought it would be the easiest thing to
do, even for a rookie.)
What can I do? Would it help to use CD4007 chips?
Those are (mostly) discrete transistors on a chip, so my hope
is that they are exact complements and scale well for larger
circuits, perhaps longish shift-registers or even a digital
clock.
I would prefer discrete TO92-transistors for reasons of glamour
and nostalgia, but I learned from the internet that
discrete 4-pin small-signal FETs are not made anymore, so I
will need CD4007s for future transmission gates anyway.
(Not needed for simple nors or nands, of course.)
Thanks for your help, or your attention, at this point.
I understand that, before chips, CMOS was not used at all
in digital electronics, or any FET, for that matter.
I'm more than willing to back
off from CMOS, but I also want to build transmission gates,
and that seems to be easiest with FETs. My feeling is
that CD4007s are the ticket, with many textbook-examples
available, but then again, textbook-examples apparently
don't work as advertised for even modestly complex
circuits. I could not find practicioners on the internet
who use discrete CMOS fets for building such circuits.
This suggests that it is a bad idea to begin with. Suggestions,
opinions, anyone?