Code Monkey home page Code Monkey logo

rdf-2023's Introduction

DATC Emerging Foundations in IC Physical Design

In this repository, we provide the source code and flow scripts for the newly introduced elements presented in the ICCAD 2023 invited paper titled 'IEEE CEDA DATC Emerging Foundations in IC Physical Design and MLCAD Research.' The included elements are:

  1. SpecPart, TritonPart: State-of-the-art circuit/hypergraph partitioners for the 21st century.
  2. AutoDMP: A DREAMPlace-based macro placement engine.
  3. DPO: A detailed placement optimization engine in OpenROAD.
  4. PROBE3.0: A Design-technology co-optimization (DTCO) pathfinding framework.
  5. Proxy Enablements: An auto-tuning based library scaling flow.

In this repository, our primary focus is on Proxy Enablements. For the other elements, please refer to their respective repositories.

Directory Structure

  1. benchmarks: Contains the rtl and constraints for the benchmark design used for library scaling.
  2. run: Use this directory to run the library scaling flow.
  3. scripts: Provides the library scaling and autotuning flow required to generate proxy enablements. It also includes the scripts to run synthesis, placement, and routing flow using Cadence Genus and Innovus.
  4. techlibs: Contains the technology files such as LEF, LIB, QRC for the 7nm PDK asap7.

Proxy Enablements

Please install the following python packages to run the library scaling flow:

  1. liberty parser: pip install liberty-parser
  2. ray: pip install ray[tune]

To run the library scaling flow, please follow the steps below:

  1. First update the range of different scaling parameters here.
  2. Provide the PPA number of the benchmark design on the target library here.
  3. Update total number of samples and number of parallel jobs to use for the autotuning job here.
  4. Add the target clock periods and utilization list based on the golden data here.
  5. Additionally, if you plan to use multiple servers to run SP&R jobs in parallel using GNU parallel, please update the node file and its path here.
  6. Use the following command in your python environment to run the autotuning flow:
export PROJ_DIR=<path to the root directory of this repository>
python ./scripts/autotune_scaling_factor/raytuner.py

# For NG45 tuning
python ./scripts/autotune_scaling_factor/raytuner_ng45.py

At the end of the run you will get the best scaling parameters for the given benchmark design that minimizes the PPA difference with the target library. You can find all the scaled libraries in the following path:

./run/libraries/scaled_lib_<scaling_factor>

References

  1. J. Jung, A. B. Kahng, S. Kundu, Z. Wang and D. Yoon, "IEEE CEDA DATC Emerging Foundations in IC Physical Design and MLCAD Research", (.pdf), Proc. ACM/IEEE International Conference on Computer-Aided Design, 2023

rdf-2023's People

Contributors

sakundu avatar

Stargazers

Mohamed Kassem avatar Dooseok Yoon avatar Keren Zhu avatar

Watchers

Jinwook Jung avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.