19 #ifndef TORC_PACKER_COMBINATIONALPATH_HPP 
   20 #define TORC_PACKER_COMBINATIONALPATH_HPP 
   74             if(result != e) 
return false;
 
   86             if(result == e) 
return false;
 
   96                 NetSharedPtr netPtr = instancePinPtr->getParentWeakPtr().lock();
 
   97                 if(netPtr->containsSource(instancePinPtr))
 
  116                 if((instance1Ptr->getType()==
"DFF")||(instance1Ptr->getType()==
"IOB")){
 
  122                             NetSharedPtr netPtr = instancePinPtr->getParentWeakPtr().lock();
 
  128                                  routingNetPtr->setPathCount(instPin, 1);
 
  135             bool repeatNeeded = 
true;
 
  136             size_t maxTotalCount = 0;
 
  138                 if(maxTotalCount>inDesignPtr->getInstanceCount()){
 
  139                     cout<<
"Combinational Loop !!!!!"<<endl;;
 
  142                 repeatNeeded = 
false;
 
  143                 pi = inDesignPtr->instancesBegin();
 
  144                 ei = inDesignPtr->instancesEnd();
 
  149                     if((instance1Ptr->getType()!= 
"DFF")&&(instance1Ptr->getType()!= 
"IOB")){
 
  156                                 NetSharedPtr netPtr = instancePinPtr->getParentWeakPtr().lock();
 
  162                                      size_t currCount = routingNetPtr->getPathCount(instPin);
 
  163                                      if(currCount>maxCount)
 
  164                                         maxCount = currCount;
 
  165                                         if(maxTotalCount<maxCount)
 
  166                                             maxTotalCount=maxCount;
 
  171                         ipp = instance1Ptr->pinsBegin();
 
  172                         ipe = instance1Ptr->pinsEnd();
 
  176                                 NetSharedPtr netPtr = instancePinPtr->getParentWeakPtr().lock();
 
  178                                 if(routingNetPtr->getPathCount(instancePinPtr)<(maxCount+1)){
 
  179                                     routingNetPtr->setPathCount(instancePinPtr,maxCount+1);
 
  186                                      size_t currCount = routingNetPtr->getPathCount(instPin);
 
  187                                      if(currCount<(maxCount+1)){
 
  188                                         routingNetPtr->setPathCount(instPin, maxCount+1);
 
  189                                         maxCount = currCount;
 
  190                                         if(maxTotalCount<maxCount)
 
  191                                             maxTotalCount=maxCount;
 
  201             pn = inDesignPtr->netsBegin();
 
  202             en = inDesignPtr->netsEnd();
 
  211                     if(setCount<routingNetPtr->getPathCount(*sop))
 
  212                         setCount = routingNetPtr->getPathCount(*sop);
 
  219                     if(routingNetPtr->getPathCount(*sip)==0)
 
  220                         routingNetPtr->setPathCount(*sip, setCount);
 
  229                 repeatNeeded = 
false;
 
  230                 pi = inDesignPtr->instancesBegin();
 
  231                 ei = inDesignPtr->instancesEnd();
 
  236                     if((instance1Ptr->getType()!= 
"DFF")&&(instance1Ptr->getType()!= 
"IOB")){
 
  243                                 NetSharedPtr netPtr = instancePinPtr->getParentWeakPtr().lock();
 
  245                                 size_t currCount = routingNetPtr->getPathCount(instancePinPtr);
 
  246                                 if(currCount>maxCount)
 
  247                                     maxCount = currCount;
 
  252                         ipp = instance1Ptr->pinsBegin();
 
  253                         ipe = instance1Ptr->pinsEnd();
 
  257                                 NetSharedPtr netPtr = instancePinPtr->getParentWeakPtr().lock();
 
  259                                 if(routingNetPtr->getPathCount(instancePinPtr)<(maxCount)){
 
  260                                     routingNetPtr->setPathCount(instancePinPtr,maxCount);
 
  262                                     size_t minDiff = 100000000;
 
  267                                          size_t currCount = maxCount - routingNetPtr->getPathCount(instPin);
 
  268                                          if(currCount<minDiff){
 
  272                                     sop = netPtr->sinksBegin();
 
  273                                     soe = netPtr->sinksEnd();
 
  276                                          size_t currCount = routingNetPtr->getPathCount(instPin);
 
  277                                          routingNetPtr->setPathCount(instPin,currCount+minDiff);     
 
  311 #endif // TORC_PACKER_COMBINATIONALPATH_HPP 
RoutingNetSharedPtrVector mRoutingNets
Vector of routing net shared pointers. 
 
CombinationalPath()
Protected constructor. 
 
size_t getRoutingNetCount(void) const 
Returns the number of routingNets in the circuit. 
 
RoutingNetSharedPtrVector::iterator RoutingNetSharedPtrIterator
Non-constant iterator to Routing Net shared pointers. 
 
bool addRoutingNet(RoutingNetSharedPtr &inRoutingNetPtr)
Add a net to the set. 
 
bool removeRoutingNet(RoutingNetSharedPtr &inRoutingNetPtr)
Remove a net from the circuit. 
 
RoutingNetSharedPtrConstIterator routingNetsEnd(void) const 
Returns the end constant iterator for routingNets. 
 
InstanceSharedPtrVector::const_iterator InstanceSharedPtrConstIterator
Constant iterator to Instance shared pointers. 
 
Header for the RoutingNet class. 
 
std::string string
Imported type name. 
 
RcFactory class for physical netlist elements. 
 
RoutingNetSharedPtrIterator routingNetsEnd(void)
Returns the end non-constant iterator for routingNets. 
 
std::vector< CombinationalPathSharedPtr > CombinationalPathSharedPtrVector
Vector of CombinationalPath shared pointers. 
 
PinType getInstancePinType(InstancePinSharedPtr instancePinPtr)
Returns instance pin type. 
 
boost::shared_ptr< class InstancePin > InstancePinSharedPtr
Shared pointer encapsulation of an InstancePin. 
 
std::vector< RoutingNetSharedPtr > RoutingNetSharedPtrVector
Vector of RoutingNet shared pointers. 
 
Comparator class to serve as a predicate when searching for names. 
 
Header for the Design class. 
 
RoutingNetSharedPtrIterator routingNetsBegin(void)
Returns the begin non-constant iterator for routingNets. 
 
InstancePinMap::const_iterator InstancePinSharedPtrConstIterator
Constant iterator to InstancePin shared pointers. 
 
boost::shared_ptr< Net > NetSharedPtr
Shared pointer encapsulation of a Net. 
 
RoutingNetSharedPtrConstIterator routingNetsBegin(void) const 
Returns the begin constant iterator for routingNets. 
 
RoutingNetSharedPtrVector::const_iterator RoutingNetSharedPtrConstIterator
Constant iterator to Routing Net shared pointers. 
 
boost::shared_ptr< Instance > InstanceSharedPtr
Shared pointer encapsulation of an Instance. 
 
boost::shared_ptr< Design > DesignSharedPtr
Shared pointer encapsulation of a Design. 
 
InstancePinSharedPtrVector::const_iterator InstancePinSharedPtrConstIterator
Constant iterator to InstancePin shared pointer objects. 
 
Header for the Net class. 
 
boost::shared_ptr< RoutingNet > RoutingNetSharedPtr
Shared pointer encapsulation of a RoutingNet. 
 
boost::shared_ptr< CombinationalPath > CombinationalPathSharedPtr
Shared pointer encapsulation of a CombinationalPath. 
 
RoutingNetSharedPtrIterator findRoutingNet(const string &inName)
Find a net by name. 
 
bool setPatchCounts(DesignSharedPtr inDesignPtr)
Set combinational counts for all nets. 
 
NetSharedPtrVector::const_iterator NetSharedPtrConstIterator
Constant iterator to Net shared pointers.