IntermediateQuestion 109 of 112Source: Synopsys PrimeTime User Guide: ECO Commands, Inserting Buffers

When do you insert a buffer with insert_buffer instead of resizing an existing cell?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Short Answer

Resizing an existing cell only helps when a stronger version of the same function exists in the library and fits the same footprint, which is not always true, especially for a hold fix that needs a small, precise amount of extra delay. insert_buffer (PT) adds a brand-new buffer cell at a driver pin during an ECO, which is the standard way to add delay a resize cannot provide, or to fix a net with excessive load a single cell swap cannot absorb.

Technical Reference DiagramWhen do you insert a buffer with insert_buffer instead of resizing an existing cell?
Floorplan close-up showing a new BUFX1 buffer inserted into a spare-cell site next to FF13, adding 11ps of delay onto a net between FF12 and FF13 to clear an 8ps hold violation.

Technical Explanation

  • insert_buffer (PT) takes a pin (or list of pins) and a library cell, and creates a new buffer instance driving those pins, rather than replacing a cell that is already there.
  • A hold fix usually needs a small, deliberate amount of extra delay, and the closest available cell sizes may not offer a fine enough step, inserting a buffer lets the designer pick from the library's smallest delay cells directly.
  • On a net with very high fanout, splitting the load across a newly inserted buffer can also fix a max-capacitance or max-transition DRC violation that a resize alone would not solve, since the original driver's load does not change by resizing it.
  • Like size_cell (PT), the new buffer only exists in PrimeTime's timing model until write_changes (PT) hands the edit to the physical design tool for real placement and routing.
  • Because a newly inserted buffer needs physical space nearby, it is usually placed where an ECO cell or spare cell already exists in the floorplan, rather than assuming space is free anywhere on the net.
  • Removing an inserted buffer that turns out to be unnecessary is done with remove_buffer (PT), the safer way to undo an ECO step than manually editing the netlist.

Common Mistake

The Trap: Inserting a buffer to fix a hold violation without confirming a physical ECO or spare cell site actually exists near that net in the floorplan.

  • A buffer that looks free in PrimeTime's timing-only model can be unplaceable or force a disruptive reroute in the real design, undoing the whole point of choosing a lightweight ECO fix.

Follow-up Question & Model Response

Why does a hold fix usually add a small buffer instead of a longer wire, when both add delay?

Candidate Model Response: A longer wire's delay depends on parasitics that are not finalized until after routing, so its exact delay is hard to predict at the point an ECO is being decided, and post-route derating or crosstalk can shift it further. A small buffer has a known, library-characterized delay under a given load, so the ECO's predicted fix is far more reliable before the physical tool re-implements it. Buffers are also easier to place into an existing spare-cell site, since the floorplan already reserves space for them, while stretching a wire's length usually means disturbing neighboring routing. This predictability is why buffer insertion, not wire lengthening, is the default hold-fix mechanism in PrimeTime ECO flows.

Practical Example

A hold violation of -8ps on a short net between two adjacent flops is fixed with insert_buffer FF12/Q BUFX1 (PT), which inserts a new buffer at the driver pin FF12/Q feeding FF13, adding 11ps of delay and clearing the violation with 3ps to spare. The buffer is placed at a spare-cell site already reserved next to FF13 in the floorplan, so the physical implementation tool legalizes it without disturbing any other routing.

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. →