# About Technology Management

Technology management summarizes features which require a certain interpretation of a layout. In particular, layout layers are assigned a physical meaning, for example via layers or active area layers in CMOS technologies. Since that interpretation often is depending on the technology the product will be fabricated with, the ability to provide multiple setups is summarized as "technology management".

A technology setup implements the following aspects:

- Layer mapping: when the layout reader loads a file that for a certain technology, it can apply a layer mapping, i.e. apply layer names to GDS layers, filter layer etc.
- Layer properties: depending on the technology, the layer display can be configured by providing a technology specific layer properties file.
- Connectivity: the layer stack and the connections made by layers for the net tracer feature.
- Macros: macros associated with the technology. When the corresponding technology is selected (is the one of the current layout), such macros will show up in the menu if they are bound to a menu entry. Otherwise they will be invisible.
- DRC scripts: in the same way, DRC scripts can be associated with a technology.

In the future, more aspects may be added to the technology definition.

## Setting up technologies

Technologies can be set up using the "Technology Manager" in the "Tools" menu. There is always a "Default" technology which provides the settings when no technology is selected. New technologies can be added or technologies can be deleted using the "+" or "x" buttons below the technology tree.

A technology has a name (a short string) and a description. The name is used to identify the technology in various places. The description is the human-readable text that is displayed in the technology selection boxes for example. The short name can be changed by selecting the technology and pressing the "Rename" button or using "Rename" from the technology tree's context menu (right mouse click). The description can be edited on the "General" page.

In the technology manager, below each technology, the components are shown that define the various aspects of a technology. Beside the "General" aspect (names, descriptions) there is a "Layers" component which defines the layer mapping table and layer properties file and the "Connectivity" component which defines the settings for the net tracer.

## Using technologies

When more than the default technology is defined, KLayout provides a drop-down menu in the tool bar to select the current technology. The current technology is the technology used when new files are loaded. It is also possible to define the technology to be used on the command line using the "-n" switch (applies to following files and specifies the technology to use by their short name).

The technology of the currently selected layout is shown in the status bar of the main window in the left section. It is possible to switch the technology of a layout already loaded by using the "Layout Properties" dialog from the "File" menu. After switching the technology, the layer properties defined in the technology can be applied and the associated macros or DRC scripts are shown in the menu if they are associated bound to a menu entry or the key binding becomes active if a shortcut is defined for that macro.

## Technologies and macros or DRC scripts

Macros or DRC scripts are stored in sub-folders relative to the technology's base path. When no base path is specified or the base path is invalid, macros or DRC scripts cannot be associated. KLayout will look search for macros, if a directory called "macros" is present in the base path. If it finds files with a valid macro suffix there it will associate them with this technology. The same way, KLayout will look for DRC scripts, if a directory called "drc" is present in the base path.

Macros and DRC scripts associated with a technology are shown in the technology manager, but cannot be edited there. The right place to edit, run or debug macros or DRC script is the macro development environment. To open the macro development environment choose "Macros/Macro Development". If a technology has a macros or DRC scripts folder, the macro or DRC scripts tree in the development environment will show a corresponding top-level branch for that technology.

Multiple technologies can share the same base path - hence it is possible to share macros or DRC scripts between technologies.

## Importing and exporting technologies

Technologies can be imported and exported to technology files (suffix ".lyt"). There is one file per technology. To import or export a technology, choose "Import" or "Export" from the technology tree's context menu (right mouse click). This way, technologies can be shared between users.

When importing or exporting a technology, the associated files (i.e. scripts, layer properties files etc.) are not exported. They have to be transferred manually. However, if no base path is specified in the technology file, KLayout will use the location of the ".lyt" file as the future base path. That way, a technology plus related files can be made into a self-contained package using the following recipe:

- Create any directory where you develop the technology. This will be the workspace.
- Develop a technology with the technology manager. Enter the workspace path into the base path of the technology. In the workspace you store all the required additional files.
- If you want to include DRC scripts or macros, create a "drc" or "macros" folder in the workspace. Store DRC scripts in the "drc" folder and macros in the macros folder.
- If you need other files, store them in the workspace or in any sub-folder of the base path. Other files are layer properties file or LEF files for example. Use relative paths to specify those files or simply use the file name.
- Export the technology as ".lyt" file into the workspace.
- Open the ".lyt" file in an text editor and remove the line containing the base path. This line is at the beginning of the file and uses the XML element "base-path". For example: "<base-path>/home/matthias/tech_devel</base-path>".
- The workspace with the ".lyt" can now be packaged (tar or zip for example) and send elsewhere. To install, unpack the package and import the technology file from there. Since no base path is specified, KLayout will set the default path to the ".lyt" file's location and look for all the additional files from there.

## Auto-import feature

KLayout offers an additional feature useful for the distribution or central installation of a technology: On startup, KLayout will look for directories called "tech" in KLayout's search path. If such an directory is found, KLayout will scan that directory recursively for ".lyt" files and automatically import them. It will apply the same rules as for the manual import and the imported technology will also show up in the technology manager, but it cannot be edited.

Because the search path includes the application's installation path, this scheme allows for a central installation of technology files plus the associated macros and DRC scripts, by providing them together with the application binary on some network share.