remove test from svn source tree

This commit is contained in:
Jean-Manuel Caba 2010-08-26 13:45:14 +00:00
parent e85332a0bb
commit 9ece24db8c
18 changed files with 31 additions and 12882 deletions

View File

@ -1,5 +1,5 @@
// -*-compile-command:"cd ../../../../.. && make"-*- // -*-compile-command:"cd ../../../../.. && make"-*-
// Time-stamp: "2010-08-16 16:52:02" - OpenAccessCommon.h // Time-stamp: "2010-08-24 13:07:42" - OpenAccessCommon.h
// 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 |

View File

@ -1,5 +1,5 @@
// -*-compile-command:"cd ../../../../.. && make"-*- // -*-compile-command:"cd ../../../../.. && make"-*-
// Time-stamp: "2010-08-18 12:19:15" - OpenAccessDriver.cpp // Time-stamp: "2010-08-24 13:35:19" - 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 |
@ -326,7 +326,8 @@ namespace {
cerr << " o get value for constraint" << endl; cerr << " o get value for constraint" << endl;
long minSize = Hurricane::DbU::getDb(layer->getMinimalSize()); long minSize = Hurricane::DbU::getDb(layer->getMinimalSize());
long minSpace = Hurricane::DbU::getDb(layer->getMinimalSpacing()); long minSpace = Hurricane::DbU::getDb(layer->getMinimalSpacing());
long pitch = Hurricane::DbU::getDb(layer->getPitch()); // long pitch = Hurricane::DbU::getDb(layer->getPitch());
long pitch = 1;
oaLayerConstraint* cMinSize = oaLayerConstraint::create(aOALayer->getNumber(), oaLayerConstraint* cMinSize = oaLayerConstraint::create(aOALayer->getNumber(),
oaLayerConstraintDef::get(oacMinWidth), oaLayerConstraintDef::get(oacMinWidth),
oaIntValue::create(theOATech,minSize)); oaIntValue::create(theOATech,minSize));
@ -339,6 +340,15 @@ namespace {
oaLayerConstraint* cPitchV = oaLayerConstraint::create(aOALayer->getNumber(), oaLayerConstraint* cPitchV = oaLayerConstraint::create(aOALayer->getNumber(),
oaLayerConstraintDef::get(oacVerticalRouteGridPitch), oaLayerConstraintDef::get(oacVerticalRouteGridPitch),
oaIntValue::create(theOATech,pitch)); oaIntValue::create(theOATech,pitch));
{
oaConstraintDef *def = oaLayerConstraintDef::get(oacVerticalRouteGridPitch);
oaConstraint *c = oaLayerConstraint::find(getFoundryRules(),
aOALayer->getNumber(),
(oaLayerConstraintDef*) def);
}
return aOALayer; return aOALayer;
} }
@ -381,7 +391,8 @@ namespace {
//create and add foundry constraint group for General manufacturing rules //create and add foundry constraint group for General manufacturing rules
//and add oaSimpleConstraintType too //and add oaSimpleConstraintType too
assert(theOATech); assert(theOATech);
theOATech->getDefaultConstraintGroup();//add the constraint group for oa2lef //add the constraint group for oa2lef
theOATech->getDefaultConstraintGroup();
oaConstraintGroup *cgFoundry = theOATech->getFoundryRules(); oaConstraintGroup *cgFoundry = theOATech->getFoundryRules();
} }
@ -569,6 +580,7 @@ namespace {
cerr << "toOARect" << endl; cerr << "toOARect" << endl;
assert(component); assert(component);
assert(block); assert(block);
assert(_oaTech);
Component2OARectMap::iterator it = _component2OARect.find(component); Component2OARectMap::iterator it = _component2OARect.find(component);
if (it != _component2OARect.end()) if (it != _component2OARect.end())
@ -576,7 +588,7 @@ namespace {
oaRect* rect = oaRect::create(block, oaRect* rect = oaRect::create(block,
toOALayerNum( component->getLayer() ), toOALayerNum( component->getLayer() ),
oacDrawingPurposeType, oaPurpose::get(_oaTech ,oacDrawingPurposeType)->getNumber(),
toOABox(component->getBoundingBox()) ); toOABox(component->getBoundingBox()) );
return rect; return rect;
} }
@ -588,6 +600,7 @@ namespace {
cerr << "toOAPathSeg" << endl; cerr << "toOAPathSeg" << endl;
assert(segment); assert(segment);
assert(blockNet); assert(blockNet);
assert(_oaTech);
Segment2OAPathSegMap::iterator it = _segment2OAPathSeg.find(segment); Segment2OAPathSegMap::iterator it = _segment2OAPathSeg.find(segment);
if (it != _segment2OAPathSeg.end()) if (it != _segment2OAPathSeg.end())
@ -606,7 +619,7 @@ namespace {
oaSegStyle style(segment->getWidth(), oacTruncateEndStyle, oacTruncateEndStyle); oaSegStyle style(segment->getWidth(), oacTruncateEndStyle, oacTruncateEndStyle);
res = oaPathSeg::create(blockNet->getBlock(), res = oaPathSeg::create(blockNet->getBlock(),
toOALayerNum( segment->getLayer() ), toOALayerNum( segment->getLayer() ),
oacDrawingPurposeType, oaPurpose::get(_oaTech ,oacDrawingPurposeType)->getNumber(),
p1, p1,
p2, p2,
style); style);
@ -975,6 +988,17 @@ namespace {
oaBox boundingBox = toOABox(bBox); oaBox boundingBox = toOABox(bBox);
topBlock->getBBox(boundingBox); topBlock->getBBox(boundingBox);
} }
oaUInt4 count = 0;
oaIter<oaLPPHeader> headers(designCellView->getTopBlock()->getLPPHeaders());
while (oaLPPHeader* lppHeader = headers.getNext()) {
cout << "Layer Purpose Pair " << ++count << endl;
oaLayerNum layerNum = lppHeader->getLayerNum();
oaPurposeNum purpNum = lppHeader->getPurposeNum();
cout << "\t Layer = " << layerNum << endl;
cout << "\t Purpose = " << purpNum << endl;
}
return designCellView; return designCellView;
} }
@ -1054,6 +1078,7 @@ namespace {
namespace CRL { namespace CRL {
void OpenAccess::oaDriver(const string& path, Cell* cell) { void OpenAccess::oaDriver(const string& path, Cell* cell) {
cerr << "oaDriver" << endl;
#ifdef HAVE_OPENACCESS #ifdef HAVE_OPENACCESS
oaCell* convertedCell = NULL; oaCell* convertedCell = NULL;
assert(cell); assert(cell);

View File

@ -1,28 +0,0 @@
PROJECT(testOAWrapper)
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.0)
LIST(INSERT CMAKE_MODULE_PATH 0 "$ENV{BOOTSTRAP_TOP}/share/cmake/Modules/")
find_package(Bootstrap REQUIRED)
setup_project_paths(VLSISAPD)
setup_project_paths(CORIOLIS)
LIST(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
LIST(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
LIST(INSERT CMAKE_MODULE_PATH 0
"$ENV{CHAMS_USER_TOP}/share/cmake/Modules/"
"$ENV{CHAMS_TOP}/share/cmake/Modules/")
print_cmake_module_path()
FIND_PACKAGE(HURRICANE REQUIRED)
FIND_PACKAGE(CORIOLIS REQUIRED)
FIND_PACKAGE(VLSISAPD REQUIRED)
FIND_PACKAGE(HURRICANEAMS REQUIRED)
FIND_PACKAGE(AMSCORE REQUIRED)
FIND_PACKAGE(Qt4 REQUIRED) # find and setup Qt4 for this project
FIND_PACKAGE(LibXml2 REQUIRED)
FIND_PACKAGE(PythonLibs REQUIRED)
ADD_SUBDIRECTORY(src)

View File

@ -1,38 +0,0 @@
TESTDIR= ./testOA
#TECHNOFILE= /dsk/l1/misc/caba/coriolis-2.x/Linux.SLSoC5x/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)
all: compile run
lefTest:
cd sxlib2lef && make
compile:
./compile.sh
run: compile
./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log
cd $(TESTDIR)/OAdrive && oa2lef -lib sxlib -views layout -lef sxlibFromOA.lef
debug: compile
gdb -args ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR)
ddd: compile
ddd -args ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR)
valgrind_simple: compile
valgrind ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log
valgrind_full: compile
valgrind -v --leak-check=full --show-reachable=yes ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log
mrproper: clean
rm -rf $(TESTDIR) *.log .cadence
cd sxlib2lef && make mrproper
clean:
rm -rf $(M)
.PHONY: clean mrproper valgrind ddd debug run compile all lefTest

View File

@ -1,4 +0,0 @@
DEFINE WorkLibrary /dsk/l1/misc/caba/coriolis-2.x/src/crlcore/src/ccore/openaccess/test/testOA/OAdrive/WorkLibrary
DEFINE myCM_Library /dsk/l1/misc/caba/coriolis-2.x/src/crlcore/src/ccore/openaccess/test/testOA/OAdrive/myCM_Library
DEFINE sxlibFromOA /dsk/l1/misc/caba/coriolis-2.x/src/crlcore/src/ccore/openaccess/test/testOA/OAdrive/sxlib
DEFINE sxlibFromLef /dsk/l1/misc/caba/coriolis-2.x/src/crlcore/src/ccore/openaccess/test/sxlib2lef/sxlib

View File

@ -1,14 +0,0 @@
#!/bin/bash
ARCH=`uname -m`
if [ ! -e "./compile.sh" ]; then
echo "You must run compile.sh in its own direcotry : ./compile.sh"
exit 1
fi
if [ ! -d "$ARCH/build" ]; then
echo "Creating build directory"
mkdir -p $ARCH/build
fi
cd $ARCH/build && cmake ../.. && make DESTDIR=.. -j2 install

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
INCLUDE(${QT_USE_FILE})
INCLUDE_DIRECTORIES ( ${HURRICANE_INCLUDE_DIR}
${CORIOLIS_INCLUDE_DIR}
${HURRICANEAMS_INCLUDE_DIR}
${HURRICANEAMS_GRAPHICAL_INCLUDE_DIR}
${AMSCORE_INCLUDE_DIR}
${SCHEMATIC_SOURCE_DIR}/src
)
SET ( CPPS main.cpp )
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
ADD_EXECUTABLE(testOAWrapper ${QRCS_SRCS} ${MOCS} ${CPPS} ${QRCS})
TARGET_LINK_LIBRARIES(testOAWrapper ${HURRICANE_LIBRARIES}
${HURRICANE_PYTHON_LIBRARIES}
${OPENCHAMS_LIBRARY}
${CIF_LIBRARY}
${AGDS_LIBRARY}
${CORIOLIS_LIBRARIES}
${HURRICANEAMS_LIBRARIES}
${AMSCORE_LIBRARIES}
${OA_LIBRARIES} )
INSTALL(TARGETS testOAWrapper DESTINATION bin)

View File

@ -1,206 +0,0 @@
// -*-compile-command:"cd .. && make"-*-
// x-----------------------------------------------------------------x
// | This file is part of |
// | Copyright (c) UPMC/LIP6 2008-2009, All Rights Reserved |
// | =============================================================== |
// | Author : Jean-Manuel Caba |
// | E-mail : Jean-Manuel.Caba@asim.lip6.fr |
// x-----------------------------------------------------------------x
#include <iostream>
#include <memory>
#include <assert.h>
using namespace std;
#include "hurricane/Cell.h"
#include "hurricane/Library.h"
#include "hurricane/DataBase.h"
using namespace Hurricane;
#include "crlcore/Catalog.h"
#include "crlcore/RealTechnologyParser.h"
#include "crlcore/SymbolicTechnologyParser.h"
#include "crlcore/AllianceFramework.h"
#include "hurricaneAMS/environment/AnalogEnv.h"
#include "hurricaneAMS/devices/SimpleCurrentMirror.h"
#include "crlcore/GdsDriver.h"
#include "crlcore/CifDriver.h"
#include "crlcore/OADriver.h"
using namespace CRL;
namespace {
static string designName = "design";
static string libName = "WorkLibrary";
};
void testCell(Cell* dev,char* pathToTest){
if(dev){
cerr << "Cell created" << endl;
}else{
cerr << "Cell not created" << endl;
return;
}
cerr << "driving GDS" << endl;
GdsDriver(dev).save(string(pathToTest) + "/" + getString(dev->getName()) + ".gds");
cerr << "driving CIF" << endl;
CifDriver(dev).save(string(pathToTest) + "/" + getString(dev->getName()) + ".cif");
cerr << "driving OA" << endl;
OADriver(dev).save(string(pathToTest) + "/OAdrive");
}
void testAnalog(char* pathToConf,char* pathToTest){
auto_ptr<AnalogEnv> aenv(AnalogEnv::create(pathToConf));//create Database ...
cerr << "analog environment loaded and database created" << endl;
DataBase* db = DataBase::getDB();
assert(db != NULL);
Library* rootLib = db->getRootLibrary();
if(!rootLib){
Library::create(db, "RootLibrary");
rootLib = db->getRootLibrary();
}
assert(rootLib != NULL);
Library* workLibrary = rootLib->getLibrary(libName);
if(!workLibrary)
workLibrary = Library::create(rootLib, libName);
assert(workLibrary != NULL);
Cell* design = workLibrary->getCell(designName);
if(!design)
design = Cell::create(workLibrary, designName);
assert(design != NULL);
cerr << "creating cell myCM" << endl;
bool bulkConnected = true;//bulk connected to source
Cell* dev = SimpleCurrentMirror::create(workLibrary, Name("myCM"),
TransistorFamily::NMOS,
bulkConnected);
cerr << "testing cell myCM" << endl;
testCell(dev,pathToTest);
db->destroy();
}
void testNum(char* pathToConf,char* pathToTest,char* cellName){
cerr << "creating cell from sxlib " << cellName << endl;
DataBase* db = DataBase::getDB();
AllianceFramework* af =AllianceFramework::get();
Cell* cell = af->getCell(cellName, Catalog::State::Views );
cerr << "testing cell from sxlib "<< cellName << endl;
testCell(cell,pathToTest);
}
int main(int argc,char** argv) {
if(argc != 3)
exit(-5);
testAnalog(argv[1],argv[2]);
testNum(argv[1],argv[2],"a2_x2");
testNum(argv[1],argv[2],"a2_x4");
testNum(argv[1],argv[2],"a3_x2");
testNum(argv[1],argv[2],"a3_x4");
testNum(argv[1],argv[2],"a4_x2");
testNum(argv[1],argv[2],"a4_x4");
testNum(argv[1],argv[2],"an12_x1");
testNum(argv[1],argv[2],"an12_x4");
testNum(argv[1],argv[2],"ao22_x2");
testNum(argv[1],argv[2],"ao22_x4");
testNum(argv[1],argv[2],"ao2o22_x2");
testNum(argv[1],argv[2],"ao2o22_x4");
testNum(argv[1],argv[2],"buf_x2");
testNum(argv[1],argv[2],"buf_x4");
testNum(argv[1],argv[2],"buf_x8");
testNum(argv[1],argv[2],"fulladder_x2");
testNum(argv[1],argv[2],"fulladder_x4");
testNum(argv[1],argv[2],"halfadder_x2");
testNum(argv[1],argv[2],"halfadder_x4");
testNum(argv[1],argv[2],"inv_x1");
testNum(argv[1],argv[2],"inv_x2");
testNum(argv[1],argv[2],"inv_x4");
testNum(argv[1],argv[2],"inv_x8");
testNum(argv[1],argv[2],"mx2_x2");
testNum(argv[1],argv[2],"mx2_x4");
testNum(argv[1],argv[2],"mx3_x2");
testNum(argv[1],argv[2],"mx3_x4");
testNum(argv[1],argv[2],"na2_x1");
testNum(argv[1],argv[2],"na2_x4");
testNum(argv[1],argv[2],"na3_x1");
testNum(argv[1],argv[2],"na3_x4");
testNum(argv[1],argv[2],"na4_x1");
testNum(argv[1],argv[2],"na4_x4");
testNum(argv[1],argv[2],"nao22_x1");
testNum(argv[1],argv[2],"nao22_x4");
testNum(argv[1],argv[2],"nao2o22_x1");
testNum(argv[1],argv[2],"nao2o22_x4");
testNum(argv[1],argv[2],"nmx2_x1");
testNum(argv[1],argv[2],"nmx2_x4");
testNum(argv[1],argv[2],"nmx3_x1");
testNum(argv[1],argv[2],"nmx3_x4");
testNum(argv[1],argv[2],"no2_x1");
testNum(argv[1],argv[2],"no2_x4");
testNum(argv[1],argv[2],"no3_x1");
testNum(argv[1],argv[2],"no3_x4");
testNum(argv[1],argv[2],"no4_x1");
testNum(argv[1],argv[2],"no4_x4");
testNum(argv[1],argv[2],"noa22_x1");
testNum(argv[1],argv[2],"noa22_x4");
testNum(argv[1],argv[2],"noa2a22_x1");
testNum(argv[1],argv[2],"noa2a22_x4");
testNum(argv[1],argv[2],"noa2a2a23_x1");
testNum(argv[1],argv[2],"noa2a2a23_x4");
testNum(argv[1],argv[2],"noa2a2a2a24_x1");
testNum(argv[1],argv[2],"noa2a2a2a24_x4");
testNum(argv[1],argv[2],"noa2ao222_x1");
testNum(argv[1],argv[2],"noa2ao222_x4");
testNum(argv[1],argv[2],"noa3ao322_x1");
testNum(argv[1],argv[2],"noa3ao322_x4");
testNum(argv[1],argv[2],"nts_x1");
testNum(argv[1],argv[2],"nts_x2");
testNum(argv[1],argv[2],"nxr2_x1");
testNum(argv[1],argv[2],"nxr2_x4");
testNum(argv[1],argv[2],"o2_x2");
testNum(argv[1],argv[2],"o2_x4");
testNum(argv[1],argv[2],"o3_x2");
testNum(argv[1],argv[2],"o3_x4");
testNum(argv[1],argv[2],"o4_x2");
testNum(argv[1],argv[2],"o4_x4");
testNum(argv[1],argv[2],"oa22_x2");
testNum(argv[1],argv[2],"oa22_x4");
testNum(argv[1],argv[2],"oa2a22_x2");
testNum(argv[1],argv[2],"oa2a22_x4");
testNum(argv[1],argv[2],"oa2a2a23_x2");
testNum(argv[1],argv[2],"oa2a2a23_x4");
testNum(argv[1],argv[2],"oa2a2a2a24_x2");
testNum(argv[1],argv[2],"oa2a2a2a24_x4");
testNum(argv[1],argv[2],"oa2ao222_x2");
testNum(argv[1],argv[2],"oa2ao222_x4");
testNum(argv[1],argv[2],"oa3ao322_x2");
testNum(argv[1],argv[2],"oa3ao322_x4");
testNum(argv[1],argv[2],"on12_x1");
testNum(argv[1],argv[2],"on12_x4");
testNum(argv[1],argv[2],"one_x0");
testNum(argv[1],argv[2],"powmid_x0");
testNum(argv[1],argv[2],"rowend_x0");
testNum(argv[1],argv[2],"sff1_x4");
testNum(argv[1],argv[2],"sff2_x4");
testNum(argv[1],argv[2],"sff3_x4");
testNum(argv[1],argv[2],"tie_x0");
testNum(argv[1],argv[2],"ts_x4");
testNum(argv[1],argv[2],"ts_x8");
testNum(argv[1],argv[2],"xr2_x1");
testNum(argv[1],argv[2],"xr2_x4");
testNum(argv[1],argv[2],"zero_x0");
DataBase::getDB()->destroy();
cerr << "ending normally" << endl;
return 0;
}

View File

@ -1,17 +0,0 @@
all: sxlib.lef
lef2oa -lib sxlib -lef sxlib.lef
oa2lef -lib sxlib -lef sxlib_back.lef
sxlib.lef:
grep -v "END LIBRARY" cmos.lef.bak > sxlib.lef ; for i in $$(cat cells) ; do sxlib2lef $$i ; cat $$i.lef >> sxlib.lef ; done
echo "END LIBRARY" >> sxlib.lef
cp sxlib.lef sxlib.lef.bak
mrproper: clean
rm -rf sxlib cds.lib .cadence .oalib
clean:
rm -rf *.log *.slog *~ encounter* *.lef
.PHONY: all mrproper clean

View File

@ -1,95 +0,0 @@
a2_x2
a2_x4
a3_x2
a3_x4
a4_x2
a4_x4
an12_x1
an12_x4
ao22_x2
ao22_x4
ao2o22_x2
ao2o22_x4
buf_x2
buf_x4
buf_x8
fulladder_x2
fulladder_x4
halfadder_x2
halfadder_x4
inv_x1
inv_x2
inv_x4
inv_x8
mx2_x2
mx2_x4
mx3_x2
mx3_x4
na2_x1
na2_x4
na3_x1
na3_x4
na4_x1
na4_x4
nao22_x1
nao22_x4
nao2o22_x1
nao2o22_x4
nmx2_x1
nmx2_x4
nmx3_x1
nmx3_x4
no2_x1
no2_x4
no3_x1
no3_x4
no4_x1
no4_x4
noa22_x1
noa22_x4
noa2a22_x1
noa2a22_x4
noa2a2a23_x1
noa2a2a23_x4
noa2a2a2a24_x1
noa2a2a2a24_x4
noa2ao222_x1
noa2ao222_x4
noa3ao322_x1
noa3ao322_x4
nts_x1
nts_x2
nxr2_x1
nxr2_x4
o2_x2
o2_x4
o3_x2
o3_x4
o4_x2
o4_x4
oa22_x2
oa22_x4
oa2a22_x2
oa2a22_x4
oa2a2a23_x2
oa2a2a23_x4
oa2a2a2a24_x2
oa2a2a2a24_x4
oa2ao222_x2
oa2ao222_x4
oa3ao322_x2
oa3ao322_x4
on12_x1
on12_x4
one_x0
powmid_x0
rowend_x0
sff1_x4
sff2_x4
sff3_x4
tie_x0
ts_x4
ts_x8
xr2_x1
xr2_x4
zero_x0

View File

@ -1,435 +0,0 @@
#
# $Id: cmos.lef,v 1.6 2005/03/01 14:59:15 jpc Exp $
#
# /------------------------------------------------------------------\
# | |
# | A l l i a n c e C A D S y s t e m |
# | S i l i c o n E n s e m b l e / A l l i a n c e |
# | |
# | Author : Jean-Paul CHAPUT |
# | E-mail : alliance-users@asim.lip6.fr |
# | ================================================================ |
# | LEF : "./cmos_12.lef" |
# | **************************************************************** |
# | U p d a t e s |
# | |
# \------------------------------------------------------------------/
#
VERSION 5.2 ;
NAMESCASESENSITIVE ON ;
BUSBITCHARS "()" ;
DIVIDERCHAR "." ;
#NOWIREEXTENSIONATPIN ON ;
#UNITS
# DATABASE MICRONS 100 ;
#END UNITS
LAYER POLY
TYPE MASTERSLICE ;
END POLY
LAYER VIAP
TYPE CUT ;
END VIAP
LAYER ALU1
TYPE ROUTING ;
WIDTH 2.00 ;
SPACING 3.00 ;
PITCH 5.00 ;
DIRECTION VERTICAL ;
CAPACITANCE CPERSQDIST 0.000032 ;
RESISTANCE RPERSQ 0.100000 ;
END ALU1
LAYER VIA1
TYPE CUT ;
END VIA1
LAYER ALU2
TYPE ROUTING ;
WIDTH 2.00 ;
SPACING 3.00 ;
PITCH 5.00 ;
DIRECTION HORIZONTAL ;
CAPACITANCE CPERSQDIST 0.000032 ;
RESISTANCE RPERSQ 0.100000 ;
END ALU2
LAYER VIA2
TYPE CUT ;
END VIA2
LAYER ALU3
TYPE ROUTING ;
WIDTH 2.00 ;
SPACING 3.00 ;
PITCH 5.00 ;
DIRECTION VERTICAL ;
CAPACITANCE CPERSQDIST 0.000032 ;
RESISTANCE RPERSQ 0.100000 ;
END ALU3
LAYER VIA3
TYPE CUT ;
END VIA3
LAYER ALU4
TYPE ROUTING ;
WIDTH 2.00 ;
SPACING 3.00 ;
PITCH 5.00 ;
DIRECTION HORIZONTAL ;
CAPACITANCE CPERSQDIST 0.000032 ;
RESISTANCE RPERSQ 0.100000 ;
END ALU4
LAYER VIA4
TYPE CUT ;
END VIA4
LAYER ALU5
TYPE ROUTING ;
WIDTH 2.00 ;
SPACING 3.00 ;
PITCH 5.00 ;
DIRECTION VERTICAL ;
CAPACITANCE CPERSQDIST 0.000032 ;
RESISTANCE RPERSQ 0.100000 ;
END ALU5
LAYER VIA5
TYPE CUT ;
END VIA5
LAYER ALU6
TYPE ROUTING ;
WIDTH 2.00 ;
SPACING 3.00 ;
PITCH 5.00 ;
DIRECTION HORIZONTAL ;
CAPACITANCE CPERSQDIST 0.000032 ;
RESISTANCE RPERSQ 0.100000 ;
END ALU6
#VIA CONT_POLY DEFAULT
# LAYER POLY ;
# RECT -1.50 -1.50 1.50 1.50 ;
# LAYER VIAP ;
# RECT -0.50 -0.50 0.50 0.50 ;
# LAYER ALU1 ;
# RECT -1.00 -1.00 1.00 1.00 ;
#END CONT_POLY
VIA CONT_VIA DEFAULT
LAYER ALU1 ;
RECT -1.00 -1.00 1.00 1.00 ;
LAYER VIA1 ;
RECT -0.50 -0.50 0.50 0.50 ;
LAYER ALU2 ;
RECT -1.00 -1.00 1.00 1.00 ;
END CONT_VIA
VIA CONT_VIA2 DEFAULT
LAYER ALU3 ;
RECT -1.00 -1.00 1.00 1.00 ;
LAYER VIA2 ;
RECT -0.50 -0.50 0.50 0.50 ;
LAYER ALU2 ;
RECT -1.00 -1.00 1.00 1.00 ;
END CONT_VIA2
VIA CONT_VIA3 DEFAULT
LAYER ALU4 ;
RECT -1.00 -1.00 1.00 1.00 ;
LAYER VIA3 ;
RECT -0.50 -0.50 0.50 0.50 ;
LAYER ALU3 ;
RECT -1.00 -1.00 1.00 1.00 ;
END CONT_VIA3
VIA CONT_VIA4 DEFAULT
LAYER ALU5 ;
RECT -1.00 -1.00 1.00 1.00 ;
LAYER VIA4 ;
RECT -0.50 -0.50 0.50 0.50 ;
LAYER ALU4 ;
RECT -1.00 -1.00 1.00 1.00 ;
END CONT_VIA4
VIA CONT_VIA5 DEFAULT
LAYER ALU6 ;
RECT -1.00 -1.00 1.00 1.00 ;
LAYER VIA5 ;
RECT -0.50 -0.50 0.50 0.50 ;
LAYER ALU5 ;
RECT -1.00 -1.00 1.00 1.00 ;
END CONT_VIA5
VIARULE TURN_ALU1 GENERATE
LAYER ALU1 ;
DIRECTION vertical ;
LAYER ALU1 ;
DIRECTION horizontal ;
END TURN_ALU1
VIARULE TURN_ALU2 GENERATE
LAYER ALU2 ;
DIRECTION vertical ;
LAYER ALU2 ;
DIRECTION horizontal ;
END TURN_ALU2
VIARULE TURN_ALU3 GENERATE
LAYER ALU3 ;
DIRECTION vertical ;
LAYER ALU3 ;
DIRECTION horizontal ;
END TURN_ALU3
VIARULE TURN_ALU4 GENERATE
LAYER ALU4 ;
DIRECTION vertical ;
LAYER ALU4 ;
DIRECTION horizontal ;
END TURN_ALU4
VIARULE TURN_ALU5 GENERATE
LAYER ALU5 ;
DIRECTION vertical ;
LAYER ALU5 ;
DIRECTION horizontal ;
END TURN_ALU5
VIARULE TURN_ALU6 GENERATE
LAYER ALU6 ;
DIRECTION vertical ;
LAYER ALU6 ;
DIRECTION horizontal ;
END TURN_ALU6
#VIARULE VIA1_HV
# LAYER ALU1 ;
# DIRECTION VERTICAL ;
# OVERHANG 0.50 ;
# METALOVERHANG 0.50 ;
#
# LAYER ALU2 ;
# DIRECTION HORIZONTAL ;
# OVERHANG 0.50 ;
# METALOVERHANG 0.50 ;
#
# VIA CONT_VIA ;
#END VIA1_HV
#
#
#VIARULE VIA2_VH
# LAYER ALU2 ;
# DIRECTION HORIZONTAL ;
# OVERHANG 0.50 ;
# METALOVERHANG 0.50 ;
#
# LAYER ALU3 ;
# DIRECTION VERTICAL ;
# OVERHANG 0.50 ;
# METALOVERHANG 0.50 ;
#
# VIA CONT_VIA2 ;
#END VIA2_VH
#
#
#VIARULE VIA3_VH
# LAYER ALU3 ;
# DIRECTION HORIZONTAL ;
# OVERHANG 0.50 ;
# METALOVERHANG 0.50 ;
#
# LAYER ALU4 ;
# DIRECTION VERTICAL ;
# OVERHANG 0.50 ;
# METALOVERHANG 0.50 ;
#
# VIA CONT_VIA3 ;
#END VIA3_VH
VIARULE genVIA1_HV GENERATE
LAYER ALU1 ;
DIRECTION VERTICAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER ALU2 ;
DIRECTION HORIZONTAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER VIA1 ;
RECT -0.50 -0.50 0.50 0.50 ;
SPACING 3.00 BY 3.00 ;
END genVIA1_HV
VIARULE genVIA1_VH GENERATE
LAYER ALU1 ;
DIRECTION HORIZONTAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER ALU2 ;
DIRECTION VERTICAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER VIA1 ;
RECT -0.50 -0.50 0.50 0.50 ;
SPACING 3.00 BY 3.00 ;
END genVIA1_VH
VIARULE genVIA2_VH GENERATE
LAYER ALU2 ;
DIRECTION HORIZONTAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER ALU3 ;
DIRECTION VERTICAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER VIA2 ;
RECT -0.50 -0.50 0.50 0.50 ;
SPACING 3.00 BY 3.00 ;
END genVIA2_VH
VIARULE genVIA2_HV GENERATE
LAYER ALU2 ;
DIRECTION VERTICAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER ALU3 ;
DIRECTION HORIZONTAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER VIA2 ;
RECT -0.50 -0.50 0.50 0.50 ;
SPACING 3.00 BY 3.00 ;
END genVIA2_HV
VIARULE genVIA3_VH GENERATE
LAYER ALU3 ;
DIRECTION HORIZONTAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER ALU4 ;
DIRECTION VERTICAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER VIA3 ;
RECT -0.50 -0.50 0.50 0.50 ;
SPACING 3.00 BY 3.00 ;
END genVIA3_VH
VIARULE genVIA3_HV GENERATE
LAYER ALU3 ;
DIRECTION VERTICAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER ALU4 ;
DIRECTION HORIZONTAL ;
OVERHANG 0.50 ;
METALOVERHANG 0.50 ;
LAYER VIA3 ;
RECT -0.50 -0.50 0.50 0.50 ;
SPACING 3.00 BY 3.00 ;
END genVIA3_HV
SPACING
SAMENET VIAP VIAP 3.00 ;
SAMENET VIA1 VIA1 3.00 ;
SAMENET VIA2 VIA2 3.00 ;
SAMENET VIAP VIA1 3.00 STACK ;
SAMENET VIA1 VIA2 3.00 STACK ;
SAMENET VIA2 VIA3 3.00 STACK ;
SAMENET VIA3 VIA4 3.00 STACK ;
SAMENET VIA4 VIA5 3.00 STACK ;
SAMENET POLY POLY 3.00 ;
SAMENET ALU1 ALU1 3.00 STACK ;
SAMENET ALU2 ALU2 3.00 STACK ;
SAMENET ALU3 ALU3 3.00 STACK ;
SAMENET ALU4 ALU4 3.00 STACK ;
SAMENET ALU5 ALU5 3.00 STACK ;
SAMENET ALU6 ALU6 3.00 ;
END SPACING
SITE core
SYMMETRY y ;
CLASS CORE ;
SIZE 5.00 BY 50.00 ;
END core
SITE pad
SYMMETRY y ;
CLASS PAD ;
SIZE 1.00 BY 500.00 ;
END pad
SITE corner
SYMMETRY y r90 ;
CLASS PAD ;
SIZE 500.00 BY 500.00 ;
END corner
END LIBRARY

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +0,0 @@
PROJECT(testOAWrapper)
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.0)
LIST(INSERT CMAKE_MODULE_PATH 0 "$ENV{BOOTSTRAP_TOP}/share/cmake/Modules/")
find_package(Bootstrap REQUIRED)
setup_project_paths(VLSISAPD)
setup_project_paths(CORIOLIS)
LIST(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
LIST(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
LIST(INSERT CMAKE_MODULE_PATH 0
"$ENV{CHAMS_USER_TOP}/share/cmake/Modules/"
"$ENV{CHAMS_TOP}/share/cmake/Modules/")
print_cmake_module_path()
FIND_PACKAGE(HURRICANE REQUIRED)
FIND_PACKAGE(CORIOLIS REQUIRED)
FIND_PACKAGE(VLSISAPD REQUIRED)
FIND_PACKAGE(HURRICANEAMS REQUIRED)
FIND_PACKAGE(AMSCORE REQUIRED)
FIND_PACKAGE(Qt4 REQUIRED) # find and setup Qt4 for this project
FIND_PACKAGE(LibXml2 REQUIRED)
FIND_PACKAGE(PythonLibs REQUIRED)
ADD_SUBDIRECTORY(src)

View File

@ -1,23 +0,0 @@
TECHNOFILE= /asim/chams/etc/chams/config.freePDK45.xml
M=$$(uname -m)
all: compile
compile:
./compile.sh
run:
./$(M)/usr/local/bin/testOAWrapper \
"/dsk/l1/misc/caba/OA_BENCHMARKS/NangateOpenCellLibrary_PDKv1_3_v2009_07/openaccess" \
"NangateOpenCellLibrary" \
"/dsk/l1/misc/caba/OA_BENCHMARKS/NangateOpenCellLibrary_PDKv1_3_v2009_07/openaccess" \
"NCSU_FreePDK_45nm"
mrproper: clean
rm -rf *.log .cadence
clean:
rm -rf $(M)
.PHONY: clean mrproper compile all run

View File

@ -1,14 +0,0 @@
#!/bin/bash
ARCH=`uname -m`
if [ ! -e "./compile.sh" ]; then
echo "You must run compile.sh in its own direcotry : ./compile.sh"
exit 1
fi
if [ ! -d "$ARCH/build" ]; then
echo "Creating build directory"
mkdir -p $ARCH/build
fi
cd $ARCH/build && cmake ../.. && make DESTDIR=.. -j2 install

View File

@ -1,26 +0,0 @@
INCLUDE(${QT_USE_FILE})
INCLUDE_DIRECTORIES ( ${HURRICANE_INCLUDE_DIR}
${CORIOLIS_INCLUDE_DIR}
${HURRICANEAMS_INCLUDE_DIR}
${HURRICANEAMS_GRAPHICAL_INCLUDE_DIR}
${AMSCORE_INCLUDE_DIR}
${SCHEMATIC_SOURCE_DIR}/src
)
SET ( CPPS main.cpp )
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
ADD_EXECUTABLE(testOAWrapper ${QRCS_SRCS} ${MOCS} ${CPPS} ${QRCS})
TARGET_LINK_LIBRARIES(testOAWrapper ${HURRICANE_LIBRARIES}
${HURRICANE_PYTHON_LIBRARIES}
${OPENCHAMS_LIBRARY}
${CIF_LIBRARY}
${AGDS_LIBRARY}
${CORIOLIS_LIBRARIES}
${HURRICANEAMS_LIBRARIES}
${AMSCORE_LIBRARIES}
${OA_LIBRARIES} )
INSTALL(TARGETS testOAWrapper DESTINATION bin)

View File

@ -1,60 +0,0 @@
// -*-compile-command:"cd .. && make"-*-
// x-----------------------------------------------------------------x
// | This file is part of |
// | Copyright (c) UPMC/LIP6 2008-2009, All Rights Reserved |
// | =============================================================== |
// | Author : Jean-Manuel Caba |
// | E-mail : Jean-Manuel.Caba@asim.lip6.fr |
// x-----------------------------------------------------------------x
#include <iostream>
#include <memory>
#include <assert.h>
using namespace std;
#include <QtGui>
#if (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) and not defined (__APPLE__)
# include <QGtkStyle>
#endif
#include "hurricane/DataBase.h"
#include "hurricane/Technology.h"
#include "hurricane/Cell.h"
#include "hurricane/viewer/Graphics.h"
#include "hurricane/viewer/CellViewer.h"
#include "hurricane/viewer/HApplication.h"
using namespace Hurricane;
#include "crlcore/AllianceFramework.h"
#include "crlcore/OAParser.h"
using namespace CRL;
int main(int argc,char** argv) {
int returnCode=0;
if(argc!=5)
return -1;
dbo_ptr<AllianceFramework> af(AllianceFramework::create());
auto_ptr<DataBase> sys(DataBase::getDB());
// Cell* cell = af->getCell("inv_x1", Catalog::State::Views );
Cell* cell = OAParser(argv[1],argv[2],argv[3],argv[4]).open("INV_X1");
auto_ptr<QApplication> qa(new HApplication(argc,argv));
#if (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) and not defined (__APPLE__)
qa->setStyle(new QGtkStyle());
#endif
Graphics::enable();
auto_ptr<CellViewer> blockViewer(new CellViewer());
blockViewer->setCell(cell);
blockViewer->show();
returnCode = qa->exec();
cerr << "ending normally ?" << endl;
return returnCode;
}