This article demonstrates a use case for the photonic component design workflow using a 1x2 Multi-Mode Interferometer (MMI). In this article, we describe steps in importing this component from an OptoCompiler library using the Layout Geometry Wizard, simulating it in Lumerical MODE, and creating an INTERCONNECT compact model with Lumerical CML Compiler. This article also discusses how to package the compact model with OptoCompiler library, enabling circuit-level simulation.
This article provides a basic example for PDK designers to import from OptoCompiler and start building a custom PDK using Lumerical products, and focuses on import, simulation, and model compilation from an OptoCompiler cell.
For further information on this workflow, such as descriptions for each setting in the Layout Geometry Wizard and environment setup, please see the component design workflow section of the Lumerical-OptoCompiler integration Knowledge Base article.
Setup and package contents
Prior to starting this example, follow the instructions in this Knowledge Base article to set up your software and environment. This example uses Lumerical products 2026 R1 release, and OptoCompiler 2026.03 release.
A test package is to this article, which contains necessary files. Download and extract this package prior to starting the example. Ensure that the full path to this package does not contain any white spaces.
The extracted package contains the following directories. When working with the example, ensure that the structure of the package stays intact.
- /demo/
- Contains the core files for the workflow example
- /library/
- Contains library information for OptoCompiler
- /myPDK/
- Contains template information for building a custom PDK for CML Compiler
Example summary
In-depth steps
Step 1 – Loading photonic component layout and symbol
You can configure your photonic component layout and symbol directly in OptoCompiler. For detailed steps to achieve this, please refer to the OptoCompiler User’s Guide. This example assumes that a component layout is already available in an OptoCompiler library.
Step 2 – Import to Lumerical using the Layout Geometry Wizard
In this step, you will import the OptoCompiler layout into Lumerical. For this specific example, we will use a 1x2 MMI design from the custom library in the attachment, and Ansys Lumerical MODE™.
Follow the steps below to import the 1x2 MMI design into MODE. See the Knowledge Base article Photonic component design with Lumerical and OptoCompiler for further information on the Layout geometry wizard and detailed description of associated capabilities and current limitations of this workflow.
- Navigate to the directory of the package, and navigate to the folder /demo/ in the terminal.
- Launch MODE by running
mode-solutions &in the terminal. - Open the Layout geometry wizard by from the Build button in the main toolbar.
- Choose OptoCompiler for the Source type, and load the
libs.defsfile from/demo/lib.defs. - Select the library CustomLib, cell name MMI_1x2 and view layout. Select the layermap and process files as follows.
• Layer map<Synopsys_OptoCompiler_installation_directory>/auxx/libs/referenceOpticalSOI/referenceOpticalSOI/referenceOpticalSOI.layermap
• Process file:/library/referenceOpticalSOI.lbr - Review the geometry and source inputs, and ensure that the field under Layer Mapping is filled.
- Ensure that the Strip layer and structure is imported successfully.
- Right-click on the MMI-1x2 layout object, select Edit Object, and change the attribute x_span to be 0.00015. Then click Ok to apply it to the object. The software will automatically update the layout geometry.
Importing of the layout is now completed, and you can proceed onto the next step of setting up and running the Lumerical simulation.
Step 3 – Set up and run Lumerical simulation
Usually, you need to set up and run your desired simulations. See this article for further details. However, the package in this example provides two Lumerical scripts to set up and run the simulation in MODE.
To set up and run the simulation in MODE for the 1x2 MMI example, follow these steps.
- Turn off safe mode near the script prompt.
- Load the
setup_simulation.lsfscript from the/demo/scripts/folder. There are a few warning messages when you first run this script. They are safe to ignore. - Load the
write_sparam_file.lsfscript from the/demo/scripts/ folder. This script runs necessary simulations on the 1x2 MMI and saves the output S-parameter data file. This simulation may take up to 40 minutes to run. - After the simulation is complete, the script plots the following values, and outputs the S-parameter results as
mmi_1x2_strip_te_c_S_params.txtin the working directory of the software. The same S-parameter file is provided as a part of the package in the/demo/folder as well.
The simulation in Lumerical is now complete, and you can move proceed on creating the INTERCONNECT model with CML Compiler.
Step 4 – Create INTERCONNECT model with CML Compiler
To create the INTERCONNECT model with CML Compiler, it is important to first take note of a few values from the OptoCompiler library, which will help with mapping the ports for model generation.
To examine port names of the symbol, use the instructions below.
- Navigate to the
/demo/folder and open OptoCompiler using the commandoptocompiler &. OptoCompiler will automatically import the lib.defs file in that folder. - Select the CustomLib library and the MM1_1x2 cell, and create a new view called INTERCONNECT by right-clicking the symbol view and selecting Copy.
- In the opened window, change the view name to INTERCONNECT and press OK to create the view.
- Open the INTERCONNECT symbol view.
- Click on Edit->Property->Assistant, or press Q to open the property editor window.
- Click on each port of the symbol and note their names. You need to enter the same names into CML Compiler in the next step. The 1x2 MMI has three ports, “in0”, “out0” and “out1”.
You can now use the port names from these steps for model generation using CML Compiler.
After following the steps above, you can now follow the instructions below to create an INTERCONNECT model with CML Compiler for the 1x2 MMI. For further general information on using the CML Compiler, see the CML Compiler product reference manual.
- Copy the file
mmi_1x2_strip_te_c_S_params.txtfrom step 2 to the template source folder/myPDK/source/MMI_1x2. - Navigate to the folder
/myPDK/and launch CML Compiler usingcmlc &. - Redirect the Library Path to the
/myPDK/directory. - Select the MMI_1x2 element and press
to edit its properties.
- Edit port names in the ports tab to match with what is shown in OptoCompiler. You can also edit port positions such that they are in the same position as OptoCompiler.
- Delete the TM mode data attribute and keep the TE mode attribute in the model_data tab.
- Validate and generate the INTERCONNECT compact model by pressing Validate in the editor and then pressing Build Library on the top toolbar.
The 1x2 MMI model is now compiled, and ready to be imported for simulation.
Step 5 – Element parameter (CDF) mapping in OptoCompiler for PDK generation
To use the built model in OptoCompiler, you can run INTERCONNECT as an Engine from OptoCompiler. You can find details of this workflow in the various resource and example pages in the Lumerical-OptoCompiler integration Knowledge Base article.
One important step to use CML Compiler generated INTERCONNECT models for OptoCompiler is to modify the Base parameters in the INTERCONNECT view in OptoCompiler. The procedure allows OptoCompiler to find an installed custom model in the INTERCONNECT library, and maps important attributes like element name, ports, and parameters.
Prior to changing the element parameters, you must install the CML that includes your compact model through INTERCONNECT.
After installing the model, you can modify the cell. This procedure is shown below using the 1x2 MMI as an example. For further information, see the Knowledge Base article on Using an INTERCONNECT Compact Model Library (CML) in OptoCompiler.
- Right-click the MMI_1x2 cell in the Library Manager tab, and press Edit Parameter Definitions, this opens a new Parameter Definition Editor tab.
- In the new Parameter Definition Editor tab, change the right-most dropdown from Effective to Base.
- Change to the Siminfo tab and add the following information as a new column named INTERCONNECT. Further information on how parameters are mapped can be found in the Knowledge Base article on Using an INTERCONNECT compact model library in OptoCompiler.
Element parameter modification is now complete for the 1x2 MMI INTERCONNECT model.
See Also
Lumerical-OptoCompiler integration, Using INTERCONNECT as an engine in OptoCompiler