BeginnerQuestion 58 of 95Source: Synopsys PrimeTime User Guide: Timing Paths and Exceptions

What is a half-cycle path, and why can it look like a timing violation when it isn't?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Short Answer

A half-cycle path is one where the launching and capturing flip-flops are triggered by opposite edges of the same clock, so data only has half a clock period, not a full one, to get there. It is not automatically a violation — it just needs to be measured against the correct, shorter required time.

Technical Reference DiagramWhat is a half-cycle path, and why can it look like a timing violation when it isn't?
A clock waveform showing a rising-edge launch flop and a falling-edge capture flop five nanoseconds later on a ten nanosecond clock

Technical Explanation

The tool always measures a path against the actual time between its real launch and capture edges, whatever that spacing turns out to be.

  • How a half-cycle relationship happens: a design mixing rising-edge and falling-edge-triggered flip-flops (see clock sense) on the same clock naturally creates some paths where the capture edge is only half a period after the launch edge, not a full one.
  • The required time shrinks to match: the tool automatically computes the required time from the real edge spacing, so a half-cycle path is correctly checked against half a period, not the full period a same-edge path would get.
  • Why it looks scarier in a raw report: a path with the same combinational delay as a full-cycle path shows much less slack once measured against half the time, which can make an otherwise ordinary path stand out as if something were wrong.
  • It is not automatically a violation: as long as the actual combinational delay fits inside the real, shorter window the design gives it, the path passes — the smaller number is expected, not a red flag by itself.
  • It does need deliberate design attention: because it has half the time budget of a normal path, a half-cycle path usually needs simpler, faster logic between its two flops than a full-cycle path would tolerate.

Common Mistake

The Trap: comparing a half-cycle path's slack directly against a full-cycle path's slack and assuming the smaller number means worse design.

  • A designer sees a half-cycle path reporting much less slack than neighboring full-cycle paths and assumes the logic on that path is poorly optimized.
  • The path may already be perfectly correctly designed for its actual half-period budget — the smaller slack number reflects the shorter time window, not a design defect.

Follow-up Question & Model Response

Does a half-cycle path need any special SDC exception to be timed correctly? Candidate Model Response: Not by default — the tool derives the half-cycle relationship automatically from the clock waveform and each flip-flop's real clock sense, so no extra exception is required just because the relationship happens to be half a cycle. An exception only becomes necessary if the designer wants the path treated differently from what the real edges imply, for example if it should actually be allowed a full cycle or more, which is where set_multicycle_path (SDC) comes in instead.

Practical Example

A rising-edge flip-flop launches data at time 0 on a 10ns clock, and a falling-edge flip-flop downstream captures it at time 5 — a half-cycle path with a 5ns required time instead of the full 10ns a same-edge path would get, even though both flops share the same CLK definition.

Complete STA Handbook

Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Static Timing Analysis (STA) Handbook — ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff. →