Skip to content

logarithm1993/PD2016_final

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

INPORTANT:

ALWAYS DO git pull BEFORE STARTING YOUR WORK

Something to be deternimed

  • class Coord

    • use int or double to represent a coordinate
      • use int
  • simAnneal

    • considering congestion in cost function

Data Structure

  1. MPTreeMgr ( MPTreeMgr.h )
  • top manager
  • public member functions
    • readInput ( .nodes , .pl , .nets )
    • simAnneal
    • writeOutput ( .fp )
    • test ( test interface )
  • private data members
    • _allNode(macros)
    • _allNet(nets)
    • _allTerm(terminals)
    • _chipWidth/Height
    • _initArea/WL/Disp
    • _optCost
  • private helper functions
    • simAnneal
    • cost computation
      • HPWL
      • Displacement
      • ChipArea
      • ContourArea
      • Balance
    • set temperature
    • annealing schedule
    • perturb / undo MPT
      • rotate --> macro rotation is not allowed in this problem
      • swap
      • change subTree
      • delete insert node
    • packMPTree, contour
  1. Node ( Element.h )
  • macro class

  • public member functions

    • centerX,Y() --> return the center of the macro
    • right, top()
    • width(), height()
    • displacement()
    • updateOpt/Cur()
  • private data members

    • _name
    • _width, _height
    • Coordinates and Orientations
      • _initCord , _initOrt ( initial positions from placer )
      • _curCord , _curOrt ( current positions )
      • _optCord , _optOrt ( optimal positions so far )
    • _pinList ( pins on the macro )
    • Tree Structure
      • _curPtr
      • _optPtr
  1. Pin ( Element.h )
  • pin class ( connection points on a macro )
  • public member functions
    • x() , y() --> get the positions of the pin ( use _node and offset to compute )
  • private data members
    • Node* _node ( ptr to the macro )
    • _offsetX,Y ( w.r.t. the center of the macro , orient = N )
  1. Net ( Element.h )
  • net class
  • public member functions
    • HPWL()
  • private data members
    • _name
    • _pinList
    • _termList
  1. Term ( Element.h )
  • terminal class
  • public member functions
    • x(), y()
  • private data members
    • _name
    • _fixXY( fixed positions )