STA Concept 8

Timing Verification

The two primary checks are the setup and hold checks. Once a clock is de fined at the clock pin of a flip-flop, setup and hold checks are automatically inferred for the flip-flop. Setup Timing Check The data should be stable for a certain amount of time, namely the setup time of the flip-flop, before the active edge of the clock arrives at the flip-flop. This requirement ensures that the data is captured reliably into the flip-flop image The setup check can be mathematically expressed as: Tlaunch + Tck2q + Tdp < Tcapture + Tcycle- Tsetup

Tlaunch: delay of clock tree to launch flop.

As described in previous chapters,thecelldelayiscalculatedbasedontheinputtransi tiontimeandtheoutputcapacitanceofthecell.Thus,thequestioniswhat transitiontimeisusedat theinputof thefirstcell intheclocktree.The transitiontime(orslew)ontheinputpinofthefirstclockcellcanbeexplic itlyspecifiedusingtheset_input_transitioncommand.

What is clock source latency? This is also called insertion delay and is the time it takes for a clock to propagate from its source to the clock definition point of the design under analysis as depicted in Figure 8-3. This corresponds to the latency of the clock tree that is outside of the design. For example, if this design were part of a larger block, the clock source latency specifies the delay of the clock tree up to the clock pin of the design under analysis. image Mainly we can see clock source latency in PT when HScontext is consumed.

Hold Timing Check The hold specification of a flip-flop requires that the data being latched should be held stable for a specified amount of time after the active edge of the clock. image

a hold timing check is between the launch flip flop- the flip-flop that launches the data, and the capture flip-flop- the flip-flop that captures the data and whose hold time must be satisfied.

The hold time check verifies that the difference be tween these two times (data arrival time and clock arrival time at capture flip-flop) must be larger than the hold time of the capture flip-flop, so that the previous data on the flip-flop is not overwritten and the data is reliably captured in the flip-flop.

Tlaunch + Tck2q + Tdp > Tcapture + Thold image

While setup violations can cause the operating frequency of the design to be lowered, the hold violations can kill a design, that is, make the design inoperable at any frequency. Thus it is very important to understand the hold timing checks and resolve any violations.

MultiCycle Paths image

image

The default hold check edge is always: “one active edge prior to the setup capture edge” image

Crossing Clock Domains image

False Paths

Half Cycle Paths If a design has both negative-edge triggered flip-flops (active clock edge is falling edge) and positive-edge triggered flip-flops (active clock edge is ris ing edge), it is likely that half-cycle paths exist in the design. A half-cycle path could be from a rising edge flip-flop to a falling edge flip-flop, or vice versa. Figure 8-19 shows an example whenthelaunch is on the falling edge of the clock of flip-flop UFF5, and the capture is on the rising edge of the clock of flip-flop UFF3. image image

Removal Timing Check A removal timing check ensures that there is adequate time between an active clock edge and the release of an asynchronous control signal. The check ensures that the active clock edge has no effect because the asynchro nous control signal remains active until removal time after the active clock edge. In other words, the asynchronous control signal is released (becomes inactive) well after the active clock edge so that the clock edge can have no effect. (like a hold check).

Recovery Timing Check A recovery timing check ensures that there is a minimum amount of time between the asynchronous signal becoming inactive and the next active clock edge. In other words, this check ensures that after the asynchronous signal becomes inactive, there is adequate time to recover so that the next active clock edge can be effective. (like a setup check)

Timing Across Cross domains Slow to Fast clock domain When the clock frequencies are different for the launch flip-flop and the capture flip-flop, STA is performed by first determining a common base period. An example of a message produced when STA is performed on such a design with the above two clocks is given below. The faster clock is expanded so that a common period is obtained. image image image

The-end is the default for a multicycle setup and the-start is the default for multicycle hold. For slow to fast, the MCP are written wrt end clock for setup/hold.

Fast to Slow clock domain Default checks: image Similartothesetupchecks,therearefourholdcheckspossible.Figure8-26 showsthemostrestrictiveholdcheckwhichensuresthatthecaptureedge at0nsdoesnotcapturethedatabeinglaunchedat0ns.

In general, a designer may specify the data path from the fast clock to the slow clock to be a multicycle path. If the setup check is relaxed to provide two cycles of the faster clock for the data path, the following is included for this multicycle specification: set_multicycle_path 2-setup -from [get_clocks CLKP]-to [get_clocks CLKM]-start set_multicycle_path 1-hold -from [get_clocks CLKP]-to [get_clocks CLKM]-start

The-start option refers to the launch clock and is

the default for a multicycle hold.

image nlike the case of paths from slow to fast clock domains, a good rule of thumb for multi-frequency multicycle path specification in the case of paths from fast to slow clock domains is to use the-start option. The setup and hold checks are then adjusted based upon the fast clock.

Examples Example 1: Half cycle path from CLKM to CLKP image image Case2: similar as above shifted in time image Case3: Fast to slow image

Written on June 11, 2026