1. Notes: Starting Helios

1.1 Starting Helios

Helios is the Space Extractor Graphical Users Interface (an X-Windows Motif tool). To start Helios in the background, type:

# helios &

For some versions a message will pop up giving some information about the version of the program. Press on OK to continue.

Note for users of old workstations: when you are running a web browser at the same time (to read this tutorial) it may use up your colormap, such that Helios cannot allocate enough colors (Helios will then give messages like "Cannot allocate colormap entry ..."). In that case you could try to run the browser with a reduced set of colors or using its own colormaps (e.g. netscape with the option -install). Also, when you experience problems with running the tool dali from Helios, you can try to use the program setcmap before you start Helios.

For more detailled information about Helios, see the "Space Tutorial - Helios Version" document.

Note: To exit Helios, click on "Database -> Exit" or use Control+X on your keyboard. Then, in the Exit-window, click on "Save" or "No" to exit Helios.

1.2 Helios Menus

The first time you start Helios, there is no ".helios" setup file in your home directory. Thus Helios does not know which project (Working Directory) must be opened. In that case, the current working directory is taken as the Working Directory.

Note that most Helios menus can not be used, if the Working Directory is not a project (database) directory. In that case, create first a new project (don't do this now, see the next steps).

Try the following menus: "Help -> About" and "Help -> Parameters & Files".

1.3 Loading Helios User Settings

Use the "Database -> Load settings..." command.
In the "Load Settings" form, do the following steps:

1.4 Helios QuickRef Window

The Quick Reference Window can be useful, because it explains in short the meaning of the menu commands and buttons and toggles in the forms.

But if it stays in the way, because it is obscuring some part of the Helios main window, you can easily move it to some other place using your mouse. Hold your left-mouse-button down in the banner of the window to move it.

Of course, you can also "close" the window. And if you don't have it, you can open it with the "Options -> Show quick reference" menu command.

1.5 Creating a New Project

To create a new project, take the following steps:

A project is an UNIX directory, which is used as a design database and can also be used under its name as a reference library. Therefor the name of a project directory can be very important. It identifies what is stored there. The name must be unique (not used before or by somebody else on the same place in the file system).

Note that, if you create a new project or open an existing project, the project becomes the Working Directory for the Helios GUI. You can verify yourself by looking to the Helios main window banner, which text it displays.

1.6 Saving Helios User Settings

You can save the loaded settings or the settings which are currently in use by the Helios GUI in a file "helios.defaults" in the Working Directory (= project directory).

Use the menu command "Database -> Save settings" (using your mouse) or use as a short cut the bindkey combination "Control+A" from your keyboard.

If you start Helios with this Working Directory, then Helios is reading this file and using this settings. Note that if Helios is "opening" a project (or is going to a previous project), it is reading the "helios.defaults" file of that project.

1.7 Copying Hands-on Files

To do this, start the Helios CommandLine window. Click on "Options -> Show command line" to open the window. Now, type and execute the following commands:

Use the UNIX directory listing command 'ls -l' (or: 'll') with the path $ICDPATH/share/tutorial/... to locate the ".cmd" files. Click on the "Command history" field to use the command line again and modify it (to make a copy command):

# ll $ICDPATH/share/tutorial
# cp $ICDPATH/share/tutorial/*.cmd .
# ll

When you are ready, close the CommandLine window again. Click on the "Close Window" button.

You are using this command (stimuli) files later on, when you are going to simulate some designs with the spice analog or sls logic simulator.

Note that the Simeye interface can not browse to this files on another place then the Working Directory. They must be private, because they can easily be modified.

Note that the used (imported) GDSII files (".gds" files) don't need to be copied. This layout files can easily be selected in the "Layout -> Import..." form.

We wish you a successful time, spending with this Space hands-on layout extraction tutorial!

1.8 How to Import a GDSII Layout Description

Set in the "Layout -> Import" form the "Layout format" to "GDSII" (if not already set).

Click on the "Layout file" button and go to the "$ICDPATH/share/tutorial" directory (if not already set) in the "Directories" field.
Choice in the "Files" field the required GDSII file to make the "Selection" complete.
Click on the "OK" button to leave the file browser window.

Click on the "Import Layout" button to start the layout import process and click on "Accept" to close the window.

2. Notes: Extraction of switchbox4

2.1 The switchbox4 Example Layout

The cell "switchbox4" contains 4 identical cells "dec1of4". A cell "dec1of4" contains 4 data inputs, 2 selector inputs and 1 data output and it connects one of the data inputs to the output based on the value of two selector inputs. All 4 cells "dec1of4" are connected to the same 4 inputs of "switchbox4".

2.2 How to do a Hierarchical Extraction

Set in the "Extractor -> Extraction options" form "Hierarchy" mode to "hierarchical non-incremental" to be sure that all cells of the top-level cell "switchbox4" are extracted.
Note that "Hierarchy" mode set to "hierarchical incremental" processes only those cells of the "switchbox4" circuit, that are not extracted yet.
In this case, because nothing is extracted yet, you can also use that setting.

Click on the "Extract" button to start the extraction process.

2.3 How to Retrieve a Netlist

Before "Circuit -> Retrieve", go first to the "Circuit -> Retrieval options" form to set the correct "Export Format" and to set "Hierarchy" to "Full hierarchy".

Click on the "Retrieve" button to start the netlist retrieve operation.

2.4 How to do a Flat Extraction

Set in the "Extractor -> Extraction options" form "Hierarchy" mode to "flat".

Click on the "Extract" button to start the extraction process.

2.5 Using Simeye for Logic Simulation

Before you start Simeye, be sure that the cell you want to simulate is selected in the "Selected Cell" field of the "List of Cells" area of the Helios main window. With "Circuit->Simeye" the program Simeye is started. When cell is the selected cell, the program Simeye tries to read the "cell.cmd" commandfile. (Be sure that you have copied the commandfile(s) before.)

Note that, if you don't have a commandfile, Simeye tries to create one from the template file "simeye.def.d". Then you must add a lot of stimuli for simulation (you don't want to do this).

