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

OpenAccess 2.2 Known Problems and Solutions (KP&S)

This document describes known problems and solutions for Beta releases of OpenAccess 2.2.

All Platforms


Problem: There are outstanding issues with multi-bit instTerms in either of the following scenarios:

  1. The instTerm has repeated members because its corresponding terminal or terminal name has repeated members. An example of this is an instTerm that connects to a terminal named

    IN[0:4],IN[4],IN[4]


    where bit IN[4] is repeated three times.

  2. Two multi-bit instTerms share overlapping bits because the corresponding terminals or terminal names have overlapping bits. An example of this is two instTerms that connect to terminals named DATA[0:4] and DATA[3:7], where bits DATA[3] and DATA[4] are shared between the two bus terminals.

The connection is allowed if

The issues with supporting this are as follows:

  1. The instTerm create functions throw exceptions if the bit nets do not match, regardless of whether or not the bit nets are equivalent.
  2. The instTerm addToNet function currently does not perform any validation of the contents of the net. If you add a multi-bit instTerm to the multi-bit net, OpenAccess does not throw an exception or attempt to resolve the relationship between the mismatched bit nets. The result is that some of the bit nets that appear to be connected are not.

    For example:

Solution: The application must ensure that the mismatching bit nets are equivalent in order for consistent evaluation of the connectivity. (This issue will be fixed in a future release.)

 

Problem: 2.0 applications translated with oa20to22 prior to the 2.2.2 release contain empty foundry rules constraint groups, and the route specs are incorrectly included in the default constraint group.

Solution: Translate your application using the 2.2.2 or later version of oa20to22.

 

Problem: When using a techDB created by lef2oa prior to 2.2.1, the DBUPerUU for any viewType is set to 0, or the user units for any viewType is incorrectly set to oacMicron.

Solution: Due to a bug fix, tech DBs that used the default values for User Units and DBUPerUU in 2.2.0 will now contain incorrect values. You need to recreate your tech DB.

 

Problem: An oaDMFile attachment, or other DM operation, is not persistent when using the DM Turbo system if the library is opened in "nonShared" mode.

Solution: Perform a close() on the library before exiting the application. Closing the library ensures that all updates are passed from the Turbo client to the server.

 

Problem: The pcell generator definition manager (IPcellCPPDefMgr) form oaPcellCPP cannot modify IPcellGen definitions when any oaPcellCPP supermaster is opened in the library.

Solution: Complete the modifications to IPcellGen definitions before any oaPcellCPP supermaster is opened.

 

Problem: OpenAccess cannot load your libraries.

You get an error message such as " ERROR: lib.defs: Error at line 1 : Syntax error in libDefFile."

Solution: Check the syntax of your lib.defs file. Note that cds.lib files supported in previous versions of OpenAccess that include double dash (--) comment characters are no longer allowed. Remove the comment characters or replace the double dashes with the pound (#) comment character.

In general, renaming cds.lib files as lib.defs files is not supported: SOFTINCLUDE and UNDEFINE statements are not supported, and the $compute() syntax is not supported in library paths.

For more information, see Library Definition Files.

 

Problem: When writing large databases with OpenAccess translators or other applications, the file system might not immediately reflect the size of the database after the application exits.

Solution: Wait a few moments before continuing.

 

Problem: There are length limits on the names used for files stored in OpenAccess FileSys libraries:

Cell names and view names cannot be longer than the maximum length of a file name allowed by the operating system. For example, that max is 255 on UNIX.

Solution: This limitation existed in the 2.0 release, and there are no plans to change this.

 

Problem: RegionQuery has poor performance for designs in which there are thousands of overlapping objects.

The performance problem occurs only if there are thousands of objects overlapping each other at the same location.

Solution: Avoid this situation in your design.

 


UNIX Platforms - All

Problem: Rational Tools (Purify, PureCov, Quantify) cannot find "load on demand" libraries

Solution: To use the Rational tools with OpenAccess, you need to create links in the directories inside the Purify/PureCov/Quantify cache directories (that correspond to the top-level installation directory) to the bin and data directories of the installation.

For example:

/user/oa/lib
/user/oa/data
/user/Cache/user/oa


Create these links:

/user/Cache/user/oa/data@ -> /user/oa/data
/user/Cache/user/oa/bin@ -> /user/oa/bin

Problem: Special characters <> drop out when printing documents from Netscape 4.76.

Solution: The online versions display correctly, or you can print the documents from a Windows browser.


Linux Redhat Enterprise 2.1 32-bit or Linux AS 2.1 (Itanium) 64-bit

Problem: You compile OpenAccess software, then get a segmentation fault when running executables.

If you debug the problem and run a stack trace, it looks like a gcc issue.

As as example:

============================================================= 
Running 'oaAnalysisLib                 ': Abort (core dumped)
 
user_1@machine_1:/home/user_1/oa22/bin/linux72/dbg 74 ? gdb ./oaTest
 
GNU gdb 5.2
 
Copyright 2002 Free Software Foundation, Inc.
 
GDB is free software, covered by the GNU General Public License, and you are
 
welcome to change it and/or distribute copies of it under certain conditions.
 
Type "show copying" to see the conditions.
 
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) r
 
