A Surrogate Model for Variation-Aware Clock-Mesh Analysis and Design-Space Exploration using Graph Neural Networks
Organizations: University of California, Santa Cruz, USA
Abstract
Clock meshes are widely used in high-performance VLSI systems to minimize skew and tolerate On-Chip Variation (OCV) in nanometer technologies. However, analyzing meshes is difficult because reconvergent paths and multi-source drivers prevent static timing analysis (STA) tools from handling mesh loops, making SPICE the industrial standard. SPICE simulations are accurate but slow, so clock-mesh synthesis relies on approximate models that overlook critical effects such as non-linear buffer driving caused by input slew and input skew. We propose a Graph Neural Network (GNN) based surrogate model of the clock mesh with a new graph representation and a new architecture that predicts power while also improving the delay and slew predictions at the sinks and capturing the skew histogram under OCV. Trained on SPICE data and tested on unseen real designs, our model achieves average errors of ~ps in delay, ~ps in slew and ~ps in skew, compared with ~ps, ~ps, and ~ps for our prior model, and ~ps delay and ~ps skew for the approximate method used in current state-of-the-art works. Our model predicts power within of SPICE on average, while delivering - speed-ups over the approximate method under OCV modeling, enabling faster and more accurate clock-mesh design-space exploration. A case study on a real design further shows that our surrogate model finds buffering candidates that, at a balanced tradeoff, improves -percentile skew by , reduces power by , and reduces area by at the cost of a increase in -percentile maximum slew as compared to the state-of-the-art work.
Figures & tables
| Type | Name (units) | Description |
|---|---|---|
| Node features | input_delay (ps) | Buffer input delay from tree |
| input_slew (ps) | Buffer input slew from tree | |
| buf_cap (fF) | Buffer effective capacitance | |
| buf_res (ohms) | Buffer effective resistance | |
| buf_len (nm) | Buffer channel length | |
| buf_vdd (V) | Buffer VDD supply |
| Parameter | Layers | Channels | Attn. Heads |
|---|---|---|---|
| GAT | 4 | 128 | 8 |
| Delay/Slew/Quantile/Power MLP | 3 | 64 | N/A |
| Global Proj. MLP | 2 | 64 | N/A |
| Statistic | Ranges | Description |
|---|---|---|
| sink count | Sets the size of the clock mesh. | |
| sink density (sinks/ ) | Sinks per unit area; jointly with sink count it sets the die dimensions. | |
| spatial uniformity ratio | Sink placement pattern, clustered ( ) random ( ), or regular ( ). | |
| blockage ratio | Fraction of the die area obstructed by blockages. |
| Parameter (Affects) | Gaussian | From |
|---|---|---|
| (buf_len) | (nm) | ( Masoumian et al., 2022 ) |
| (buf_cap/res,sink_cap) | (nm) | ( Masoumian et al., 2022 ) |
| (buf_vth) | (V) | ( Wang et al., 2011 ) |
| (buf_vdd) | (V) | ( Clark et al., 2016 ) |
| Wire resistance (wire_res) | ( nm) | ( Prasad et al., 2016 ) |
| Wire capacitance (wire_cap) | (fF nm) | ( Prasad et al., 2016 ) |
| skew mean | # Samples | SPICE samples | ||||
|---|---|---|---|---|---|---|
| design | (ps) | (ps) | expected | conf. | ||
| ibex | 29.8 | 49.1 | 41 | 0.82% | 122 | 559 |
| floonoc | 33.3 | 46.7 | 34 | 0.68% | 147 | 676 |
| jpeg | 33.5 | 49.8 | 31 | 0.62% | 161 | 740 |
| riscv32i | 31.0 | 54.9 | 28 | 0.56% | 179 | 820 |
| mock-alu | 20.4 | 35.6 | 28 | 0.56% | 179 | 820 |
| Synthetic Benchmarks | Stats | |||
|---|---|---|---|---|
| Area ( ) | Sinks | Grid Size | Blockages | |
| synth_00 | 6294.0 | 5024 | 19x19 | 15 |
| synth_01 | 6197.0 | 1082 | 10x10 | 6 |
| synth_02 | 2846.9 | 1661 | 12x12 | 5 |
| synth_03 | 3795.6 | 1858 | 12x12 | 0 |
| synth_04 | 31063.4 | 13660 | 33x33 | 3 |
| Graph Nodes | Graph Edges | Peak GPU mem. (MB) | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Design | FASM | This Work | Red. | FASM | This Work | Red. | FASM | This Work | Red. |
| riscv32i | 5,724 | 1,128 | 18,384 | 4,720 | 280 | 55 | |||
| mock-alu | 8,001 | 1,557 | 25,776 | 6,708 | 395 | 77 | |||
| ibex | 10,596 | 2,076 | 34,080 | 8,784 | 521 | 102 | |||
| jpeg | 24,595 | 4,783 | 79,248 | 20,572 | 1,206 | 237 | |||
| cva6 | 26,237 | 5,157 | 84,320 | 21,624 | 1,284 | 251 | |||
| Designs | Delay MAE (ps) | Slew MAE (ps) | Skew error (ps) | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| This Work | FASM-new | FM | FM+cal | This Work | FASM-new | This Work | FASM-new | FM | FM+cal | |
| synth_00 | 5.11 | 6.48 | 74.07 | 9.52 | 5.40 | 10.17 | 0.91 | 20.51 | 21.32 | 21.32 |
| synth_01 | 6.59 | 14.76 | 63.96 | 9.46 | 10.93 | 25.12 | 7.41 | 8.58 | 35.86 | 35.86 |
| synth_02 | 2.62 | 4.13 | 75.13 | 4.01 | 4.46 | 12.74 | 7.39 | 9.13 | 16.11 | 16.11 |
| synth_03 | 3.91 | 4.39 | 81.71 | 5.62 | 4.23 | 9.75 | 11.11 | 14.56 | 35.28 | 35.28 |
| synth_04 | 3.26 | 5.12 | 75.79 | 5.98 | 4.20 | 8.18 | 2.32 | 9.46 | 41.25 | 41.25 |
| Synthetic designs | Power (mW) | Error (%) | |||
|---|---|---|---|---|---|
| This Work | SPICE | Dynamic Power | This Work | Dynamic Power | |
| synth_00 | 8.73 | 8.35 | 5.18 | 4.5% | 37.9% |
| synth_01 | 2.31 | 2.27 | 1.47 | 1.9% | 35.3% |
| synth_02 | 4.43 | 4.53 | 2.65 | 2.2% | 41.5% |
| synth_03 | 4.66 | 4.82 | 2.66 | 3.3% | 44.6% |
| synth_04 | 37.67 | 36.98 | 20.02 | 1.8% | 45.9% |
| Designs | Metric (ps) | This Work | FASM-new | FM | FM+cal | ||
|---|---|---|---|---|---|---|---|
| w/o AL | AL w/o Tail-Loss | AL w/ Tail-Loss | |||||
| riscv32i | Delay MAE | 3.58 | 3.40 | 3.69 | 6.40 | 74.44 | 5.30 |
| Slew MAE | 4.53 | 4.46 | 4.27 | 10.98 | – | – | |
| Skew Error (avg.) | 2.07 | 0.32 | 1.81 | 5.57 | 25.53 | 25.53 | |
| Skew P99.9 Error | 10.94 | 3.51 | 0.82 | 3.95 | 54.78 | 54.78 | |
| mock-alu | Delay MAE | 3.41 | 3.36 | 3.59 | 5.18 | 75.63 | 3.63 |
| Real Designs | Power (mW) | Error (%) | |||
|---|---|---|---|---|---|
| This Work | SPICE | Dynamic Power | This Work | Dynamic Power | |
| riscv32i | 2.38 | 2.45 | 1.44 | 3.8% | 41.2% |
| mock-alu | 3.47 | 3.36 | 1.88 | 3.7% | 44.1% |
| ibex | 4.69 | 4.66 | 2.69 | 2.0% | 42.3% |
| jpeg | 10.36 | 10.00 | 5.89 | 3.8% | 41.1% |
| cva6 | 9.54 | 9.21 | 5.75 | 3.7% | 37.6% |
| Design | Runtime (s) | Speedup of This Work | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| HSPICE | FM | This Work | FASM | over FM | over FASM | |||||
| graph conv. | infer. | graph conv. | infer. | 1 pass | 5000 MC | 1 pass | 5000 MC | |||
| riscv32i | 1.86 | 0.15 | 0.1781 | 0.0082 | 0.1999 | 0.0095 | 0.8 | 18 | 1.12 | 1.16 |
| mock-alu | 4.92 | 0.37 | 0.2564 | 0.0038 | 0.2903 | 0.0088 | 1.4 | 96 | 1.15 | 2.30 |
| ibex | 8.67 | 0.51 | 0.3550 | 0.0052 | 0.4032 | 0.0116 | 1.4 | 97 | 1.15 | 2.22 |
| jpeg | 28.03 | 3.56 | 0.8872 | 0.0069 | 1.3250 | 0.0269 | 4.0 | 503 | 1.51 | 3.84 |
| skew (ps) | max. slew (ps) | power | area | # | |||||
| ibex design | (mW) | ( m 2 ) | bufs | ||||||
| baseline ( Venkataraman et al., 2006 ) | 29.1 | 48.2 | 53.5 | 94.5 | 105.3 | 108.6 | 4.71 | 54.37 | 128 |
| MeshWorks ( Rajaram and Pan, 2010 ) | 21.1 | 37.3 | 43.0 | 98.4 | 112.4 | 117.6 | 2.75 | 27.77 | 139 |
| Ours (min. slew) | 11.6 | 22.2 | 26.7 | 106.5 | 117.3 | 120.2 | 2.13 | 18.63 | 139 |
| Ours (balanced) | 10.2 | 19.0 | 22.8 | 108.7 | 120.0 | 124.0 | 2.04 | 17.41 | 138 |
| Ours (min. power) | 10.9 | 20.7 | 24.4 | 111.2 | 122.6 | 127.2 | 1.97 | 16.45 | 129 |
| skew | max. slew | |||||
| ibex design | power | area | ||||
| vs. MeshWorks ( Rajaram and Pan, 2010 ) | ||||||
| Ours (min. slew) | ||||||
| Ours (balanced) | ||||||
| Ours (min. power) | ||||||
| vs. baseline ( Venkataraman et al., 2006 ) | ||||||
Electronic Design Automation
Electronic Design Automation uses algorithms and software to design, verify, optimize, and manufacture electronic circuits and systems.
See all 224 papers