Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Electricity has no 'Logic Levels' to it.

Yes, but transceivers do.

> This is why TTL vs CMOS vs RTL vs Diode Logic vs whatever is a thing.

Yes, and they all have /different/ logic levels.

> the specs of electricity / logic chosen

Yes, what one might call the "logic levels."



The most important difference between TTL and CMOS is the currents involved.

I don't exactly remember the specification of TTL, but let's say it was around 1mA or at least in that magnitude.

If you had a Billion transistors (such as I dunno... A 1-Gbit chip), then that's a billion * 1mA or about a Mega-Amp of current.

It's physically impossible to run TTL current specs to build a computer today. That's why we switched to CMOS which has ~femtoamps of current instead.

--------------

When every chip draws 1mA or so just to figure out on vs off, it's very difficult to build an efficient system.

---------

5V isn't sufficient to define on vs off in TTL logic. Only if that 5V signal also had enough current to turn on a BJT do you actually get an 'On' value.

And once we start thinking currents AND Voltages, life gets a bit more complex.


Both TTL and CMOS logic define voltage levels, not currents. That is enough, btw, because if you can't drive the current you need at 5V, you will not be at 5V....

You can build TTL compatible logic with NPN/PNP -- that's where the name originally comes from. But it's hard to build CMOS compatible logic with NPN/PNP, tpyically the high output isn't high enough for CMOS spec. It is not hard to build TTL compatible inputs with CMOS technology, though. For example the 74HCT series, which has TTL compatible inputs, but is CMOS technology, compared to the 74HC series. CMOS outputs are always compatible with TTL inputs (assuming same supply voltage).


Npn and pnp transistors only turn on with a reasonably sized current. It's not like MOSFETs that can turn on even with microamps.

Any NPN or PNP logic (such as TTL) in lately have current requirements.


> The most important difference between TTL and CMOS is the currents involved.

I've never heard that before. It's always been volts, it's defined in volts, every chart you find is going to specify them in volts.

> specification of TTL, but let's say it was around 1mA

Different families of TTL have different "drive strengths" and different "pin current capacity." Drive parameters are not universal to a family.

> It's physically impossible to run TTL current specs to build a computer today. That's why we switched to CMOS which has ~femtoamps of current instead.

CMOS uses complementary switching. It's in the name. Once the pair is stable nothing other than leakage current flows. You can create complimentary arrangements of transistors from any given family.

If you want to then express the output of CMOS over a large line with a lot of capacitance, you'll probably just use a buffer driver sized for that line, so the actual current in your CMOS arrangement is entirely irrelevant.

> Only if that 5V signal also had enough current to turn on a BJT do you actually get an 'On' value.

Yea, then if you strap a Schottky diode into that BJT, you get something which needs far less current yet still works on the same voltage levels. So we tend to think of the voltage as the logic level and the drive current as an incidental property of the construction technique.

> And once we start thinking currents AND Voltages, life gets a bit more complex.

Yea, this is why the logic levels are an acceptable /range/ of voltages, so that we don't actually have to address this complexity. The whole point is to create a digital circuit anyways.

In any case, tri-stating a bus does not imply you have a third logic level, whether or not you want to consider that a potential or a current. They imply that you are neither pulling up or down your line. So if you read that line the value you get will be /indeterminate/, if you read it successively, the value may change apparently at random.

This has been a very long and mostly unnecessary detour of misunderstandings around the original point.


> In any case, tri-stating a bus does not imply you have a third logic level, whether or not you want to consider that a potential or a current.

The Z state of tristate logic is literally implemented as zero current (or practically zero: nanoamps or something).

To understand why zero current is important in TriState logic, you'll need to think more carefully about the interaction of voltages AND currents in circuits.

I've tried to give you some hints already. But seriously, think about what currents mean, and why a BJT requires at least some current to operate, and the implications in how circuits work.

You can go look at any 7400 TTL chip and you will ABSOLUTELY see current specifications. If you never noticed that's somewhat your fault for not seeing it. But currents AND Voltages make electricity. If you are electrically engineering something, you MUST think of both.

-------

In any case, the point is moot as proper TTL circuits are completely obsolete by CMOS today.

But go through any proper BJT based SN7400 or whatever chip documentation and think why all those current values are specified everywhere.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: