Awesome
Disclaimer: ICCAD 2023 contest participants please refer to the benchmarks in the contest website only!
BeGAN Power Grid Benchmarks
This is a anonymous public repository which contains thousands of PDN benchmarks in the form of SPICE circuit netlist files for three different technologies:
Contents
- real-circuit-benchmarks: These benchmarks are generated using current maps OpenROAD flow with PDN from the OpenROAD flow (regular) and OpeNPDN (irregular).
- BeGAN-circuit-benchmarks: These benchmarks current maps are generated using the GANs. The PDNs are generated by both the OpenROAD flow (uniform) and OpeNPDN (non-uniform).
Each benchmark folder contains the following data:
-
BeGAN_*_current_map.csv.gz (matrix representation of the current values)
-
BeGAN_*_reg_grid.sp.gz (SPICE netlist files for regular PDN)
-
BeGAN_*_irreg_grid.sp.gz (SPICE netlist files for irregular PDN)
-
BeGAN_*_voltage_map_regular.csv.gz (matrix representation of the IR drop across the chip for regular PDN)
-
BeGAN_*_voltage_map_irregular.csv.gz (matrix representation of the IR drop across the chip for irregular PDN)
Note that for ASAP7 technology we do not generate the irregular PDNs due to the small die areas of the benchmark.
Gallery
Sample images from both real circuit and BeGAN benchmarks displayed below for 45nm technology as an example.
Real benchmark current maps
Set1 (without macros)
<img src="https://github.com/UMN-EDA/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/aes_current_reg.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/dynamic_node_current_reg.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/swerv_current_reg.png" width="22%"></img>
Set2 (with macros)
<img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/bp_current_reg.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/bp_be_current_reg.png" width="22%"></img>
BeGAN benchmark current images
Set1 (without macros)
<img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0001_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0002_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0004_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0005_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0008_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0994_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0010_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0024_current.png" width="20%"></img>
Set2 (with macros)
<img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0001_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0002_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0004_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0005_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0008_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0994_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0010_current.png" width="20%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0024_current.png" width="20%"></img>
Real benchmark IR drop heatmaps
Set1 (without macros)
<img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/aes_ir_drop_reg.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/dynamic_node_ir_drop_reg.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/swerv_ir_drop_reg.png" width="22%"></img>
Set2 (with macros)
<img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/bp_ir_drop_reg.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/real-circuit-benchmarks/nangate45/images/bp_be_ir_drop_reg.png" width="22%"></img>
BeGAN benchmark IR drop heatmaps
Set1 (without macros)
<img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0001_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0002_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0004_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0005_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0008_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0994_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0019_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set1/images/BeGAN_0024_ir_drop.png" width="22%"></img>
Set2 (with macros)
<img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0001_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0002_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0004_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0005_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0008_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0994_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0019_ir_drop.png" width="22%"></img> <img src="https://github.com/PDN-BeGAN/BeGAN-benchmarks/blob/master/BeGAN-circuit-benchmarks/nangate45/set2/images/BeGAN_0024_ir_drop.png" width="22%"></img>
Benchmark description
We use a SPICE format for releasing out benchmarks. An example is listed below
R645 n1_108000_179200_1 n1_102600_179200_1 0.14
R646 n1_113400_179200_1 n1_113400_179200_3 4.23
I7 n1_113400_179200_1 0 4.24901e-08
V0 n1_81000_106230_7 0 1.1
The generic convention is: <electric component> <node1> <node2> <value>
The node is defined using the following convention: <netname>_<x-cordinate>_<y-cordinate>_<layer-idx>
In the above example R645 is via since they share the same x and y coordinate but the layer changes.
Benchmark examples summary
The table below summarizes the components for randomly sampled BeGAN benchmarks for NanGate 45nm technology.
BeGAN id | #nodes | #resistors | #voltage sources | #current sources |
---|---|---|---|---|
1 | 18409 | 19903 | 4 | 15750 |
2 | 50924 | 55332 | 9 | 43472 |
3 | 455112 | 493695 | 64 | 391220 |
4 | 112546 | 122641 | 12 | 95934 |
5 | 178555 | 193018 | 24 | 153738 |
6 | 179730 | 195360 | 24 | 153738 |
7 | 82389 | 89254 | 12 | 70738 |
Cite
Please cite our paper if you use our benchmarks in your own work:
@inproceedings{BeGAN,
title={BeGAN: Power Grid Benchmark Generation Using a Process-portable GAN-based Methodology},
author={Chhabria, Vidya A. and Kunal, Kishor and Zabihi, Masoud and Sapatnekar, Sachin S.},
booktitle={IEEE/ACM International Conference On Computer Aided Design (ICCAD)},
year={2021},
pages={1-8}
}