
                            INSTALLATION 
                            ============

This file describes how to install the layout-to-circuit extractor
Space, including other several other IC design tools like the layout
editor dali, the switch-level simulator sls and the network comparison
program match.  It also shows how to set the necessary paths etc. in
order to run the software.  For a detailed description of the use of 
the tools, see the users manuals that are present (after installation) 
in the directory doc and the manual pages that can be obtained by 
executing the command 'icdman toolname'.
Remember that in order to run the full version of Space, an appropriate
license file 'licenseFile' has to be present in the directory 'lib'.
For how to obtain such a license file, see 
           http://cas.et.tudelft.nl/space/licinfo.html
However, most of the tools that are part of the distribution and a basic 
version of Space (no resistance extraction, no coupling capacitance
extraction, no 3D capacitance extraction) can also be run without a
license file.


Installation of files
---------------------

The files can be retrieved from the WWW site 
           http://cas.et.tudelft.nl/space/space_soft.html
or via anonymous ftp from
           ftp://cas.et.tudelft.nl/pub/space

The Space software is available in executable form for HP 9000 series 
700/800 computers (PA-RISC1.1_10), Sun Solaris stations (sun4_5) and 
PCs running Linux (i486_Linux).  

For installation, you need the following machine independent file:
    cacd_general.tar.gz

Also, you need the following machine dependent files:
    cacd_<your-machine>_A.tar.gz 
    cacd_<your-machine>_B.tar.gz 
    cacd_<your-machine>_space.tar.gz 
where <your-machine> is either PA-RISC1.1_10, sun4_5 or i486_Linux,
depending which type of computer you use.   The first two tar files
contain the tools that run without a license file.  The third file 
contains the full version of Space and some other tools that require a 
license.  Note that the latter file should not be installed if you want 
to use only the basic version of Space.

Install the contents of these files in one directory, e.g. /users/cacd,
by using the unix/linux commands gzip and tar:

$ gzip -dc cacd_general.tar.gz | tar xvf -
$ gzip -dc cacd_<your-machine>_A.tar.gz | tar xvf -
$ gzip -dc cacd_<your-machine>_B.tar.gz | tar xvf -

and for the full version of Space:

$ gzip -dc cacd_<your-machine>_space.tar.gz | tar xvf -

If you want to install the Space software for more than one machine type,
you have to create different directories in which you install the software
for each machine type.


Running tools
-------------

In order to run Space you have to set the following environment variable

ICDPATH      The directory where the Space software has been installed.

and you have to add the bin directory of the Space software to your
shell search path.

So, as an example, let us assume that the Space software has been installed 
in the directory /users/cacd and that an appropriate license file has been
placed in the directory /users/cacd/lib.  Then, in order to run the Space 
tools, you must set the following variables:  

$ setenv ICDPATH /users/cacd
$ set path = ( $path /users/cacd/bin )

Further, when you will use the graphical tools helios and simeye, you should 
add the X resources from the files in $ICDPATH/lib/app-defaults to your 
resource database:

$ xrdb -merge $ICDPATH/lib/app-defaults/*

Before you do this, be sure that any installation dependent paths in these
files are correctly specified.

Tools are typically run from a project directory.  Such a project directory 
can be created by using the program 'mkpr'.  For example, in order to create 
a project 'test', type:

$ mkpr test

Mkpr will ask for the process that should be chosen (the processes that 
are available are stored in the file $ICDPATH/lib/process/processlist) 
and for the value of lambda (lambda is the grid - in microns - that will 
be used for layout coordinates).  New processes can be added to the system 
as described below in the Section "Introducing a new process".  The value 
of lambda that is specified for a project, should be small enough in order 
to represent all valid layout positions.  Also, it should be not too small 
in order to prevent integer overflows for large layouts.  Typical values 
for lambda are 0.1 - 0.001 micron.

Alternatively, when you use the graphical user interface helios of space, 
you can create a new project using the button Database -> New ... of helios, 
and you can change to an already existing project using the button Database 
-> Open ...

A tutorial about the use of Space is found in the directory $ICDPATH/doc:
$ICDPATH/doc/spacehtut.ps for the case when you use the helios user 
interface to space, $ICDPATH/doc/spacetut.ps for the case when you do not 
use helios.  Remember that you can also get information about a tool by 
typing `icdman toolname`.


Introducing a new process
-------------------------

Technology files for some cmos processes (c3tu, fishbone, scmos_n, tsmc025) 
and a bipolar process (dimes01) are default distributed with Space in the
sub-directories under $ICDPATH/lib/process.  If you want to add technology 
files for your own process, you have to create a new process directory
with appropriate technology files.  When you want to add this directory to
the standard process directories of Space, you have to create this directory 
under the directory $ICDPATH/lib/process and you have to add the name of the 
new directory (plus a number for the process) to the file
$ICDPATH/lib/process/processlist.  You can also create the directory at
another place in the file system and then use the option -p with mkpr to
specify the full path to the process directory.

Next, you have to create the following technology files in the new process
directory, depending on which programs you are going to use (the file maskdata 
should always be present).

maskdata      Specifies the masks that are used in the new process 
              and the colors etc. of these masks in the layout editor
              dali (see `icdman maskdata')
bmlist.gds    Specifies the conversion of gds2 mask numbers to process
              mask names and vice versa (see `icdman bmlist', used by 
              cgi and cig, and see `icdman cgi or cig').
epslay.def    Describes how a postscript file is generated from a layout
              (see `icdman getepslay', used by getepslay).
space.def.s   Element definition file for Space (see Space User's Manual).
space.def.t   Compiled element definition file for Space, as obtained
              after running the program tecc.
space.def.p   Parameter file for Space (see Space User's Manual).
xspicerc and 
spice3f3.lib  Files that, among other things, contain the spice models
              (see `icdman xspice' and Space User's Manual, used by xspice).
match_prim    Network primitive files (used by match).
slsmod        Device models for the switch-level simulator sls (see `icdman
              slsmod', the directory `slsmodgen', and the Sls User's Manual).


Questions, bug reports
----------------------

Questions and bug reports about Space can be send to Arjan van Genderen,
Department of Electrical Engineering, Delft University of Technology, 
Mekelweg 4, 2628 CD, Delft, The Netherlands.
Email: arjan@cas.et.tudelft.nl, Phone: +31-15-2786258.


Limitations
-----------

There are some known limitations of Space.  These are described in the 
manuals.  If you discover any other limitations of Space that are not 
mentioned in the manual, please report them to the above address.


About the Project
-----------------

The Space project is carried out at the Section Circuits and Systems of 
Delft University of Technology and at DIMES, the Delft Institute of 
Microelectronics and Submicron Technology.  For more information, see the 
WWW page at http://cas.et.tudelft.nl/space.

