hold-fix

Fixes post-CTS and post-route hold violations by inserting buffers and delay cells.

26|8|Updated Jun 13, 2026
One-click install
npx skills add https://github.com/vibeic/vibe-ic --skill hold-fix-vibeic
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: hold-fix
Source: https://github.com/vibeic/vibe-ic/tree/main/vibe-ic-marketplace/plugins/vibe-ic/skills/hold-fix
Command: npx skills add https://github.com/vibeic/vibe-ic --skill hold-fix-vibeic

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Clock tree synthesis introduces insertion delay that makes short data paths arrive too early at capture flops, creating hold violations that block tapeout. This Skill repairs those violations deterministically by inserting buffers or delay cells until hold slack is clean at the fast corner. ## Core Features & Use Cases - Hold violation analysis and repair: Runs OpenSTA min-path checks at the FF corner, classifies slack buckets, and drives OpenROAD repair_timing -hold through guarded Tcl generators. - Deterministic guardrails: Enforces a 5% area budget cap, forbids trading setup for hold, verifies FF-corner coverage, and gates every iteration through convergence and admission checks. - Use Case: After CTS completes on a GF180MCU design with WHS of -180 ps across 87 endpoints, run this Skill to insert hold buffers iteratively until WHS is positive, THS is zero, and setup timing remains clean. ## Quick Start Fix the hold violations in my post-CTS database and iterate until hold slack is clean at the fast corner without degrading setup timing.

Frequently Asked Questions about hold-fix

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix hold violations after clock tree synthesis?▼

Run STA at the fast (FF) corner with report_checks -path_delay min, then insert buffers or delay cells on short paths using OpenROAD repair_timing -hold. Iterate fix and re-check until worst hold slack is non-negative and total hold slack is zero.

Why does CTS create hold violations?▼

CTS adds clock insertion delay (skew), so data launched and captured by nearby flops arrives too early relative to the delayed capture clock. Short data paths then violate the hold requirement T_hold < T_clk_skew + T_data_delay.

Which corner is worst for hold timing analysis?▼

The fast (FF) corner with high voltage and low temperature is worst for hold, because minimum cell delays make short paths fastest. Hold must be verified clean at FF before tapeout signoff.

Why does OpenROAD repair_timing -hold crash on some PDKs?▼

Some PDKs ship multi-input delay-line cells like DLY4D1 that OpenROAD's buffer heuristic mistakenly selects, then asserts on the extra input pins. Work around it by applying set_dont_use to those masters before running repair_timing -hold.

Can hold fixing degrade setup timing?▼

Yes, inserted buffers add delay that can hurt setup-critical paths sharing the same route. Always re-run setup checks at the SS corner after hold fixing, and never enable -allow_setup_violations when repairing hold.

How much area overhead does hold buffer insertion cost?▼

Hold buffers typically cost 2-5% of total cell area, and this Skill caps the budget at 5% via an enforced checker. If the budget is exceeded, investigate CTS imbalance or over-skewed clock trees instead of inserting more buffers.