00001 // **************************************************************************** 00002 // **************************************************************************** 00003 // oaRouteOptimizer.h 00004 // 00005 // This file contains the definition of the oaRouteOptimizer class. This is a 00006 // class that is used to optimize the routes on a net according to various 00007 // control options. It is presented as a separate class for efficiency 00008 // purposes. It is expected that typical use will create an oaRouteOptimizer 00009 // object, use it to optimize a large number of nets' routes, and then destroy 00010 // it. The efficiencies gained by presenting the optimizer as its own object 00011 // are large enough to justify this new class. 00012 // 00013 // **************************************************************************** 00014 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00015 // Integration Initiative, this material may not be copied, modified, 00016 // re-published, uploaded, executed, or distributed in any way, in any medium, 00017 // in whole or in part, without prior written permission from Cadence. 00018 // 00019 // Copyright 2002-2005 Cadence Design Systems, Inc. 00020 // All Rights Reserved. 00021 // 00022 // $Author: icftcm $ 00023 // $Revision: #1 $ 00024 // $Date: 2010/08/09 $ 00025 // $State: Exp $ 00026 // **************************************************************************** 00027 // **************************************************************************** 00028 00029 00030 00031 #if !defined(oaRouteOptimizer_P) 00032 #define oaRouteOptimizer_P 00033 00034 00035 00036 // ***************************************************************************** 00037 // Nested includes 00038 // ***************************************************************************** 00039 #include "oaBlock.h" 00040 00041 00042 00043 // ***************************************************************************** 00044 // Declare and define types in the OpenAccess namespace. 00045 // ***************************************************************************** 00046 BEGIN_OA_NAMESPACE 00047 00048 00049 00050 // **************************************************************************** 00051 // Route Optimizer option flags 00052 // **************************************************************************** 00053 const oaUInt4 oacROGeometricOnly = 0x01; 00054 const oaUInt4 oacROGeometricDefault = 0x02; 00055 const oaUInt4 oacROPreserveGuides = 0x04; 00056 const oaUInt4 oacROPreserveSteiners = 0x08; 00057 const oaUInt4 oacROPreserveSteinerPins = 0x10; 00058 00059 00060 00061 // Forward declaration 00062 class oaRouteOptimizerPvt; 00063 00064 00065 00066 // **************************************************************************** 00067 // oaRouteOptimizer 00068 // **************************************************************************** 00069 class OA_DESIGN_DLL_API oaRouteOptimizer { 00070 public: 00071 oaRouteOptimizerPvt *state; 00072 00073 oaRouteOptimizer(); 00074 ~oaRouteOptimizer(); 00075 oaUInt8 calcVMSize(); 00076 oaBoolean optimize(oaNet *net, 00077 oaUInt4 flags = oacROPreserveGuides | 00078 oacROPreserveSteinerPins); 00079 oaBoolean optimize(oaBlock *block, 00080 oaUInt4 flags = oacROPreserveGuides | 00081 oacROPreserveSteinerPins); 00082 }; 00083 00084 00085 00086 END_OA_NAMESPACE 00087 00088 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.