Skip to content

PDK Maintenance

Lukas Chrostowski edited this page Nov 5, 2021 · 1 revision

For PDK Developers and Maintainers

Waveguides

Waveguide definitions are loaded from WAVEGUIDES.xml and WAVEGUIDES_*.xml files, which can be located in:

  1. the Technology folder (where the .lyt file is located), or any subfolder
  2. a Library folder (where the .lym class Library file is located), or any subfolder, provided that the Library is registered with a technology and the path location is stored:
self.technology=tech_name
import os
self.path = os.path.dirname(os.path.realpath(__file__))

Note: Starting in SiEPIC-Tools version 0.3.82, the WAVEGUIDES.xml files can be stored within each Library folder (2).

Note: This functions in KLayout 0.27 and above, where libraries are associated with technologies. In KLayout 0.26, we search all the sub-folders in KLayout for WAVEGUIDE xml folders where there is a .lyt file that matches the technology name.

Libraries

A PDK may contain:

  1. the main technology folder, including libraries. These can be installed:
  • in a KLayout folder: KLayout/tech, or KLayout/salt
    • these can be symbolic links, for example to a GitHub repository
  • graphically in KLayout:
    • menu Tools > Manage Technologies
    • Right-click in the left area, and "Import Technology"
    • Navigate to the Technology folder, for example to a GitHub repository
    • Open
    • A prompt should appear asking to automatically load the technology.
    • OK to save changes Note: the option to graphically install the PDK was introduced in SiEPIC-Tools 0.3.82
  1. standalone libraries, in separate folders. These can be installed:
  • in a KLayout folder: KLayout/pymacros, KLayout/python, KLayout/salt
  • graphically in KLayout:
    • menu Macro > Macro Development
    • click on Python, on the top left of the window
    • Right-click in the left area below Python, and "Add Location"
    • Navigate to the Library folder, for example to a GitHub repository
    • Open
    • A prompt should appear asking to automatically load the library. Libraries should load automatically on start-up; if not, double-click on each one, then run each one (the play! symbol, or Shift-F5, FN-Shift-F5 on Mac)