A statistically enabled balanced 2x2 Mach-Zehnder modulator model. For this model figure of merits, delta_electrical_BW, and delta_Vpi, are considered as statistical parameters. In a FOM based statistical model, there is no need to find the statistical data for physical root cause of the variation and FOM measurements can be directly used as statistical data. The statistical parameters are delta_electrical_BW, and delta_Vpi.
For information on statistical CMLs, see Statistical CMLs .
Note: For legacy data format (2022 R2.4 and older) please visit following link:
Mach-Zehnder Modulator 2x2 (Statistical) - Lumfoundry Template (Legacy)
Template: mzm_2x2_stat_fom_te_c (Figures of merit based statistical parameters)
Photonic Model: mach_zehnder_modulator_2x2
Quality Assurance Test: mach_zehnder_modulator QA
Statistically Enabled Parameters:
Balanced: Electrical_bandwidth and Vpi_electrical
Unbalanced: neff (active), ng (active), electrical_bandwidth, Vpi_electrical, resonant_wavelength, FSR, ER, IL,
Parameters: phase shifter length.
Interoperability with Cadence Virtuoso:
- Circuit design flows using INTERCONNECT model: Yes.
- Circuit design flow using photonic Verilog-A model: No.
Modeling Data
The source data template for a statistically enabled balanced 2x2 Mach-Zehnder modulator 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 statistically enabled balanced 2x2 Mach-Zehnder modulator template can be used to create an advanced compact model for a custom statistically enabled balanced 2x2 Mach-Zehnder modulator. 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 statistically enabled balanced 2x2 Mach-Zehnder modulator model is described below.
general
"general" is a struct with 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 following fields:
Field | Type | Description |
---|---|---|
opt_1 |
struct with fields described in table below | Port definition corresponding to the first and second input optical ports |
opt_2 |
||
opt_3 |
Port definition corresponding to the first and second output optical ports | |
opt_4 |
||
ele_an_top |
Port definition corresponding to the electrical cathode and anode of the "top-arm" | |
ele_cat_top |
||
ele_an_bot |
Port definition corresponding to the electrical cathode and anode of the "bottom-arm" | |
ele_cat_bot |
||
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 |
||
floating_port_X (optional) |
Floating ports defined as floating_port_X with X being an integer, are user-defined electrical ports which are not connected to the internal model but are added solely for consistency with the layout. |
Each struct above consists of 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 in which the port is listed in a netlist. |
parameters
"parameters" is a struct with following fields:
Field | Type | Description |
---|---|---|
wg_length
|
struct with the fields described in the table below |
The length of the electrical phase shifter. |
imbalance_length
|
The imbalance length of the MZM. Note: This parameter should be set to 0 for a balanced MZM. |
Each struct above consists of 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. |
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 following fields:
Field | Type | Description |
---|---|---|
use_travelling_wave_electrode |
boolean |
Enable/disable the use of the traveling wave electrode model for the electrical phase shifters. If set to false then the lumped model is used. |
longer_arm |
number |
Denotes 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 fields described in waveguide_data table |
Data required for modeling the waveguide sections. |
electrical_tuner_data
|
struct with fields described in electrical_tuner_data table |
Data required for modeling the electrical tuner. |
thermal_tuner_data
|
struct with fields described in thermal_tuner_data table |
Data required for modeling the thermal tuner. |
elec_eq_ckt_data
|
struct with fields described in elec_eq_ckt_data |
Data required for modeling the electrical equivalent circuit for accurate electro-optic simulations. For more information on the electrical equivalent circuit, see ring_modulator - CML Compiler Model. |
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 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 required field of:
Note:
|
electrical_tuner_data
Note: For a Mach-Zehnder without electrical tuner, this struct should not be provided.
Field | Type | Description |
---|---|---|
bandwidth_data |
struct |
The 3-dB cutoff frequency (Hz) of the electrical modulator as a function of bias voltage (V). The required fields are:
|
thermal_tuner_data
Note: For a Mach-Zehnder 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. |
elec_eq_ckt_data
In order to model the electrical equivalent circuit for the electrical tuner, either a travelling wave model or a lumped model may be used. The model type used is determined by the setting the "use_travelling_wave_electrode" flag.
Lumped Model
This data will only be used if the travelling wave electrode is disabled, which is done by setting the use_travelling_wave_electrode setting to false. The data within this section is used to construct an electrical equivalent circuit which captures the bandwidth of the electrical phase shifters. For more information on this equivalent circuit, see Electrical Equivalent Circuit in photonic model page.
Field | Type | Description |
---|---|---|
Cj |
struct |
Junction capacitance (F) of the electrical phase shifter as a function of bias voltage, and the required fields are:
Note: Junction capacitance must be provided for at least 2 bias points. |
Rj |
number |
Junction resistance (\(\Omega \cdot m\)) of the phase shifter |
Rp |
number |
Contact resistance (\(\Omega)\) of the metal pad |
Cp |
umber |
Parasitic capacitance (F) between metal pads |
Travelling Wave Electrode
This data will only be used if the travelling wave electrode is enabled, which is done by setting the use_travelling_wave_electrode setting to true.
Note: These travelling wave parameters will not be used for Verilog-A models.
Field | Type | Description |
---|---|---|
loss_RF | number | Microwave loss (dB/m) of the travelling wave electrode. |
f0_RF | number | Central RF frequency of operation (Hz) |
R0 | number | Characteristic resistance (\(\Omega\)) of the traveling wave electrode |
X0 | number | Characteristic reactance (\(\Omega\)) of the traveling wave electrode |
Rs | number | Source resistance (\(\Omega\)) for the traveling wave electrode model |
Xs | number | Source reactance (\(\Omega\)) for the traveling wave electrode model |
Rj | number | Junction resistance (\(\Omega \cdot m\)) of the electrical phase shifter |
n_RF | number | Microwave index of the traveling wave electrode |
Rl_top | number | Terminating resistance (\(\Omega\)) of the top electrode |
Xl_top | number | Terminating reactance (\(\Omega\)) of the top electrode |
Rl_bottom | number | Terminating resistance (\(\Omega\)) of the bottom electrode |
Xl_bottom | number | Terminating reactance (\(\Omega\)) of the bottom electrode |
Cj | matrix |
Junction capacitance (F) of the electrical phase shifter as a function of bias voltage, and the required fields are:
|
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 fields described in 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_transition_right
|
Mode properties for modeling the right and left passive to electrically active transition waveguide sections |
|
waveguide_transition_left
|
||
waveguide_phase_shifter
|
Mode properties for modeling the electrical phase shifter waveguide section at 0 V bias |
|
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 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 fields below. This data is required for CML Compiler to run quality-assurance tests on the final model. It is 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 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: Tuning for 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:
|
Vpi_electrical
|
struct with the fields described in the table below |
Vpi (V) of the electrical phase shifter on each arm (as explained in the Vpi Data Visualization in photonic model page) for voltage range described by "ref1" and "ref2" in the struct. Note: Tuning for this FOM will be enabled internally to enable statistical variations if Vpi_electrical is a statistical parameter. |
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: Tuning for 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 ratios (dB) of the MZM (as explained in the Spectrum Data Visualization in photonic model page) at the voltages given by "ref1" and "ref2" in the struct. Note:
|
S13 |
struct with fields described in table below
|
Transmission (dB) from optical port 1 (1st input) to optical port 3 (1st output) at zero bias. Note:
|
S14 |
Transmission (dB) from optical port 1 (1st input) to optical port 4 (2nd output) at zero bias. Note: This parameter is only applicable for a balanced MZM. |
Each struct above consists of following fields:
Field | Type | Description |
---|---|---|
value |
number |
The nominal value for the FOM in SI unit. |
tuning |
boolean |
A flag to enable or disable FOM tuning. |
ref1 (if applicable) |
number |
Point(s) at which the nominal FOM were 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 following fields:
Field | Type | Description |
---|---|---|
parameters |
struct with 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. |
BW_bias
|
number |
Bias for electrical bandwidth test. Note: This should only provided for a model with electrical tuner. |
thermal_BW_bias
|
number |
The bias voltage (positive) of the thermal switch for thermal bandwidth test. Note: This should only 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 statistically enabled balanced 2x2 Mach-Zehnder modulator model including the basic required data described in the previous section. The descriptions of all the fields in the statistically enabled balanced 2x2 Mach-Zehnder modulator source data template are described below.
general
"general" is a struct with following fields:
[[snippet||11549514081811]]
ports
"ports" is a struct with following fields:
[[snippet||11912177536915]]
Each struct above consists of following fields:
[[snippet||11549759363603]]
parameters
"parameters" is a struct with following fields:
[[snippet||11763697740051]]
Each struct above consists of following fields:
[[snippet||11720299494931]]
model_data
"model_data" is a struct with following fields:
[[snippet||11912971380883]]
Structs listing mode properties for different waveguide sections consist of following fields:
[[snippet||11653970537235]]
For statistical models only, following field is also required:
Field | Type | Description |
---|---|---|
perturb_top_arm_only (Statistical models only) |
boolean |
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. |
FOMs
"FOMs" is a struct with fields below. This data is required for CML Compiler to run quality-assurance tests on the final model. It is 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 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||11876043378195]]
S13 |
struct with fields described in table below
|
Transmission (dB) from optical port 1 (1st input) to optical port 3 (1st output) at zero bias. Note:
|
S14 |
Transmission (dB) from optical port 1 (1st input) to optical port 4 (2nd output) at zero bias. Note: This parameter is only applicable for a balanced MZM. |
Each struct above consists of following fields:
[[snippet||11653867902995]]
QA
"QA" is a struct with following fields:
[[snippet||11913542834835]]
statistical
"statistical" is a struct with fields below. This struct is optional and is only required for statistical compact models.
Note: To allow CML Compiler to build statistically enabled models, the statistical_parameter_status has to be defined in the XML file. For more information, see Statistical CMLs.
Field | Type | Description |
---|---|---|
parameters |
struct |
Each field of this struct defines one statistical parameter for the model. These fields should have names following "parameter_X" where X is an integer and follow the structure described in statistical parameters table. Note: This data is required for CML Compiler to enable statistical modeling. |
QA |
struct with fields described in QA table |
Defining QA settings for statistical QA. |
statistical parameters
[[snippet||11647965606547]]
slope_neff |
number |
The sensitivity of the effective index of the active waveguide with respect to the X-th statistical parameter defined as d_neff / d_parameter_X. Note: Only provide this field if the statistical parameter affects the effective index (see mzm_2x2_stat_fom_te_c). |
slope_ng |
number |
The sensitivity of the group index of the active waveguide with respect to the X-th statistical parameter defined as d_ng / d_parameter_X. Note: Only provide this field if the statistical parameter affects the group index (see mzm_2x2_stat_fom_te_c). |
slope_Vpi_electrical |
number |
The sensitivity of the electrical Vpi (V) of the Mach-Zehnder modulator with respect to the X-th statistical parameter defined as d_Vpi_electrical / d_parameter_X. Note: Only provide this field if the statistical parameter affects the electrical Vpi (see mzm_2x2_stat_fom_te_c). |
slope_notch |
number |
The sensitivity of the notch (resonant) wavelength (m) of the mach-zehnder modulator with respect to the X-th statistical parameter defined as d_notch / d_parameter_X. Note: Only provide this field if the statistical parameter affects the notch wavelength (see mzm_2x2_stat_fom_te_c). |
slope_IL |
number |
The sensitivity of the insertion loss (dB) of the mach-zehnder modulator with respect to the X-th statistical parameter defined as d_IL / d_parameter_X. Note:
|
slope_FSR |
number |
The sensitivity of the free spectral range (m) of the mach-zehnder modulator with respect to the X-th statistical parameter defined as d_FSR / d_parameter_X. Note:
|
slope_ER |
number |
The sensitivity of the extinction ratio (dB) of the mach-zehnder modulator with respect to the X-th statistical parameter defined as d_ER / d_parameter_X. Note:
|
slope_electrical_bandwidth
|
number |
The sensitivity of the electrical bandwidth (Hz) of the mach-zehnder modulator with respect to the X-th statistical parameter defined as d_ER / d_parameter_X. Note:
|
statistical QA
[[snippet||11914319040403]]