oaheader.gif
topics.gif classes.gif classes.gif exceptions.gif progguide.gif infomodel.gif index.gif help.gif
 
 
 

OpenAccess to LEF Mapping

Anywhere oa<object>::<attributeName> is used in this document set, you can set and get the attribute by using oa<object>::Set<attributeName> and oa<object>::Get<attributeName>.

When coordinate, distance, or area values are specified in LEF, they map to OpenAccess using DB units. This means they must be converted to and from the LEF SI units before storing them in OpenAccess. (see UNITS.) The utility functions oaTech::dbuToUU, oaTech::uuToDBU, oaTech::dbuToUUArea, and oaTech::uuToDBUArea can be used for this purpose. All other values are stored in OpenAccess in SI units, and do not require conversion to and from LEF units.

On output of LEF, only layers that have materials metal, cut, N/PImplant (5.6 only), N/PDiff, or poly are output. If objects in the database contain other layers, the entire object is silently ignored.

Information that is specific to LEF, and not supported in OpenAccess, is stored by using oaProperties. Global technology information is stored on an oaHierProp named "LEF_Legacy".

Following is an alphabetical list of the LEF constructs. Each construct links to a page that describes how data stored in an OpenAccess database maps to the LEF construct.

BUSBITCHARS   MACRO   UNITS
CLEARANCEMEASURE   MANUFACTURINGGRID   USEMINSPACING OBS
DIVIDERCHAR   MAXVIASTACK   USEMINSPACING PIN
LAYER (Cut)   NONDEFAULTRULE   VERSION
LAYER (Implant)   NOWIREEXTENSIONATPIN   VIA
LAYER (Masterslice)   PROPERTYDEFINITIONS   VIARULE
LAYER (Overlap)   SITE   VIARULE GENERATE
LAYER (Routing)   SPACING    

LEF Constructs Not Supported

Some constructs in LEF 5.3 and earlier versions are obsolete in LEF 5.4 and 5.5. When processing a 5.3 file, the translator ignores constructs that are obsolete in 5.4 and subsequent versions.

Constructs supporting gate array style designs are not supported for LEF in OpenAccess.

In addition, the following specific constructs are not supported.

ARRAY arrayName 
    { SITE sitePattern ; 
    | CANPLACE sitePattern ; 
    | CANNOTOCCUPY sitePattern ; 
    | TRACKS trackPattern ; 
    | FLOORPLAN floorplanName 
        {{CANPLACE | CANNOTOCCUPY} 
          sitePattern;}... 
        END floorplanName }... 
    [GCELLGRID gcellPattern ;]... 
    [DEFAULTCAP tableSize 
        {MINPINS numPins WIRECAP cap ;}... 
    END DEFAULTCAP] 
END arrayName 

The LEF extension defined with the BEGINEXT statement and the LEF ENDLIBRARY information are not stored in OpenAccess.

In the MACRO statement, the following are not supported.

   {SITE sitePattern}... 
   
   sitePattern = siteName origX origY orient stepPattern 

   stepPattern = DO numX BY numY STEP spaceX spaceY 

   trackPattern = 
       {X | Y} start DO numTracks STEP space 
       LAYER layerName... 

   gcellPattern = 
       X start DO numColumns+1 STEP space | 
       Y start DO numRows+1 STEP space

OpenAccess is always case sensitive, and therefore, the NAMESCASESENSITIVE statement is ignored.