A thermally tuned Mach-Zehnder interferometer model with unbalanced configuration.
Note: For legacy data format (2022 R2.4 and older) please visit following link:
Mach-Zehnder Interferometer (Thermally tuned) - Lumfoundry Template (Legacy)
Template: mzi_thermal_unbalanced_te_c
Photonic Model: mach_zehnder_modulator
Quality Assurance Test: mach_zehnder_modulator QA
Parameters: imbalance length.
Interoperability with Cadence Virtuoso:
- Circuit design flows using INTERCONNECT model: Yes.
- Circuit design flow using photonic Verilog-A model: Yes.
Modeling Data
The source data template for a thermally tuned Mach-Zehnder interferometer element can be divided into two sections.
- For new users (continue with the following section: Basic data requirement)
- Advanced users ( continue with section: Complete Data Requirement )
The thermally tuned Mach-Zehnder interferometer template can be used to create an advanced compact model for a custom thermally tuned Mach-Zehnder interferometer. The template contains a lot of different modeling data to create an accurate model. However, not all these data need to be updated by users. The fastest and simplest way to modify the template data and create a custom compact model is to only update the data listed in the 'basic data requirement section' below, while all the remaining data (which are illustrated in detail in subsequent sections) can stay at their default value.
Note: Advanced users please jump start with Complete Data Requirement (for advanced users) section.
Basic data requirement (for new users)
The basic and minimum data required to build the thermally tuned Mach-Zehnder interferometer model is described below.
general
"general" is a struct with the following fields:
Field | Type | Description |
---|---|---|
description | string | A string containing a brief description of the model, which will be displayed to the end user. |
notes | cell |
A cell array providing model notes which will be displayed to the end user. Each element of the cell is a struct with the fields:
|
ports
"ports" is a struct with the following fields:
Field | Type | Description |
---|---|---|
opt_1 |
struct with the fields described in the table below | Port definition corresponding to the optical ports |
opt_2 |
||
th_neg_top |
Port definition corresponding to the contacts of the "top-arm" thermal tuner |
|
th_pos_top |
||
th_neg_bot |
Port definition corresponding to the contacts of the "bottom-arm" thermal tuner | |
th_pos_bot |
Each struct above consists of the following fields:
Field | Type | Description |
---|---|---|
name | string | The name of the port, which will be visible to the end user. This name should be consistent with the name that will be used for netlisting. |
pos | string |
The side of the model which the port will be displayed on, either "Left", "Right", "Top", or "Bottom" |
order | number |
The order at which the port is listed in a netlist. |
parameters
"parameters" is a struct with the following fields:
Field | Type | Description |
---|---|---|
wg_length
|
struct with the fields described in the table below |
The length of the thermal phase shifter. |
imbalance_length
|
The imbalance length of the MZI. Note: This parameter should be set to 0 for a balanced MZI. |
Each struct above consists of the following fields:
Field | Type | Description |
---|---|---|
name |
string |
The name for display in the Property View window. |
default |
number |
The nominal value of the parameter in SI unit. |
visible_to_user |
boolean |
A flag to enable/disable the parameter display. |
min
|
number |
Minimum allowed value if the visible_to_user is set to True. |
max
|
number |
Maximum allowed value if the visible_to_user is set to True. |
model_data
"model_data" is a struct with the following fields:
Field | Type | Description |
---|---|---|
longer_arm |
number |
Denote which arm is longer for imbalanced modulators. Options are:
Note: This parameter is not required for a balanced MZM. |
mode_data |
cell |
1 x 1 cell array. Each element of the cell is a struct with fields:
This model only supports a single mode. |
waveguide_data |
struct with the fields described in waveguide_data table |
Data required for modeling the waveguide sections. |
thermal_tuner_data
|
struct with the fields described in thermal_tuner_data table |
Data required for modeling the thermal tuner. |
th_eq_ckt_data
|
struct |
Thermal equivalent circuit described by either Current (Amp) versus bias voltage (V) characteristic of the heater for the default phase shifter length with the required field of:
The IV data are linearly interpolated to obtain the electrical behavior. or resistance (\(\Omega)\) of the heater for the default length of the phase shifter with the required field of:
Note:
|
thermal_tuner_data
Note: For a Mach-Zehnder interferometer without thermal tuner, this struct should not be provided.
Field | Type | Description |
---|---|---|
bandwidth_data |
struct |
A single value containing the 3-dB cutoff frequency of the thermal phase shifter. |
waveguide_data
Note: The fields are only required for waveguide sections with non-zero length. See Internal Model Diagram in photonic model page for a diagram showing the role of each section.
Field | Type | Description |
---|---|---|
wavelength |
number |
Center wavelength (m) of the band for which the mode properties are provided. |
temperature |
number |
Temperature (K) for which the mode properties below are provided. |
waveguide_hangover_left
|
struct with the fields described in the table below
|
Mode properties for modeling the right and left hangover waveguide sections |
waveguide_hangover_right
|
||
waveguide_passive_right
|
Mode properties for modeling the right and left passive waveguide sections |
|
waveguide_passive_left
|
||
waveguide_thermal_tuner
|
Mode properties for modeling the thermal phase shifter waveguide section at 0 V bias |
Structs listing mode properties for different waveguide sections consist of the following fields:
Field | Type | Description |
---|---|---|
length |
number |
Length (m) of the waveguide section. Note: This field is not required if the length is set as a parameter or otherwise described by other variables such as radius. |
neff |
number |
Unperturbed effective index of the waveguide section (no electrical or thermal tuning applied). |
ng
|
number |
Group index of the waveguide section. |
dneff_dT
|
number |
Effective index temperature sensitivity (1/K) of the waveguide section. |
loss
|
number |
loss (dB/m) of the waveguide section. |
FOMs
"FOMs" is a struct with the fields below. This data is required for CML Compiler to run quality-assurance tests on the final model. They are also optionally used by CML Compiler to fine-tune the internal model to provide the expected behavior.
If the source physical data provided for the model is not consistent with the figures of merit (FOMs) provided (meaning the actual FOM values resulting from physical parameters differ from the provided FOM data), the model can tune the provided physical data to match the FOMs to the provided values. For more information, see Tuning Active Compact Models.
Field | Type | Description |
---|---|---|
IL |
struct with the fields described in the table below |
The overall insertion loss (dB) of the MZM in the off-resonance region as explained in the Spectrum Data Visualization in photonic model page. Note: This FOM will be enabled internally to enable statistical variations if IL is a statistical parameter. |
FSR |
struct with the fields described in the table below |
The free spectral range (m) of the MZM provided as a struct. Note:
|
notch_wavelength | struct with the fields described in the table below |
The resonant wavelength (m) of the MZM at a temperature of 300K with no applied electrical or thermal phase shift. Note:
|
Ppi_thermal
|
struct with the fields described in the table below |
Power (W) for pi phase shift of the thermal tuner (single arm) for input power range described by "ref1" and "ref2" in the struct. Note: This FOM will be enabled internally to enable statistical variations if Ppi_thermal is a statistical parameter. |
ER
|
struct with the fields described in the table below |
The extinction ratio (dB) of the model (as explained in the Spectrum Data Visualization in photonic model page). Note:
|
Each struct above consists of the following fields:
Field | Type | Description |
---|---|---|
value |
number |
The nominal value for the FOM in SI units. |
tuning |
boolean |
A flag to enable or disable tuning for the FOM. |
ref1 (if applicable) |
number |
Point(s) at which the nominal FOM was measured. This parameter can be voltage or power data points depending on the FOM definition. |
ref2 (if applicable)
|
number |
QA
"QA" is a struct with the following fields:
Field | Type | Description |
---|---|---|
parameters |
struct with the fields described in parameters table |
Parameter values used for setting up the QA test bench. |
parameters
Field | Type | Description |
---|---|---|
wavelength | number |
The center wavelength for QA tests. |
thermal_BW_bias
|
number |
The bias voltage (positive) of the thermal switch for thermal bandwidth test. Note: This parameter should only be provided for a model with thermal tuner. |
Complete data requirement (for advanced users)
The complete data section provide a complete reference of data supported by the thermally tuned Mach-Zehnder interferometer model including the basic required data described in the previous section. The descriptions of all the fields in the thermally tuned Mach-Zehnder interferometer source data template are described below.
general
"general" is a struct with the following fields:
[[snippet||11549514081811]]
ports
"ports" is a struct with the following fields:
[[snippet||11881457781267]]
Each struct above consists of the following fields:
[[snippet||11549759363603]]
parameters
"parameters" is a struct with the following fields:
[[snippet||11881543031187]]
Each struct above consists of the following fields:
[[snippet||11720299494931]]
model_data
"model_data" is a struct with the following fields:
[[snippet||11904446988307]]
Structs listing mode properties for different waveguide sections consist of the following fields:
[[snippet||11653970537235]]
FOMs
"FOMs" is a struct with the fields below. This data is required for CML Compiler to run quality-assurance tests on the final model. They are also optionally used by CML Compiler to fine-tune the internal model to provide the expected behavior.
If the source physical data provided for the model is not consistent with the figures of merit (FOMs) provided (meaning the actual FOM values resulting from physical parameters differ from the provided FOM data), the model can tune the provided physical data to match the FOMs to the provided values. For more information, see Tuning Active Compact Models.
[[snippet||11905242526483]]
Each struct above consists of the following fields:
[[snippet||11653867902995]]
QA
"QA" is a struct with the following fields:
[[snippet||11905386526099]]