Inst

class ipkiss3.all.Inst

creates one or multiple instances of a given reference PCell/LayoutView. By passing a string or a list of strings as name, the corresponding instances are created.

Parameters:
name: str or list[Str]

The name or names for the to be created instances

reference: LayoutView or PCell

The LayoutView or PCell of which the instances shall be created

flatten: Boolean

default=False if True, it will insert the references elements on export, rather than the reference itself

Examples

import si_fab.all as pdk
import ipkiss3.all as i3

class MyCircuit(i3.Circuit):
    def _default_specs(self):
        return [
            i3.Inst(["gc_in1", "gc_in2", "gc_out"], pdk.GratingCoupler()),
            i3.Inst("mmi", pdk.MMI1x2()),
            i3.Place("gc_in1", (0, 30)),
            i3.Place("gc_in2", (0, -30)),
            i3.Place("gc_out@CW", (100, 0), angle=180),
            i3.Place.X("mmi", 50, relative_to="gc_in1@E"),
            i3.Place.Y("mmi", 0, relative_to="gc_out:out"),
            i3.Place.Angle("mmi", 180),
            i3.ConnectBend([("gc_in1:out", "mmi:out1"), ("gc_in2:out", "mmi:out2"), ("mmi:in1", "gc_out:out")]),
        ]

MyCircuit().Layout().visualize()
../../../../_images/ipkiss3-all-Inst-1.png