Skip to content

Add C++17 PERC Runtime Optimizer - #3

Draft
sethupathib wants to merge 2 commits into
mainfrom
cursor/perc-runtime-optimizer-c234
Draft

Add C++17 PERC Runtime Optimizer#3
sethupathib wants to merge 2 commits into
mainfrom
cursor/perc-runtime-optimizer-c234

Conversation

@sethupathib

@sethupathib sethupathib commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a strictly C++17 educational project for understanding PERC (Programmable Electrical Rules Checking) in physical design and experimenting with runtime optimizations.

White paper

Detailed PDF now in-repo: PERC Runtime Optimizer/docs/PERC_Runtime_Optimizer_Whitepaper.pdf (10 pages). Covers industrial PERC flow, why P2P/CD + extract/fill dominate runtime, the synthetic non-GDS data model, engines, and measured results. Regenerate with python3 docs/generate_whitepaper.py.

What PERC is (see also docs/PERC_OVERVIEW.md)

  • Reliability checks beyond DRC/LVS: ESD clamps, floating gates, P2P resistance, current-density-style path checks
  • Why it is slow: huge netlists, many pad→rail queries, full re-runs after ECO; industrially often extract/fill-bound

What the code does

Synthetic hierarchical netlist + resistor graph (Dijkstra P2P), then engines:

Mode Optimization
baseline Full-chip every time
roi ESD-relevant device pruning
hierarchical Per-block FG with shared index
parallel Multi-threaded pad-pair P2P/CD
incremental / optimized Metadata cache + ECO untouched-block reuse

Build / test

cd "PERC Runtime Optimizer"
make -j && make test
./perc_optimizer --bench --eco

Bench highlights: warm incremental ≫ cold; ECO recheck only touches changed blocks; parallel helps P2P-heavy runs.

Open in Web Open in Cursor 

cursoragent and others added 2 commits July 27, 2026 02:06
Educational stand-in for Programmable Electrical Rules Checking with
baseline vs ROI, hierarchical, parallel, incremental, and optimized
engines to study signoff runtime on synthetic netlists.

Co-authored-by: Sethupathi Balakrishnan <b.sethupathi@gmail.com>
Detailed 10-page paper covering PERC flows, fill/extract cost centers,
synthetic (non-GDS) data model, engines, and measured runtime results.
Includes generator script for regeneration via reportlab.

Co-authored-by: Sethupathi Balakrishnan <b.sethupathi@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants