Set combinational counts for all nets.
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);
RoutingNetSharedPtrVector mRoutingNets
Vector of routing net shared pointers.
InstanceSharedPtrVector::const_iterator InstanceSharedPtrConstIterator
Constant iterator to Instance shared pointers.
PinType getInstancePinType(InstancePinSharedPtr instancePinPtr)
Returns instance pin type.
boost::shared_ptr< class InstancePin > InstancePinSharedPtr
Shared pointer encapsulation of an InstancePin.
InstancePinMap::const_iterator InstancePinSharedPtrConstIterator
Constant iterator to InstancePin shared pointers.
boost::shared_ptr< Net > NetSharedPtr
Shared pointer encapsulation of a Net.
boost::shared_ptr< Instance > InstanceSharedPtr
Shared pointer encapsulation of an Instance.
InstancePinSharedPtrVector::const_iterator InstancePinSharedPtrConstIterator
Constant iterator to InstancePin shared pointer objects.
boost::shared_ptr< RoutingNet > RoutingNetSharedPtr
Shared pointer encapsulation of a RoutingNet.
RoutingNetSharedPtrIterator findRoutingNet(const string &inName)
Find a net by name.
NetSharedPtrVector::const_iterator NetSharedPtrConstIterator
Constant iterator to Net shared pointers.