# Step 3: Technology¶

Result

In this example we introduce the TECH tree. A TECH trees is a storage space for default settings associated with a particular fabrication technology of a fab. The example builds on the same code ‘ring.py’, which we’ve used in the previous steps, but adds default values derived from the TECH Tree.

Illustrates

1. the use of the TECH object to set default values.
2. the selection of the technology.
3. the fact that technology should be loaded as the first line of the executable.

How to run this example

To run the example, run ‘execute.py’.

Files (see: tutorials/pcell_basic/03-technology)

There are two files contained in this step.

• ring.py : which is a self-contained python file that contains a description of our ringresonator. It is imported in execute.py
• execute.py : which is the file that is ultimately executed by python. It imports the description of the ringresonator from ring.py and performs operations on it.

## Using technology¶

Before you can start using a TECH tree, each python file that uses one must load it.

from technologies import silicon_photonics

# 2. load the file with our RingResonator and instantiate the layoutview
from ring import RingResonator

my_ring = RingResonator(name="my_unique_ring_name")
my_ring_layout = my_ring.Layout()



We now use the same definition of the ring but use default values contained in the TECH three.

class RingResonator(i3.PCell):

#....Pcell definition omitted

class Layout(i3.LayoutView):

# In this example we use the technology
ring_wg_width = i3.PositiveNumberProperty(default=i3.TECH.WG.WIRE_WIDTH,  doc="width of the ring waveguide in micrometers")
bus_wg_width = i3.PositiveNumberProperty(default=i3.TECH.WG.WIRE_WIDTH, doc="width of the bus waveguide in micrometers")
coupler_spacing = i3.PositiveNumberProperty(default=i3.TECH.WG.DC_SPACING,
doc = "spacing between centerline of bus waveguide and ring waveguide")

def validate_properties(self):

#... validation rules omitted....

return True


In this code extract we used the default values contained in the TECH.WG which refers to default values that have something to do with waveguides. See Technology for in-depth documentation on the default TECH files.

## Selecting a technology¶

Selecting a technology is the first operation of any ipkiss script that uses technologies.

# When executing a script, the first line should load the technology
# This is a set of default settings associated with a specific
# fabrication technology.

# IPKISS provides a default technology for silicon photonics as an example

from technologies import silicon_photonics

# 2. load the file with our RingResonator and instantiate the layoutview
from ring import RingResonator

my_ring = RingResonator(name="my_unique_ring_name")
my_ring_layout = my_ring.Layout()

# 3. The default values from the TECH file are now used.