# Installing IPKISS¶

## Installing IPKISS on Windows¶

### Installing IPKISS¶

After opening the executable installer, please follow the steps of the installation program. The installation will proceed in two steps: it first extracts all files to the installation folder, and then sets up the initial ipkiss3 environment. The installation can take up to 10-15 minutes.

Note

The installer takes a while to start. Please be patient while the installer is working in the background. On Windows 8 and 10, you may receive the message “Windows protected your PC”. If this happens, please click More info and then press Run anyway.

After the installation, you can choose to launch Luceda Control Center. Alternatively, you can find the control center in your start menu, as shown below:

Fig. 1 In the final step of the installer, you can choose to start Luceda Control Center.

Fig. 2 You can also start the Luceda Control Center from the start menu (left: Windows 7. right: Windows 10).

• Node-locked license: this type of license is tied to a specific computer. This means that it cannot be used on other computers. The license is fully described by the license file which needs to be installed on the computer to which it is locked. A node-locked license is locked to a host id, which is the serial number of a hardware part of the computer (disk or network card).
• Floating license: in this case, there is no restriction on which computer you can run the software, but you are limited to a certain number of licenses. Floating licenses are hosted through a license server and hence requires some setup, which may require the assistance of your computer or network administrator. Every computer on which you want to use the software needs a license file installed, which will inquire this license server. To set up this type of license, please refer to setting up the reprise license server.

#### Obtaining and installing a license¶

A license file can be obtained through Luceda. Licenses can be of two types and require the following information:

• For node-locked licenses, we will need the host id of the machine that will run the software.

To find the hostid of your computer, please open the Luceda Control Center, go to the Product License tab, and look for “The hostid beloning to this computer is”. Once you have this information, please send it to license@lucedaphotonics.com, and we will generate a valid license for you.

Fig. 3 Product License tab. It shows the hostid of this computer. You can drag and drop a license file in this window to install a license.

To install the license file just drag and drop it onto the Product License screen. This will copy your license file to C:\luceda\ipkiss_312\python\envs\ipkiss3, which allows IPKISS to discover your license.

In case you’re using a license server, you’ll first have to make sure that the first line in the license file contains the URL to the server that hosts the license. For example, the first line of the license may look like this:

HOST mylicenseserver.mycompany.com 1021486dc38f 5053


It means:

• HOST: indicates the license server information.
• mylicenseserver.mycompany.com: the location to the server. You have to modify this so it points to the correct server.
• 1021486dc38f: the hostid of the server. This should already be set up properly and should not be modified.
• 5053: the port to connect to (5053 is the default port and typically doesn’t need to be modified).

We will assist you if you are experiencing difficulties with your license. To help us find the cause, we kindly ask you to go through the following steps.

1. Install IPKISS (You do not need to reinstall if it is already installed)
2. Download luceda_diagnostics.zip
3. Unzip luceda_diagnostics.zip
4. Run start_diagnostics.bat
5. Please send the following files to support@lucedaphotonics.com
• diagnostics_environment.txt
• diagnostics_rlm.txt
• diagnostics_terminal.txt

While waiting for a response have a look at the diagnostics files. If the license is properly checked out “Obtained license for ipkiss” should be written in diagnostics_terminal.txt.

### Luceda Control Center¶

Luceda Control Center is the central location to manage your installation, consult documentation and samples, and so on. It can be launched after installing the software, or by selecting the application from the start menu as explained in the previous step (currently, Luceda Control Center only works on Windows). Below we show the different options offered by Luceda Control Center:

Fig. 4 Luceda Control Center is the main application window, from which you can manage your installation and get direct access to the documentation and samples.

The Start tab contains six buttons:

1. Luceda documentation: this opens the documentation in your default browser.
2. Samples: this opens the folder which contains samples for IPKISS.
3. Notebooks: this starts a notebook server and launch the browser to open the notebooks. IPython notebooks are an interactive way to run Python scripts. A few interactive IPKISS samples are provided by default.
4. IPython console: this starts a regular IPython console. This console is useful for experimenting with simple Python commands. It can also be used for more advanced commands. You can find further documentation here.
5. IPKISS terminal: this starts a terminal, which is properly configured to recognize all Python commands and scripts for ipkiss3 environment. From here you can manage your installation, install new packages, create new environments, and so on.
6. Tanner L-Edit (relevent to IPKISS.eda user): this starts L-Edit. Note that L-Edit has to be started from this menu. Otherwise the integration with IPKISS will not be enabled (alternatively, you can run ledit-luceda from a command terminal, which starts an IPKISS-enabled L-Edit GUI).

