Skip to content
Back to skills

Timing Analysis

ASecurity

Assess post-synthesis setup and hold timing with PrimeTime and determine what the evidence establishes under the task's constraints.

  • 6 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 5, 2026
ai-agentspythonbashaws

Works with

  • cli

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add chipweaver/veripower --skill timing-analysis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Timing Analysis?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Timing Analysis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chipweaver-timing-analysis/badge)](https://www.skillsdirectory.com/skills/chipweaver-timing-analysis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: timing-analysis
description: Assess post-synthesis setup and hold timing with PrimeTime and determine what the evidence establishes under the task's constraints.
---

# Static Timing Analysis

Assess the implementation under the required timing conditions. Read `dispatch.json`, original intent,
requirements, the synthesized netlist and SDC, and the materials carried into `{workdir}`. Determine the necessary
work from what changed. An existing report may support a new judgment when its implementation,
conditions and analysis scope still apply. The implementation input is the complete synthesis
`out/` directory, including supporting constraints; a changed package calls for reassessment.

Write under `{workdir}`; upstream inputs remain read-only. The framework carries previously
published setup and products into this directory, without the old verdict. Keep useful analysis
and comparison material in `evidence/`.

## Tools

`<skill>` is this skill's directory. Prepare missing editable setup when needed:

```bash
python3 <skill>/scripts/timing/__main__.py bootstrap --workdir {workdir}
```

Bootstrap locates the netlist and matching SDC, installs missing `run_sta.tcl` and `config.tcl`, and
preserves authored files. Set the actual cell library as `LIB_DB` in `config.tcl` and inspect the calculation
settings. Run the required analysis:

```bash
cd {workdir}
python3 <skill>/scripts/timing/__main__.py run --workdir .
```

The entrypoint computes in a temporary directory using the current setup. Scripts write outputs
relative to their working directory: `timing-report.txt` and any supplementary `reports/` tree.
Old reports are withdrawn and replaced only after successful,
readable output. The log and failed calculation remain available until retry. Wait for completion
and inspect warnings, effective constraints and the libraries used.

## Judge and close

Review the reported endpoints, port delays, clocks and untested reasons against the task and
applicable exceptions. These native reports are in `timing-report.txt`; the CLI's setup/hold
measurements cover the reported paths, not the completeness or validity of the analysis scope.
`report_units` in the same report supplies the conversion to ns.
Numerical `timing_slack_ns` rows compare the minimum worst setup/hold slack with their own bounds;
VIOLATED identifies negative slack even when displayed as zero. Overall STA acceptance separately
requires both directions to be MET. Give evidence-based judgments for other timing requirements.

```bash
python3 <skill>/scripts/timing/__main__.py finalize --workdir {workdir} \
  [--requirements '[{"id":"R-1","met":true,"actual":"measured value","measured":"report and scope"}]'] \
  [--fail-reason "unresolved cause"] [--fix-owner <rule>]
```

Use `--fail-reason` for invalid or incomplete analysis even if a report contains numbers. Name the
owner from the defect: local analysis errors belong here; incorrect implementation or constraints
belong to their producer. Resolve local problems and retry the affected work. Acceptance changes
follow the user's actual authorization.

Finalize withdraws the previous result before judging. Exit 0 means a pass/fail result was written;
return `STATUS: DONE`. On a nonzero exit, resolve the cause or return `STATUS: BLOCKED <cause>`.

Files in this skill

  • SKILL.md5.8 KB
  • references/result.schema.json5 KB
  • scripts/timing/__main__.py2.8 KB
  • scripts/timing/bootstrap.py4.7 KB
  • scripts/timing/result.py13.9 KB
  • templates/config.tcl227 B
  • templates/run_sta.tcl1.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.