Starting program: /home/user_1/oa22/bin/linux72/dbg/oaTest
Running 'oaAnalysisLib                 ':
Program received signal SIGABRT, Aborted.
0x4069db11 in __kill () at __kill:-1
-1      __kill: No such file or directory.
        in __kill
Current language:  auto; currently c
(gdb) bt
#0  0x4069db11 in __kill () at __kill:-1
#1  0x4069d8ea in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2  0x4069f092 in abort () at ../sysdeps/generic/abort.c:88
#3  0x406429e7 in __cxxabiv1::__terminate(void (*)()) (handler=0x4069ef34 ) at ../../../../gcc-3.2.3/libstdc++-v3/libsupc++/eh_terminate.cc:47
#4  0x40642a34 in std::terminate() () at ../../../../gcc-3.2.3/libstdc++-v3/libsupc++/eh_terminate.cc:57
#5  0x40642bb6 in __cxa_throw () at ../../../../gcc-3.2.3/libstdc++-v3/libsupc++/eh_throw.cc:77
#6  0x4018924f in oaClientSocket::connect(oaString const&, unsigned short) (this=0x8403800, address=@0x8403838, port=55555) at oaSocket.h:249
#7  0x40187d4f in oaClientConn::initConnection() (this=0x8403800) at oaClient.cpp:200
#8  0x4019502d in oaClient::initConnection() (this=0xbffff1f0) at oaClient.h:188
#9  0x401957b6 in oaLibServer::isActive() (this=0xbffff2a0) at oaLibServer.cpp:144
#10 0x40192a15 in oaClientLibData::create(oaScalarName const&) (name=@0xbffff410) at oaLib.cpp:794
#11 0x40190a6d in oaLib::create(oaScalarName const&) (name=@0xbffff410) at oaLib.cpp:61
#12 0x08338237 in oaUnitTest::openLib(oaScalarName const&) (this=0x83e7f60, libNameIn=@0xbffff410) at oaUnitTest.cpp:360
#13 0x08339f80 in oaUnitTest::openDesign(oaScalarName const&, oaScalarName const&, oaScalarName const&, oaViewType, char) (this=0x83e7f60, libNameIn=@0xbffff410,
    cellNameIn=@0xbffff450, viewNameIn=@0xbffff460, viewType=Internal: global symbol `_ZN10oaViewType5namesE' found in oaView.cpp psymtab but not in symtab.
_ZN10oaViewType5namesE may be an inlined function, or may be a template function
(if a template, try specifying an instantiation: _ZN10oaViewType5namesE).
) at oaUnitTest.cpp:983
#14 0x08337cc3 in oaUnitTest::openTestDesign(oaString const&, oaString const&, oaViewType, char, int) (this=0x83e7f60, suffix=@0xbffff560, viewName=@0xbffff570,
    viewType={value = 1276308, static names = 0x401a7ee0}, mode=119 'w', createTopBlock=1) at oaUnitTest.cpp:250
#15 0x0814968a in oaAnalysisLibTest::test() (this=0x83e7f60) at tech/oaAnalysisLibTest.cpp:63
#16 0x0833aff6 in oaUnitTest::run() (this=0x83e7f60) at oaUnitTest.cpp:1364
#17 0x083385f4 in oaUnitTest::runAll() () at oaUnitTest.cpp:516
#18 0x08311999 in main (argc=1, argv=0xbffff7c4) at main.cpp:148
#19 0x4068b657 in __libc_start_main (main=0x8311248 , argc=1, ubp_av=0xbffff7c4, init=0x80db734 <_init>, fini=0x833ca00 <_fini>,
    rtld_fini=0x4000dcd4 <_dl_fini>, stack_end=0xbffff7bc) at ../sysdeps/generic/libc-start.c:129

Solution: This problem is caused by incompatible binutils with gcc 3.2.3. See the Prerequisite for Compiling on Some Linux Platforms.


HP-UX Platform

Problem: Tcl is currently not working on the HP-UX platforms.

Solution: See Additional Tcl Build Instructions and refer to the HP-UX platform.

 

Problem: You get a compiler warning when compiling OpenAccess:

Warning 652: "oaAppDefPvt.h", line 442 # Virtual function "unsigned int OpenAccess_4::oaDataTbl::getDataType() const" is hidden by "unsigned int OpenAccess_4::oaAppDefTbl::getDataType(unsigned int) const"; did you forget to override it? 
Warning 652: "oaDMDataTbl.h", line 132 # Virtual function "void OpenAccess_4::oaDataTbl::preDestroy(unsigned int,int)" is hidden by "void OpenAccess_4::oaDMContainerDataTbl::preDestroy(unsigned int,int,int)"; did you forget to override it? 
Warning 652: "oaDMDataTbl.h", line 132 # Virtual function "void OpenAccess_4::oaDataTbl::preDestroy(unsigned int,OpenAccess_4::oaDomain,int)" is hidden by "void OpenAccess_4::oaDMContainerDataTbl::preDestroy(unsigned int,int,int)"; did you forget to override it? 
Warning 652: "oaDMObjectPvt.h", line 46 # Virtual function "void OpenAccess_4::oaObjectV::get(const OpenAccess_4::oaObject *,unsigned int &,OpenAccess_4::oaDataTbl *&)" is hidden by "void OpenAccess_4::oaDMObjectV::get(const OpenAccess_4::oaDMObject *,unsigned int &,OpenAccess_4::oaDMDataTbl *&,OpenAccess_4::oaLibAccess)"; did you forget to override it? 
Warning 652: "ClassDef.h", line 62 # Virtual function "void cadence::lang::Node::appendChild(cadence::lang::Node *)" is hidden by "void cadence::lang::ClassDefBase::appendChild(std::list > *)"; did you forget to override it? 
Warning 652: "FunctionCollector.h", line 44 # Virtual function "void cadence::lang::SimpleVisitor::visit(cadence::lang::Node *)" is hidden by "void cadence::lang::FunctionCollector::visit(cadence::lang::TmplClassDef *)"; did you forget to override it? 
Warning 652: "TCLEmitter.h", line 92 # Virtual function "void cadence::lang::SimpleVisitor::visit(cadence::lang::Node *)" is hidden by "void cadence::lang::TCLConstantVisitor::visit(cadence::lang::ConstDef *)"; did you forget to override it? 

Solution: These compiler warnings occur if you have a 'using declaration' in a class definition. You can safely ignore these warnings.

 

Problem: Error when running applications on OpenAccess

You get an error such as the following when running your application on OpenAccess:

./oadata/lib.defs load warning: Could not access DMSystem plug-in for oaDMTurbo, 
library oa: Plug-in Registration File Not Found

Solution: Use the +s option when linking your application.


Solaris Platform

Problem: Calls to insert() functions in HashSet and HashMap fail on the Solaris platform.
 
If you have multiple calls to insert() in the same function or in a function that calls itself recursively, calls after the first one fail.
 

Solution: This occurs because the Solaris C++ compiler does not destroy function return values when it should. To resolve this problem, set the following compiler flag:

-features=tmplife

Windows Platform

Problem: Updating 2.0 Libraries to 2.2 (oa20to22) gives an error message.

Solution: Make sure that the Cadence cdsCommon DLLs are in your path. (The cdsCommon DLLs are typically included in <install_dir> /tools/bin.)