diff --git a/hurricane/src/hurricane/Rectilinear.cpp b/hurricane/src/hurricane/Rectilinear.cpp index e43d0062..2a869db2 100644 --- a/hurricane/src/hurricane/Rectilinear.cpp +++ b/hurricane/src/hurricane/Rectilinear.cpp @@ -35,7 +35,9 @@ #include "hurricane/Net.h" #include "hurricane/BasicLayer.h" #include "hurricane/Layer.h" +#include "hurricane/Cell.h" #include "hurricane/Error.h" +#include "hurricane/Warning.h" namespace Hurricane { @@ -59,6 +61,7 @@ namespace Hurricane { if (points.size() > 1000) throw Error( "Rectilinear::create(): Rectlinear polygons must not exceed 1000 vertexes." ); + DbU::Unit oneGrid = DbU::fromGrid( 1.0 ); for ( size_t i=0 ; igetCell()->getName()).c_str() + , getString(net->getName()).c_str() + , i + , getString(points[i]).c_str() + , DbU::getValueString(oneGrid).c_str() ) << endl; + if (points[i].getY() % oneGrid) + cerr << Warning( "Rectilinear::create(): In Cell \"%s\", Net \"%s\",\n" + " Point [%d] = %s, Y is off foundry grid (%s)" + , getString(net->getCell()->getName()).c_str() + , getString(net->getName()).c_str() + , i + , getString(points[i]).c_str() + , DbU::getValueString(oneGrid).c_str() ) << endl; } Rectilinear* rectilinear = new Rectilinear ( net, layer, points );