Power-Up Don't Care logic option

A a project-wide logic option that causes registers that do not have a Power-Up Level logic option setting to power up with a don't care logic level (X). When Power-Up Don't Care is turned on, the Compiler determines when it is beneficial to change the power-up level of a register to minimize the area of the design. A power-up state of zero is maintained unless there is an immediate area advantage.

If this option is turned on, the register powers up with the logic level most appropriate for the design, as shown in the following illustration:

Powers up as 1 so the register can be removed.

If this option is turned off, the register powers up low, as shown in the following illustration:

A possible implementation is shown in the following code example:

To prevent power-up levels from changing, turn off Power-Up Don't Care, or use the Power-Up Levellogic option to specify the logic level for specific registers.


It is possible for the Compiler to implement a partial change to the power-up level of a register bank. Because not all third-party synthesis simulation tools include power-up don't care minimization, use a reset or preset for critical registers rather than depending on the power-up condition. This generally prohibits minimization and creates a more dependable design to port to third-party synthesis simulation tools.

The following code is an example of how to use the reset:

Scripting Information

Keyword: allow_power_up_dont_care

Settings: on* | off