From 9b94d86c9c3d7ddfe001f3f0b365cf573b5cddd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Wed, 24 Jun 2026 10:48:17 +0200 Subject: [PATCH 1/2] flow/designs: add per-PDK WNS plots and README from rules-base.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add flow/util/plot_wns.py, a local (no-bazel) script that reads the committed rules-base.json baselines and regenerates, per PDK, a worst-setup-slack bar chart (wns.png) and a "## WNS" README section between generated markers. It covers all 9 PDKs that ship timing baselines (76 designs); the bar is finish-stage WNS, with cts and globalroute drawn as markers so stage-to-stage movement is visible. No OpenROAD/ORFS run is required -- the data already lives in the tree, so the plots are deterministic and the committed PNGs + tables render on GitHub with nothing to run. asap7/README.md additionally carries a hand-written findings section discussing the results. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Øyvind Harboe --- flow/designs/asap7/README.md | 68 ++++++++++ flow/designs/asap7/wns.png | Bin 0 -> 95233 bytes flow/designs/gf12/README.md | 29 +++++ flow/designs/gf12/wns.png | Bin 0 -> 76871 bytes flow/designs/gf180/README.md | 22 ++++ flow/designs/gf180/wns.png | Bin 0 -> 49531 bytes flow/designs/gf55/README.md | 17 +++ flow/designs/gf55/wns.png | Bin 0 -> 31346 bytes flow/designs/gt2n/README.md | 19 +++ flow/designs/gt2n/wns.png | Bin 0 -> 37617 bytes flow/designs/ihp-sg13g2/README.md | 23 ++++ flow/designs/ihp-sg13g2/wns.png | Bin 0 -> 54069 bytes flow/designs/nangate45/README.md | 32 +++++ flow/designs/nangate45/wns.png | Bin 0 -> 92126 bytes flow/designs/sky130hd/README.md | 23 ++++ flow/designs/sky130hd/wns.png | Bin 0 -> 52402 bytes flow/designs/sky130hs/README.md | 21 +++ flow/designs/sky130hs/wns.png | Bin 0 -> 45068 bytes flow/util/plot_wns.py | 209 ++++++++++++++++++++++++++++++ 19 files changed, 463 insertions(+) create mode 100644 flow/designs/asap7/README.md create mode 100644 flow/designs/asap7/wns.png create mode 100644 flow/designs/gf12/README.md create mode 100644 flow/designs/gf12/wns.png create mode 100644 flow/designs/gf180/README.md create mode 100644 flow/designs/gf180/wns.png create mode 100644 flow/designs/gf55/README.md create mode 100644 flow/designs/gf55/wns.png create mode 100644 flow/designs/gt2n/README.md create mode 100644 flow/designs/gt2n/wns.png create mode 100644 flow/designs/ihp-sg13g2/README.md create mode 100644 flow/designs/ihp-sg13g2/wns.png create mode 100644 flow/designs/nangate45/README.md create mode 100644 flow/designs/nangate45/wns.png create mode 100644 flow/designs/sky130hd/README.md create mode 100644 flow/designs/sky130hd/wns.png create mode 100644 flow/designs/sky130hs/README.md create mode 100644 flow/designs/sky130hs/wns.png create mode 100644 flow/util/plot_wns.py diff --git a/flow/designs/asap7/README.md b/flow/designs/asap7/README.md new file mode 100644 index 0000000000..901603f308 --- /dev/null +++ b/flow/designs/asap7/README.md @@ -0,0 +1,68 @@ +# asap7 designs + +## Findings: worst negative slack (WNS) across asap7 + +These notes read the committed `rules-base.json` baselines — the worst setup slack each +design reaches at clock-tree synthesis (`cts`), global route (`globalroute`) and `finish`. +The plot and table below are regenerated from that data by +[`flow/util/plot_wns.py`](../../util/plot_wns.py); no flow run is needed, so the numbers +are exactly what CI checks against. + +What stands out: + +- **Every asap7 design closes with negative setup slack.** All 18 baselines have + `finish` WNS < 0, so the committed asap7 constraints target clocks the flow does not + actually meet — these baselines track *how far short* each design lands, not timing + closure. `swerv_wrapper` (≈ −318) and `mock-alu` (≈ −300) are the extreme cases, an + order of magnitude worse than the cluster around −15 … −50 (`aes*`, `mock-cpu`, + `uart`, `jpeg`). + +- **Worst slack is often not stable across stages.** Some designs pin their critical + path early and barely move (`cva6`, `jpeg`, `mock-cpu`: `cts ≈ globalroute ≈ finish`). + Others move a lot: `swerv_wrapper` degrades from −80 at cts/globalroute to −318 at + finish, and `riscv32i`/`riscv32i-mock-sram` slip from ≈ −47 (cts) to ≈ −81 (finish) — + routing and final extraction make the path materially worse than CTS predicted. + +- **Global route is sometimes more pessimistic than finish.** For `gcd` + (cts −85.9 → globalroute −110 → finish −96.7) and `aes-block` + (cts −84 → globalroute −31 → finish −57) the worst-slack estimate swings between + stages rather than monotonically worsening. This is the same GRT-vs-post-route + estimate gap explored in [`flow/docs/rcx`](../../docs/rcx/README.md) (PR #4302), here + visible at the design level rather than per net. + +The takeaway for anyone using cts-stage slack as a proxy for the final result: for asap7 +it is a usable rank ordering but not a reliable magnitude — several designs move tens of +units (and `swerv_wrapper` hundreds) between cts and finish. + + +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — asap7](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| swerv_wrapper | -80 | -80 | -318 | +| mock-alu | -289 | -303 | -300 | +| gcd | -85.9 | -110 | -96.7 | +| gcd-ccs | -101 | -93.7 | -96.4 | +| ethmac | -88.6 | -103 | -93.3 | +| riscv32i-mock-sram | -47.5 | -52.8 | -81.3 | +| riscv32i | -47.5 | -49.8 | -81.2 | +| jpeg_lvt | -30 | -30 | -63.9 | +| aes-block | -84.1 | -31.1 | -56.6 | +| ibex | -79.4 | -74.3 | -52.5 | +| cva6 | -50 | -50 | -50 | +| uart | -47.6 | -58.7 | -49.1 | +| jpeg | -34 | -34 | -34 | +| aes_lvt | -18 | -18 | -26.1 | +| aes | -28.9 | -28 | -24.2 | +| aes-mbff | -20.8 | -19 | -20.8 | +| mock-cpu | -16.6 | -16.6 | -16.6 | +| ethmac_lvt | -19 | -29.5 | -15.2 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/asap7/wns.png b/flow/designs/asap7/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..2a4a021c3d2183cbe220a3fe490746ae24685100 GIT binary patch literal 95233 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 +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — gf12](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| bp_single | -632 | -470 | -227 | +| bp_quad | -375 | -223 | -225 | +| ariane | -257 | -214 | -212 | +| coyote | -200 | -200 | -200 | +| bp_dual | -758 | -100 | -165 | +| ca53 | -100 | -100 | -100 | +| swerv_wrapper | -75 | -75 | -75 | +| ibex | -51 | -51 | -51 | +| tinyRocket | -40 | -40 | -40 | +| jpeg | -96 | -53.2 | -25 | +| aes | -21 | -21 | -21 | +| gcd | -21.5 | -26.3 | -14 | +| ariane133 | -20.2409 | 0 | 0 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/gf12/wns.png b/flow/designs/gf12/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..16f76733811d8b0997f833b4bfe4711acf33da0a GIT binary patch literal 76871 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 +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — gf180](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| aes-hybrid | -0.967 | -1.1 | -1.1 | +| aes | -0.789 | -0.876 | -0.918 | +| riscv32i | -0.586 | -0.659 | -0.63 | +| ibex | -0.5 | -0.5 | -0.539 | +| jpeg | -0.375 | -0.375 | -0.375 | +| uart-blocks | -0.3 | -0.3 | -0.3 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/gf180/wns.png b/flow/designs/gf180/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..0d07611130ffd878f3d3338e5d3513d24120b0e4 GIT binary patch literal 49531 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 +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — gf55](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| aes | | | 0 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/gf55/wns.png b/flow/designs/gf55/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc9693570e106ec54ec9dcf064f1edb2bccfdb7 GIT binary patch literal 31346 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 literal 0 HcmV?d00001 diff --git a/flow/designs/gt2n/README.md b/flow/designs/gt2n/README.md new file mode 100644 index 0000000000..459624ac72 --- /dev/null +++ b/flow/designs/gt2n/README.md @@ -0,0 +1,19 @@ +# gt2n designs + + +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — gt2n](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| aes | -25 | -75.2 | -75.2 | +| jpeg | -50 | -50 | -50 | +| gcd | -25 | -25 | -25 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/gt2n/wns.png b/flow/designs/gt2n/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..c299f3d54bab234bd644cdd34aee4db721ac39a3 GIT binary patch literal 37617 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 literal 0 HcmV?d00001 diff --git a/flow/designs/ihp-sg13g2/README.md b/flow/designs/ihp-sg13g2/README.md new file mode 100644 index 0000000000..3b20f3eb50 --- /dev/null +++ b/flow/designs/ihp-sg13g2/README.md @@ -0,0 +1,23 @@ +# ihp-sg13g2 designs + + +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — ihp-sg13g2](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| i2c-gpio-expander | -1 | -1 | -1 | +| ibex | -0.4 | -0.4 | -0.4 | +| jpeg | -0.4 | -0.4 | -0.4 | +| riscv32i | -0.3 | -0.3 | -0.3 | +| aes | -0.225 | -0.225 | -0.225 | +| gcd | -0.13 | -0.13 | -0.13 | +| spi | 0 | -0.0426 | -0.045 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/ihp-sg13g2/wns.png b/flow/designs/ihp-sg13g2/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..3553d9a981d323aacca5820f32a52b60aa5e3173 GIT binary patch literal 54069 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%0Aek}B?UhU@ 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 Rr?s0-*V^n +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — nangate45](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| bp_quad | -150 | -150 | -150 | +| black_parrot | -3.31 | -3.45 | -3.26 | +| mempool_group | -2.31 | -2.31 | -2.31 | +| swerv | -0.671 | -0.719 | -0.677 | +| ariane133 | -0.579 | -0.569 | -0.595 | +| swerv_wrapper | -0.344 | -0.357 | -0.35 | +| dynamic_node | -0.362 | -0.38 | -0.344 | +| ariane136 | -0.3 | -0.3 | -0.318 | +| bp_be_top | -0.331 | -0.315 | -0.318 | +| bp_multi_top | -0.24 | -0.24 | -0.24 | +| jpeg | -0.147 | -0.165 | -0.164 | +| tinyRocket | -0.14 | -0.168 | -0.154 | +| bp_fe_top | -0.09 | -0.09 | -0.131 | +| ibex | -0.11 | -0.127 | -0.11 | +| aes | -0.041 | -0.0692 | -0.0667 | +| gcd | -0.0529 | -0.0657 | -0.0559 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/nangate45/wns.png b/flow/designs/nangate45/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..8820d577f930f6a4832742dfc4dd2b8d7825c679 GIT binary patch literal 92126 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

ynL`sa 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 literal 0 HcmV?d00001 diff --git a/flow/designs/sky130hd/README.md b/flow/designs/sky130hd/README.md new file mode 100644 index 0000000000..5825fee559 --- /dev/null +++ b/flow/designs/sky130hd/README.md @@ -0,0 +1,23 @@ +# sky130hd designs + + +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — sky130hd](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| microwatt | -2.71 | -2.8 | -2.73 | +| gcd | -1.36 | -1.58 | -1.47 | +| riscv32i | -1.41 | -1.55 | -1.37 | +| jpeg | -0.716 | -0.877 | -0.654 | +| ibex | -0.505 | -0.576 | -0.5 | +| aes | -0.18 | -0.554 | -0.425 | +| chameleon | -0.321 | -0.356 | -0.282 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/sky130hd/wns.png b/flow/designs/sky130hd/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..726d41557aa758aa956f8970afdbfe22788f9353 GIT binary patch literal 52402 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 IbM*561F&^u{Qv*} literal 0 HcmV?d00001 diff --git a/flow/designs/sky130hs/README.md b/flow/designs/sky130hs/README.md new file mode 100644 index 0000000000..4df31eea08 --- /dev/null +++ b/flow/designs/sky130hs/README.md @@ -0,0 +1,21 @@ +# sky130hs designs + + +## WNS + +Worst setup slack per design at three flow stages — clock-tree synthesis (`cts`), global route (`globalroute`) and `finish` — read from each design's `rules-base.json`. Negative means setup timing is not met. Values are in this PDK's native timing unit (ps for `asap7`, ns for most others), so they are comparable within this PDK but not across PDKs. + +The bar is the `finish` slack; the markers show the `cts` and `globalroute` slack for the same design, so stage-to-stage movement is visible. + +![WNS by design — sky130hs](wns.png) + +| design | cts | globalroute | finish | +| --- | ---: | ---: | ---: | +| gcd | -0.358 | -1 | -1 | +| riscv32i | -0.303 | -0.695 | -0.571 | +| ibex | -0.35 | -0.525 | -0.35 | +| jpeg | -0.2 | -0.268 | -0.2 | +| aes | -0.14 | -0.206 | -0.145 | + +_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/sky130hs/wns.png b/flow/designs/sky130hs/wns.png new file mode 100644 index 0000000000000000000000000000000000000000..ad4963f3c3e4b428bd332645a02330056dec18cf GIT binary patch literal 45068 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

O#l%>9v~Q}lf4j#24qOc3ZQ>5XML8;@ z_RJn^yK<4gkT*d2{;3PfOVNIGSPuO5O zaCr1ch#g}Zr?H9YFeg{?fdE`$zbAAeC$XU0vCygK&WD#9FIl@J3K!sH%uoGgn)&lA z@~o#m?a}p`itY%l-refZAxI?$9yhNRt@=3LuYK>}mA7>varM2oBF*I-YRW4Fip3_ zO{9ghwBicJbc6!MWm`H|pXxqowE588#5FEgabC#!l9a8cUE76>@(qU@9B*aQ+V8NS z!Mj~mCbk*}f|{GS0|egJC@}FiJb9br)Q4HhBg5g&Z~BU8#`W9i5t$p6xu~43nLDR) zTUJb%-KXS@R45??P+TBcMlI9v#pw0SanAC6YUt?HC<#WQ1uFYc@7SkC=2D zL$E^OUehW0jHXSyEX1teOXkPiRWotlZi4eeioCij<%OhzlH@~9YM2OrQlnSBJF}4d z*RU0OLkE3wqB>DtHE*PJt+d3%b}aZ>LzX57mP7q1hB&;I*1V?lr zebQ``7`1l=mE^sej})pF@OES(Jb;+U@>n<(R8Z*AvG33+ec`^+AzmJRP-tiu-j z#CcG$>oUXXW9*GF)fuZ3!#kO>>9X&3_I2))!`a*Jhor%&_ynX3(jGi;==I@q zo=C``F%vRkTIU*R=Qs+H6tRg@Lu^n(!;;qeSWa!%#<+>q^P2(EoO$-orEOme?pHNA zXLV%uQOk&lV}b8{r^ch}%@(iS5rfke>~f-c%4g1S(Xv9|x-P=g+2VK@RNWYvIFI2^ zb<~g*zyA6=C+EeGTkZwMQ?Jk*5LhRnI~C|&kj*o`UT@#W6AF{dKjoieGPo~3d}9@{ z_Smtyr_5^%10F+{$_hmr)!Lk4kFm}b^&wXFT}`QOuw>QRrr5Sl8GX3^7zYVO$$t7H z`P~rb_AubI;PJxoGSATP>^C$ZlQ0yN!a&RdJ~1I>_PSskMYU>GO!z5zCBuG1mblYv zJwLs&cJE1+ua4a_zuxSQO`wPGT;gEu-@o5?%zr`HjxYVQF{LxvsNt7O-!IT4P2(9mkupMhD`Oa8z<@U5Kx5LXw}L zM0-}A%fJh=XVuA0@}^HrjBpm??0To+qlM`n9}E49rH}elzKIuf%Q~5yP3sXfd1cm% z@lktyLUTTMdmOh?>e!-??3ZI6)^-z4f1fd}U+FfPmEygYFa5BtO}Jd$ht??5B2v@z zc=q43ues^+ASPj3Q;huRz*aNP+@#4l*jg6PL9PxF^ZNOrWSNYGuyApajtm=_*_ZPrY)r@Z7Su%~i&P`HP3 zo zo_#INyeP5PzUFQ-0CPxY#j2%?1 zbH#dhq%ACL6rCR6Hg1V7H7Y5lzA>%1B<3{HIkCN3Bs?AuvB6DT&d#;v$6;}cq^7mh!%_9gL3{eet-q*TJ)H>VX=9wFeq)-F z^aqq%=`SW#4R*Y(t%YU*;%8uFv962h=fsJHxyd>uxyUIKzBKT!7H2-Va2-2#0r@Q9 zp8&R;#5FL8xv1X+s|qjr7X``w6NJA5C=+}cg@p4F4G=UpYsoy0SvP;8OGXwBFwk{o z7s$R6Jz)SQ^1vNbfH4xeL_+jeRozCDwDjif+dyT}$eUDwEB~Eo{xMK}R5%%1e^F32 z8B9BsBTQ8~&*uKMvOCbf zKn=I#%V7t6&zuRb50katE+*9_tSVRsV@9SF>4dW%hnEVnUX3p?itFSOjOkk7{H8lv*=5=w}4w4N?u^-u_`W~!i>i?Y@YJF14BnmuMdYr8?NnkNLt- z*g1Xu$qDa%#~B}uf~$S<;9C#)(CgL;#7Y@Wcyt-l)ysb($VTY3ZZP;%afbIE{K_Twm%oEI# zKc=sp99a-FbeM2X3{N&VX^a5l2yt8@c|ru}=(Vo>0rZ~T#l?l>BXE9bOa$T?Xk#ke zfhX@=H&|I&S+F=)&7IM3mtH54$jCxYzX_e&2{LFzY-RAZV%eio3%R>O*qem^#(hXU zPe_kO-~_i{>pkZ<8q3=-bSEK4MPL!WL6Uc~J=gV&jf+l|s6L*TvyR}3j)9~IX*BGS z$tao%TeV?_x@pwU)%j4oz5@t_cn<)F3+WdFLRC-1P>FvGQb`c+b!;U28)glPIeV`j#E;s-}B0Oklox^Yh&=^J+&-jy;*?|ml zr&E$?n`ysK(HoUU%_PjXW|y3v^M7X4Ul;%6%(TZQR(DU|D`>;%WN4oM1pUi4!u%xN zGolzsC5EWn~}%s|e*#^WvE+ zG8k_32YB-YxnDnwCDbrMMr1E}bc?k>4T5z52lb;RKkHq;fMEQi4<})3IZyjtw)^yX z-vcjBkS5&jnjehVFvhbpkQ%~=JrYL-$canQbh}*?Q5Z(=P??ODLax>pGuk0nPs`L1 zVNL1-&jIyLhhx1~6YVYN0X#tq$A*k|qrIN4|H7s}X8WNl9B5UNZYz1_Xzmk+DY&&o zxF?3+gbX&~Uf(-T&;GXtPO?{b)Il}IM$6JAN|-|8iXE!94^LlM3B!{!{zuF|Uw!U> zsQaep;j+{BxZ4y1e3A8IXkd6RMZ1p3M zub16%$h=*(@oMW^b=}9BzEH>+b7NiSD)^s4jT=Eczoj&^Zx!71*TYE5@<23%_D-?T*bE zs$#9N(ec{QYtr|SFTqwW!K}@WWB-!}stZ57OfD?#I@t*3_aW3AfQtu*d?P06-iET| zM;FS+WGo!{KBLP|9#4}kDRRAwYBk04CkzF=>T}h6K4$Zl2&I|inY5{r|2o{7 z$J1*pH@pa5afX_lZGX$h?&)AM3nF?AQfU*RhPg{Gsn`UR_Yg)Ec>f?j|C0nlzUa^C zyi?@kRdm2m z-*eh}(Qavo@3>1Iw%Lp8^+OxQIIf4IEf2`VW)hO`txwVj>@snmzoe-(&N41=;Jtlsj zLO?0RnSNjx6QB1!1X~x=v$`za6`meW(DY#(?2r@ZkwIlvJ63voGRm%l+fv7%>fea3 z_h$?y478+2m`5F!@e}#w>S#N7y;|X%i|M@5w5W)RU58`J?!m_TA-uE??Wp|IC+8Xg zO?-|Nygb1`lCTb?Cy5GYPY!puNTlF6u0FIesAiHBK^@7!kxZlRJPgZ|Yd-t@xLwEf z6qbT%F{g#$EuxD<*24B<_aj~A`I;?dUR>{wYSu!o%OvaXyf`e_KJ)T+Ye2Tz#xG84 zStjXo`b9@9LZ8UkeR;gkhlx8*il(_Z680ZHpPuGg*6%}E5FXH^9ZCQkbhP~AzzO(A zI3c&uhpSCF_xz`G?(Y%s^Wtu#D_X$p1^g|NEYEuHNvc|@ontd&^=|I!<2JXCi_2H% z7!0b4is~0g`7w;Nie2tB=&^E=k;ObuTL3((QZlYzD8F@d^lGOopr1u2M{ah|&9P?3 zEb>3umT2%6cM2yU2`hs2iGfVU+pzf6BLzxmaW0L9MyA_x2M>a>BKtW*`;q>j;ljjE zUX|os6#%U(XnFrRL}{O4-QBJIj!6a(MxBPGWvhd~WZ&Q&ckXlY0ar)wSBc-NgDS-;ORlVaAb8Y$vrPkWI~2GqdI{N2F&FS)9&qJaj^{5&-Y zy=W^d>-I?WG$tCQsckMseQ})X32DTp_dGhc0}HuaI6TO+(`i|uu@Yf$t*n#lxS@Dc znwXlp-yov4VikH>cK@QUKJZB%#`4)LMc5_7EySdKR=m0=%t!wc9md~quuZ2~-&fc5 z>bhu~wiVu`h6Zu$2))e%8`C`@Q5hMSh1ae^C%fwumOG7mfxf&OqxI?SFB(PCLyKodE)-3U+z2~p9&Yk3nQDQzfjXlkJxg%$Om{}H z=4$>8eKTshN_r9!p@TCs&pN(=$uW{(&#z}dl-MK}Eh2ebzy7U5Vo)QM5yVt&Gmk#W zR^@wkz@e120``T?OquQ-{X(RQo@8Y?UTRftw`sTSxgMnex2f+hMpR{ulVjx6J2<(r zBXRaE+r@3ej+nN_3Fn#&e!2I|q`GLjz_-6X*8NKHSYf0?zX8pQS!01jU0r-gS=6RB z-LH;SE7v6GI>l4bPbmQ}sqV>jp#Gmdr4=Oek!J+x*P7X-UY>-u*pKmxTbV6_9z9CI zR1mVpkvdH58>afAR3kmkIwFbyUQ)>`ck+J1@$g@KCdA}-ai!;f#u-2xP9UsC#JXq@GN9ni^=O{y z?rIia?04BmLKjs+Ry315^IxDAxIBNRFdp9sfPCmWsYDnlbyF6lvxRpHo>qGN+)G-S(D*;g| z4mP&(|LO~U2?TbwOT0v%HVBFt>(y>2znz%@Y;MhI7DR@t+v*}1tJ$@?!5Ui<%~*A((FVUChK zFfz)6jPBuq)hZ9+)&n)R&m$k+y_?h%*h>-(k?}t@1pYPDj6a9;9Al~Xpr#xY6l74a zLz(oV!DSKd&k?Do9wfqYAP4#T+L}|%i~lVj^ZB#}j-Y6BK^yuDokSyo8CS(&d6Hcq zqxGlzZ#to?sKt9J1EU?$#$di3adg2C4qT>ArTP!C@lVz2|CdSTQT>S#vOo|YxK7$u zm}5q-F6@5};-3}&qwZo>oJ+hij6aarqySz(?~U#Ku3P_i&1}e75W@iic08CnbRyXw zwx>y3mfQ=hd(RV*(*Ig>JVst<&9xM1G!*(1aqj*t)qlxe{WW;|mjI%u;gPc!iP$>% zi!|!~pZ={H6c_`L-GBe3%=-5Up2MJ8)ODgyKI z*LLk`;BjiOXCM;4SpOva`z*?lnk3_w)`X-?=oRSyE1+y40#3f=Vib$UcCdbrL2&2R-JFZ!44G- zMOBEN;+`TM^{aR(@QV)o%q13nsK78#pb7&=PamH~Kpg4BcTBf*TPGESICJ*|{UW-; z=jXx*r*rQcRESR@YpO@XBGQ773hzl`Lvd7fqjD1(g%blPro07LIdAWq zf^Oeq)i!C6#V7j>mU72$L!@rk$y5+aH4#){dxG*ngw56>e^HTwXukN`du7tjz|ox1WKx zr`<-4f0WcfZL1z$Ub^`u8#--7fd9jz6qYKP8(77LS{E_m4KGr#zk_ErF@2be^_~Aw zllEJ03Q9?h{+G4k@7tqz2(+znIC4bcIlzhvUWphKy>ZV8bIz&wGd;l<-e<~2ebk-)S&+)X{<_vOIt*JUWJCYZsj_+bdm?3GvZoXD zC)ptjAP;-r%z`f@=a7bWe@#_Y6)ve~a6-6Xstd~pl?)xxn&#$buZrtS@sfezgQsX% z#R^{)gO`FVaBk?3U(XTpAGzO_YIsJSzPA>Fm%M_<~a;~*9P&$@r|Ucg5Z>JcfkzPcCH9A z-AY`ME;Hpp<^f6)9JrMrvGv2oK_XO${*@^xW%rzj1|)G1v$iHP!9fF#z!pRHkRe_o zeQq)bP8czgJL8YR^BYeLmTyfjeEQ)2{hcxe7&FejSiVYheyqHp%Z+IQ3;$H_5Ld*H z_wF{PrAts2(joFm@XFCJ&s`R&y!q2Lc65>aiSX~C;%(QSz-8M`W-4l-``IzSpAEU^ zL2BhFDui5rZ*_x4 zLNduCirIexXeCifB*ZNS886wSnCy#&n6D)w;mAygE`0dMT-P6+^Jhb<3`;~ZY`G4{ z$@c@tmGL)jNbG_ec5Jo7{!Sm?rJDtFA|aDccQ7(0BPwXZukItx5Sd9P7Gosafvsl@ zd|JXCx+GR|kD3xblkgG6F<@xT5YnE&f^cG3g?ih5V(0=r08!GK>ya0g&*J)OC~akx zO%$exIs>SO??UO2*ofBy^g zHqw_sxDMSX&%tl;Pq)}81>@|lDDmj%R6oMeY)lx9MLx9y!ODL zp#vh~^}?ZL_lXx}=6*|ELMk8VA{#rMKj8Fy2b{vV!J`#!CqrdGlgK^*8X zb~*@5n$z;EhFA@8ZO8Q4sN-zKJz_78O9nqC3tveT`ohDle<+PVF+F^>RsyHGx~4`6 z(!j%fm=pxlPeoI+)u@>!Fj%mseCAa=lpe@98b_W5I#B*`kIV~XKw=>w+B8aMRUo}Z zb>%&f4OxodpNMV!fJjh!czD#OZ{@If{~_n+A?KLvn^QGEH4`xCoM?maG(0;7z%}pH zA}I10@+78w#LPLNW_k5DSW*S;!7Ra(SH-wANCy+i2O1PToEbgyU7KK=F{ge5(o_U# zgGR`OaeG$y zx?p%Gm3&DE@NrqDLB#>D4^LqYNIsr#xX)fiz~AfLRpU}A${O?=DnWaP=)LwVxvmfq(zl}Iv46d^*?Xo(Wbia32GzNyiU z3`k@2VSvo0XT#W)o=_SYGFb(Z^Ev=@NnmCZF zR~1tujuU;4F?mZIqL7^ z7Gr!Gv{OTo*Q$seI#3;-wleSpg3sPJ!)h2ix@R3emuJyoe&ZdwEe&J}m8>mPdNlF) zpP`8y;OVqWVx>ChC<0KcOo0fFDom_WaW$$F0!mxAT(A!!fhOs!kgS~SUJSV`HGgq( zm$XcCp)8Fk2K%n_Sd&Plf1GX2t1t42M}h5`y+vpDox~Jv*VnJNz^>>*Ika>4 zM=OpWc90LZSqNa4>+J7ed+*dOMDZ?MofiJHg6^pFkMDkvW5YKfX(@vCXyjb6@v#vX z`p>IAeE8WX_^G2Dcg^FB3_mdA^K29t^mqUM;=B*(Co4lN*65r)bqAGi42B1BQPZC5 z?&_k-*V=%;afQK3lY%N*60>`jgH1d^6K?qQvj7QcaRw!^oDiN_4@aEm1qELbZYQ~V z;a1-@I_igO^ZAPxZ2R`D+P7~XO_EiB$@`b*l#G+2x$3oU-W1uhWi5#67YaCd4?}h5 z^qwsr7d=E>c&!iSrklL2u3m?eT7lQYt?TohXNP|3`Boln3Ryb=t;?79ypI(1f`aP_ zH8r)v@1Rs3SeyzMM|}+3AyAZqD&a>c1@VG{g7h>ZI>k4)!@j8sI6-Gm&t14~mNqrz zz2^scVsvbJT3S|iortKYC5BWPwr_7tiR9rqa9{&ca+Cf`4PLpq0_nOX8-CLXi z>7SF*(!Keky^@t?WAksr1gLSIx22}0Y8G$|?Io%3O*CC$!@BqfE%4hUX(3NI9{7 zJO2s*hGRc|ltI{6w?L1M($dyOb`6iVw<885j)Uld@b8Wf2VI`hFJBh_{ox)ydPIKi zpn!l`e@te`eS8ss?v_w4gCk|`?@x9OM`bDmT4C!%MMVoSQNuMT<;_5K@6<9Ze2^_V z+;{Tw@~X9t;3F^y7}M?Fzkg@In_5^V76KFcg}YNZPhlY|6w{brfjHfYkKY@o$cafC zDheuhguj*H;o-HQp5VFSqp?7dy8^TNlzEGm8Qe!y5=Jbn=iKWsI?Id#Df8Jg_sB>V zyh-P`Z+Bpx_!ZX^S3d@!3|FjPUEbQt$RD~Me@q%90M+`mNTthQe7lT7l1r`&*ixZ7!x#1bv*xG)Cx1cwRC?kqZrAHZYaVvChj;{=lh`4BKx}J@VO-M*c4?(Sr zFO6pN#rNSyajvmGC!ot0;eeEP6Ft2hiUnlr`S{oQ8WQKA1grV`H!r zz8;A_sAz+NLxO@XA`81_YkM~Nwb$#0N{*`NA}8drhq*;hv8 zX^u;iVxZlNVYhvS$O8PoepuaHoaybWi>IELn5YE|gMnzln4Zmp z3CX%0sOVAit-{$Ldj><-fS6Rw77z|s@FXoQ8U?5|H~{4Q!c zKu0)RNG?@>-GtiQ^!=zP-mpcihCNj0^o)$wE?>S}=-4rRm^K)H$Uvdi1$?0lI9_d* zzVz$M{0~DzOFKGPtNd8iWK&x3JeN^A!7foSX3v`CDuhS^p5kdaIeH#DbMpf^xw#kh z^>0ICRVw%RnIvat^H13;G3#`zxL6F&$DM?49NL%}T(MagX)gqwq_)2PB&Z>sh>yT9 z;%z*ODHQXL;yQW9!$I~V)RFu8`yV60VE~5&eU+d(BS#;qmnhoChCUsNyzZJszg|4Miec^yd0)UI z;NN*5Cae`)i9}2YkIOZAXTa`jD=DaHpI;wl#3m2=p8YA`njNuOK|^D$ot<3^-ni^8 zb<1;0Hs{%X_E%L^UcQ0g^R3d-*1mY<$|`b4-2AmkSXdZ*JJ+Zv*7H$fG)zoP&`^+2 zQ=^AWhop_oVeB(LoI4nkZ?MYWfg>j^BeV9KReq+Kwe?Towobgm*u=ysBO}hwpFekE zM`8`wjvZqH+wCNVt?Ifr0K;a3cDieJHvjYI&tJB;GsFC(rP%2hFe8w>U12Uqp`c&2 ziHXSz31xYC`EqE-Z_BGk(c-v+(-QlUoQ82Qy~?VpRzrN?6=3XLAvF&I0&b(eHOh&A zY|BNU*7x6B?&~NKFDxv?{_#W1X9I#0J3K#KvQz;@#*f(OWG@`#<2!!k%0955T!Fp9 z4~o=xoF8!U@PTv;vtSzdgOs{bEsu_ky$#eeRkwuY{Q2{_?{_Kb==dTR@4`J*1^(MO zrt~CqbxYo7vxwbfIMooH@5dtUynnvr?7kGWF90mcD=Jn(>IPPK5|AyDWt2QPfbxq$ z=-N(v_ru8n!pI#xe0|*>Jz_#d;fcgIRV#lBHhDSza8TU=-QwR*99J69d4%^{NWm}S zV)gL$KBcM22%vN$<(idM8P4k%K=(2nO!QL9uH#m046eePBVLpvceo!Ev{#t_3SO8J zeb_M#kr63_q@v;$M20S;B}vMjz#q?s@~=ebEXTGTFx`m$ERuG%qer*<`ugHcwlt}f zh?xWg1T4qp48fCiU%q^K{rdGwoD|E&c?Ye0tCjT$a^$YA&CnHZ`Shs^{l14st@qj3 z*o+Zl^qh^+ToNDgd+0}%zk5d`7b$Z5(xu(x)Kpi?;>{&F7jXReAiRIo$fy)c{r&rQ zA?JA^n1g-JHS4D;~F&==b*#)Je+g@J-Y&TUkWojiSd4Tc=|YCb`Cs}NdznYp==i0|Z!!U}9PL`~oxUW(H1pi$i(itB?1 zo4;8dMf=YaEGEdEOLcD!#7e`ad1IzY^MQHL*p)R(pgpOqtgMIb>V4UzX{MV_ZJm;t zNJMsd3?s_mS?Xi5_qp>z!KTw{&+SH8$hMA%@IfuI^Wecvh$S9AKIAEkf#P@xj7UoI z?7Dm{D2iNvSzEgagE?i_2M+C?0B+jXoWTlR8uIKvm$1%t& zi|))F2prvUcaKd?UB5KjToRavHiIu3CS90i#wA|`!$)~_bq`wh^E;6p67AgD1Y-oQ zO=9dDnT7A*o-@%BtZcEC^5&bOABR=mZAvX1H0~H+SFuruCjBxAcDYEpCSusV!gbqz z^_}})Sodx~J{^#kcLWE0Z4DrE;#j=G6;Uc^>ILA2WfGLDs5O9`r{^qUPpxnzg%0AN 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 literal 0 HcmV?d00001 diff --git a/flow/util/plot_wns.py b/flow/util/plot_wns.py new file mode 100644 index 0000000000..78a9349056 --- /dev/null +++ b/flow/util/plot_wns.py @@ -0,0 +1,209 @@ +#!/usr/bin/env python3 +"""Plot worst setup slack (WNS) per design, per PDK, from committed rules-base.json. + +ORFS stores a golden-metrics baseline (rules-base.json) next to every design under +flow/designs///. Each baseline records the worst setup slack reached at +three flow stages: + + cts__timing__setup__ws + globalroute__timing__setup__ws + finish__timing__setup__ws + +This script reads those values for every PDK that has them and regenerates, per PDK: + + flow/designs//wns.png -- horizontal bar chart of finish-stage WNS + flow/designs//README.md -- a "## WNS" section (between generated markers) + +No OpenROAD/ORFS flow run is required -- the data is already in the tree, so the plots +are deterministic and reproducible. Run from anywhere in the repo: + + python3 flow/util/plot_wns.py # all PDKs + python3 flow/util/plot_wns.py --pdk asap7 # one PDK + +Only matplotlib (pinned in flow/util/requirements_lock.txt) and the standard library are +used. +""" + +import argparse +import json +import os +import sys + +import matplotlib + +matplotlib.use("Agg") # headless: write PNGs, never open a window +import matplotlib.pyplot as plt # noqa: E402 + +# Stage key -> (short label, plot marker). Order is flow order. +STAGES = [ + ("cts__timing__setup__ws", "cts", "v"), + ("globalroute__timing__setup__ws", "globalroute", "^"), + ("finish__timing__setup__ws", "finish", None), # finish is drawn as the bar +] +FINISH_KEY = "finish__timing__setup__ws" + +BEGIN = "" +END = "" + + +def designs_dir(): + """flow/designs, located relative to this script (flow/util/plot_wns.py).""" + here = os.path.dirname(os.path.abspath(__file__)) + return os.path.normpath(os.path.join(here, "..", "designs")) + + +def load_value(path, key): + """Return the float value for `key` in a rules-base.json, or None if absent.""" + try: + with open(path) as f: + data = json.load(f) + except (OSError, ValueError): + return None + entry = data.get(key) + if isinstance(entry, dict) and isinstance(entry.get("value"), (int, float)): + return float(entry["value"]) + return None + + +def collect(pdk_dir): + """Return [(design, {stage_label: value_or_None}), ...] for designs with WNS data.""" + rows = [] + for design in sorted(os.listdir(pdk_dir)): + rules = os.path.join(pdk_dir, design, "rules-base.json") + if not os.path.isfile(rules): + continue + vals = {label: load_value(rules, key) for key, label, _ in STAGES} + if vals["finish"] is None: # need at least the headline metric + continue + rows.append((design, vals)) + # worst (most negative) finish slack first + rows.sort(key=lambda r: r[1]["finish"]) + return rows + + +def plot_pdk(pdk, rows, out_png): + names = [r[0] for r in rows] + finish = [r[1]["finish"] for r in rows] + y = list(range(len(names))) + + fig_h = max(2.5, 0.42 * len(names) + 1.2) + fig, ax = plt.subplots(figsize=(9, fig_h)) + + colors = ["#c0392b" if v < 0 else "#27ae60" for v in finish] + ax.barh(y, finish, color=colors, height=0.6, zorder=2, + label="finish (bar)") + + # overlay cts / globalroute as markers to show stage-to-stage movement + for key, label, marker in STAGES: + if marker is None: + continue + xs = [r[1][label] for r in rows] + yy = [yi for yi, x in zip(y, xs) if x is not None] + xx = [x for x in xs if x is not None] + if xx: + ax.scatter(xx, yy, marker=marker, s=40, zorder=3, + edgecolors="black", linewidths=0.4, label=label) + + ax.axvline(0, color="black", linewidth=0.8, zorder=1) + ax.set_yticks(y) + ax.set_yticklabels(names) + ax.invert_yaxis() # worst slack on top + ax.set_xlabel("worst setup slack (PDK native timing unit; negative = not met)") + ax.set_title(f"WNS by design — {pdk}") + ax.grid(axis="x", linestyle=":", alpha=0.5, zorder=0) + ax.legend(loc="lower right", fontsize=8, framealpha=0.9) + fig.savefig(out_png, dpi=150, bbox_inches="tight") + plt.close(fig) + + +def fmt(v): + return "" if v is None else f"{v:g}" + + +def wns_section(pdk, rows): + lines = [ + BEGIN, + "## WNS", + "", + "Worst setup slack per design at three flow stages — clock-tree synthesis " + "(`cts`), global route (`globalroute`) and `finish` — read from each " + "design's `rules-base.json`. Negative means setup timing is not met. Values are " + "in this PDK's native timing unit (ps for `asap7`, ns for most others), so they " + "are comparable within this PDK but not across PDKs.", + "", + "The bar is the `finish` slack; the markers show the `cts` and `globalroute` " + "slack for the same design, so stage-to-stage movement is visible.", + "", + f"![WNS by design — {pdk}](wns.png)", + "", + "| design | cts | globalroute | finish |", + "| --- | ---: | ---: | ---: |", + ] + for design, vals in rows: + lines.append( + f"| {design} | {fmt(vals['cts'])} | " + f"{fmt(vals['globalroute'])} | {fmt(vals['finish'])} |" + ) + lines += [ + "", + "_Generated by `flow/util/plot_wns.py` from `rules-base.json`; regenerate with " + "`python3 flow/util/plot_wns.py`._", + END, + ] + return "\n".join(lines) + "\n" + + +def write_readme(readme_path, pdk, section): + """Create README or replace the WNS section between markers, preserving prose.""" + if os.path.isfile(readme_path): + with open(readme_path) as f: + text = f.read() + if BEGIN in text and END in text: + pre = text[: text.index(BEGIN)] + post = text[text.index(END) + len(END):] + new = pre + section + post.lstrip("\n") + else: + new = text.rstrip("\n") + "\n\n" + section + else: + new = f"# {pdk} designs\n\n" + section + with open(readme_path, "w") as f: + f.write(new) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--pdk", help="only process this PDK (default: all)") + args = ap.parse_args() + + base = designs_dir() + if not os.path.isdir(base): + sys.exit(f"flow/designs not found at {base}") + + pdks = sorted( + d for d in os.listdir(base) + if os.path.isdir(os.path.join(base, d)) + ) + if args.pdk: + pdks = [p for p in pdks if p == args.pdk] + if not pdks: + sys.exit(f"no such PDK directory: {args.pdk}") + + processed = 0 + for pdk in pdks: + pdk_dir = os.path.join(base, pdk) + rows = collect(pdk_dir) + if not rows: + continue + plot_pdk(pdk, rows, os.path.join(pdk_dir, "wns.png")) + write_readme(os.path.join(pdk_dir, "README.md"), pdk, wns_section(pdk, rows)) + miss = sum(1 for _, v in rows if v["finish"] < 0) + print(f"{pdk}: {len(rows)} designs ({miss} with negative finish WNS)") + processed += 1 + + if not processed: + sys.exit("no PDKs with rules-base.json WNS data found") + print(f"done: {processed} PDK(s)") + + +if __name__ == "__main__": + main() From 0364faaae0b5e9da67cd463e40eee66b01c255c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Wed, 24 Jun 2026 10:55:37 +0200 Subject: [PATCH 2/2] flow/designs: add cross-PDK WNS estimate-accuracy view MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extend plot_wns.py to quantify how well the cts and globalroute worst-slack estimates predict the final WNS. Each design's per-stage error (stage - finish) is normalized by its clock period, parsed from the .sdc, so PDKs with different timing units are comparable. Adds flow/designs/wns_accuracy.png (per-PDK strip plot of normalized estimate error, + optimistic / - pessimistic) and a new flow/designs/README.md with a "## WNS estimate accuracy across PDKs" section: a per-PDK MAE/bias table plus hand-written findings. Covers the 67 designs across 8 PDKs that expose cts/globalroute slack and a parsable clock period; the rest are noted as omitted. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Øyvind Harboe --- flow/designs/README.md | 57 ++++++++++ flow/designs/wns_accuracy.png | Bin 0 -> 84763 bytes flow/util/plot_wns.py | 193 ++++++++++++++++++++++++++++++++-- 3 files changed, 240 insertions(+), 10 deletions(-) create mode 100644 flow/designs/README.md create mode 100644 flow/designs/wns_accuracy.png diff --git a/flow/designs/README.md b/flow/designs/README.md new file mode 100644 index 0000000000..c2b471eff6 --- /dev/null +++ b/flow/designs/README.md @@ -0,0 +1,57 @@ +# ORFS designs + +## Findings: how accurate are early-stage WNS estimates? + +Reading the committed `rules-base.json` baselines, normalized by each design's clock +period (parsed from its `.sdc`), the picture across the 67 designs / 8 PDKs that expose +`cts` and `globalroute` slack is: + +- **Global route usually tightens the estimate.** For most PDKs the mean absolute error + drops from `cts` to `globalroute` — dramatically for `sky130hs` (10.5% → 1.9%) and + `gt2n` (3.3% → 0.0%), and clearly for `gf12` (2.2% → 1.1%) and `ihp-sg13g2` + (0.6% → 0.0%). `ihp-sg13g2` and `gf180` are already accurate at `cts`. + +- **`cts` is biased optimistic; `globalroute` often overshoots into pessimism.** Every + PDK's `cts` bias is ≥ 0 (cts reports more slack than the design finally closes with), + whereas `globalroute` bias flips negative for `sky130hd` (−3.5%), `sky130hs` (−1.9%), + `gf12` (−1.1%) and `nangate45` (−0.5%). Global route tends to *over-correct*. + +- **`sky130hd` is the exception where routing makes the estimate worse**, not better: + `globalroute` MAE (3.5%) exceeds `cts` MAE (2.9%), and it is consistently pessimistic. + +- **Outliers are design-specific, not PDK-wide.** `sky130hs/gcd` has `cts` +45.9% + (wildly optimistic, fully corrected by `globalroute`), and `asap7/swerv_wrapper` is + +14.9% optimistic at *both* stages — the cases most likely to mislead an early-stage + go/no-go decision. + +Practical reading: `cts` slack is a usable optimistic rank-ordering; `globalroute` is the +first estimate within a few % of final for most PDKs, but on `sky130hd` (and for specific +designs elsewhere) even `globalroute` can be off by 3–10% of the clock period. This is the +design-level companion to the per-net GRT-vs-RCX divergence in +[`flow/docs/rcx`](../docs/rcx/README.md) (PR #4302). Per-PDK design breakdowns: +[asap7](asap7/README.md), [nangate45](nangate45/README.md), [sky130hd](sky130hd/README.md), +[sky130hs](sky130hs/README.md), [gf12](gf12/README.md), [gf180](gf180/README.md), +[gt2n](gt2n/README.md), [ihp-sg13g2](ihp-sg13g2/README.md). + + +## WNS estimate accuracy across PDKs + +How closely the earlier-stage worst-slack estimates (`cts`, `globalroute`) match the final (`finish`) WNS, per design, normalized by that design's clock period so PDKs with different timing units are comparable. Error is `(stage − finish) / clock_period`; **positive = optimistic** (the stage reported more slack than the design actually closes with), negative = pessimistic. Clock period is parsed from each design's `.sdc`; designs whose period could not be parsed are omitted. + +![WNS estimate accuracy by stage, across PDKs](wns_accuracy.png) + +Mean absolute error (MAE) and mean signed error (bias), in % of clock period: + +| PDK | designs | cts MAE | cts bias | grt MAE | grt bias | worst (design) | +| --- | ---: | ---: | ---: | ---: | ---: | --- | +| asap7 | 16 | 2.8% | +1.5% | 2.9% | +1.1% | +14.9% (swerv_wrapper globalroute) | +| gf12 | 9 | 2.2% | -2.2% | 1.1% | -1.1% | -14.2% (jpeg cts) | +| gf180 | 5 | 1.0% | +1.0% | 0.4% | +0.3% | +4.3% (aes cts) | +| gt2n | 3 | 3.3% | +3.3% | 0.0% | +0.0% | +10.0% (aes cts) | +| ihp-sg13g2 | 7 | 0.6% | +0.6% | 0.0% | +0.0% | +4.5% (spi cts) | +| nangate45 | 15 | 0.8% | +0.6% | 1.0% | -0.5% | -3.2% (black_parrot globalroute) | +| sky130hd | 7 | 2.9% | +2.0% | 3.5% | -3.5% | -10.0% (gcd globalroute) | +| sky130hs | 5 | 10.5% | +10.5% | 1.9% | -1.9% | +45.9% (gcd cts) | + +_Generated by `flow/util/plot_wns.py`; regenerate with `python3 flow/util/plot_wns.py`._ + diff --git a/flow/designs/wns_accuracy.png b/flow/designs/wns_accuracy.png new file mode 100644 index 0000000000000000000000000000000000000000..4c78bc48b61b7dd06a7d61c0339c403b1a2e5eed GIT binary patch literal 84763 zcmc$`2UL~k)-_6!qsE>@EP#RqM3f?3P{3$Zwtz^JB1L)!rAjwZv4P+Q>BT~?(mSX~ z6AM#)OfT+hl@(?XXptAV%In67Ue88c`TI+p8BhJ~byD>Anjcqx=-&8WZ{(l+|Njk} zUw`>!?}MUeS(bgh)`w2!^V*K6Dzooc^Pm58TOYz*pUgi?ZnFDwV}hF8(^I!~l9c## z-+J?v?-8+=-|^rK{@Z?7UOc1n4wJJIevk?jNE7PFwl+?2x1Sm)JL<;Q`a;w(Rf*lu zXZ^;FwNWz9>t1M{wsUYOFDs)sJ3GfH#QJ1g4@O9f&i*k!Gb%0Eu%I>4mPIe-oGW13 z;@$YPZTtN6aP8NzuBkHCP~6i?5$)OW9`e2qmqtkA(+^@XF3U^3ou9hJ%*@PUEvEu&OTJMbXjLgst9NR*CqI?EE!u z>b&=%eVEp}cYj{9Zr$JmuKbH0j3V;cR)$WqJ-+?vj~*4?*&3^yqBl3w>C!Ve80*d; zh^e^LY_^r=#$OM^*3i(DHpZ3R=D3`Gh?|?co~PkXKZ}Gyj3Tj)bPI%Y16wn9x5rHJE+%<6oGpgr&v#^7eL- z^5H)H!N$bKB<+&AG~>qHEo*4LFv%pS3I!jxeYcQhHxXeo)bw=iW_od|US&WySN_-i zm2+i->Nz%2V`F2&S3lf{ko14HVf*3FHQ^HWV?{gbBc(%4SU7ElTf%X1w*C80VJ>TZ zI4;X4s^^(_?4-G|{3CS-4b5JSl!H5;J$sgFJK7;%uH>taF({? zZ(~eb(+{g=zBqOI^i;i~hOSTtS(g+F<*>}NTbQY>)`Ja|2ZcUjz)F~0R4sceszXE^ zlG{XSXv8mLcTB$gY3t{VPG`9!ts-U$mRq@%)46l!+Fh0x=><&uw(JoOiwvPM$9uhuEw*DZA2Y}A?_ IjW>g`F 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/wns.png -- horizontal bar chart of finish-stage WNS flow/designs//README.md -- a "## WNS" section (between generated markers) +It also produces a cross-PDK view of how well the cts/globalroute estimates predict the +final WNS (each design's per-stage estimate error, normalized by its clock period so the +PDKs are comparable): + + flow/designs/wns_accuracy.png -- per-PDK strip plot of normalized estimate error + flow/designs/README.md -- a "## WNS estimate accuracy across PDKs" section + No OpenROAD/ORFS flow run is required -- the data is already in the tree, so the plots are deterministic and reproducible. Run from anywhere in the repo: @@ -25,8 +32,10 @@ """ import argparse +import glob import json import os +import re import sys import matplotlib @@ -45,6 +54,37 @@ BEGIN = "" END = "" +ACC_BEGIN = "" +ACC_END = "" + +# Estimate stages whose accuracy (vs finish) we report, in flow order. +EST_STAGES = ["cts", "globalroute"] +EST_MARKERS = {"cts": "v", "globalroute": "^"} + +_PERIOD_RE = ( + re.compile(r"set\s+clk_period\s+([0-9.]+)"), + re.compile(r"create_clock[^\n]*-period\s+([0-9.]+)"), +) + + +def clock_period(design_dir): + """Clock period for a design, parsed from its .sdc, or None if not found. + + Handles the two idioms used across PDKs: `set clk_period ` and + `create_clock ... -period `. Returns the first match (designs here are + single-clock); units are the PDK's native timing unit, same as the WNS values. + """ + for sdc in sorted(glob.glob(os.path.join(design_dir, "*.sdc"))): + try: + text = open(sdc, errors="ignore").read() + except OSError: + continue + for rx in _PERIOD_RE: + m = rx.search(text) + if m: + return float(m.group(1)) + return None + def designs_dir(): """flow/designs, located relative to this script (flow/util/plot_wns.py).""" @@ -153,23 +193,140 @@ def wns_section(pdk, rows): return "\n".join(lines) + "\n" -def write_readme(readme_path, pdk, section): - """Create README or replace the WNS section between markers, preserving prose.""" - if os.path.isfile(readme_path): - with open(readme_path) as f: +def splice_readme(path, section, begin, end, title): + """Create README, or replace the marked section in place (preserving prose).""" + if os.path.isfile(path): + with open(path) as f: text = f.read() - if BEGIN in text and END in text: - pre = text[: text.index(BEGIN)] - post = text[text.index(END) + len(END):] + if begin in text and end in text: + pre = text[: text.index(begin)] + post = text[text.index(end) + len(end):] new = pre + section + post.lstrip("\n") else: new = text.rstrip("\n") + "\n\n" + section else: - new = f"# {pdk} designs\n\n" + section - with open(readme_path, "w") as f: + new = (f"# {title}\n\n" if title else "") + section + with open(path, "w") as f: f.write(new) +# --- cross-PDK estimate accuracy -------------------------------------------- + +def collect_accuracy(pdk_dir): + """Per-design normalized estimate error vs finish, in % of the clock period. + + Returns [(design, {stage: err_pct}), ...] for designs that have a clock period and + finish + estimate-stage WNS. err_pct = 100 * (stage_ws - finish_ws) / period; + positive means the stage was *optimistic* (reported more slack than the final result). + Normalizing by clock period makes the error comparable across PDKs with different units. + """ + out = [] + for design in sorted(os.listdir(pdk_dir)): + ddir = os.path.join(pdk_dir, design) + rules = os.path.join(ddir, "rules-base.json") + if not os.path.isfile(rules): + continue + period = clock_period(ddir) + fin = load_value(rules, FINISH_KEY) + if not period or fin is None: + continue + errs = {} + for stage in EST_STAGES: + v = load_value(rules, f"{stage}__timing__setup__ws") + if v is not None: + errs[stage] = 100.0 * (v - fin) / period + if errs: + out.append((design, errs)) + return out + + +def _stats(rows, stage): + vals = [e[stage] for _, e in rows if stage in e] + if not vals: + return None + mae = sum(abs(v) for v in vals) / len(vals) + bias = sum(vals) / len(vals) + return len(vals), mae, bias, max(vals, key=abs) + + +def plot_accuracy(acc, out_png): + """Strip plot: per-PDK distribution of cts/globalroute estimate error vs finish.""" + pdks = sorted(acc) + colors = {"cts": "#2980b9", "globalroute": "#e67e22"} + off = {"cts": -0.18, "globalroute": 0.18} + + fig, ax = plt.subplots(figsize=(max(8, 1.3 * len(pdks) + 2), 5.5)) + for i, pdk in enumerate(pdks): + rows = acc[pdk] + for stage in EST_STAGES: + pts = [e[stage] for _, e in rows if stage in e] + k = len(pts) + xs = [ + i + off[stage] + (0 if k < 2 else (j / (k - 1) - 0.5) * 0.26) + for j in range(k) + ] + ax.scatter(xs, pts, s=28, color=colors[stage], alpha=0.75, + edgecolors="black", linewidths=0.3, zorder=3, + label=stage if i == 0 else None) + if pts: # mean tick + m = sum(pts) / k + ax.plot([i + off[stage] - 0.12, i + off[stage] + 0.12], [m, m], + color=colors[stage], linewidth=2.5, zorder=4) + + ax.axhline(0, color="black", linewidth=0.9, zorder=1) + ax.set_xticks(range(len(pdks))) + ax.set_xticklabels([f"{p}\n(n={len(acc[p])})" for p in pdks]) + ax.set_ylabel("estimate − final WNS (% of clock period)\n+ optimistic / − pessimistic") + ax.set_title("WNS estimate accuracy by stage, across PDKs") + ax.grid(axis="y", linestyle=":", alpha=0.5, zorder=0) + ax.legend(title="estimate stage", loc="upper left", fontsize=9) + fig.savefig(out_png, dpi=150, bbox_inches="tight") + plt.close(fig) + + +def accuracy_section(acc): + lines = [ + ACC_BEGIN, + "## WNS estimate accuracy across PDKs", + "", + "How closely the earlier-stage worst-slack estimates (`cts`, `globalroute`) match " + "the final (`finish`) WNS, per design, normalized by that design's clock period so " + "PDKs with different timing units are comparable. Error is " + "`(stage − finish) / clock_period`; **positive = optimistic** (the stage reported " + "more slack than the design actually closes with), negative = pessimistic. Clock " + "period is parsed from each design's `.sdc`; designs whose period could not be " + "parsed are omitted.", + "", + "![WNS estimate accuracy by stage, across PDKs](wns_accuracy.png)", + "", + "Mean absolute error (MAE) and mean signed error (bias), in % of clock period:", + "", + "| PDK | designs | cts MAE | cts bias | grt MAE | grt bias | worst (design) |", + "| --- | ---: | ---: | ---: | ---: | ---: | --- |", + ] + for pdk in sorted(acc): + rows = acc[pdk] + cs, gs = _stats(rows, "cts"), _stats(rows, "globalroute") + # worst single |error| over both stages, for context + worst = max( + ((abs(e[s]), e[s], d, s) for d, e in rows for s in e), + default=(0, 0, "-", ""), + ) + c = f"{cs[1]:.1f}% | {cs[2]:+.1f}%" if cs else " | " + g = f"{gs[1]:.1f}% | {gs[2]:+.1f}%" if gs else " | " + lines.append( + f"| {pdk} | {len(rows)} | {c} | {g} | " + f"{worst[1]:+.1f}% ({worst[2]} {worst[3]}) |" + ) + lines += [ + "", + "_Generated by `flow/util/plot_wns.py`; regenerate with " + "`python3 flow/util/plot_wns.py`._", + ACC_END, + ] + return "\n".join(lines) + "\n" + + def main(): ap = argparse.ArgumentParser(description=__doc__) ap.add_argument("--pdk", help="only process this PDK (default: all)") @@ -195,13 +352,29 @@ def main(): if not rows: continue plot_pdk(pdk, rows, os.path.join(pdk_dir, "wns.png")) - write_readme(os.path.join(pdk_dir, "README.md"), pdk, wns_section(pdk, rows)) + splice_readme(os.path.join(pdk_dir, "README.md"), wns_section(pdk, rows), + BEGIN, END, f"{pdk} designs") miss = sum(1 for _, v in rows if v["finish"] < 0) print(f"{pdk}: {len(rows)} designs ({miss} with negative finish WNS)") processed += 1 if not processed: sys.exit("no PDKs with rules-base.json WNS data found") + + # Cross-PDK estimate-accuracy view (only meaningful over all PDKs). + if not args.pdk: + acc = {} + for pdk in pdks: + rows = collect_accuracy(os.path.join(base, pdk)) + if rows: + acc[pdk] = rows + if acc: + plot_accuracy(acc, os.path.join(base, "wns_accuracy.png")) + splice_readme(os.path.join(base, "README.md"), accuracy_section(acc), + ACC_BEGIN, ACC_END, "ORFS designs") + total = sum(len(v) for v in acc.values()) + print(f"accuracy: {total} designs across {len(acc)} PDKs (clock period found)") + print(f"done: {processed} PDK(s)")