Giter Site home page Giter Site logo

ir_drop's Introduction

PowerNet: predict IR drop with cell power using CNN.

Overall

This repository contains python scripts for IR drop prediction with Convolutional Neural Network (CNN). The input feature is vectorless cell power and cell toggle rate given by Seahawk. We customized CNN architecture by a maximum structure.

Raw Data

Take partition 'GAASM0SMIO' as example.

  • Cell Information
    • cap.json -- Cell capacitance
    • pos.json -- Cell coordinates
    • twf.json -- Cell rise/fall time
    • slew.json (not required) -- Cell slew
  • IR Information as label
    • GAASM0SMIO_rail_analysis_tw_dynamic_ir_drop_cell.rpt -- Cell voltage (IR = 0.94 - voltage)
    • GAASM0SMIO_rail_analysis_tw_dynamic_ir_drop_clock.rpt -- Cell voltage (IR = 0.94 - voltage)
  • Power Information
    • power.rpt -- Cell power from Seahawk
  • Resistance Information(not required)
    • GND_rlrp_inst.rpt
    • VDD_rlrp_inst.rpt
  • *Raw Data Location in Sheng Ye's scratch space:
    • /home/scratch.sye_methodology_2/GAASM0SMIO_2p1p11_icc2_default/
      • ires/GAASM0SMIO.ipo201806290025.ires.10_15_16_29/intermediate_files/{cap, pos, twf, slew}.json
      • REPs/GAASM0SMIO_rail_analysis_tw_dynamic_ir_drop_{cell, clock}.rpt.gz
      • RUNs/GAASM0SMIO.ipo201806290025.rail_analysis/Reports/{power, GND_rlrp_inst, VDD_rlrp_inst}.rpt

Required Library

File Structure

  • design/ Generate power features and IR drop label.
    • design{1,2,3,4}/ Four partitions available in this project. Each subfolder contains a different partition
    • design1/data/ Contains raw data for corresponding partition
    • design1/parse_all.py Script generating .json file with cell information from raw data
    • design1/visual_designs.py Script generating power per time frame & IR drop
  • cnn/ Train cnn model.
    • cnn_{123, 124, 134, 234}.py Script taking different partitions for model training
  • test_cnn/ Generate inference results & evaluate inference accuracy.
    • plot.py Plot inference output and print TPR (recall) score
    • roc.py Plot ROC curve and print AUC of ROC for 1um^2 grid and 5um^2 grid
    • eval.py Print precision & recall for 1um^2 grid and 5um^2 grid

Overall Flow

  1. Build .json files with cell information and IR drop information
    cd designs/design{1, 2, 3, 4}  
    python parse_all.py  

Output: seahawk.json (.json with cell information), ir.json (.json with IR drop information)

  1. Generate power features & labels in 1um^2 grids from .json files
    cd designs/design{1, 2, 3, 4}  
    python visual_designs.py (period, design size given in file)  

Output: Timei.npy (Grid power at time frame i), ir.npy (Grid IR drop), Time_all*.png, ir.png

  1. Training
    cd cnn  
    python cnn_{123, 124, 134, 234}.py  

Output: cnn_{123, 124, 134, 234}j.pkl (CNN model trained with three partitions, epoch=(j+1)*20, j=0 is enough)

  1. Perform Inference
    cd test_cnn  
    python test_all.py  

Output: cnn_{123, 124, 134, 234}_{one, two, three, four}.npy

  1. Evaluate Inference Result
    cd test_cnn  
    python plot.py  
    python roc.py  
    python eval.py  

Output: cnn_{123, 124, 134, 234}\_{one, two, three, four}.png; cnn\_{123, 124, 134, 234}_{one, two, three, four}_roc.png

IR_drop

ir_drop's People

Stargazers

Zhihui Deng avatar  avatar

Watchers

James Cloos avatar orangeYao 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.