AN 917: Reset Design Techniques for Hyperflex® Architecture FPGAs
ID
683539
Date
7/07/2025
Public
1.4.1.1. Converting to Synchronous Resets
Complete the coding of your design before targeting an Hyperflex® architecture device. If you are using asynchronous resets in your design, convert them to synchronous resets to benefit from Hyper-Retiming performance optimization. Hyper-Retiming helps to meet the timing requirements for fast running clocks. The design blocks that are running slow clocks, and are already passing timing requirements, can continue using asynchronous resets.
Switching your code to use synchronous resets is simple, as the following example shows:
//Asynchronous reset on control register always @(posedge clk or negedge rstb) begin if (!rstb) control <= ‘d0; else control <= new_value; end
//Synchronous reset on control register always @(posedge clk) begin if (!rstb) control <= ‘d0; else control <= new_value; end