https://docs.amd.com/r/2021.1-English/ug949-vivado-design-methodology/When-and-Where-to-Use-a-Reset
Advantages of Synchronous Resets
BenefitExplanationBetter Resource MappingSynchronous resets can be mapped directly to more FPGA resources (e.g., flip-flops inside DSPs, BRAMs).Improved Logic PerformanceAsynchronous resets can negatively affect general logic timing paths and increase routing complexity.Simpler RoutingA global asynchronous reset might not increase control sets but does require routing reset wires to many elements, which can become complex.Protects Memory StructuresAsynchronous resets may corrupt the contents of BRAMs, LUTRAMs, and SRLs during reset assertion—especially if those resources are driven by asynchronously reset registers.Placement FlexibilityWith synchronous resets, the logic can be more easily remapped during implementation for better packing and performance.Compatibility with Dedicated BlocksSome blocks like DSP48s and BRAMs only support synchronous resets, so using asynchronous resets can prevent proper inference into those blocks.
Reset HDL Coding Example
Changing Asynchronous Reset into Synchronous Reset on Multipiler
Commenting Out Code with Reset Conditions
Separate Procedural Statements for Registers With and Without Reset
The Optimal way to remove the resets is to create separate sequential logic procedures with one for reset condition and the other for non-reset conditions.
Summary: In FPGAs…
ItemRecommended?Reason✅ Synchronous resetCommonly recommendedBetter for timing, tool support⚠️ Asynchronous resetUse with cautionNeeded for power-up init, but adds complexity✅ Active-low resetPreferredMore immune to noise, widely adopted standard✅ Active-high resetAcceptableLogically fine, but less common in industry