← Semiconductor & Electronics Studio
⏱️

FPGA/ASIC Timing Budget Calculator

Setup/Hold Slack · Fmax · Pipeline Depth

When to use: Estimate a register-to-register timing budget for a synchronous digital design. Enter clock-to-Q delay, combinational path delay, setup/hold requirements, clock skew, and jitter to check setup and hold slack, compute the resulting maximum clock frequency (Fmax), and estimate how many pipeline stages a combinational block needs to hit a target frequency.

Clock & Setup Path (ns)
ns
ns
ns
ns
ns
ns
Hold Path (ns)
ns
ns
ns
for Fmax/pipeline
ns
Key Formulas
setup slack = T − (Tcq + Tcomb + Tsetup + Tskew + Tjitter)
hold slack = Tcq_min − Thold − Tskew_hold
Fmax = 1 / (Tcq + Tcomb + Tsetup + margin)
Maximum Clock Frequency
285.7
MHz  ·  sum path = 3.500 ns
✓ SETUP
1.450 ns
slack 0
✗ HOLD
-0.050 ns
slack < 0
Slack Detail
Setup slack1.450 ns
Hold slack-0.050 ns
Fmax285.7 MHz
Clock period T5.0 ns
Pipeline Depth Estimator
How many pipeline stages does a combinational block need to hit a target clock frequency?
whole block
ns
ns
MHz
Stages Needed
7
Target period2.500 ns
Register overhead (Tcq+Tsetup+margin)0.700 ns
Max allowed stage delay1.800 ns
Effective per-stage delay used1.800 ns
Achieved frequency at that stage delay400.0 MHz
Your per-stage delay target exceeds what the target frequency allows — the calculator capped the per-stage delay at 1.800 ns (target period minus register overhead) to size the stage count.
Disclaimer

Simplified static timing analysis for educational estimation; real IC/FPGA timing closure requires vendor tool STA (Static Timing Analysis) with actual technology-library timing models, on-chip variation (OCV) derates, and multi-corner analysis.

References
Harris & Harris, Digital Design and Computer Architecture — Ch. 3 Sequential Logic Timing
IEEE STD 1497 — Standard Delay Format (SDF)
Vendor STA tools: Synopsys PrimeTime, Cadence Tempus, Xilinx Vivado Timing Analyzer, Intel Quartus TimeQuest

FPGA/ASIC Timing Budget Calculator

Compute register-to-register setup and hold slack for a synchronous digital path, the resulting maximum clock frequency (Fmax), and how many pipeline stages a combinational block needs to close timing at a target frequency. Built around the standard static timing analysis (STA) setup and hold equations used in FPGA and ASIC digital design.

How It Works

Setup slack = T − (Tcq + Tcomb + Tsetup + Tskew + Tjitter), where T is the clock period, Tcq is the launching register's clock-to-Q delay, Tcomb is the combinational logic delay on the path, Tsetup is the capturing register's setup time, and Tskew/Tjitter derate the clock edge. A positive setup slack means the path meets timing at that clock period; a negative slack is a setup violation.

Hold slack (simplified) = Tcq_min − Thold − Tskew_hold, checking that data launched by the clock edge does not race ahead and violate the capturing register's hold time on the same edge. Hold violations cannot be fixed by slowing the clock — they require adding delay to the path or reducing skew.

Fmax = 1 / (Tcq + Tcomb + Tsetup + margin) gives the theoretical maximum clock frequency for the critical path, before accounting for skew and jitter margin already folded into "margin".

Pipeline Depth Estimator

Given a total combinational delay budget for a function and a per-stage delay target, the estimator computes how many pipeline registers are needed: it first derives the maximum delay a single stage can have and still meet the target clock period (target period minus clock-to-Q, setup time, and margin), caps your requested per-stage target at that ceiling if needed, then divides the total delay by the effective per-stage delay and rounds up. This is a first-pass sizing tool for retiming or adding pipeline stages to a datapath — actual stage boundaries depend on where registers can legally be inserted in the RTL.

When to Use

Use during early RTL architecture and floorplanning to sanity-check whether a target clock frequency is achievable for a given logic depth, before running full synthesis and place-and-route. Once gate-level netlists and SDF/SDC constraints exist, switch to a real STA tool (PrimeTime, Tempus, Vivado, Quartus) for signoff-accurate numbers that include on-chip variation and multi-corner analysis.

Frequently asked questions

What is setup slack and why does negative slack matter?

Setup slack is the margin between when data must be stable at the capturing register (one setup time before the next clock edge) and when it actually arrives. Negative setup slack means the path is too slow for the clock period — the register may capture stale or metastable data, corrupting the design.

Why can't I fix a hold violation by slowing the clock?

Hold violations are a race between data launched on the current clock edge and the same edge arriving (possibly skewed) at the capturing register. Because both edges scale together, slowing the clock does not change the relative timing — hold fixes require adding delay to the data path or reducing clock skew.

What is clock skew vs. clock jitter?

Clock skew is the static difference in clock arrival time between two registers, caused by unequal clock tree routing. Clock jitter is cycle-to-cycle variation in when the clock edge actually arrives, caused by PLL/DLL noise and power supply variation. STA budgets subtract both from the available timing margin.

How does pipelining raise the achievable clock frequency?

Pipelining splits a long combinational path into shorter segments separated by registers, so each clock period only needs to cover one segment's delay plus register overhead instead of the whole path. More stages generally allow a higher clock frequency at the cost of added latency (cycles) and more registers.

🎓

Try our Semiconductor & Electronics Studio

More calculators, simulators, and guides for this discipline.

Related tools & guides

Logic Gate & Truth Table BuilderDigital Logic Circuit SimulatorPractical ASIC Design & Implementation — Illustrated GuideVerilog vs VHDL Syntax Reference