Port Definitions
Variable | Type | Description |
---|---|---|
ports | Cell |
A cell array containing structs which have information about each port. Every struct must contain the following fields:
|
opt_1_RELAY |
Number | The indices of the cells in the "ports" cell array, that corresponds to the first and second input optical ports |
opt_2_RELAY |
||
opt_3_RELAY |
The indices of the cells in the "ports" cell array, that corresponds to the first and second output optical ports | |
opt_4_RELAY |
||
ele_th_1_RELAY |
The indices of the cells in the "ports" cell array, that corresponds to the contacts of the 'top-arm' thermal tuner. | |
ele_th_2_RELAY |
||
ele_th_3_RELAY |
The indices of the cells in the "ports" cell array, that corresponds to the contacts of the "bottom-arm" thermal tuner. |
|
ele_th_4_RELAY |
Note: Ports without RELAY specification will be connected to a termination and are not used by the compact model.
Photonic Model
Variable | Type | Description |
---|---|---|
photonic_model |
string |
String containing the name of the photonic model used for this template. Please visit here for a list of all available photonic models. |
Cosmetic Variables
Variable | Type | Description |
---|---|---|
description | String | A string containing a brief description of the model, which will be displayed to the end user. |
prefix | String | A string containing the prefix of the model, which will be used within interconnect to provide incrementing element names for each successive element that is added to the simulation layout. |
notes | Cell |
A cell array which provides model notes that will be displayed to the end user. Each element of the cell is a struct with the fields:
|
Modeling Variables
Variable | Type | Description |
---|---|---|
data_filename | String | A string containing the filename of the data file for this element. This must include the extension of the file (.json or .mat) |
splitter | Struct |
Struct containing information about modeling the MMIs with fields: spar_filename: name of the .txt file containing the S-Parameter data for the MMIs. input1: name of the first input port of the MMI in the S-Parameter data file provided as a string. input2: name of the second input port of the MMI in the S-Parameter data file provided as a string. output1: name of the top output port of the MMI in the S-Parameter data file provided as a string. output2: name of the bottom output port of the MMI in the S-Parameter data file provided as a string. flip_2nd_MMI: True or False Boolean flag to indicate whether the 2nd MMI/directional coupler should be flipped. When flipped, the input ports of the splitter will be connected to output waveguides. This will be useful for cases with asymmetric s-parameter data for the splitter. |
number_of_taps_estimation |
String |
A string containing the method of choosing the number of taps for the FIR filter of the MMI elements. Valid entries are:
|
Built-in Variables
Variable | Type | Description |
---|---|---|
enable_thermal_time_constant | Boolean | Flag to enable/disable internal low-pass filter for thermal tuner transient bandwidth. The default value is set to "true." |
Tuning Variables
Variable | Type | Description |
---|---|---|
lock_notch_wavelength |
Boolean |
Enable/disable tuning of the resonant wavelength. Note:
|
lock_FSR |
Enable/disable tuning of the free spectral range. Note:
|
|
lock_IL |
Enable/disable tuning of the insertion loss (dB) from optical port 1 (1st input) to optical port 4 (2nd output) at zero bias. Note:
|
|
lock_S14 |
Enable/disable tuning of the transmission (dB) from optical port 1 (1st input) to optical port 4 (2nd output) at zero bias. Note:
|
|
lock_ER |
Enable/disable tuning of the extinction ratio at resonance. Note: For unbalanced MZM only. Flag is ignored for balanced MZM. |
|
lock_Ppi_thermal |
Enable/disable tuning of the power for pi phase shift (Ppi) of the thermal tuner (if applicable). Note:
|
|
perturb_top_arm_only (Statistical models only) |
When creating a statistical MZM compact model, this flag gives the user the option to either apply the variations on the top arm only (True) or to both arms in an uncorrelated way (False). Setting this flag to "True" allows the user to apply statistical variation to the top arm only resulting in a "delta" in the behavior of the two arms. Setting to "False" on the other hand allows the user to have two sets of statistical parameters that apply the perturbations to both arms in an uncorrelated way. |