Non-resettable Primitives - 2025.2 English - UG909

Vivado Design Suite User Guide: Dynamic Function eXchange (UG909)

Document ID
UG909
Release Date
2025-12-17
Version
2025.2 English

If your RM contains any non-resettable primitives, a reset alone might not be enough to reverse actions triggered while the RM was in a corrupted state. For example, a corrupted state machine might write to a random address in local distributed memory that must start with specific initial values.

Any RM that contains these primitives and depends on the circuit’s initial state can fail. To handle corruption in this case, you must include design-specific circuits that ensure a safe starting state by explicitly initializing these primitives to the correct values. Trigger these circuits on reset assertion or deassertion, depending on your design requirements.

You can mitigate this problem by asserting the RM reset before GWE asserts and keeping it asserted until after EOS. You do this by ensuring all RM primitive power-on values do not trigger any actions and by decoupling any inputs from static logic that could trigger actions. However, risks still remain. See the following sections for details.