Set all segments of external net as external components.
* New: In KatanaEngine::exportExternalnets(), for commercial tools to correctly regenerate the external pins from GDSII files it seems necessary that all segments needs to have TEXT label. So make them external components.
This commit is contained in:
parent
aece850a6c
commit
1205505cf2
|
@ -25,6 +25,7 @@
|
|||
#include "hurricane/RoutingPad.h"
|
||||
#include "hurricane/Vertical.h"
|
||||
#include "hurricane/Cell.h"
|
||||
#include "hurricane/NetExternalComponents.h"
|
||||
#include "hurricane/DebugSession.h"
|
||||
#include "hurricane/UpdateSession.h"
|
||||
#include "crlcore/RoutingGauge.h"
|
||||
|
@ -139,6 +140,7 @@ namespace Anabatic {
|
|||
using Hurricane::Horizontal;
|
||||
using Hurricane::Vertical;
|
||||
using Hurricane::NetRoutingExtension;
|
||||
using Hurricane::NetExternalComponents;
|
||||
using Hurricane::Cell;
|
||||
using Hurricane::DebugSession;
|
||||
using Hurricane::UpdateSession;
|
||||
|
@ -444,10 +446,24 @@ namespace Anabatic {
|
|||
_ovEdges.clear();
|
||||
}
|
||||
|
||||
exportExternalNets();
|
||||
Session::close();
|
||||
}
|
||||
|
||||
|
||||
void AnabaticEngine::exportExternalNets ()
|
||||
{
|
||||
for ( Net* net : getCell()->getNets() ) {
|
||||
if (not net->isExternal()) continue;
|
||||
if (net->isSupply()) continue;
|
||||
|
||||
for ( Segment* segment : net->getSegments() ) {
|
||||
NetExternalComponents::setExternal( segment );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Configuration* AnabaticEngine::getConfiguration ()
|
||||
{ return _configuration; }
|
||||
|
||||
|
|
|
@ -474,12 +474,13 @@ namespace Anabatic {
|
|||
|
||||
void AutoContact::setConstraintBox ( const Box& box )
|
||||
{
|
||||
cdebug_log(149,0) << "setConstraintBox() " << this << " " << getConstraintBox()
|
||||
<< " from:" << box << endl;
|
||||
setCBXMin ( box.getXMin() );
|
||||
setCBXMax ( box.getXMax() );
|
||||
setCBYMin ( box.getYMin() );
|
||||
setCBYMax ( box.getYMax() );
|
||||
cdebug_log(149,0) << "setConstraintBox() - " << this << " " << getConstraintBox()
|
||||
<< " from:" << box << endl;
|
||||
cdebug_log(149,0) << "setConstraintBox() " << this << " " << getConstraintBox() << endl;
|
||||
cdebug_log(149,0) << "* " << _gcell << endl;
|
||||
}
|
||||
|
||||
|
|
|
@ -273,6 +273,7 @@ namespace Anabatic {
|
|||
bool moveUpNetTrunk ( AutoSegment*, set<Net*>& globalNets, GCell::Set& invalidateds );
|
||||
void layerAssign ( uint32_t method );
|
||||
void finalizeLayout ();
|
||||
void exportExternalNets ();
|
||||
inline const AutoContactLut& _getAutoContactLut () const;
|
||||
inline const AutoSegmentLut& _getAutoSegmentLut () const;
|
||||
void _link ( AutoContact* );
|
||||
|
|
Loading…
Reference in New Issue