This document describes
For information about problems and workarounds, see the Known Problems and Solutions.
Before installing, first close all applications that use OpenAccess libraries. Then make sure that there are no oaLibServer processes running (kill these processes with the kill command).
OpenAccess 2.2 is distributed using tarkits on the UNIX platforms. The following tarkits are available.
| Tarkit Name | OpenAccess Components |
|---|---|
oaDev_2.2<rel>_<platform>.tar.gz |
Debuggable libraries, debuggable binaries, plus both debuggable and optimized archives |
oaRun_2.2<rel>_<platform>.tar.gz |
Optimized libraries and binaries |
oaSrc_2.2<rel>_all.tar.gz |
OpenAccess source code |
oaInc_2.2<rel>_all.tar.gz |
OpenAccess public includes |
oaDoc_2.2<rel>_all.tar.gz |
Documentation and programming examples |
oaMwy_2.2<rel>_all.tar.gz |
Source code for the Milkyway to OpenAccess translator |
Important: Do not move directories or files within the OpenAccess installation hierarchy. This will result in problems with your installation.
OpenAccess 2.2 is distributed using InstallShield on Windows.
The following installers are available: runtime debuggable and runtime optimized. Choose the InstallShield package you want and install OpenAccess.
| Installation Option | OpenAccess Components |
|---|---|
| Runtime Debuggable | Debuggable libraries and binaries |
| Runtime Optimized | Optimized libraries and binaries |
If you want OpenAccess source code as well, download the appropriate tarkits.
Important: Do not move directories or files within the OpenAccess installation hierarchy. This will result in problems with your installation.
Do not move directories or files within the OpenAccess installation hierarchy. This will result in problems with your installation.
The SPEF translators require zlib to run.
lib directory to your PATH environment variable. For example, if you install zlib into C:\zlib1.2.1, use the following path entry.
C:\zlib1.2.1\lib;
Note: Modify the path through the Windows GUI.
If you want to link against the OpenAccess pre-compiled libraries, you must use the compilers in the following table.
| Platform | Compiler |
|---|---|
| Solaris Operating System: SunOS 5.8 | Solaris Compiler: Forte Developer 8 C++ 5.5 (or later) |
| HP Operating System: HP-UX B.11.00 | HP Compiler: aCC: HP ANSI C++ B3910B A.03.52 (or later) |
Linux Operating System: Redhat Enterprise 2.1 |
Linux Compiler: gcc 3.2.3 |
| Linux Operating System: AS 2.1 (Itanium) Compatible with: RHEL 3.0 |
Linux Compiler: gcc 3.2.3 |
Linux Operating System: Redhat Enterprise 3.0 (Opteron) |
Linux Compiler: gcc 3.2.3-24 |
| Windows Operating System: Windows 2000/XP | Windows Compiler: Visual Studio .NET 2003 (or later) |
| IBM Operating System: AIX 5.1 | IBM Compiler: VisualAge C++ Professional, Version 6 (or later) |
The required GNU make utility is:
make version 3.80 Earlier versions of the GNU make utility do not work correctly with the GNU makefiles supplied with OpenAccess. Refer to http://www.gnu.org/software/make for information about downloading the GNU make utility.
Important: It is recommended that you rename the make utility as gmake. This will prevent older, incompatible versions of make from being called.
Set your
pathvariable to point to the location of your OpenAccess binaries so that you can execute the binaries from any directory:
<install_dir>/bin/win32/optIf you accept the default OpenAccess installation path,
<install_dir>isC:\Program Files\OpenAccess.
The OpenAccess UNIX binaries have wrapper scripts to automatically set appropriate environment variables. However, there is one environment variable that you must set manually -- set your
pathvariable to point to the location of the OpenAccess binaries in the top-level bin directory of your installation:
<install_dir>/bin/Important: You need to install as root on UNIX in order to use the default installation path.
Default Environment Variables Set by the Wrapper Scripts
The following table shows the default environment variables that are set automatically by wrapper scripts when your run any binaries. By default, all binaries run in optimized mode with the bit specification listed in the Platform column. For information about overriding the environment variables, see Overriding Environment Variables.
Platform Environment Variable Default Value set by Wrapper SunOS 5.8, 32-bit
LD_LIBRARY_PATH
<install_dir>/lib/sunos_58_32/opt
PATH
<install_dir>/bin/sunos_58_32/opt
HP-UX B. 11.00, 32-bit
SHLIB_PATH
<install_dir>/lib/hpux_11_32/opt
PATH
<install_dir>/bin/hpux_11_32/opt
Linux Redhat Enterprise 2.1, 32-bit Redhat
LD_LIBRARY_PATH
<install_dir>/lib/linux_rhel21_32/optPATH
<install_dir>/bin/linux_rhel21_32/optLinux AS 2.1 (Itanium), 64-bit
LD_LIBRARY_PATH
<install_dir>/lib/linux_rhas21_ia64_64/optPATH
<install_dir>/bin/linux_rhas21_ia64_64/optLinux Redhat Enterprise 3.0 (Opteron), 64-bit LD_LIBRARY_PATH
<install_dir>/lib/linux_rhel30_64/optPATH
<install_dir>/bin/linux_rhel30_64/optIBM AIX 5.1, 32-bit LIBPATH
<install_dir>/lib/aix_51_32/opt
PATH
<install_dir>/bin/aix_51_32/opt
The generally accepted installation location for
<install_dir>is/opt/OpenAccess.Notes on Linux Platforms
On some Linux machines, OpenAccess is unable to determine which Linux platform is in use. In this case, OpenAccess automatically provides default values for the wrapper scripts:
linux_rhel21if theOA_BITenvironment variable is not set or is set to 32.linux_rhel30if theOA_BITenvironment variable is set to 64If these defaults are not acceptable, use the
OA_UNSUPPORTED_PLATvariable to change the value. See the following section.Unsupported Platforms
For UNIX platforms, you can build on an unsupported platform by setting the environment variable
OA_UNSUPPORTED_PLATfor your platform. Note that this environment variable will not override a recognized supported platform.To determine how to set
OA_UNSUPPORTED_PLAT, do the following:
- In the bin directory, type
./sysname.
This script returns the string that must be overwritten with theOA_UNSUPPORTED_PLATvariable.
- Set the environment variable to the correct string.
For example, if the binary directory that exists islinux_suse9_32, but the wrapper scripts are looking forlinux_rhel21, you should setOA_UNSUPPORTED_PLATtolinux_suse9. (The_32portion is automatically set and should not be part of the name you use.)Overriding Environment Variables
To run all the binaries in debug mode:
setenv OA_MODE dbgTo set the mode to debug for a single binary, use the name of the executable in all capital letters, followed by
_MODE. For example:setenv DEF2OA_MODE dbgTo set the mode to 64-bit for all binaries (SUN, HP, or IBM platforms only):
setenv OA_BIT 64Note: If you are using Itanium, the bit is automatically set to 64. On Opteron, the default is 32, but will revert to 64 if the 32-bit version is not available.
To set the mode to 64-bit for a specific binary, use the name of the executable in all capital letters, followed by
_BIT(SUN, HP, or IBM platforms only). For example:setenv DEF2OA_BIT 64
Pre-compiled versions of all the OpenAccess libraries are included in your installation. You might want to recompile these libraries in order to port to a new platform or verify a bug fix. You might also want to use a different compiler of your choosing. When you recompile the OpenAccess libraries, the translators, extensions, and the package containing the functions common to the translators are also recompiled.
Important: GNU make version 3.80 is required. (It is recommended that you rename the make utility as gmake. This will prevent older, incompatible versions of make from being called.)
Notes:
install version 72.3 when building on HP. The install (fileutils) 4.1 will not work. The following table shows the default compiler environments for OpenAccess. The compiler environment is controlled with a platform-specific configuration file included in your installation.
| Platform | Compiler | Configuration File | |
|---|---|---|---|
SunOS 5.8, 32-bit or 64-bit |
Forte Developer 8 C++ 5.5 |
|
|
| Default Path: | /opt/SUNWspro/v8/SUNWspro/bin/CC |
||
HP-UX B. 11.00, 32-bit or 64-bit |
aCC: HP ANSI C++ B3910B A.03.52 |
|
|
| Default Path: | /opt/aCC/bin/aCC
|
||
Linux Redhat Enterprise 2.1, 32-bit Redhat |
Linux Compiler: gcc 3.2.3 |
|
|
| Default Path: | /opt/gcc3.2.3/bin/g++
|
||
Linux AS 2.1 (Itanium), 64-bit |
Linux Compiler: gcc 3.2.3 |
|
|
| Default Path: | /opt/gcc3.2.3/bin/g++
|
||
| Linux Redhat Enterprise 3.0 (Opteron), 64-bit | Linux Compiler: gcc 3.2.3 |
|
|
| Default Path: | /opt/gcc3.2.3/bin/g++
|
||
| IBM AIX 5.1, 32-bit or 64-bit | IBM Compiler: VisualAge C++ Professional, Version 6 |
|
|
| Default Path: | /usr/bin/xlC_r |
||
You compile OpenAccess as follows. (If you want to compile on a Linux platform not listed above, refer to Optionally Compiling on an Unqualified Linux Platform before proceeding.)
setenv SYSNAME_OPTIONS _64
Note: On Opteron and Itanium, this is automatically set to _64 for you. On Opteron, you can force it to _32.cd <install_dir>/oagmake <command> OPTMODE=<mode> VERBOSE=<state>
where <command> is one of:
clean Commands affect OpenAccess core package and all subpackages
uninstall including translators.
install
clean_oa Commands affect only OpenAccess core package.
uninstall_oa
install_oa
You can also build the translators and subpackages individually using the
following suffixes for the clean, uninstall, and install commands: _spef,
_strm, _verilog, _lefdef, _strm, _lang
where <mode> is one of:
dbg Debug compile
opt Optimize compile
where <state> is one of:
false Hide compile commands, which is the default
true Show compile command
Compilation Errors:
After you compile OpenAccess, you can test your build by running the supplied unit tests.
cd <install_dir>/oa/testgmake unitTest OPTMODE=<mode> VERBOSE=<state> > & test.out &
where <mode> is one of: dbg Debug compile opt Optimize compile where <state> is one of: false Hide compile commands, which is the default true Show compile commands
The procedure outlined in this section is recommended for compiling OpenAccess code and application code built on OpenAccess for the Linux Redhat Enterprise 2.1 32-bit or Linux AS 2.1 (Itanium) 64-bit platforms. If you do not follow this procedure, your application will likely have interoperability problems, such as segmentation faults, with other applications built on OpenAccess. You must install and build gcc and binutils in a specific manner. The general process is outlined below, followed by the specific steps to build gcc and binutils.
General Process:
ld binary picked up by gcc is version 2.13.2. Type the following at a command prompt to verify the version of ld being used: gcc -v
gcc. libstdc++.so.x and libgcc_s.so.x libraries in a location that your applications will have in their LD_LIBRARY_PATH. Note that the OpenAccess installation ships these libraries in:lib/linux_rhel21_32/dbg/
lib/linux_rhel21_32/opt/
lib/linux_rhel30_64/dbg/
lib/linux_rhel30_64/opt/Build Process
Downloading the Packages
- Download files from GNU FTP server locations below:
ftp://ftp.gnu.org/gnu/binutils/binutils-2.13.2.tar.gz
ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.2.3/gcc-3.2.3.tar.gz
ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.2.3/gcc-core-3.2.3.tar.gz
ftp://gcc.gnu.org/pub/gcc/releases/gcc-3.2.3/gcc-g++-3.2.3.tar.gz- Extract the files.
Setting Up a Clean Build Environment
set finaldir=/local/gcc-3.2.3=> where compiler will be installedset pass1dir=/local/stage1=> Temp dir for bootstrapping gcc/binutilsmkdir /localmkdir $finaldirmkdir $pass1dirbash:
export PATH=/bin:/usr/bin
export LD_LIBRARY_PATH=
or
csh or tcsh:
setenv PATH /bin:/usr/bin
unsetenv LD_LIBRARY_PATHcd <1_level_above_compiler/binutils_source>
(if you typels, you should seebinutils-2.13.2andgcc-3.2.3.Build Binutils - Pass 1
Note: There will be numerous warnings in the next three sections. This is not unusual.
rm -rf binutils-buildmkdir binutils-buildcd binutils-build../binutils-2.13.2/configure --prefix=$pass1dir --disable-nlsmake LDFLAGS="-all-static"make installcd ..Build GCC - Pass 1
rm -rf gcc-buildmkdir gcc-buildcd gcc-build/../gcc-3.2.3/configure --prefix=$pass1dir --with-local-prefix=$pass1dir --disable-nls --enable-shared --enable-languages=c --with-gnu-as --with-as=$pass1dir/bin/as --with-gnu-ld --with-ld=$pass1dir/bin/ldmake BOOT_LDFLAGS="-static" bootstrapmake installcd ..Build Binutils - Pass 2:
rm -rf binutils-build2mkdir binutils-build2cd binutils-build2setenv PATH $pass1dir/bin:${PATH}../binutils-2.13.2/configure --prefix=$finaldir --enable-sharedmake tooldir=$finaldirmake tooldir=$finaldir installcd ..Build GCC - Pass 2
setenv PATH $finaldir/bin:${PATH}rm -rf gcc-build2mkdir gcc-build2cd gcc-build2 ../gcc-3.2.3/configure --prefix=$finaldir --with-local-prefix=$finaldir
--with-gnu-as --with-as=$finaldir/bin/as --with-gnu-ld
--with-ld=$finaldir/bin/ld --enable-clocale=gnu --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++makemake installcd ..Proceed to Optionally Compiling on UNIX Platforms (Solaris, HP, IBM, and Linux)
If you want to compile OpenAccess on a platform not listed in Supported Platforms and Compilers for OpenAccess Pre-Compiled Libraries, complete the following:
sysname shell script to return the <platform_name> for your platform.sysname shell script is located at <install_dir>/build/bin. <platform_name>_<bit>.variables
<platform_name> is the name you chose in Step 1, and <bit> is either 32 or 64 (to represent either a 32 or 64-bit operating system). <install_dir>/build/make to determine the content required for your file.Proceed to Optionally Compiling on UNIX Platforms (Solaris, HP, IBM, and Linux).
Pre-compiled versions of all the OpenAccess libraries are included in your installation. You might want to recompile these libraries in order to port to a new platform or verify a bug fix. You might also want to use a different compiler of your choosing.
Note: Recompiling the OpenAccess libraries does not mean that you must also recompile the translators, such as verilog2oa.
Use Microsoft Visual Studio .NET 2003 to compile your environment on Windows
OpenAccess provides a solution file that you can use to rebuild OpenAccess. You might do this if you want to test changes to the OpenAccess API on your local machine.
The following solution lets you compile and build dynamically on all source packages and includes an oaTest.exe that includes all the unit tests (oaBaseTest, oaDesignTest, oaReticleTest, oaTechTest).
<install_dir>/oa/oaDynamic.sln
To build:
Run oaTest.exe to test your environment. The testLog.txt log file and the unit test libraries are at oa/test/testDir. The oaStrm, oaLefDef, and oaVerilog translators can be compiled similarly. However, it is rarely necessary to compile the translators. The executables have already been provided.
If you want to develop an application using OpenAccess, you can create your own .NET solution to include the headers and libraries that you want. Provide Visual Studio with the following OpenAccess paths:
| Files | Path |
|---|---|
| Executable files | <install_dir>\bin\win32\<mode> |
| Include files |
<install_dir>\include\oa |
| Library files | <install_dir>\lib\win32\<mode> |
To set these paths in Visual Studio:
OpenAccess depends on the Winsock2 socket technology, and therefore must include Winsock2.h.
If your code files contain #include <Windows.h> statements, adhere to the following rules.
#include <Windows.h> statement.#include <WinSock2.h> statement before the #include <Windows.h> statement.Note that most users do not specify #include <Windows.h> statements in their code files because OpenAccess code files already contain include statements for Windows.h.
Very few users need to recompile the OpenAccess translators. You need to do this if you use an operating system that isn’t compatible with one of the pre-built versions, or if you want to modify the distributed translator. Third-party packages are required in order to build the translators. (See the sections that follow for more information.)
Download and compile the 5.60 or later LEF/DEF parser from https://openeda.si2.org/projects/lefdef/. The makefiles for the LEF/DEF translators supplied by OpenAccess expect the LEF/DEF parser to be installed in
/opt/lefdef<version>. To satisfy this requirement, do one of the following:
- Specify a
LEFDEF_HOMEenvironment variable to override the default location.- Copy the files to the correct locations:
- The LEF/DEF parser header files must be copied into
/opt/lefdef<version>/tools.<platform>/include.- The 32bit LEF/DEF parser libraries must be copied into
/opt/lefdef<version>/tools.<platform>/lib.- The 64bit LEF/DEF parser libraries must be copied into
/opt/lefdef<version>/tools.<platform>/lib/64bit.You must also install the
zlibpackage from: http://www.gzip.org/zlib/
The OpenAccess LEF and DEF translators were qualified usingzlibversion 1.2.1.On Windows, you must set the
ZLIB_HOMEenvironment variable to point to thezlibinstallation directory. On UNIX, theZLIB_HOMEvariable defaults to/opt/zlib1.2.1(for 32-bit execution) and/opt/zlib64bit1.2.1(for 64-bit execution).See the OpenAccess release notes for information about limitations for LEF and DEF in this release.
If you want to compile your own version of the SPEF translator, you must install the
zlibpackage from: http://www.gzip.org/zlib/
The OpenAccess SPEF translator was qualified usingzlibversion 1.2.1.On Windows, you must set the
ZLIB_HOMEenvironment variable to point to thezlibinstallation directory. On UNIX, theZLIB_HOMEvariable defaults to/opt/zlib1.2.1(for 32-bit execution) and/opt/zlib64bit1.2.1(for 64-bit execution).
Pre-compiled translators for Verilog are available in:
<install_dir>/bin/<platform>/<mode>/If you want to compile your own versions of the Verilog translators, you need the following tools:
- Bison 1.875-3 source and executables (http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=22822)
- Flex++ 2.5.4 source (http://www.gnu.org)
Note: Flex++ is included with the Flex package.Use the environment variables BISON_HOME and FLEX_HOME to specify the installation root of the Bison and Flex executables. (It is expected that the executables will be in the
bindirectory under the installation root).
Environment Variable Windows Default UNIX Default BISON_HOME None
/opt/bison1.875-3FLEX_HOME None /opt/flex2.5.4
UNIX Platforms (Solaris, HP, IBM, and Linux)
Use the rm -r command to remove your installation hierarchy:
% rm -r <install_dir>

Copyright © 2003-2005
All rights reserved.