### Installing a code editor¶

For IPKISS.flow users, writing IPKISS code is you may sometimes want to write Python code, for example to write an additional IPKISS pCell, some design logic, run simulations, etc. We found Wing IDE Professional, a commercial code editor from Wingware, provide the best debugging support and code completion. Having a good code editor in general can increase productivity while working with IPKISS. Some of our examples are given using Wing IDE and our software has been tested to run inside.

Note

If you are already familiarized with another Python editor and wish to keep using that one, there is no problem. Check below for a list of other editors (free/commercial).

#### List of editors¶

Below is a list of editors (in no particular order) that have been used in the past in combination with IPKISS (if you use another editor, we like to hear this from you).

• Wing IDE (commercial, also a free lightweight version): We recommended it for IPKISS usage. It has all the features needed to efficiently use IPKISS. It is fast and stable, and works on Linux / Mac / Windows.
• PyDev (free): It is a Python IDE for Eclipse. It has good project management, good code completion and debugging capabilities.
• Sublime Text Editor (unregistered/registered version): It is very fast and has many advanced text editing capabilities. It takes a bit more time to set it up properly, but very extensible.
• Spyder (free): A simple IDE written in Python and focused on the scientific community.
• PyCharm (free/commercial licenses): It comes with all bells and whistles, but it is a bit heavy/slow.

### Setting up the editor environment¶

The instructions below are specifically for Wing IDE. Most editors allow you to give the same set of parameters needed to set up your environment (most importantly, the python.exe file, the PYTHONPATH and PATH variables), and this information may also be useful when setting up another editor.

#### Creating a new project and choosing the python executable¶

Note

If you want, you can skip the instructions below and directly open the sample project. The sample project can be accessed by clicking the sample button in Luceda Control Center. This opens a folder. In this folder, there is a wing project samples.wpr. Opening this file will start Wing IDE with the correct Python interpreter, and the samples folder is added to the project. Once you start designing, we do recommend going through the steps below.

We start by creating a new project and choosing the correct Python interpreter (see figure starting a new project). Choose Project ‣ New Project. For the Python executable, choose custom, and select envs\ipkiss3\python.exe from your installation.

Fig. 5 Starting a project in Wing IDE and choosing the correct Python interpreter.

Then we start a new project in Wing IDE. Make sure you choose the correct Python interpreter. The python interpreter (python.exe) is the main program that runs all the IPKISS scripts that you create. For each created environment (remember, by default, the environment ipkiss3 is created), a new Python executable is created (note: do not use pythonw.exe. pythonw.exe is used to start up windowed applications, in order to suppress the console).

After pressing OK, you are asked to save the project file now or later. We suggest to save it immediately, and store it on a working location where you wish to work with IPKISS, e.g., C:\users\username\Documents\luceda\ipkisstest.

You can now create a new file by selecting File ‣ New, type in print(“Hello World”), and save it as hello.py in the working location (this is shown in the next step, too).

#### The editor environment¶

The Wing IDE environment looks like the figure below (depending on the exact version of the software, there might be minor differences). The most important tabs and windows are annotated:

Fig. 6 When you open Wing IDE for the first time, it looks like this. Important windows have been annotated.

One important additional step is setting the PATH variable to point to the Scripts\ folder of your environment. To do this, go to Project ‣ Project Properties, and choose Add to inherited environment. Now you can set the PATH. Please change C:\luceda\ipkiss_312 to the location where you installed IPKISS. This is also shown in figure setting the PATH:

PATH=C:\luceda\ipkiss_312\python\envs\ipkiss3\Scripts;${PATH}  Fig. 7 Set PATH by going to Project ‣ Project Properties. In Environment, choose: Add to inherited environment, and set PATH as shown. Before we start creating additional files, it is important to add a folder to the project. This is explained in the next step. #### Adding a folder to the project¶ Currently, no file or folder is added to your project. Adding a folder ensures that you can easily browse through the project files by using the project tab on the right. To add a folder, right-click inside the project pane, and press Add Existing Directory.... Then, choose the folder you wish to add to the project, and choose which files are included in the project (e.g., all files, only Python files, ...): Fig. 8 In the project tab, right-click and press Add Existing Directory. Add your project directory to the project. After adding the directory to the project, new files and folders that are created will automatically show up in the Project tab. #### Executing your first file¶ Note that by adding the folder to your project, the hello.py should show up in the project pane (make sure it is saved in the correct location). Now there are two ways to run a file in Python: by executing it, or by debugging it. • To execute a file, go to Debug ‣ Execute current file. • To debug a file, go to Debug ‣ Start / Continue (alternatively, press F5, or press the green play button ). Go ahead and execute the current file. If you execute the file, the output of the program will be written to the OS Commands pane: Fig. 9 In the OS Commands pane, you will see the output of the file after executing it. Now we quickly demonstrate how to debug a file. To illustrate this, we add a few lines, and add a breakpoint in the code. We then start debugging. The program is paused at the breakpoint location: Fig. 10 Wing IDE in debug mode: you can inspect variables in the Debug Probe tab. From the breakpoint location, you can check the content of each variable, or run additional Python commands. Pressing the Start / Continue button will continue code execution. Debugging a file goes slower than executing the file. However, when an error occurs in your program, the debugger logs the state of the program at the location where the error occurs. It allows the user to inspect variables and run additional commands to find out the source of the error. Hence, it is a very useful way to find errors in your code. In production, you are more likely to execute the file which is faster. Note Debugging is a very powerful way to quickly find errors in your code / design, and to inspect your variables. Additional information, including tutorial videos, can be found here. ## Installing IPKISS on Linux¶ Running Ipkiss on Linux is supported using Anaconda. Anaconda is a Python distribution that targets scientific users. It makes working with binary packages much easier and allows to have different independent environments next to one another. It is developed and maintained by Continuum Analytics. For more information visit their website: http://continuum.io/. This document explains how to complete a basic anaconda installation and how to install Ipkiss on it. ### Installing miniconda on Linux¶ Miniconda is a minimal version of the Anaconda distribution, but it contains all the elements to install and run IPKISS. If you have already installed anaconda or miniconda you can skip this part and reuse your existing installation. 1 ) Download the 64 bit version of the python2.7 version of the miniconda installer, by executing the following command: wget https://repo.continuum.io/miniconda/Miniconda2-4.3.21-Linux-x86_64.sh  Or you can choose to download the installer by copy/pasting the link in your browser. 2 ) Execute the miniconda installer The miniconda installer is a simple bash script, execute it using the following command: bash ./Miniconda2-4.3.21-Linux-x86_64.sh  We assume you have sufficient privileges to complete the installation. If this is not the case, you’ll need to contact your system administrator. The install script will present you the following questions: 1. Do you accept the license agreement? 2. Which path do you want to install into? The default is $HOME/miniconda2. If you prefer, you can specify another location here.
3. Do you wish to prepend the Miniconda install location to the PATH environmental variable.

Question 3 will make sure that you have access to all the necessary tools when you launch a terminal. If you don’t have another anaconda distribution installed, we recommend that you execute this step. When you’re already using Python on your machine, you might want to be bit more cautious, to make sure that you don’t override the old configuration.

When the install script successfully finished, you can continue with installing IPKISS.

### Installing IPKISS packages¶

The Anaconda distribution is built around ‘environments’. When you create a new environment, you can install packages into this environment without changing other environments. This way a new version of a package can exist next to an old version. In this section we explain how to install Ipkiss and its dependencies to a dedicated environment.

First ensure that you are using an anaconda or miniconda installation. If you installed miniconda according to the instructions above, and are still in the same terminal window, then first load anaconda:

source ~/.bashrc


If you now run which python, then you should get ~/miniconda2/bin/python or similar.

Then, download the .zip package we sent you upon software deliver. Now we can start the installation of IPKISS by executing the following command:

cd ~/Downloads # We assume you downloaded the packages here.
python ipkiss-312-packages-linux64.zip


When the command exits you should have a working Ipkiss installation. You can activate it by running the following command:

source activate ipkiss3


Upon receiving the software, you will also receive a license key (with the .lic extension). In order for IPKISS to recognize the key, it has to be placed into the folder of your Python environment. For example, when you installed IPKISS to the default location, you need to put the license key into the $HOME/miniconda/envs/ipkiss3 folder. Alternatively you can install the license by dragging and dropping the license file on the Luceda control center, as explained in the instructions for windows. After activating your ipkiss3 environment, you can launch the control center by invoking the ipkontrol command from the command line. Please check the where to go next section to find out where the documentation and samples can be found. ### Configuring your IDE¶ When you configure your IDE to work with conda, you’ll need to make sure that the correct python executable is used. The setup is very similar to the setup on windows. ## Using a floating license¶ ### Hosting the license server¶ Before being able to use the floating server, your license administrator needs to install the license server. The instructions are found here: setting up the reprise license server. ### Configure your floating license¶ As explained in Installing the license, the floating license also needs to be placed in the Python environment folder. For Windows, it is at C:\luceda\ipkiss_312\ for example; for Linux, it is at $HOME/miniconda/envs/ipkiss3.

Additionally, please make sure that the first line in the license file contains the URL to the server that hosts the license. For example, the first line of the license may look like this:

HOST mylicenseserver.mycompany.com 1021486dc38f 5053


## Installing a GDSII viewer¶

KLayout is an open source viewer and editor for GDSII and OASIS files. We found it to be an easy-to-use and very accurate tool for viewing GDSII files. It runs on Windows, MacOS and various Linux distributions.

Using KLayout, it is possible to open multiple files at once, overlay multiple files on the same screen, do simple edits, perform boolean operations, and so forth.

Design kits may come with a layer properties file .lyp which sets the layer names and drawing colors for easier viewing. This file can be loaded through File ‣ Load Layer Properties.

After installing KLayout, you can open GDS files from your file manager, or directly from within Wing IDE using the Open in External Viewer button as shown in the figure.

Fig. 11 Open a GDS file from Wing IDE using the Open in External Viewer button.

## Where to go next¶

After installation, the following contents can further help you getting started with IPKISS.

• samples:

• Windows: from Luceda Control Center you can access the samples folder (which is available in samples at your installation folder). In this folder there is a Wing project file, which brings you to the Wing IDE editor with the samples inside the project.
• Linux: by default, the samples can be found in luceda_samples/ folder in the site-packages of the installed environment. For example, if your environment is named ipkiss3, then you may find them in \$HOME/miniconda/envs/ipkiss3/lib/python2.7/site-packages/luceda_samples.
• documentation:

• Windows: you can access the documentation by pressing the Luceda documentation button from Luceda Control Center.

• Linux: To run the documentation, activate the environment and run luceda-doc:

source activate ipkiss3
luceda-doc


This will start a daemon, hosting the documentation through a web server. It will launch the default browser to show the documentation.

In the documentation, you can find further links to:

• Tutorials: the tutorials are a set of step-by-step guides, from beginner to expert IPKISS usage, and covering a wide variety of topics from layout to circuit simulation.
• Guides: read about advanced guides focused onto several topics of IPKISS (i.e., layout, circuit simulation, netlists, and so on).
• Logging: read about the different IPKISS logging levels (which are useful to find out which version of IPKISS you are using or to enable several debugging options).

## For IPKISS.eda User¶

The following section is relevant to IPKISS.eda users.

### Installing IPKISS.eda¶

In order to run IPKISS.eda, you will need both the installation and license from Mentor Graphics for L-Edit and a license from Luceda for IPKISS.

• For L-Edit installation and license, please refer to the Mentor Graphics sales channel or through https://www.mentor.com/tannereda/ams-ic. Before you can get started using the IPKISS integration with L-Edit, you’ll need to obtain copy of Tanner L-Edit from Mentor Graphics. You must use L-Edit version 16.33 or newer. If you’re unsure whether your version of L-Edit is compatible with IPKISS, feel free to ask us. We’ll be glad to help you.

After you’ve installed Tanner L-Edit, IPKISS and your license, you should be ready to start creating designs. You can quickly check that everything is correctly set up by creating a test design. IPKISS contains a pre-made library called ‘demolib’. You can use it to test your installation.

1. Start Tanner L-Edit by clicking on the launcher in the Luceda Control Center.
2. In the console window of L-Edit, you wil see a message saying that Luceda macros have been loaded.
3. Select File ‣ Open and open the demo design project of demolib. If you have installed IPKISS to the default location, you can find it at C:\luceda\ipkiss_312\samples\demo\projects\my_designs_oa\lib.defs.
4. Create a new design by pressing the shortcut n.
5. Try instantiate a component by dragging it onto your new design.
6. You should now see the layout of your component. Note that it may take a while to load for the first time. Subsequent calls will run much faster once IPKISS is loaded.

## Installing a development macro¶

In some cases, Luceda might send you a macro with custom functionality to solve your specific needs. To install such a macro, execute the following steps:

1. Open the ipkiss terminal and install the macro package with the following command: conda install macro.tar.bz2
2. Open L-Edit from the luceda control center.
3. Verify that the macro is loaded in the “Tools > macro” dialog