better cluster management ...
This commit is contained in:
parent
73e73aa86f
commit
5d871b1353
|
@ -1,6 +1,5 @@
|
||||||
|
|
||||||
// -*-compile-command:"cd ../../../../.. && make"-*-
|
// -*-compile-command:"cd ../../../../.. && make"-*-
|
||||||
// Time-stamp: "2010-08-18 10:32:07" - OpenAccessDriver.cpp
|
// Time-stamp: "2010-08-18 11:21:49" - OpenAccessDriver.cpp
|
||||||
// x-----------------------------------------------------------------x
|
// x-----------------------------------------------------------------x
|
||||||
// | This file is part of the hurricaneAMS Software. |
|
// | This file is part of the hurricaneAMS Software. |
|
||||||
// | Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved |
|
// | Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved |
|
||||||
|
@ -945,35 +944,36 @@ namespace {
|
||||||
cerr << "transformation of instances" << endl;
|
cerr << "transformation of instances" << endl;
|
||||||
oaCluster* cellCluster = oaCluster::find(topBlock,
|
oaCluster* cellCluster = oaCluster::find(topBlock,
|
||||||
getString(cell->getName()).c_str());
|
getString(cell->getName()).c_str());
|
||||||
if(!cellCluster)
|
if(!cellCluster){//le cluster existe déja donc la conversion est déja faite ...
|
||||||
cellCluster = oaCluster::create(topBlock,
|
cellCluster = oaCluster::create(topBlock,
|
||||||
getString(cell->getName()).c_str(),
|
getString(cell->getName()).c_str(),
|
||||||
oacClusterTypeSuggested);
|
oacClusterTypeSuggested);
|
||||||
assert(cellCluster);
|
assert(cellCluster);
|
||||||
for_each_instance(instance, cell->getInstances()){
|
for_each_instance(instance, cell->getInstances()){
|
||||||
oaInst* inst = toOAInst(instance,topBlock);
|
oaInst* inst = toOAInst(instance,topBlock);
|
||||||
inst->addToCluster(cellCluster);
|
inst->addToCluster(cellCluster);
|
||||||
end_for;
|
end_for;
|
||||||
|
}
|
||||||
|
cerr << "transformation of nets" << endl;
|
||||||
|
for_each_net(net, cell->getNets()){
|
||||||
|
oaNet* n =toOANet(net,topBlock);
|
||||||
|
end_for;
|
||||||
|
}
|
||||||
|
|
||||||
|
//get and update boundingBox and set abutment box
|
||||||
|
Box bBox = cell->getBoundingBox();
|
||||||
|
cerr << "Hurricane bounding box" << bBox << " in cell " << cell << endl;
|
||||||
|
Box aBox = cell->getAbutmentBox();
|
||||||
|
cerr << "Hurricane abutment box" << aBox << " in cell " << cell << endl;
|
||||||
|
|
||||||
|
// create abutment in oa
|
||||||
|
if(!aBox.isEmpty())
|
||||||
|
if(!oaSnapBoundary::find(topBlock))
|
||||||
|
oaSnapBoundary::create(topBlock, toOABox(aBox));
|
||||||
|
|
||||||
|
oaBox boundingBox = toOABox(bBox);
|
||||||
|
topBlock->getBBox(boundingBox);
|
||||||
}
|
}
|
||||||
cerr << "transformation of nets" << endl;
|
|
||||||
for_each_net(net, cell->getNets()){
|
|
||||||
oaNet* n =toOANet(net,topBlock);
|
|
||||||
end_for;
|
|
||||||
}
|
|
||||||
|
|
||||||
//get and update boundingBox and set abutment box
|
|
||||||
Box bBox = cell->getBoundingBox();
|
|
||||||
cerr << "Hurricane bounding box" << bBox << " in cell " << cell << endl;
|
|
||||||
Box aBox = cell->getAbutmentBox();
|
|
||||||
cerr << "Hurricane abutment box" << aBox << " in cell " << cell << endl;
|
|
||||||
|
|
||||||
// create abutment in oa
|
|
||||||
if(!aBox.isEmpty())
|
|
||||||
if(!oaSnapBoundary::find(topBlock))
|
|
||||||
oaSnapBoundary::create(topBlock, toOABox(aBox));
|
|
||||||
|
|
||||||
oaBox boundingBox = toOABox(bBox);
|
|
||||||
topBlock->getBBox(boundingBox);
|
|
||||||
|
|
||||||
return designCellView;
|
return designCellView;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ TESTDIR= ./testOA
|
||||||
TECHNOFILE= /dsk/l1/misc/caba/coriolis-2.x/Linux.SLSoC5x_64/Release.Shared/install/etc/chams/config.freePDK45.xml
|
TECHNOFILE= /dsk/l1/misc/caba/coriolis-2.x/Linux.SLSoC5x_64/Release.Shared/install/etc/chams/config.freePDK45.xml
|
||||||
M=$$(uname -m)
|
M=$$(uname -m)
|
||||||
|
|
||||||
all: compile lefTest run
|
all: compile run
|
||||||
|
|
||||||
lefTest:
|
lefTest:
|
||||||
cd sxlib2lef && make
|
cd sxlib2lef && make
|
||||||
|
|
Loading…
Reference in New Issue