Linking Models Dynamically to UTMOST

Installing and using an UTMOST dynamically linked model is a simple,two step process. Firstly, the model must be built (if it is not already supplied pre-built) and secondly, a UNIX environment variable needs to be set to point to the directory containing the model.

The model, (we shall use the BSIM3v3 model as an example) is built into a library with a specific name (libudsm) which is understood

and recognized by UTMOST. When UTMOST runs, it checks the availability of libraries of this name by searching the path setup in the UNIX shared library environment variable. This environment variable is called different names on different machine types. On Sun machines, it is called LD_LIBRARY_PATH and on HP machines it is called SHLIB_PATH.

When UTMOST is run with a proprietary model selected, the libudsm library is scanned for the model chosen. The model parameters must, of course, match the model chosen and these are provided in an UTMOST setup file and an UTMOST model (.s) file. The operation of the model is completely transparent at this point: it behaves like any other external model. It can be used in local optimization, global optimization and rubberband.

A dynamically linked UTMOST model is available with or without the model source code. If the source code is provided, the model will

have to be built on the target machine. If only the library itself is provided it must be loaded onto a machine of the correct type (i.e.

Sun (sunos413 or solaris2)or HP (hpux 9.01)). In both cases, a setup file and model library file (.s) are provided. The files (for either

type of distribution) will be shipped in compressed tar format. They must be uncompressed and read into a new directory called the <<install>> directory. The <<install>> directory is any directory directly mounted (or auto-mounted). Usually, the <<install>> directory is a directory in the user's home area which will already be mounted. The <<install>> directory for the dynamically linked models is not the same as the UTMOST/VYPER installation directory used when UTMOST is installed.

The following is an example of all the steps necessary to use a dynamically linked model.

 

Example 1

Model used: BSIM3v3, no source code, distributed on floppy disk.

$ cd~ <-- home directory (/main/john for example)
$ mkdir my_bsim3v3 <--create a directory
$ cd my_bsim3v3 <-- cd to that directory
$ cd /dev/fd0/*. <-- copy files off the floppy disk
$ uncompress bsim3sol2.tar.Z <-- actual file name will be different for different machines
$ tar xvf bsim3sol2.tar <-- this will create a directory of files

 

At this point the directory /main/john/my_bsim3v3 /bsim3sol2 will contain 3 files: libudsm.so, an UTMOST setup file (MOS_bsim3v3) and an UTMOST model library file (MOS_bsim3v3.s).

Now, before re-running VYPER, the UNIX shared library environment variable is set.

$ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/main/john/
my_bsim3v3/bsim3sol2
<-- single line
$ vyper
<-- rerun VYPER

 

Inside VYPER, select the UTMOST mos executable. Load the MOS_bsim3v3 setup file and try a simulation.

Example 2

Model used: BSIM3v3, source code included, distributed over email

Email distribution requires uuencoding.

$ cd~
<-- home directory (/main/john for example)
$ mkdir my_bsim3v3
<--create a directory
$ cd my_bsim3v3
<-- cd to that directory

Use the mail tool and save the bsim3sol2.tar.Z.uue file to /main/john/my_bsim3v3.

$ uudecode bsim3sol2.tar.Z.uue
 
$ uncompress bsim3sol2.tar.Z
 
$ tar xvf bsim3sol2.tar
 
$ cd bsim3sol2
 
$ make
<-- creates the libsdsm.so library
$ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/main/john/
my_bsim3v3/bsim3sol2
<-- single line
$ vyper 
<-- rerun VYPER
   

Inside VYPER, select the UTMOST mos executable. Load the MOS_bsim3v3 setup file and try a simulation.

For a complete description of how to build a custom dynamically linked model for UTMOST refer to Appendix E (Building a Custom Model) of the UTMOST Extractions Manual, Volume 3, January, 1995.