OpenAccess can add new kinds of data to the data model as newer versions are released. For example, OpenAccess added a new feature to allow figures to be grouped and manipulated as a single entity.
Each new kind of data added to the data model is called a feature. When a database contains one or more instances of the new kind of data, then it is using that feature. In many cases, older applications will not be able to use databases that have new features.
OpenAccess includes the infrastructure to support feature-based compatibility, which means that OpenAccess has the ability to control the access that an application has to an OpenAccess database based on
When OpenAccess releases a new feature, that feature has a set of policies that define how applications can access databases that include those new features.
This document includes:
For more information, refer to Feature-Based Data Compatibility in Compatibility for OpenAccess Applications and Data.
The following table lists the new features available in the OpenAccess 2.2 releases and shows their policies. A policy can pertain to the version of the OpenAccess shared libraries, or to the data model revision supported by the application.
The table also shows the part of the OpenAccess data model that contains the new feature, and the data model revision number that first contained the new feature.
Important: Recognition of features in OpenAccess started with the OpenAccess 2.2.4 (p029) release. The default policy for all features is that no database with features can be opened by a version of the OpenAccess libraries earlier than 2.2.4 (p029) or an oacCannotUpgrade exception is thrown.
| Feature Name | Policy | Applicable if ... | Relevant Part of the Data Model | Initial Data Model Rev |
|---|---|---|---|---|
| Huge Databases | Cannot open with compat. exception | App data model rev. < 1 | oacBaseDBType oacNoDomain oacFutureCategory oacUnknonwType oacAdditionDataModelModType |
1 |
| FigGroup | Cannot open with compat. exception | OpenAccess libs < = 2.2.5 (P035) | oacDesignDBType |
2 |
| Cannot append | OpenAccess libs > 2.2.5 (P035) | |||
| Reference to FigGroup | Cannot open with compat. exception | App data model rev. < 2 | oacDesignDBType oacBlockDomain oacGeometryCategory oacFigGroupType oacAdditionDataModelModType |
2 |
| Contains New Default Constraint Groups | Cannot open with compat. exception | OpenAccess libs < 2.2.6 | oacDesignDBType | 2 |
| New Constraints Of Existing Types In Rev1 | Default policy only | oacConstraintsCategory oacAdditionDataModelModType |
2 | |
| Modified Constraints In Rev1 | Cannot open with compat. exception | App data model rev. < 2 | oacConstraintsCategory oacChangeDataModelModType |
2 |
| New Constraint Params In Rev1 | Default policy only | oacConstraintsCategory |
2 | |
| New Value Type in Rev1 | Cannot open with compat. exception | App data model rev. < 2 | oacConstraintsCategory oacAdditionDataModelModType |
2 |
| Constraint ID | Cannot append | OpenAccess libs < 2.2.6 | oacConstraintsCategory oacAdditionDataModelModType | 2 |
| Constraint Description | Cannot append | OpenAccess libs < 2.2.6 | oacConstraintsCategory oacAdditionDataModelModType | 2 |
| Gate Grounded Attribute on Tech | Cannot append (if set to non-default value) | OpenAccess libs < 2.2.6 | oaTechDBType |
2 |
| New Material Type Enum | Cannot open with compat. exception | App data model rev. < 2 | oaTechDBType |
2 |
| Layer Array Constraint | Cannot open with compat. exception | App data model rev. < 2 | oacConstraintsCategory oacAdditionDataModelModType |
2 |
| New Derived Layer | Cannot open with compat. exception | App data model rev. < 2 | oaTechDBType oacTechCategory oacDerivedLayerType oacAdditionDataModelModType |
2 |
| Derived Layer Param | Cannot append | OpenAccess libs < 2.2.6 | oaTechDBType oacTechCategory oacDerivedLayerParamType oacAdditionDataModelModType |
2 |
| Reference to Derived Layer Param | Cannot open with compat. exception | App data model rev. < 2 | oaTechDBType oacTechCategory oacDerivedLayerParamType |
2 |
| IncrementalTech | Cannot open with compat. exception | App data model rev. < 3 | oacTechDBType |
3 |
The following table shows the data model version history of OpenAccess releases and the new features defined and supported in each data model version.
Data Model Revision Number |
OpenAccess Version |
Feature |
|---|---|---|
| 0 | 2.2.0 through 2.2.3 (or p032) | Base OpenAccess 2.2 data model |
| 1 | 2.2.4 (or p033) | Huge Databases |
| 2 | 2.2.6 (or p045) | FigGroups, Constraint features |
| 3 | 2.2.6 (or p045) | IncrementalTech |
Default constraint groups have been added to objects that formerly did not have default constraint groups.
For more information, refer to:
The oaFigGroup object represents a collection that can be used by graphical design-entry tools to hold a set of figures that can be easily replicated and reused. An oaFigGroup is purely geometric and does not contain connectivity objects or anything else that is not a figure.
For more information, refer to:
This feature represents items in OpenAccess that make use of FigGroups. This feature is present if
New LayerConstraints
New LayerPairConstraints
New SimpleConstraints
Enhanced Layer Constraints and Layer Pair Constraints
| New Valid Value Type | |
| oaIntDualIntArrayTblValue | When an array of value pairs is assigned for a given width, width is expressed as an oaInt4, the array is an oaDualIntArray, and the value type is an oaIntDualIntArrayTblValue. |
| New Parameters | ||
| oacAntennaAreaFactorConstraintParamType | oaFloatValue | Specifies the metal factor. Depending on the value of the isSide attribute, this parameter represents one of the following:
The default value for this parameter is 1 in both cases. |
| oacAntennaDiffPlusFactorConstraintParamType | oaFloatValue | Specifies the diffPlusFactor. The default value for this parameter is 0. |
| oacAntennaDiffMinusFactorConstraintParamType | oaFloatValue | Specifies the diffMinusFactor. The default value for this parameter is 0. |
| oacAntennaDiffAreaReduceFactorConstraintParamType | oaFlt1DtblValue | Specifies the diffAreaReduceFactor. This table stores the factors based on the diffusion area. These values typically are in the range of 0 to 1. The default value for this parameter is 1. |
| oacAntennaCumRoutingPlusCutConstraintParamType | oaBooleanValue | Specifies the cumRoutingPlusCut. This parameter determines how the cumulative antenna ratios for metal and cut layers are calculated. The default value for this parameter is false. |
| New Parameters | ||
| oacWidthLengthTableTypeConstraintParamType | oaIntValue | Specifies how the oaInt2DTblValue table, supplied as the constraint value, is interpreted by applications. There are two possible interpretations:
|
| oacDistanceMeasureTypeConstraintParamType | oaIntValue | Specifies whether the distances are measured as Euclidean (which is the the default) or Manhattan. |
| New Parameter | ||
| oacDistanceMeasureTypeConstraintParamType | oaIntValue | Specifies whether the distances are measured as Euclidean (which is the default) or Manhattan. |
| New Valid Value Type | |
| oaInt2DTblValue | Specifies the required clearance width as a function of two keys. |
| New Parameter | ||
| oacDistanceMeasureTypeConstraintParamType | oaIntValue | Specifies whether the distances are measured as Euclidean (which is default) or Manhattan. |
| New Valid Value Type | |
| oaInt1DtblValue | Specifies the dependency of the net spacing on the width of the shape on the net. |
Built-in constraint parameters of the following type indicate the presence of this feature:
Four new oaValue subclasses are added to support new constraints and derived layers:
A numeric ID for constraints.
A string description for constraints.
A new GateGrounded attribute on oaTech that indicates whether or not the gate is grounded. The default value is false.
The feature is present only if this attribute is set to true.
The oaMaterialTypeEnum includes a new enum value that can be used when creating physical layers.
enum oaMaterialEnum {
// Existing enumeration values here ...
oacPassivationCutMaterial
};
const oaString oaMaterial::names[] = {
// Existing names here...
"passivationCut"
};
Defines constraints for three or more layers. Refer to oaLayerArrayConstraint for more information.
The oaDerivedLayer class now provides the ability to create sized layers or layers based on operations. Also, layers can be derived from one or two layers. Derived layers can now have associated parameters.
Refer to the following functions in the oaDerivedLayer class documentation for more information.
oaDerivedLayer* oaDerivedLayer::create(oaTech* tech,
const oaLayer* layer1,
const oaDerivedLayerDef* def,
const oaString& name,
oaLayerNum number,
const oaDerivedLayerParamArray * params = NULL
) [static]
oaDerivedLayer* oaDerivedLayer::create(oaTech* tech,
oaLayer* layer1,
oaLayer* layer2,
oaLayerOp operation,
const oaString& name,
oaLayerNum number
) [static]
oaDerivedLayer* oaDerivedLayer::find(const oaTech* tech,
oaLayerNum layer1Num,
oaLayerNum layer2Num,
const oaDerivedLayerDef* def,
const oaDerivedLayerParamArray* params = NULL,
oaBoolean local = false
) [static]
oaDerivedLayer* oaDerivedLayer::find(const oaTech* tech,
oaLayerNum layer1Num,
const oaDerivedLayerDef* def,
const oaDerivedLayerParamArray* params = NULL,
oaBoolean local = false
) [static]
oaDerivedLayerParam describes additional information for derived layers. For example, a derived layer with an inside layer operation has two input layers and one parameter, which describes the net connectivity of the shapes.
oaDerivedLayerParamDef enforces the value type of a derived layer parameter.
This feature represents items in OpenAccess that make use of derived layer parameters.
OpenAccess provides the ability to open very large database in which a single type of data takes over 4 Gbytes of memory.
OpenAccess lets applications use incremental technology databases to provide technology information from multiple sources, such as the foundry, an IP provider, or a designer, to the application at different points in the design cycle. Applications can incrementally assemble technology information by creating references from one oaTech database to other oaTech databases. For more information, refer to Using Technology Databases in the Programmers Guide.
Note: The IncrementalTech feature is present in a technology database if that technology database contains references to other technology databases. However, even if the references are unset, if the technology database still contains any unbound object headers that cannot be resolved, the feature is still considered present.

Copyright © 2003-2006 Cadence Design Systems, Inc.
All rights reserved.