Giter VIP home page Giter VIP logo

gabrielganzer / rtl-poweroptimization Goto Github PK

View Code? Open in Web Editor NEW
11.0 1.0 1.0 830 KB

Post-synthesis power optimization via dual-Vth cell assignment and gate re-sizing. Scripting in TCL with custom commands written for Synopsys® PrimeTime® and DC Ultra™.

License: BSD 3-Clause "New" or "Revised" License

Tcl 6.40% Verilog 93.56% Shell 0.04%
optimization dvs tcl polito design-vision voltage-scaling script primetime synopsys synopsys-dc project

rtl-poweroptimization's Introduction

RTL Power Optimization

SHIELDS

PROJECT DESCRIPTION

This project consisted of implementing a command for Synopsys® PrimeTime® and DC Ultra™ that implements a post-synthesis power minimization procedure. The new command, written in TCL, runs a leakage-constrained dual-Vth cell assignment with gate re-sizing. The constraint function to be minimized is:

savings = (start_power - end_power)/start_power

First, all cells are sorted from higher to lower slack.

  • If a cell is of HVT type (lower leakage) it tries to reduce the size to its minimum, then:
    • If the global slack is negative after the change, it undoes that change;
    • Else it tries to resize with the next entry in the alternative library list (sorted from lower to higher size) that is smaller than the current cell size, exiting if the current size is already the minimum that can be applied;
  • If a cell is of LVT type (higher leakage) first it tries to swap into HVT, then:
    • If swapping was successful (positive global slack after swapping) then it tries to reduce the size;
    • Otherwise, the cell is maintained as LVT and the script tries to reduce its size.
  • Then the script controls if the input saving was reached:
    • If the saving was not reached in the previous phase that results in a positive slack, the script proceeds with the swapping of all LVT cells into HVT keeping the slack as great as possible. In case the input savings is equal to exactly 1 the script does not perform any kind of control over the end power and runs until the maximum optimization is reached.

DOCUMENTATION

The main script file describing the procedure can be found in the dualVth.tcl file, refer to tcl_scripts folder for other procedures used throughout the project.

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.