Most signals in this course are active-high: 1 means "do it". An active-low signal works the other way: it is asserted (doing its job) when it is 0, and idle when it is 1.
You'll spot active-low signals by their labels:
- a bar over the name, as in a chip select written CS with an overline
- a bubble on the pin in a schematic
- a suffix such as
_n,_bor#in datasheets and code
Why use them? Historically, some logic families pulled a line to 0 more strongly than to 1, and an unconnected input tends to float high, so making "active" mean 0 kept idle chips safely off. Today many control pins, such as a memory's chip select, write enable, resets and decoder outputs, are still active-low.
Turning it into algebra. Complement it. If C is an active-low chip select, "the chip is selected" is . If W is an active-low write enable, "writing" is . A write on such a chip happens when = 1, which means both pins are 0.
The same idea applies to outputs. A decoder with active-low outputs drives the selected line to 0 and all others to 1, which is why it pairs with NAND gates.
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |