In HDL design (such as Verilog or VHDL), an active-low reset means the reset signal is enabled when it is low (logic 0). It is widely used in both ASIC and FPGA designs for several practical and electrical reasons:
1. Electrical Stability
Logic low (0 volts, GND) is generally more stable and noise-immune than logic high (VCC).
During power-up, signals tend to default to low due to internal pull-downs or the absence of a valid voltage, so using an active-low reset ensures that the system starts in a known, reset state.
2. Better Noise Immunity
External signals (like buttons or long PCB traces) are often susceptible to electrical noise.
An active-low signal is less likely to be falsely triggered by noise, especially when combined with pull-up resistors.
3. Compatibility with Open-Drain/Open-Collector Designs
Active-low resets work well with open-drain or open-collector outputs, which can safely pull the line low.
This allows multiple devices to share the same reset line and assert reset without conflict.
4. Industry Convention
Many standard IP cores, microcontrollers, and FPGAs use active-low resets by convention.
Using active-low ensures compatibility and consistency across designs.
5. Synthesis and Tool Support
Most EDA tools and synthesis libraries expect or recommend using active-low reset (
reset_n).Many templates, standard cells, and FPGA primitives are optimized for this.
Example in Verilog
`always @(posedge clk or negedge reset_n) begin
if (!reset_n)
state <= IDLE;
else
state <= next_state;
end`
Here, the reset signal reset_n is active when low, and resets the system when it is 0.
Summary
Active-low reset is used because it is more electrically stable, noise-immune, compatible with shared lines, and widely supported in the industry.