====================== ./EMH/EMH.cpp EMH.cpp // EMH.cpp // // This program performs following tasks. // 1. Create a block hierarchy in a design. // 2. Create a module hierarchy in the same design. // 3. Create a net in the top level module and leaf level module. // 4. Print the net names in the top level block to demonstrate the effect of // adding nets in the module domain. // 5. Create a net in the top level block. // 6. Print the net names in the top level module to demonstate the effect of // adding nets in the block domain. // 5. Create an instance of leaf level block in the leaf level module. // 6. Create an instance of design in the top level block. // 7. Print the names and details of instances in block and module domains. // **************************************************************************** ====================== ./LPP/listLPP.cpp listLPP.cpp ====================== ./Nmp/nmp.cpp nmp.cpp // nmp.cpp // // This program takes 2 arguments, namespace argument in which the next string // argument is in. The second argument is converted from the given namespace // into other namespaces. // // The allowed namespace arguments are 'Cdba', 'Unix', 'Vhdl', 'Win' 'Verilog' // 'Native' 'Def' 'Lef' 'Spef, 'Spf', 'Spice'. // // ***************************************************************************** ====================== ./TCL/findInst.cpp findInst.cpp ====================== ./TCL/wrapper.cpp wrapper.cpp // wrapper.cpp // // This file contains the Tcl binding function for the findInstance function. // // ***************************************************************************** ====================== ./TCL/init.cpp init.cpp // init.cpp // // This file contains the initialization routine for Tcl. // // ***************************************************************************** ====================== ./Via/via.cpp via.cpp // via.cpp // // This example deletes routes in the given design and creates 2 routes, one // with standard vias and the other with custom vias. The example is intended // to be used with the included BL1.lef and BL1.def files. // // Input arguments are LibName, cellName, viewName. // ***************************************************************************** ====================== ./FeatureBasedCompatibility/openDesign.cpp openDesign.cpp // openDesign.cpp // // This application attempts to open an OA database using data model 0. If the // database contains features defined after data model 0, an exception is // reported and the list of unsupported features is printed. // // **************************************************************************** ====================== ./FeatureBasedCompatibility/createNewFeatures.cpp createNewFeatures.cpp // createNewFeatures.cpp // // This program creates objects in an OA database that belong to a data model // released after data model 0. A compatibility exception will be thrown if // the database is then read by an application that initializes OA to // data model 0. // // The features are: // New ConstraintGroupDef: data model 4 // Reference to oaFigGroup: data model 2 // // **************************************************************************** ====================== ./Route/route.cpp route.cpp ====================== ./Route/routeData.cpp routeData.cpp ====================== ./Callback/connObsvrs/connObsvrs.cpp connObsvrs.cpp ====================== ./Callback/connObsvrs/manageConnections.cpp manageConnections.cpp ====================== ./Callback/designCB/designCB.cpp designCB.cpp ====================== ./Wafer/main.cpp main.cpp // main.cpp // // This program demonstrate the functionality of the oaWafer database. The // example will illustrate the determination of oaWafer objects and the // relation with the design database. // // ***************************************************************************** ====================== ./Wafer/createWafer.cpp createWafer.cpp // createWafer.cpp // // This file has functions relating to creating a wafer database that refers to a // design database. // /// ***************************************************************************** ====================== ./Wafer/opnReticle.cpp opnReticle.cpp // opnReticle.cpp // // This file contains declarations for the reticle class used in the // wafer database example. // // ***************************************************************************** ====================== ./Wafer/createDesign.cpp createDesign.cpp ====================== ./PCells/opnPcell/opnPcell.cpp opnPcell.cpp // opnPcell.cpp // // This file contains global functions for the opnPcell package. // // ***************************************************************************** ====================== ./PCells/PCells.cpp PCells.cpp ====================== ./incrTechDB/incrTechDB.cpp incrTechDB.cpp // incrTechDB.cpp // // This example demonstrates the use of incremental technology databases: // 1. Derives and instantiates an oaTech conflict observer // 2. Opens or creates a base and an incremental library // 3. Creates an oaTech DB in each library // 4. Inserts objects into each techDB // 5. Lists the layers in each techDB and in the full hierarchy // 6. Attaches and detaches a library to that hierarchy // 6. Edits the base techDB out of context and inserts conflicts // 7. Calls oaTech::open(), oaTech::validate() and oaTech::setRefs() // on the incremental techDB // 8. Each call will cause the conflict observer to be notified // The oaTech::setRefs() call will also result in an exception // // **************************************************************************** ====================== ./Constraints1/Constraints1.cpp Constraints1.cpp // Constraints1.cpp // // The following tasks are performed by this program // 1. Prints all constraints and constraint groups currently in the techDB // 2. Creates an oaSimpleConstraint, an oaLayerConstraint, // an oaLayerPairConstraint, and an oaLayerArrayConstraint // 3. Creates a new, user defined oaSimpleConstraintDef and creates an // oaSimpleConstraint using the new oaSimpleConstraintDef. // 4. Creates an oaConstraintGroup with an OR-operator semantic and adds // two oacMinNumCut constraints into it. // 5. Creates an oaConstraintGroup with an AND-operator semantic and adds // two oacMinProtrusionNumCut constraints into it. // 6. Creates an oaLayerConstraint that is scoped to a particular purpose. // 7. Illustrates how to find constraints using purpose wildcards. // 8. Prints all constraints and constraint groups currently in the techDB // 9. Prints a list of all layers currently in the techDB. // 10. Creates an oaDerivedLayer using the AND layer operation. // 11. Creates an oaderivedLayer that selects all shapes on a particular // purpose of a layer. // 12. Prints a list of all layers currently in the techDB. // // // **************************************************************************** ====================== ./Constraints2/opnConstraintsChecker.cpp opnConstraintsChecker.cpp ====================== ./Constraints2/opnConstraintsTraverserEngine.cpp opnConstraintsTraverserEngine.cpp ====================== ./Constraints2/Constraints2.cpp Constraints2.cpp // Constraints2.cpp // // This program creates an example of minSpacing constraints for a differential // pair of nets. The differential pair (nets pair1 and pair2) has constraints // which require that they must be 2 units from each other and 4 units from // any other net. This program also creates examples of shielding and tapering // constraints. An important characteristic of the shielding and tapering // constraint groups is that their constraints constrain objects other than // themselves. For the shielding CG they constrain the shielded nets. For the // taper CG they constraint the attached net. // // This program takes no arguments // // The following tasks are performed by this program // Diff pair example // 1. Create a layer to use with the constraints // 2. Create minSpacing constraints for the tech foundry rules and design // default constraintGroup // 3. Create nets with the names pair1, pair2, other1, other2 // 4. Create routes and pathsegs for nets so we can check constraints // 5. Create diffPair oaGroup containing pair1 and pair2 // 6. Create reflexive CG with minSpacing=2 constraint on the oaGroup // 7. Create transreflexive CG with minSpacing=4 constraint on the oaGroup // 8. Do example constraint traversals for (pathSegPair1, pathSegPair2) // and (pathSegPair2, pathSegOther2) // 9. Do example constraint checks for (pathSegPair1, pathSegPair2) // and (pathSegPair2, pathSegOther2) // Shielding example // 1. Create the net to be shielded // 2. Create a shielding CG with minSpacing=1 constraint on the shielded net // Taper example // 1. Create an instance, net, and attached terminal // 2. Create a minWidth=5 on the net // 3. Create a taper CG with the following constraints on the instTerm // minSpacing=2, minWidth=1, taperHalo=5 // Combined output // 1. Print all constraints and constraint groups created in the design // // ***************************************************************************** ====================== ./Constraints2/opnConstraintsTraverser.cpp opnConstraintsTraverser.cpp // opnConstraintsTraverser.cpp // // This class implements an example constraintTraverser that prints all // constraints associated with an object. // // ***************************************************************************** // ***************************************************************************** ====================== ./Connectivity/connectDefs/connectDefs.cpp connectDefs.cpp ====================== ./Connectivity/printAssignments/printAssignments.cpp printAssignments.cpp ====================== ./Connectivity/mbitConnectivity/mbitConnectivity.cpp mbitConnectivity.cpp ====================== ./Connectivity/connectivity/connectivity.cpp connectivity.cpp ====================== ./common/commonTechObserver.cpp commonTechObserver.cpp // commonTechObserver.cpp // // This file contains the implementation of an oaTech observer for technology // conflict notifications. // // This code is used in all examples to alert the users of technology conflicts. // // **************************************************************************** ====================== ./common/commonFunctions.cpp commonFunctions.cpp // commonFunctions.cpp // // This file contains the implementation of functions common to all examples. // // **************************************************************************** ====================== ./common/commonLibDefListObserver.cpp commonLibDefListObserver.cpp // commonLibDefListObserver.cpp // // // **************************************************************************** ====================== ./TermOrdering/termOrdering.cpp termOrdering.cpp // termOrdering.cpp // // Some application need to assign order on the terminals. This file // demonstrates how the terminal ordering is implemented in OpenAccess. // The example shows the terminal ordering in the Module domain but it is equally // implemented in all other domains. // // ***************************************************************************** ====================== ./PinConnections/pinConnections.cpp pinConnections.cpp ====================== ./HelloWorld/HelloWorld.cpp HelloWorld.cpp // HelloWorld.cpp // // The following tasks are performed by this program // 1. Derive an oaTech observer to handle conflicts in the technology hierarchy // 2. Derive an oaLibDefsList observer to handle warnings related to lib.defs // 3. Open the design // 4. Print the library name // 5. Print the cell name // 6. Print the view name // 7. Create nets with the names "Hello" and "World" // 8. Save these nets // 9. Run the net iterator and print the existing nets in the design // // **************************************************************************** ====================== ./DbContents/dbContents.cpp dbContents.cpp ====================== ./Transform/hierarchyTransform/hierarchyTransform.cpp hierarchyTransform.cpp ====================== ./Transform/xformShapes/xformShapes.cpp xformShapes.cpp ====================== ./LibStructure/libStructure.cpp libStructure.cpp ====================== ./LibStructure/opnCommand.cpp opnCommand.cpp // opnCommand.cpp // // This file contains the implemenation of the 'opnCommand' class. // // ***************************************************************************** ====================== ./LibStructure/libStructureData.cpp libStructureData.cpp ====================== ./regionQuery/regionQuery.cpp regionQuery.cpp // regionQuery.cpp // // This example performs following tasks: // 1. Create a 3 level hierachical database that contain shapes. // 2. Instantiate the shape region query object. // 3. Run the shape queries. // **************************************************************************** ====================== ./regionQuery/opnBlockageQuery.cpp opnBlockageQuery.cpp // opnBlockageQuery.cpp // // This file contains the implementaion for the opnBlockageQuery class. // // ***************************************************************************** ====================== ./regionQuery/opnShapeQuery.cpp opnShapeQuery.cpp // opnShapeQuery.cpp // // This file contains the implementaion for the opnShapeQuery class. // // ***************************************************************************** ====================== ./regionQuery/opnLayerRangeBlockageQuery.cpp opnLayerRangeBlockageQuery.cpp ====================== ./TimeStamp/timeStamp.cpp timeStamp.cpp ====================== ./PinsTerms/pinsTerms.cpp pinsTerms.cpp ====================== ./instQuery/opnInstQuery.cpp opnInstQuery.cpp // opnInstQuery.cpp // // This file contains the implementaion for the opnInstQuery class. // // ***************************************************************************** ====================== ./instQuery/instQuery.cpp instQuery.cpp // instQuery.cpp // // This example performs following tasks: // 1. Create a 3 level hierachical database. // 2. Instantiate the instance region query object. // 3. Run the instance queries. // **************************************************************************** ====================== ./Hierarchy/walkHierarchy.cpp walkHierarchy.cpp ====================== ./Hierarchy/Hierarchy.cpp Hierarchy.cpp ====================== ./TCL/route.tcl route.tcl ====================== ./TCL/libStructure.tcl libStructure.tcl ====================== ./TCL/lib.tcl lib.tcl ====================== ./TCL/pcell.tcl pcell.tcl ====================== ./TCL/sample.tcl sample.tcl ====================== ./TCL/oa.tcl oa.tcl ====================== ./TCL/ns.tcl ns.tcl ====================== ./TCL/hello.tcl hello.tcl ====================== ./TCL/contents.tcl contents.tcl ====================== ./TCL/inst.tcl inst.tcl