AdvancedQuestion 15 of 63

Explain why "only internal nets are annotated in SDF" and how that shapes your verification.

From PDVerse STA Mentor Guide, part of the pdVerse Mentor Guide

Short Answer

The SDF (standard delay format) standard defines INTERCONNECT delays only for nets internal to the design. A net connected directly to a primary input or output port describes the environment outside the design, and that is modeled instead with set_input_delay and set_output_delay - so non-annotation there is correct behavior, not a coverage gap.

Technical Reference DiagramExplain why "only internal nets are annotated in SDF" and how that shapes your verification.

Technical Explanation

  • Where the rule comes from. SDF, the standard delay format used to back-annotate real extracted delays, defines INTERCONNECT statements for nets internal to the design. It was never meant to describe anything outside the design's own boundary.
  • Why primary-port nets are excluded by design. A net wired directly to a primary input or output port describes something outside the chip - the external driver, the board trace, the environment's own wiring - and stating that is not the SDF's job.
  • What models the boundary instead. set_input_delay and set_output_delay (SDC) are the constraints that describe the environment at the boundary; they do the job SDF deliberately leaves alone.
  • PrimeTime follows the standard. It annotates delays on internal nets from the SDF, and does not annotate primary-input or primary-output nets - this is expected, correct behavior, not a parsing failure.
  • The direct consequence for coverage checking. When report_annotated_delay (PT) lists net arcs from primary inputs, and net arcs to primary outputs, as "not annotated," that is exactly correct and expected. Chasing those entries as missing coverage wastes time, and worse, it trains you to stop trusting the columns that actually matter.
  • Where to actually look. Focus verification on the internal net arcs and cell arcs columns. A nonzero "Not Annotated" count there is the real signal of a problem - typically a name mismatch between the SDF and the design netlist, or genuinely missing SDF coverage.
  • The useful discipline. Know in advance which categories of the coverage report should be empty and which should not, and only treat a departure from that expectation as a finding worth chasing.

Common Mistake

  • Treating every "Not Annotated" line in report_annotated_delay as a coverage problem, without separating primary-port net arcs, which are expected to be unannotated, from internal net and cell arcs, which are not.
  • Trying to force SDF annotation onto a primary-input net by editing the SDF file, fighting the standard instead of checking whether set_input_delay is correctly modeling that boundary.
  • Cost: wasted debug time reviewing "gaps" that were never gaps, and reduced confidence in a coverage tool that was, in fact, working correctly the whole time.

Follow-up Question & Model Response

If report_annotated_delay shows a nonzero not-annotated count in the internal net arcs column, what are the two most likely causes, and how would you tell them apart?

Candidate Model Response: The two most likely causes are a name mismatch between the SDF's net names and the design's current netlist names - often from a post-layout ECO or a renaming pass that ran after the SDF was generated - or genuinely missing SDF coverage, where the extraction or SDF-writing step simply never produced entries for that region of the design. To tell them apart, I'd check whether the missing nets exist in the design at all under a similar or renamed identity; a clear one-to-one name mismatch points to the renaming explanation, while nets that have no plausible counterpart in the SDF at all point to a genuine extraction gap that needs the SDF regenerated.

Practical Example

After an ECO renames 40 buffer instances in a routing fix, report_annotated_delay shows those 40 cells' net arcs as not annotated, alongside the expected primary-input and primary-output entries. Separating the two categories, the primary-port entries match the count from the pre-ECO run exactly and are ignored. The 40 internal-net entries are new; grepping the SDF for the old instance names confirms a naming mismatch from the rename, not a genuine extraction gap, and re-running the SDF write with the post-ECO netlist resolves all 40.

Complete STA Handbook

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

Offline PDF Bundle

Want all 1109 questions offline?

Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

See what's inside the bundle
Static Timing Analysis (STA) Handbook โ€” ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff.