The setup check uses the most pessimistic setup relationship between two clocks. By default, this is the smallest positive delta between the launch and capture edges.
For example, if two flip-flops are triggered by rising clock edges, both the launch and capture edges are rising.
The clocks are defined as follows:
-
clk0has a 6 ns period with the first rising at 0 ns and falling edge at 3 ns. -
clk1has a 4 ns period with the first rising at 0 ns and falling edge at 2 ns.
As shown in the following figure, two unique setup relationships exist:
Setup(1) and Setup(2). The smallest positive delta from clk0 to clk1 is 2 ns, which corresponds
to Setup(2). The common period is 12 ns, which is the time between two simultaneous
alignments of the two clocks.
After the tool establishes the path requirement, it computes setup slack using path delays, clock uncertainty, and setup time.
As the equation shows, a positive slack means data arrives before the required time.
The recovery check works the same way as the setup check but applies to asynchronous control pins, such as preset or clear. It uses the same clock relationships and slack equation, but substitutes recovery time in place of setup time.