PHIX

Luceda ADK for PHIX

The Assembly Design Kit (ADK) for PHIX is a design kit for packaging photonic ICs with the PHIX packaging foundry

Contents

PDK Documentation

This document explains how to use the Luceda Assembly Design Kit (ADK) for the PHIX Characterization Package (version 1.1).

The ADK can be used from IPKISS, providing the following functionality:

  • definition and layout of circuits within PHIX’s Characterization Package, which is entirely available within IPKISS

This document explains how to get started with the ADK, lists the cells that are available and documents the technology for custom design.

Document information

License

The use of this ADK is subject to the “PHIX User Non-Disclosure Agreement”.

Usage and responsibility

The use of this ADK is restricted to the design of photonic integrated circuits in the PHIX platform, fabricated by PHIX (Foundry).

  • All relevant documentation about the PHIX platform, including process description and design rules, can be found in the PHIX Design Manual as provided by the Foundry. The user is advised to carefully read the PHIX Design Manual.

  • It is the user’s responsibility to verify that the design, made on the basis of this Assembly Design Kit, meets the Foundry’s design rules.

  • In case of doubt, the user should consider the Foundry’s design rule manual as the correct reference (as validated by the Foundry).

  • Under no circumstances does LUCEDA represent or warrant that operation of the photonic integrated circuits by the Foundry, designed on the basis of this Assembly Design Kit, will be error-free or will accord to the user specifications, and hereby disclaims all liability on account thereof.

Changelog

This changelog shows the changes in the Luceda ADK for the PHIX Characterization Package.

1.1

  • Fixed marker_layer property definition

1.0

  • PackageTemplate renamed to CharacterizationPackage

  • Fixed TECH.GDSII.LAYERTABLE_PDK to contain only PDK layers

  • Renamed CharacterizationPackage ports using cardinal directions

  • Added coupler and pad childcell to CharacterizationPackage

  • Added marker_layer to generate alignment markers also with a PDK layer

0.1 Initial release

  • Technology setup

  • Parametric characterization package template

Getting Started

This section explains how to load the Luceda ADK for the PHIX Characterization Package and basics of how to use it.

If you are unfamiliar with IPKISS, please have a look at the IPKISS documentation and samples. The documentation and samples are available from the IPKISS Control Center.

The latest IPKISS documentation is also available online at http://docs.lucedaphotonics.com.

Extracting the ADK

The ADK is distributed as a zip file, which you can extract with the unzip utility of your choice (unzip, WinZip, 7-zip, …).

For the purpose of this manual, we assume you have unzipped “phix.x.x_buildnr.zip” as C:\designs\pdks\phix.

You can inspect the directory structure of the ADK:

  • docs/: Contains this file

  • docs/examples/: Example IPKISS python scripts

  • ipkiss/: IPKISS technology, cells and functions (Python)

  • techfiles/: Tech files (layers, display) for various tools

  • techfiles/klayout/: Layer settings for KLayout GDSII visualization

Using the ADK with IPKISS

Setting up the editor environment

You can follow the instructions given in our documentation https://academy.lucedaphotonics.com/tutorials/environment_setup/create_project_pdk.html.

Examples

The ADK comes bundled with a series of examples for use in IPKISS, in the <path_to_pdk>\docs\examples. These are executable Python files. The examples are a good starting point to learn how to design with this ADK. Below is a summary of the shipped examples:

Example name

Description

example_ec.py

Visualize a packaging template using Edge couplers

example_gc.py

Visualize a packaging template using Grating couplers

Technology settings

The ADK contains layer definitions. Note that a IPKISS technology (Luceda PDK) must be loaded before importing the ADK. si_fab will be imported if no other PDK is imported before raising a warning.

Layers

The following table gives an overview of the available layers and how they are named in Ipkiss. See the PHIX design rules manual for further information about the layers defined by PHIX.

Table 1 Layer Table

IPKISS Layer (TECH.PPLAYER.)

Description

GDS Number

PIC_DIM

PIC dimensions

2015, 10

PIC_RULERS

PIC rulers

2015, 11

PIC_MARKS

PIC marks

2015, 12

PIC_LOOP

PIC loop marks

2015, 13

EC_LOC

EC-locations

2015, 21

GC_LOC

GC-locations

2015, 25

EC_BP

EC-Bondpad

2015, 58

GC_BP

GC-Bondpad

2015, 59

EC_EPOXY

EC-epoxy area

2015, 71

GC_EPOXY

GC-epoxy area

2015, 75

EC_KEEP_OUT

EC-BP keep-out

2015, 81

GC_KEEP_OUT

GC-BP keep-out

2015, 85

WIRE_BOND

Wire bonds

2015, 100

ADK Packaging Template

The library contains a number of markers and a packaging template class.

CharacterizationPackage

class phix.all.CharacterizationPackage(*args, **kwargs)

PHIX Characterization Package Template.

Ports are named according to their side north, south, east and west and numbered from west to east and south to north starting from 1.

For example, “east_1” is most southeast coupler marker if no coupler provided. Otherwise, “east_in_1” is most southeast coupler waveguide port and “east_out_1” is fiber coupling port. “north_1” is the most northwest pad marker if no pad provided. Otherwise, “north_{pad_port}_1” is the {pad_port} of the most west north pad.

Parameters:
pad_to_edge: float and number > 0 and [100,500]

Pad to PIC edge (min 100 if Fab-diced and 300 for PHIX-dicing) [um]

pad_dim: float and number > 0 and [90,150]

Pad side size 120 (+/-30) [um]

pad_pitch: float and number > 0 and ( [150,350] or [450,550] )

Pad pitch 200, 300 or 500 (+/-50) [um]

pad_number: int and number >= 0 and [0,60]

Number of pads per side

couplers_pitch: float and number > 0 and List with value restriction, allowed values: (127.0, 250.0)

Coupler pitch (up to 12ch for 250um possible)

couplers_number: int and number > 0

Number of couplers per side

couplers_type: ( bool, bool_ or int )

Grating couplers (True) or Edge couplers (False) markers

to_edge_marker: float and number > 0

Gap between PIC edge and marker [um]

height_marker: float and number > 0

Height marker [um]

length_marker: float and number > 0

Length marker [um]

location_ruler_y: float and number > 0

Y spacing from 1st and last optical coupler [um]

location_ruler_x: float and Real, number and number >= 0

X location: match waveguide-end with 0 [um]

pic_length: float and number > 0 and [4000,20000]

PIC length [um]

pic_width: float and number > 0 and [4000,20000]

PIC width [um]

marker_layer: ( __Layer__ ), *None allowed*

Layer of the markers used for alignment (metal layer recommended for higher contrast).

pad: ( PCell ), *None allowed*

Bondpad used at every marker

coupler: ( PCell ), *None allowed*

Coupler used at every marker

Views

class Layout(*args, **kwargs)
from phix import technology
from phix.all import CharacterizationPackage

lo = CharacterizationPackage().Layout()
lo.visualize(annotate=False)
_images/phix-all-CharacterizationPackage-1.png

phix.all.CharacterizationPackage

PHIX Characterization Package Template.