This document describes known problems and solutions for Beta releases of OpenAccess 2.2.
IN[0:4],IN[4],IN[4] IN[4] is repeated three times.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
IN[0:4],IN[4],IN[4] can be created if the net has a name of the form itNet[0:4],itNet[4],itNet[4]. itNet[0:4] and itNet[3:7]. A[0:6] is legal for creating an instTerm to terminal IN[0:4],IN[4],IN[4] if the bit nets A[4], A[5], and A[6] are equivalent to each other. The issues with supporting this are as follows:
IN[0:4],IN[4],IN[4] to a net named A[0:6], OpenAccess processes the first bit in the instTerm for terminal bit IN[4] and associates it with bit net A[4]. OpenAccess processes the next bit in the instTerm and identifies that the instTerm bit already has a net (because it represents a connection to the same bit terminal in the master) and no action is taken. This leaves the bit nets A[5] and A[6] unconnected, and the application must address what to do with these bits. Some applications choose to explicitly make A[4], A[5], and A[6] equivalent.DATA[0:4] and DATA[3:7], initially with NULL nets. When adding the instTerm for DATA[0:4] to net A[0:4], and adding the instTerm for DATA[3:7] to net B[0:4], there is a problem resolving the implicit bit instTerms that are common to both connections that match the terminal bits DATA[3] and DATA[4]. This situation can arise in a Verilog description, and the verilog2oa translator currently does not establish equivalence for the nets associated with these types of connections to terminals. module hack({a,a,a});
output a;
endmodule
module top();
hack I1 ({x,y,z});
endmodule 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.
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
Solution: The online versions display correctly, or you can print the documents from a Windows browser.
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.
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.
insert() functions in HashSet and HashMap fail on the Solaris platform.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
Solution: Make sure that the Cadence cdsCommon DLLs are in your path. (The cdsCommon DLLs are typically included in <install_dir> /tools/bin.)

Copyright © 2003-2005
All rights reserved.