AN 919: Improving Quality of Results with Design Assistant

ID 683369
Date 4/26/2024
Public

Removing Initial Power-Up Conditions

Intel recommends you do not use initial power-up conditions in your RTL. Always reset the design into a known state.
  1. Explicitly specify initial conditions in the RTL:
    reg q = 1’b1; // q has a default value of ‘1’ always@(posedge clk) begin q <= d; end 
    

    Registers without resets may also have initial conditions. By default, Quartus® Prime determines their FF power-up values automatically.

  2. Turn this setting off and force Quartus® Prime to set all uninitialized registers to 0 at power up by using the following global assignment:
    set_global_assignment ALLOW_POWER_UP_DONT_CARE OFF
    Generally, Intel does not recommend this setting because it can hinder register retiming.
  3. Instead of using a global assignment, target areas of the design to drop automatically generated initial conditions with:
    set_instance_assignment IGNORE_REGISTER_POWER_UP_INITIALIZATION ON -to <instance name>