Monday 10 August 2015

digital logic - Why does active low even exist?


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?



Answer




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.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...