#include <Node.h>
Collaboration diagram for parquetfp::Node:

Public Member Functions | |
| bool | calcAllPinsAtCenter (Nets &nets) |
| Node (const char *block_name, double block_area, double minAr, double maxAr, int index, bool type) | |
| Node () | |
| void | addVoltage (int voltage) |
| int | getVoltage () |
| bool | getType () const |
| float | getIndex (void) const |
| ORIENT | getOrient (void) const |
| bool | isOrientFixed (void) const |
| double | getHeight (void) const |
| double | getWidth (void) const |
| double | getOrigHeight (void) const |
| double | getOrigWidth (void) const |
| char * | getName (void) |
| double | getX (void) const |
| double | getY (void) const |
| double | getslackX (void) const |
| double | getslackY (void) const |
| double | getminAR (void) const |
| double | getmaxAR (void) const |
| double | getArea (void) const |
| bool | isMacro (void) const |
| void | updateMacroInfo (bool isMacro) |
| itNodePin | pinsBegin () |
| itNodePin | pinsEnd () |
| unsigned | getDegree () const |
| void | clearPins () |
| vector< int >::iterator | subBlocksBegin () |
| vector< int >::iterator | subBlocksEnd () |
| unsigned | numSubBlocks () |
| vector< int > & | getSubBlocks () |
| void | putArea (double area) |
| void | putWidth (double w) |
| void | putHeight (double h) |
| void | putX (double x) |
| void | putY (double y) |
| void | putslackX (double x) |
| void | putslackY (double y) |
| void | addPin (NodePin &pinTemp) |
| void | putOrient (ORIENT newOrient) |
| void | putmaxAR (double newMaxAR) |
| void | putminAR (double newMinAR) |
| void | putIsOrientFixed (bool value) |
| void | addSubBlockIndex (int index) |
| void | changeOrient (ORIENT newOrient, Nets &nets) |
| void | syncOrient (Nets &nets) |
Public Attributes | |
| bool | allPinsAtCenter |
| bool | needSyncOrient |
Private Attributes | |
| string | _name |
| double | _area |
| double | _minAr |
| double | _maxAr |
| double | _origWidth |
| double | _origHeight |
| double | _width |
| double | _height |
| ORIENT | _orient |
| bool | _isOrientFixed |
| double | _slackX |
| double | _slackY |
| int | _index |
| bool | _type |
| bool | _isMacro |
| Point | _placement |
| vector< NodePin > | _pins |
| vector< int > | _subBlockIndices |
| int | _voltage |
|
||||||||||||||||||||||||||||
|
Definition at line 38 of file Node.cxx. References _area, _height, _minAr, _name, _origHeight, _origWidth, _placement, _width, parquetfp::N, parquetfp::Point::x, and parquetfp::Point::y.
00040 : _area(block_area),_minAr(minAr),_maxAr(maxAr),_orient(N), 00041 _isOrientFixed(false),_slackX(0), _slackY(0),_index(index),_type(type), 00042 _isMacro(false),allPinsAtCenter(false),needSyncOrient(true) 00043 { 00044 //strncpy(_name,block_name,199); 00045 //_name[199] = '\0'; 00046 _name = block_name; 00047 _placement.x=0; 00048 _placement.y=0; 00049 _width = sqrt(_area*_minAr); //by default orientation is N 00050 _height = _width/_minAr; 00051 _origWidth = _width; 00052 _origHeight = _height; 00053 } |
|
|
Definition at line 56 of file Node.cxx. References _height, _name, _placement, _width, parquetfp::N, parquetfp::Point::x, and parquetfp::Point::y.
00057 : _area(0),_minAr(0),_maxAr(0),_orient(N),_isOrientFixed(false),_slackX(0), 00058 _slackY(0),_index(0),_type(true),_isMacro(false),allPinsAtCenter(false) 00059 { 00060 //strcpy(_name,""); 00061 _name = ""; 00062 _placement.x=0; 00063 _placement.y=0; 00064 _height = 0; 00065 _width = 0; 00066 } |
|
|
Definition at line 174 of file Node.h. References _pins. Referenced by parquetfp::Nodes::updatePinsInfo().
00175 {_pins.push_back(pinTemp);}
|
|
|
Definition at line 184 of file Node.h. References _subBlockIndices. Referenced by parquetfp::ClusterDB::cluster1Layer(), parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), and parquetfp::Nodes::parseNodes().
00185 { _subBlockIndices.push_back(index); }
|
|
|
Definition at line 99 of file Node.h. References _voltage. Referenced by parquetfp::Nodes::parseNodes().
00100 { _voltage = voltage;}
|
|
|
Definition at line 113 of file Node.cxx. References _pins, parquetfp::Nets::getNet(), parquetfp::Net::getPin(), parquetfp::pin::getXOffset(), parquetfp::pin::getYOffset(), and parquetfp::itNodePin.
00114 {
00115 itNodePin itP;
00116 bool localAllPinsAtCenter=true;
00117 for(itP = _pins.begin(); itP != _pins.end(); ++itP)
00118 {
00119 pin& netPin = nets.getNet(itP->netIndex).getPin(itP->pinOffset);
00120 if(netPin.getXOffset() != 0 || netPin.getYOffset() != 0)
00121 {
00122 localAllPinsAtCenter = false;
00123 break;
00124 }
00125 }
00126 return(localAllPinsAtCenter);
00127 }
|
Here is the call graph for this function:

|
||||||||||||
|
Definition at line 68 of file Node.cxx. References _height, _orient, _pins, _width, parquetfp::pin::changeOrient(), parquetfp::Nets::getNet(), parquetfp::Net::getPin(), and parquetfp::itNodePin. Referenced by parquetfp::Nodes::changeOrient(), parquetfp::SolveMulti::placeSubBlocks(), parquetfp::DB::updateNodeSlim(), and parquetfp::SolveMulti::updatePlaceUnCluster().
00069 {
00070 if(_orient == newOrient)
00071 return;
00072
00073 if(_orient%2 != newOrient%2)
00074 {
00075 double tempHeight = _height;
00076 _height = _width;
00077 _width = tempHeight;
00078 }
00079
00080 //update the pinoffsets of the netlist now
00081 itNodePin itP;
00082 for(itP = _pins.begin(); itP != _pins.end(); ++itP)
00083 {
00084 pin& netPin = nets.getNet(itP->netIndex).getPin(itP->pinOffset);
00085 netPin.changeOrient(newOrient);
00086 }
00087 _orient = newOrient;
00088
00089 }
|
Here is the call graph for this function:

|
|
Definition at line 147 of file Node.h. References _pins.
00148 { _pins.clear(); }
|
|
|
Definition at line 134 of file Node.h. References _area. Referenced by parquetfp::ClusterDB::addNetsToNewDB(), parquetfp::ClusterDB::cluster1Layer(), parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), parquetfp::Annealer::makeIndexSoftBlMove(), and parquetfp::Annealer::makeSoftBlMove().
00135 {return _area;}
|
|
|
Definition at line 145 of file Node.h. References _pins. Referenced by parquetfp::AnalytSolve::getOptLoc().
00146 { return _pins.size(); }
|
|
|
Definition at line 112 of file Node.h. References _height. Referenced by parquetfp::DB::evalHPWL(), parquetfp::AnalytSolve::getDesignOptLoc(), parquetfp::AnalytSolve::getOptLoc(), parquetfp::Annealer::makeIndexSoftBlMove(), parquetfp::Annealer::makeSoftBlMove(), parquetfp::DB::plot(), parquetfp::DB::saveCapoNets(), and parquetfp::DB::updateNodeSlim().
00113 {return _height;}
|
|
|
Definition at line 106 of file Node.h. References _index. Referenced by parquetfp::ClusterDB::cluster1Layer(), parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), and parquetfp::ClusterDB::getClosestNode().
00107 {return _index;}
|
|
|
Definition at line 132 of file Node.h. References _maxAr. Referenced by parquetfp::ClusterDB::cluster1Layer(), parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), parquetfp::Annealer::makeIndexSoftBlMove(), and parquetfp::Annealer::makeSoftBlMove().
00133 {return _maxAr;}
|
|
|
Definition at line 130 of file Node.h. References _minAr. Referenced by parquetfp::ClusterDB::cluster1Layer(), parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), parquetfp::Annealer::makeIndexSoftBlMove(), and parquetfp::Annealer::makeSoftBlMove().
00131 {return _minAr;}
|
|
|
Definition at line 120 of file Node.h. References _name. Referenced by parquetfp::ClusterDB::addNetsToNewDB(), parquetfp::ClusterDB::cluster1Layer(), parquetfp::ClusterDB::clusterMultiPhysical(), and parquetfp::DB::DB().
00121 {return const_cast<char*>(_name.c_str());}
|
|
|
Definition at line 108 of file Node.h. References _orient, and parquetfp::ORIENT. Referenced by parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::Annealer::makeIndexSoftBlMove(), parquetfp::Annealer::makeMoveOrient(), parquetfp::Annealer::makeMoveSlacksOrient(), parquetfp::Annealer::makeSoftBlMove(), and parquetfp::DB::updateNodeSlim().
00109 {return _orient;}
|
|
|
Definition at line 116 of file Node.h. References _origHeight.
00117 {return _origHeight;}
|
|
|
Definition at line 118 of file Node.h. References _origWidth.
00119 {return _origWidth;}
|
|
|
Definition at line 126 of file Node.h. References _slackX.
00127 {return _slackX;}
|
|
|
Definition at line 128 of file Node.h. References _slackY.
00129 {return _slackY;}
|
|
|
Definition at line 156 of file Node.h. References _subBlockIndices.
00157 { return _subBlockIndices; }
|
|
|
Definition at line 104 of file Node.h. References _type.
00105 { return _type;}
|
|
|
Definition at line 101 of file Node.h. References _voltage. Referenced by parquetfp::Annealer::makeIslands().
00102 { return _voltage;}
|
|
|
Definition at line 114 of file Node.h. References _width. Referenced by parquetfp::DB::evalHPWL(), parquetfp::AnalytSolve::getDesignOptLoc(), parquetfp::AnalytSolve::getOptLoc(), parquetfp::Annealer::makeIndexSoftBlMove(), parquetfp::Annealer::makeSoftBlMove(), parquetfp::DB::plot(), parquetfp::DB::saveCapoNets(), and parquetfp::DB::updateNodeSlim().
00115 {return _width;}
|
|
|
Definition at line 122 of file Node.h. References _placement, and parquetfp::Point::x. Referenced by parquetfp::ClusterDB::addNetsToNewDB(), parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), parquetfp::DB::evalHPWL(), parquetfp::AnalytSolve::getDesignOptLoc(), parquetfp::DB::getOptimalRangeStart(), parquetfp::AnalytSolve::getOptLoc(), parquetfp::DB::plot(), parquetfp::DB::updateNodeSlim(), and parquetfp::SolveMulti::updatePlaceUnCluster().
00123 {return _placement.x;}
|
|
|
Definition at line 124 of file Node.h. References _placement, and parquetfp::Point::y. Referenced by parquetfp::ClusterDB::addNetsToNewDB(), parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), parquetfp::DB::evalHPWL(), parquetfp::AnalytSolve::getDesignOptLoc(), parquetfp::DB::getOptimalRangeStart(), parquetfp::AnalytSolve::getOptLoc(), parquetfp::DB::plot(), parquetfp::DB::updateNodeSlim(), and parquetfp::SolveMulti::updatePlaceUnCluster().
00125 {return _placement.y;}
|
|
|
Definition at line 136 of file Node.h. References _isMacro. Referenced by parquetfp::ClusterDB::cluster1Layer(), and parquetfp::ClusterDB::clusterMultiPhysical().
00137 {return _isMacro;}
|
|
|
Definition at line 110 of file Node.h. References _isOrientFixed. Referenced by parquetfp::ClusterDB::cluster1Layer(), BTreeAreaWireAnnealer::constructor_core(), parquetfp::Annealer::makeMoveOrient(), and parquetfp::Annealer::makeMoveSlacksOrient().
00111 {return _isOrientFixed;}
|
|
|
Definition at line 154 of file Node.h. References _subBlockIndices. Referenced by parquetfp::ClusterDB::addNetsToNewDB().
00155 {return _subBlockIndices.size();}
|
|
|
Definition at line 141 of file Node.h. References _pins, and parquetfp::itNodePin. Referenced by parquetfp::DB::DB(), parquetfp::ClusterDB::getClosestNode(), and parquetfp::AnalytSolve::getOptLoc().
00142 {return _pins.begin(); }
|
|
|
Definition at line 143 of file Node.h. References _pins, and parquetfp::itNodePin. Referenced by parquetfp::DB::DB(), parquetfp::ClusterDB::getClosestNode(), and parquetfp::AnalytSolve::getOptLoc().
00144 {return _pins.end(); }
|
|
|
Definition at line 160 of file Node.h. References _area.
00161 {_area=area;}
|
|
|
Definition at line 164 of file Node.h. References _height. Referenced by parquetfp::SolveMulti::placeSubBlocks(), parquetfp::Nodes::updateHW(), parquetfp::DB::updateNodeDimensions(), parquetfp::DB::updateNodeSlim(), and parquetfp::SolveMulti::updatePlaceUnCluster().
00165 {_height=h;}
|
|
|
Definition at line 182 of file Node.h. References _isOrientFixed. Referenced by parquetfp::ClusterDB::cluster1Layer().
00183 { _isOrientFixed = value;}
|
|
|
Definition at line 179 of file Node.h. References _maxAr.
00179 { _maxAr = newMaxAR; }
|
|
|
Definition at line 180 of file Node.h. References _minAr.
00180 { _minAr = newMinAR; }
|
|
|
Definition at line 177 of file Node.h. References _orient. Referenced by parquetfp::ClusterDB::clusterMultiPhysical(), and parquetfp::Nodes::updateOrient().
00178 { _orient = newOrient; } //else use changeOrient
|
|
|
Definition at line 170 of file Node.h. References _slackX. Referenced by parquetfp::DB::updateSlacks().
00171 {_slackX=x;}
|
|
|
Definition at line 172 of file Node.h. References _slackY. Referenced by parquetfp::DB::updateSlacks().
00173 {_slackY=y;}
|
|
|
Definition at line 162 of file Node.h. References _width. Referenced by parquetfp::SolveMulti::placeSubBlocks(), parquetfp::Nodes::updateHW(), parquetfp::DB::updateNodeDimensions(), parquetfp::DB::updateNodeSlim(), and parquetfp::SolveMulti::updatePlaceUnCluster().
00163 {_width=w;}
|
|
|
Definition at line 166 of file Node.h. References _placement, and parquetfp::Point::x. Referenced by parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), parquetfp::SolveMulti::placeSubBlocks(), parquetfp::DB::updateNodeLocation(), parquetfp::DB::updateNodeSlim(), parquetfp::Nodes::updatePlacement(), parquetfp::DB::updatePlacement(), and parquetfp::SolveMulti::updatePlaceUnCluster().
00167 {_placement.x=x;}
|
|
|
Definition at line 168 of file Node.h. References _placement, and parquetfp::Point::y. Referenced by parquetfp::ClusterDB::clusterMultiPhysical(), parquetfp::DB::DB(), parquetfp::SolveMulti::placeSubBlocks(), parquetfp::DB::updateNodeLocation(), parquetfp::DB::updateNodeSlim(), parquetfp::Nodes::updatePlacement(), parquetfp::DB::updatePlacement(), and parquetfp::SolveMulti::updatePlaceUnCluster().
00169 {_placement.y=y;}
|
|
|
Definition at line 150 of file Node.h. References _subBlockIndices. Referenced by parquetfp::ClusterDB::cluster1Layer().
00151 {return _subBlockIndices.begin();}
|
|
|
Definition at line 152 of file Node.h. References _subBlockIndices. Referenced by parquetfp::ClusterDB::cluster1Layer().
00153 {return _subBlockIndices.end();}
|
|
|
Definition at line 91 of file Node.cxx. References _height, _orient, _pins, _width, parquetfp::pin::changeOrient(), parquetfp::Nets::getNet(), parquetfp::Net::getPin(), parquetfp::itNodePin, and needSyncOrient.
00092 {
00093 //update the heights and widths only if not updated earlier in parsePl
00094 if(needSyncOrient)
00095 {
00096 if(int(_orient)%2 == 1) //needs swap of height and width
00097 {
00098 double tempHeight = _height;
00099 _height = _width;
00100 _width = tempHeight;
00101 }
00102 }
00103
00104 //update the pinoffsets of the netlist now
00105 itNodePin itP;
00106 for(itP = _pins.begin(); itP != _pins.end(); ++itP)
00107 {
00108 pin& netPin = nets.getNet(itP->netIndex).getPin(itP->pinOffset);
00109 netPin.changeOrient(_orient);
00110 }
00111 }
|
Here is the call graph for this function:

|
|
Definition at line 138 of file Node.h. References _isMacro. Referenced by parquetfp::ClusterDB::cluster1Layer().
00139 {_isMacro = isMacro;}
|
|
|
|
|
|
Definition at line 77 of file Node.h. Referenced by changeOrient(), getHeight(), Node(), putHeight(), and syncOrient(). |
|
|
Definition at line 82 of file Node.h. Referenced by getIndex(). |
|
|
Definition at line 84 of file Node.h. Referenced by isMacro(), and updateMacroInfo(). |
|
|
Definition at line 79 of file Node.h. Referenced by isOrientFixed(), and putIsOrientFixed(). |
|
|
Definition at line 73 of file Node.h. Referenced by getmaxAR(), and putmaxAR(). |
|
|
Definition at line 72 of file Node.h. Referenced by getminAR(), Node(), and putminAR(). |
|
|
|
|
|
Definition at line 78 of file Node.h. Referenced by changeOrient(), getOrient(), putOrient(), and syncOrient(). |
|
|
Definition at line 75 of file Node.h. Referenced by getOrigHeight(), and Node(). |
|
|
Definition at line 74 of file Node.h. Referenced by getOrigWidth(), and Node(). |
|
|
Definition at line 86 of file Node.h. Referenced by addPin(), calcAllPinsAtCenter(), changeOrient(), clearPins(), getDegree(), pinsBegin(), pinsEnd(), and syncOrient(). |
|
|
|
|
|
Definition at line 80 of file Node.h. Referenced by getslackX(), and putslackX(). |
|
|
Definition at line 81 of file Node.h. Referenced by getslackY(), and putslackY(). |
|
|
Definition at line 87 of file Node.h. Referenced by addSubBlockIndex(), getSubBlocks(), numSubBlocks(), subBlocksBegin(), and subBlocksEnd(). |
|
|
Definition at line 83 of file Node.h. Referenced by getType(). |
|
|
Definition at line 88 of file Node.h. Referenced by addVoltage(), and getVoltage(). |
|
|
Definition at line 76 of file Node.h. Referenced by changeOrient(), getWidth(), Node(), putWidth(), and syncOrient(). |
|
|
Definition at line 91 of file Node.h. Referenced by parquetfp::DB::evalHPWL(). |
|
|
Definition at line 189 of file Node.h. Referenced by parquetfp::Nodes::parsePl(), and syncOrient(). |
1.3.2