A parameterized double-bus ring modulator model. This template can be modified to create a compact model for a single-bus or double-bus, ring modulator or ring resonator PCell.
Note: For legacy data format (2022 R2.4 and older) please visit following link:
Ring Modulator Parameterized – Lumfoundry Template (Legacy)
Template: rm_db_pcell_strip_te_c
Photonic Model: ring_modulator_parameterized
Quality Assurance Test: ring_modulator_parameterized QA
Parameters: radius, coupling_length (Lc), coupling_gap (through and drop), junction_fill_factor , high_loss_waveguide_fill_factor, and thermal_fill_factor.
Interoperability with Cadence Virtuoso:
- Circuit design flows using INTERCONNECT model: Yes.
- Circuit design flow using photonic Verilog-A model: Yes.
Application Gallery Example: Ring Modulator
Modeling Data
The source data template for a parameterized double-bus ring 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 parameterized double-bus ring modulator template can be used to create an advanced compact model for a custom parameterized double-bus ring 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 parameterized double-bus ring modulator 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 in-through optical ports |
opt_2 |
||
opt_3 (optional) |
Port definition corresponding to the add-drop optical ports | |
opt_4 (optional) |
||
ele_an |
port definition corresponding to the anode and cathode for the electrical tuner | |
ele_cat |
||
th_neg |
Port definition corresponding to the positive and negative nodes of the thermal tuner |
|
th_pos |
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 in which the port is listed in a netlist. |
parameters
"parameters" is a struct with the following fields:
Field | Type | Description |
---|---|---|
radius
|
struct with the fields described in the table below |
The radius (m) of the ring modulator |
coupling_gap_drop
|
The drop port coupling gap (m) of the ring modulator. Note: This parameter is required only for double-bus rings. |
|
coupling_gap_through
|
The through port coupling gap (m) of the ring modulator |
|
coupling_length
|
The coupling length (m) of the ring modulator |
|
junction_fill_factor
|
Fraction of the ring (m/m) which contains electrical phase shifter waveguide given by \(f = L_{eo}/2\pi r\), where \(L_{eo}\) is the total length of the electro-optic phase shifter within the ring. Note: This parameter is not required for ring resonators/filters. |
|
high_loss_waveguide_fill_factor
|
Fraction of the ring (m/m) which contains doped waveguide given by \(f = L_{d}/2\pi r\), where \(L_{d}\) is the total length of the doped region within the ring. Note: This parameter is not required for ring resonators/filters. |
|
thermal_fill_factor
|
Fraction of the ring (m/m) for which contains thermal phase shifter waveguide given by \(f = L_{to}/2\pi r\), where \(L_{to}\) is the total length of the thermo-optic phase shifter within the ring. |
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 visibility. |
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:
Note: All parameterized data should be measured for the same parameter grid.
Field | Type | Description |
---|---|---|
electrical_tuner_data
|
struct with the fields described in electrical_tuner_data table |
Data required for modeling the electrical 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 required field of:
Note:
|
electrical_tuner_data
Note: For a ring without electrical tuner, this struct should not be provided.
Field | Type | Description |
---|---|---|
bandwidth_data |
struct |
3-dB cutoff frequency (Hz) of the electrical modulator for different radius and coupling length values as a function of bias voltage (V). The required fields are:
|
FOMs
"FOMs" is a struct with the fields below. The 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 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 provided FOM values. For more information, see Tuning Active Compact Models.
Note: All parameterized data should be measured for the same parameter grid.
Variable | Type | Description |
---|---|---|
IL |
struct with the fields described in the table below |
The overall insertion loss (dB) of the ring modulator at through port at resonance, parameterized for radius, coupling length and coupling gaps at drop and through ports. The data provided for this FOM in "data" field should consist of the following:
Note:
|
IL_drop |
struct with the fields described in the table below |
The overall insertion loss (dB) of the ring modulator at drop port at resonance parameterized for radius, coupling length and coupling gap at drop and through ports. The data provided for this FOM in "data" field should consist of the following fields:
Note:
|
FSR |
struct with the fields described in the table below |
The free spectral range (m) of the ring modulator parameterized for radius, coupling length. The data provided for this FOM in "data" field should consist of following:
|
mod_eff
|
struct with the fields described in the table below |
Overall electro-optic modulation efficiency (m/V) of the ring modulator within the voltage range described by "ref1" and "ref2" in the struct. This FOM is parameterized for radius and coupling length. The data provided for this FOM in "data" field should consist of the following fields:
|
mod_eff_thermal
|
struct with the fields described in the table below |
Overall thermo-optic modulation efficiency (m/W) of the ring modulator for input power range described by "ref1" and "ref2" in the struct (which should be within the range of I*V values provided). This FOM is parameterized for radius and coupling length. The data provided for this FOM in "data" field should consist of the following fields:
Note: For a ring without thermal tuner, this parameter should not be provided. |
Q
|
struct with the fields described in the table below |
The quality factor (m/m) of the ring modulator near resonance parameterized for radius, coupling length and coupling gap at drop and through ports. The data provided for this FOM in "data" field should consist of the following fields:
Note: Tuned for IL, IL_drop, ER and Q are tied together. If any of these FOMs are enabled for tuning, the model automatically tunes for the rest. |
ER
|
struct with the fields described in the table below |
The extinction ratio (dB) at the through port of the ring modulator at resonance parameterized for radius, coupling length and coupling gap at drop and through ports. The data provided for this FOM in "data" field should consist of the following fields:
Note:
|
resonant_wavelength
|
struct with the fields described in the table below |
The resonant wavelength (m) of the ring modulator at a temperature of 300K with no applied electrical or thermal phase shift. This FOM is parameterized for radius and coupling length. The data provided for this FOM in "data" field should consist of the following fields:
|
Each struct above consists of the 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 |
data |
matrix |
Parameterized data used to find the corresponding value for each FOM at each parameter point in the parameter grid. |
QA
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 |
---|---|---|
radius
|
matrix |
Radius values for all tests provided as a 1xN matrix where N is the number of values provided. |
coupling_length
|
matrix |
Coupling length values for all tests provided as a 1xN matrix where N is the number of values provided. |
coupling_gap_through
|
matrix |
Coupling gap values of bus 1 (in and through ports) for all tests provided as a 1xN matrix where N is the number of values provided. |
coupling_gap_drop
|
matrix |
Coupling gap values of bus 2 (drop and add ports) for all tests provided as a 1xN matrix where N is the number of values provided. Note: For single-bus rings, this parameter is not required. |
BW_bias
|
number |
Bias for electrical bandwidth test. Note: For a ring without electrical modulation, this parameter should not be provided. |
thermal_BW_bias | number |
Bias for thermal bandwidth test. Used for Verilog-A QA only. Note: For a ring without thermal tuner, this parameter should not be provided. |
imp_amplitude |
number |
Amplitude of the impulse in the electrical bandwidth test. Note: For a ring without electrical modulation, this parameter should not be provided. |
Complete data requirement (for advanced users)
The complete data section provide a complete reference of data supported by the parameterized double-bus ring modulator model including the basic required data described in the previous section. The descriptions of all the fields in the parameterized double-bus ring modulator source data template are described below.
general
"general" is a struct with the following fields:
[[snippet||11549514081811]]
time_domain_req_note
|
boolean |
A flag indicating whether to add a note in the compact model about the minimum sampling rate required for accurate time domain simulation or not. |
ports
"ports" is a struct with the following fields:
[[snippet||11643827831699]]
Each struct above consists of the following fields:
[[snippet||11549759363603]]
parameters
"parameters" is a struct with the following fields:
[[snippet||11719592726163]]
Each struct above consists of the following fields:
[[snippet||11720299494931]]
model_data
"model_data" is a struct with the following fields:
Note: All parameterized data should be measured for the same parameter grid.
[[snippet||11720694012435]]
Structs listing mode properties for different waveguide sections consist of the following fields:
[[snippet||11653970537235]]
FOMs
"FOMs" is a struct with the fields below. The 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 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 provided FOM values. For more information, see Tuning Active Compact Models.
Note: All parameterized data should be measured for the same parameter grid.
[[snippet||11722854711827]]
Each struct above consists of the following fields:
[[snippet||11653867902995]]
data |
matrix |
Parameterized data used to find the corresponding value for each FOM at each parameter point in the parameter grid. |
QA
[[snippet||11724235486611]]