Home

Awesome

DATC RDF Calibrations (2021)

This repository provides calibrations for four basic electrical analyses using publicly-available enablements (ASAP7, NanGate45, SKY130HD, and SKY130HS):

  1. Timer calibration data for static timing analysis
  2. RC parasitic calibration data
  3. Static IR drop estimation

Our hope is that these calibration datasets will help boost the research community's advancement along the axes of accuracy, turnaround time, and capacity for these fundamental analyses that inform IC physical implementation.

Contributions

Calibration Data: Overview (43 testcases)

PDKDesignInit. UtilFinal UtilGP DensityClock Period [ns]WNS [ns]Effective Clock Period [ns]Total WireLength [um]
asap7jpeg_nldm_13032N/A1.100-0.3271.427168901
asap7jpeg_nldm_23032N/A0.900-0.2671.167172263
asap7jpeg_ccsn_13032N/A1.100-0.6621.762168427
asap7jpeg_ccsn_23032N/A0.900-0.9511.851168550
nangate45aes_121220.60.8109-0.1450.956458260
nangate45aes_214150.650.8109-0.160.971455773
nangate45aes_323250.70.8109-0.1380.949439631
nangate45gcd_120240.60.4574-0.0350.4924383
nangate45gcd_215180.650.4574-0.0170.4744474
nangate45gcd_325300.70.4574-0.0220.4793983
nangate45jpeg_120210.61.97750.1331.845709239
nangate45jpeg_215150.651.97750.0741.904688885
nangate45jpeg_325260.71.97750.1431.835665946
nangate45ibex_119210.65.34331.8323.511362275
nangate45ibex_214160.655.34331.8853.458360671
nangate45ibex_324260.75.34331.8613.482339120
nangate45swerv_119220.453.4012-0.4473.8484179350
nangate45swerv_214170.53.4012-0.2883.6894224750
nangate45swerv_316180.553.4012-0.6864.0874506998
sky130hdaes_114230.63.7439-1.0594.8031391315
sky130hdaes_210160.653.7439-1.4785.2221408681
sky130hdaes_319290.73.7439-1.0474.7911308739
sky130hdgcd_119300.64.3647-0.4094.7748590
sky130hdgcd_215210.654.3647-0.2474.6128441
sky130hdgcd_324340.74.3647-0.3774.7427871
sky130hdjpeg_120230.68.087-2.06610.1531593695
sky130hdjpeg_215170.658.087-2.26210.3491555760
sky130hdjpeg_325280.78.087-1.8469.9331523968
sky130hdibex_119350.4515.155-3.52118.6761080702
sky130hdibex_217310.515.155-3.92519.081052423
sky130hdibex_315260.5515.155-3.1818.3351006384
sky130hsaes_114250.62.8113-0.973.7811443899
sky130hsaes_210170.652.8113-1.1483.9591456477
sky130hsaes_319330.72.8113-0.8953.7061368246
sky130hsgcd_120270.61.7798-0.0571.83710462
sky130hsgcd_215210.651.7798-0.0941.87410845
sky130hsgcd_325320.71.7798-0.111.899858
sky130hsjpeg_120240.66.3874-0.6887.0752073532
sky130hsjpeg_215180.656.3874-1.1377.5242024417
sky130hsjpeg_325290.76.3874-1.167.5471973860
sky130hsibex_119330.4511.2897-2.71141397685
sky130hsibex_217300.511.2897-3.63914.9291420173
sky130hsibex_315260.5511.2897-2.57913.8691339622

Each calibration data consists of the following files:

Timer Calibration Data

Our initial data compilation uses routed DEFs produced by the OpenROAD flow in SKY130HD, SKY130HS, and NanGate45 enablements. Golden calibration data is abstracted and anonymized using a 5-worst JSON format, which we use to hold block-level worst (negative) slack, total negative slack, and number of failing endpoints (i.e., standard WNS, TNS and FEP metrics), along with detailed information for the top-5 worst timing paths (including arc delays and pin arrival times). We provide a timing report viewer that reads 5-worst JSON-formatted data and prints out a timing report in the OpenSTA tool's report format. To facilitate other calibrations of interest, we also propose an endpoints JSON format, which captures setup slack values at every flip-flop D pin. With these, we can compare the endpoint slacks from OpenSTA with calibration endpoint slack values.

JSON Format Description

5 Worst JSON

5 Worst JSON Timing Report Converter

Endpoints Slack JSON

RCX Calibration Data

RCX calibration data is also provided as Standard Parasitic Exchange Format (SPEF) for each testcase.

Static IR Drop Calibration Data

The static IR drop calibration data is currently available for the SKY130HD and SKY130HS enablement. Golden static IR drop data is anonymized and made available in a JSON format. The location of voltage sources which these golden per-instance IR drop values are obtained are also anonymized and reported in a JSON format. The IR drop calibration numbers were obtained using the same .def, .v, .sdc, and .spef as the timing calibration results.

JSON Format Description

The golden IR drop reports are anonymized in the JSON format described below.

File: <design_name>_ir.[VDD/VSS].json

There are two sections in this file:

Example of the summary and detail section of the JSON is shown below:

  "summary": {
    "design": "design_name",
    "powerNet": "net_name",
    "tech": "sky130hd",
    "timingCorner": "tt_025C_1v80",
    "vdd": 1.8,
    "vss": 0,
    "wir": {
      "instanceName": "_28766_",
      "ir": 0.031,
      "layer": "met1",
      "voltage": 1.769
    }
  },
  "detail": {
    "instanceList": [
      "_28766_",
      "FILLER_170_1364",
      "FILLER_170_1362",
      "FILLER_170_1358"
    ],
    "voltages": [
      1.769,
      1.769,
      1.7691,
      1.7691
    ]
  }

File: <design>.vsrc.json

This is an input file which is necessary for static IR drop analysis. It contains the location of the voltage sources for both VDD and VSS. The JSON described below creates an anonymized representation for specifying these inputs. It consists of two sections:

Example of this file is shown below:

  "summary": {
    "design": "design_name",
    "numVddSrcs": 1,
    "numVssSrcs": 1,
    "tech": "sky130hd",
    "vdd": 1.8,
    "voltageSrcMetalLayer": "met4",
    "vss": 0
  },
  "detail": {
    "voltageSrcList": [
      {
        "type": "VDD",
        "voltageSrcName": "VDD100",
        "xLocation": 12,
        "yLocation": 12
      },
      {
        "type": "VSS",
        "voltageSrcName": "VSS101",
        "xLocation": 544,
        "yLocation": 12
      }
    ]
  }

Adding Noise

We provide Python scripts to introduce noise in the calibration data to enable obfuscations.

To find the details of the noise introduction method, please refer to our ICCAD 2021 paper:

J. Chen, I. H.-R. Jiang, J. Jung, A. B. Kahng, S. Kim, V. N. Kravets, Y.-L. Li, R. Varadarajan and M. Woo, "DATC RDF-2021: Design Flow and Beyond", Proc. ACM/IEEE International Conference on Computer-Aided Design (ICCAD), 2021. (Invited)

Further Resources

In an effort to drive PDN analysis and synthesis research, the following repository contains PDN benchmarks in SPICE format (similar to the IBM PG benchmarks in a 45nm technology with open-source designs using both OpenROAD flow and commercial tools.

In addition, in an attempt to generate a larger benchmark set for ML calibrations, the above repo contains 10 synthetic current maps generated by GANs (BeGAN benchmarks). These benchmarks maintain characteristic traits of real current maps while being sufficiently different.

Citation

Please cite the following paper