When you have started Simeye for cell "switchbox4", and the correct "switchbox4.cmd" commandfile is available, you will see a lot of wavevorms. That are the logic input stimuli for the data lines b_data[0..3] and the data selection lines sel[0..1,0..3] and power lines.

To start (run) a simulation with "sls-logic", choose "Simulate->Run" or first "Simulate->Prepare" to see that all settings are correct. You can also choose "Run" from this "Simulate->Prepare" form.

After a while, when the simulation is ready, you see the simulation results for "switchbox4". The logic values on the output lines out[0..3] are printed.

To zoom-in on a signal choose "View -> ZoomIn" and drag a box with your left mouse button. You can zoom-in further if you first select "Options -> DetailZoomON".

You can exit the program Simeye with "File->Exit". Click on "Yes" to exit.

3. Notes: Extraction of oscil

3.1 The oscil Example Layout

The layout of a CMOS ring oscillator with a separate substrate contact "sens" at the right side.
It consists of nine invertors.

3.2 The Layout Editor Dali

Before you start dali, be sure that the cell (you want to watch) is selected in the "Selected Cell" field of the "List of Cells" area of the Helios main window.

To start dali, click on "Layout -> Editor".

Note that dali is showing the layout of the cell default with an expansion depth (level) of 1. Thus you see only the top level layout data and the bounding boxes of the sub-cells (the children of the root-cell).

To set the expansion level to 2 or more, go to the "DB_menu" and click on the "all_exp" command field and choose another expansion level. You may also simply press one of the keys 0 through 9 to set the expansion level.

To zoom-in on the layout, go to the "term_menu" or "box_menu" and click on the "zoom" command field and click twice in the layout area to specify a zoom-in bounding-box. As a shortcut, you can also press '+' or '-' to zoom in or out. You can also use the arrow keys to pan the window.

To exit the layout editor dali, go to the top level menu. If you are not in the top level menu, first click on "-return-" to go to it. Choice the "-quit-" command and "yes" to leave dali.

Note that you can also "quit" dali by typing the 'q' key. In that case no command may be active, else it does not work. Commands that stay active can be: "zoom", "dezoom", "del_box", etc.
(Note: To de-activate a command, click on that command again.)

3.3 Flat Extraction of oscil

Select "Extractor -> Extraction options". Watch the Extract Options form, are all settings correct?

Hierarchy: must be "flat". Set "Verbose" mode ON.

Capacitance Extraction: "Mode" must be "no extraction".

Interconnect Resistance Extraction: "Mode" must be "no extraction".

Substrate Resistance Extraction: "Mode" must be "no extraction".

Click on the "Extract" button to start the extraction process.

3.4 Running Spice Simulation on oscil

With "Circuit->Simeye" the program Simeye is started. Simeye reads and displays the "oscil.cmd" commandfile.

To run a spice simulation go to the "Simulate->Prepare" menu and set the simulation "Type:" to "spice".
Click on the "Run" button to start the simulation.

After a while, when the simulation is ready, you see the simulation results for "oscil".

You can exit the program Simeye with "File->Exit". Don't do this till you have compared this result with the two other spice simulations.

3.5 Flat with Fast Cap. Extraction of oscil

Select "Extractor -> Extraction options". Watch the ExtractWin form, are all settings correct?

Hierarchy: must be "flat".

Capacitance Extraction: "Mode" must be "fast extraction"
and "Type" must be "capacitances to substrate".

Interconnect Resistance Extraction: "Mode" must be "no extraction".

Substrate Resistance Extraction: "Mode" must be "no extraction".

Click on the "Extract" button to start the extraction process.

3.6 Flat with Fast Cap./Res. Extraction of oscil

Select "Extractor -> Extraction options". Watch the ExtractWin form, are all settings correct?

Hierarchy: must be "flat".

Capacitance Extraction: "Mode" must be "fast extraction"
and "Type" must be "capacitances to substrate".

Interconnect Resistance Extraction: "Mode" must be "fast extraction"
and "Type" must be "all interconnects".

Substrate Resistance Extraction: "Mode" must be "no extraction".

Click on the "Extract" button to start the extraction process.

4. Notes: Element Definition Files

4.1 Element Definition Files

An element definition file contains information about how elements (transistors, conductors, capacitors etc.) are recognized from the mask layout combinations, and it contains the parameters to compute the values of the elements (conductor sheet resistances, capacitance per area, dielectrical constants etc.).

4.2 Editing a Customized Element Definition File

Take the source file from the project process directory.
There are different ways to take the file and to modify it.

You can copy the file using the Helios CommandLine window. If you don't have this window, start it with "Options->Show command line". Use the UNIX directory listing command 'ls -l' (or: 'll') with the path $ICDPATH/... to locate the "space.def.s" file. Click on the "Command history" field to use the command line again and modify it. Use the following command to copy the file:

     cp  $ICDPATH/share/lib/process/scmos_n/space.def.s  elem.s
                

Now, modify (edit) this file (gave the contact resistances a zero value) and save it again. Use a text editor like axe (which has its own window) to do this.
Of course you can do all above steps using a separate xterm window!

A second way, which you can use, goes as follows. Start the text editor (axe) and locate the "space.def.s" file and read it. Edit this file and save it in your project directory with the name "elem.s".

Note that Space does not use this '.s' file format. You must use the technology compiler (tecc) to convert the '.s' file into a '.t' (table-format) file. See the manual page of tecc (helios: Help -> Manual pages...).

4.3 Compilation of an Element Definition File

To compile the "elem.s" file, use the "Database -> New technology..." command.
Use the following steps:

4.4 Fast Extraction with Customized Element Definition File

To use the customized "elem.t" file and extract oscil again, specify in the Helios "Extractor -> Extraction options -> More Options" form the "Element Definition File" field to "customized" and click on "file" to choose that "elem.t" in project directory is used for extraction. Click on the "Accept" button to leave the form. Click also on the "Accept Options" button in the "Extract Options" to leave the form, thus you don't start the extraction process yet.

Before extraction, go first to the "Extractor -> Display options" form, and set "Use Display" to OFF and click here on the "Extract" button.

5. Notes: Accurate 3D Capacitance Extraction of poly5

5.1 The poly5 Example Layout

The layout consists of five polysilicon plates (0.5u width and 5u heigth).
Each plate has a terminal (pin) name, resp. "a" to "e".

5.2 Display and Job Control Note

You can "Terminate" a Space (extractor) job in the "Job Control Dialog". This window becomes visible, if you are clicking on the "1 program running" message in the banner of the Helios main window.

Note that this is also very useful for closing the "Xspace Display window". You don't need to wait for the "--- Finished ---" message (if it takes too long).

You can better not "Close" the "Job Control Dialog" while displaying, because you are using the "Terminate" button again and again.

6. Notes: Accurate 3D Resistance Extraction of term3

6.1 The term3 Example Layout

The layout consists of three metal substrate contacts.
Two contacts have an area of 1u x 1u (named "a" and "b").
One contact has an area of 2u x 1u (named "c").

7. Notes: Fast Extraction of oscil (cont.)

7.1 How to Create an Extra Substrate Contact with Dali

Start the layout editor dali with "Layout -> Editor". Go to the "box_menu" and "zoom"-in on the layout area near the "sens" contact. Click on the "add_box" command and click in the narrow rectangle above the rectangle the contains the name "cca". Click now once in the layout area on the "vss" wire, thus you get a rubber bounding box. If you have a bounding box of the wanted size, then click again to finish the "add_box" command. Note that the "add_box" command stays active.

If you want a bigger contact, lay down a new box again. (If the "add_box" command is not active, click first on the "add_box" command.)

If the contact is too big, use the "del_box" command (like the "add_box" command) to delete (cut) a piece of the "cca" mask in the layout area.

If you are finished, write the layout of the cell back to the database. Click on "-return-" (go to the top menu). Go to the "DB_menu" and select the "write_cell" command. Now, click on "oscil" to write the cell back under its own name.

Quit the layout editor with the 'q' command from the keyboard.

8. Notes: Fast Extraction of RC

8.1 The RC Example Layout

The layout consists of a polysilicon resistor (from node "a") and a polysilicon to metal capacitor (to node "b").

9. Notes: Flat Extraction of CORDIC Chip P505

9.1 The P505 Example Layout

Circuit P505 is a so-called CORDIC chip (see A.A.J. de Lange, A.J. van der Hoeven, E.F. Deprettere, and J. Bu, "An Optimal Floating-Point Pipeline CMOS CORDIC Processor: Algorithm, Automated Design, Layout and Performance," Proc. ISCAS-88, Espoo, Finland, June 7-9, 1988, pp. 2043-2047) in a 2 metal layer 1.6 micron CMOS process. The circuit has 71742 transistors. The top level cell P505 contains the full chip. The subcell newchip of cell P505 contains the same layout but without IO buffers, pads, designer names and logos.

For questions about Space/Helios: Space Development Team