I understand the traditional difference between the 7400 series and the 4000 series logic ICs, but since there are CMOS versions of the 7400 series, is there an advantage to use the 7400 CMOS version over the 4000 series chips? Please note I'm not talking about TTL vs CMOS, as that has been discussed thoroughly before. If there is no difference (read significant difference), I'm assuming then that they would be able to interface with each other? I would think the voltage levels for high and low for both CMOS versions would be near identical, but please correct me if I'm wrong.
Electronic – 7400 series CMOS vs 4000 series logic IC
digital-logicintegrated-circuitlogic-level
Related Solutions
Retro-computing projects like this are big fun, but also a lot of work. For a start, you must ask yourself a few questions:
how faithful do you want to restrict yourself to old technology? You say you want to build a CPU, that is a much more modest goal than building a computer! It is also much more interesting to design and build a CPU than a 10 x 10 x 10 x 10 array of single-bit RAM cells...
how faithfully do you want to be to the old architectures? With external RAM and ROM (cheap and plenty) you can cheat for instance by using a very wide instruction that contains the next instruction address, so you don't need hardware (or data paths) to increment the PC. (Note that some of the old architectures cheated in the same way by having their registers in RAM.)
what level of performance do you want to achieve? With 74-level TTL/CMOS chips 10 MHz might be possible, with discrete components I think 100 kHz is more realistic.
what level of effort and resources (money, time, volume) am I willing to spend?
Once you have made your (tentative) choices you should do some (reality-check) calculations:
- how many transistors (or NAND gates, or 74-style chip pins, etc) do you need?
- what is the cost, power consumption, volume, power dissipation, etc.
- how long would it take to assemble the CPU?
Let's do some very rough calculations. The 4004 had 2300 transistors. It uses all tricks in the book to limit the number of transistors, some of which are not available for a discrete BJT design (charged logic, pass-transsistor multiplexing), and the designers were clever. So let's (IMO conservatively) assume that you need 10k transistors. Assume 10mA collector current, 5V power, 1 cm^2 per transistor.
Now get your back of the envelope (or napkin, beer carton, or whatever):
Assume half the transistors are conduction, the total current is 0.5 * 10k * 0.01 = 50A. At 5 V this is 250 W. You will need a few PC-style PSU's, heavy wiring, decoupling, etc.
At $ 0.10 per transistor the cost will be $500. Doable, but maybe you'll have to consult your wife. Note that you must add all other costs: resistors, breadboards, solder, wiring, etc.
Assuming a very conservative 1 cm^2 per transistor your minimum area will be 1 meter x 1 meter. With resistors, wiring, power distribution etc. 10 square meters might be a better guess.
Finally: assembly time. How long does it take to assemble 1 transistor (and all its associated circuitry)? My (optimistic) ballpark guess is 1 minute. For the 10k transistors that means 167 hours of soldering: about 4 full working weeks. Note that you are not allowed to make a mistake!
From these figures my conclusion would be: you shouldn't want to do this. Use a higher-level building block (NAND gate, 74HC-style MSI or LSI chip, or even FPGA) instead. If you want to get a feel for really building a CPU from first principles:
build a small part (let's say a 1-bit full adder, 4 bits if you are a masochist) from transistors and resistors. Now you have show that you can make gates and do logic.
build a larger part (maybe the full 4-bit ALU) from NAND gates.
build your CPU from MSI and LSI 74HCs-style chips, RAM and (Flash) ROM.
A few arguments:
- with HC and HCT, the fan-out (at lower frequencies) is essentially unlimited, for LS it s IIRC 10 (or was it 20)?
- the HC and HCT families are newer than LS, so my bet would be that they will be around longer than LS
- HC and HCT use much less current than LS (except maybe for a few gates that switch at a very high frequency), which eases the design and layout. HC and HCT also require much less power supply decoupling
- check the logic levels, and choose the best match: HC or HCT. LS gives you only one option.
- last time I checked, there was more choice in HC/HCT than in LS
Let me add two (weak) arguments in favor of LS:
- inputs can be left open (they will be high)
- more robust against ESD
Best Answer
The difference depends on your system definition. On the one hand, 74HC operates over a limited voltage range, with 6 volts specified as the maximum supply voltage. The CD4000 series, on the other hand, is rated to a maximum of 18 volts, so it may well be easier to use the CD4000 series in a battery-operated system.
If the limited voltage range of the 74HC line is not a problem, the line is much faster. For instance, comparing the CD4011/74HC00 (Quad 2-input NAND gates) gives propagation delays at 5 volts of 90 nsec (typ) vs 7 nsec. For the CD4063 vs the 74HC85 (4-bit magnitude comparator) the numbers are 625 nsec (typ) vs. 63 nsec. The CD40192 4-bit up/down counter has a typical count frequency of 4 MHz, while the 74HC192 goes at 36 MHz.
It's worth keeping in mind that both lines run faster at higher Vdd, so a CD4000 at 15 volts will do better than the numbers here, but the order of magnitude difference is not erased.
And yes, the 74HC series is designed to roughly maintain the speeds of the 7400/74LS00 lines, and often allows drop-in replacement for much lower power.