22
\$\begingroup\$

In my career I've often encountered signals that are active low (Reset being the most common). I've even seen interfaces where all control signals are actively low.

To me, this is very unintuitive and confusing. Why is there ever a need to use actively low? Is it merely historic or is there actual gate count / power concerns that explains it?

\$\endgroup\$
3

5 Answers 5

15
\$\begingroup\$

In historical digital designs, active low signals would be used whenever their use would allow reducing the number of gates in a design, and thus reduce the cost of the circuit. I can imagine it was even more common in IC designs than in discrete logic, because all logic was essentially built from inverting (NAND) gates, but I'm not personally experienced in that area.

That level of optimization is rarely needed today, or at least it's done automatically by synthesis tools so that it's transparent to the designer. Like you noticed, there's only a few cases where active low signals are still very commonly seen.

One advantage of an active low signal for functions like reset and interrupts, is it's very easy to create "wired OR" logic for an active low signal simply by using open collector outputs.

That is, if there's several different circuits that need to be able cause a reset or an interrupt, each of them can simply have an open-collector output tied to the ~RESET or ~INT wire. Then, any one of them can pull the line low and cause the appropriate response without the need for any additional logic to combine the signals.

\$\endgroup\$
5
\$\begingroup\$

In logic families like TTL a open terminal is interpreted as High, since it depends on current sinking logic to detect a logic zero input.

Designing a pin active low ensures that it is functional if and only if an intentional logic state is applied, ie. to avoid ambiguous floating input condition.

Additionally special case of RESET has been answered in this question.

\$\endgroup\$
2
  • 3
    \$\begingroup\$ This is misleading. Yes, TTL inputs did float high, but not to the point you could rely on it in the presence of noise. It was always bad practise to leave TTL inputs floating. Also, this was long ago. Nowadays logic doesn't float one way or the other and has to be driven. CMOS, which most logic is today, has very high imput impedance and is symmetric. \$\endgroup\$ Mar 10, 2013 at 12:50
  • 1
    \$\begingroup\$ Agreed @OlinLathrop \$\endgroup\$
    – D34dman
    Mar 11, 2013 at 22:42
4
\$\begingroup\$

The primary advantage to active low is safety.

It is used widely in the C&I world in situations where a lost signal would be devastating. One example would be the water level of a boiler being low, another would be an emergency stop, another would be low fuel pressure. If one of these events happen the machine must be stopped.

If the system used active high, and the instrument broke or a signal cable was damaged, the controller would never know there was a problem. If the system uses active low, and the instrument broke or a signal cable was damaged, the system would respond in the same manner as it would to the instrument being activated.

\$\endgroup\$
2
  • 1
    \$\begingroup\$ well, you could argue any of these are active-high for an "all-OK" signal... rather than active-low for "I'm off" \$\endgroup\$
    – nmz787
    May 10, 2016 at 17:59
  • \$\begingroup\$ It's also the reason that UART's idle state is high, although it uses positive logic - this way, it's easy to see a broken or shorted-to-ground serial link. \$\endgroup\$ Apr 29, 2021 at 23:28
3
\$\begingroup\$

Active low signals are more tolerant of noise in some logic families, especially the old TTL.

A high TTL signal must be at least 2.8V out and can be as low as 2.0V in. That leaves 0.8V margin for voltage drop and noise. And a pullup resistor to the 5V supply can be added for additional margin.

A low TTL signal must be no more than 0.4V out and can be as high as 0.8V in. That leaves only 0.4V of margin for voltage drop and noise.

You can use either level to represent either logic state. But it makes sense to choose the most noise-tolerant level for the state that the signal will spend the most time in.

Many signals spend almost all of their time inactive. Therefore it's wise to use the noise-prone low-level to represent the infrequently-occurring active state, and the more noise-immune high-level to represent the frequently-occurring inactive state.

\$\endgroup\$
2
  • 3
    \$\begingroup\$ The low state for a TTL signal typically consumes more power because you have to sink a current to pull it to zero. It takes almost no power to drive it to the high state as demonstrated by the fact that a float typically looks like a 1 in TTL. Also, TTL is typically much faster going to 0 than to 1 because they sink more current than they source. Thus, if you assign the more common (inactive) state to 1 and the less common (asserted) state to 0, you tend to reduce power consumption and get faster propagation when you assert it. \$\endgroup\$ Oct 19, 2015 at 1:25
  • 1
    \$\begingroup\$ This is yet another reason for active-low to "even exist". But it doesn't seem to either support or contradict my answer, so I wonder why you posted it as a comment to my answer instead of as an independent answer. \$\endgroup\$ Oct 20, 2015 at 3:56
-2
\$\begingroup\$

Logic signals have two states. Which one you consider on or off, or use to communicate on or off is totally up to you. There is nothing more right about high being on or true than low.

That fact that it is unintuitive to you is irrelevant when designing a system. You may think high should indicate true, but it may be completely the other way around for someone else. Good engineers try to do what makes sense, not get hung up on religious points. Sometimes it doesn't matter, then you get to pick whatever your preference is. Sometimes it does matter.

For example, since it is convenient to have circuits that must communicate share one common net that we usually call ground, and most logic circuits have evolved to require positive supply (think about it, it could just as well have been the other way around), logic signals will generally be either at ground or the positive supply level. Let's say you need to drive a digital input from a normally open pushbutton. Especially if that pushbutton is mounted physically not right at the circuit, it is convenient to tie one side of the pushbutton to ground. That means the other side will be driven to ground when the button is pressed. That inherently creates negative logic, meaning a low indicates pressed and a high (with a passive pullup) means released. It woud be silly to add a inverter just for religious reasons if this line then went into a microcontroller. The firmware in the micro can deal with either polarity representing pressed, so other than satifying a superstition, the inverter would be just a waste of space, power, and cost.

\$\endgroup\$
4
  • 6
    \$\begingroup\$ I don't feel this really answers the question, which was why was that particular polarity so much more common? Is there some gate-level reason? \$\endgroup\$ Mar 9, 2013 at 23:05
  • \$\begingroup\$ For reset could such be even marginally useful in power glitch detection? \$\endgroup\$
    – user15426
    Mar 9, 2013 at 23:25
  • \$\begingroup\$ @Rocket: That's not what was asked. I don't think active low is necessarily more common, and the OP never claimed that either. He wanted to know why anyone would ever (his word) use active low. My point is it doesn't matter, and tried to give at least one example where active low is advantgeous. It seems to me you are the one that misunderstood the question. \$\endgroup\$ Mar 9, 2013 at 23:36
  • \$\begingroup\$ @Paul: I think the specific issue with reset is that you want the reset state to be the power off level. That way you can hold the reset line fixed at its initial 0V level while the system powers up. \$\endgroup\$ Mar 9, 2013 at 23:39

Not the answer you're looking for? Browse other questions tagged or ask your own question.