A statistically enabled 8x8 fiber array model. The 8 input ports model the input to the fiber and the 8 output ports model the output at the waveguides on the chip.
Template: fiber_array_8x8_stat_c
Photonic Model: fiber_array
Quality Assurance Test: fiber_array_QA
Parameters: decenter_x, decenter_y, tilt_theta, tilt_phi
Statistical parameters: delta_x, delta_y, delta_theta, delta_phi.
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 8x8 fiber array 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 8x8 fiber array template can be used to create an advanced compact model for a custom statistically enabled 8x8 fiber array. 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 8x8 fiber array model is described below.
general
"general" is a struct with the following fields:
[[snippet||11549514081811]]
ports
"ports" is a struct with the following fields:
Field | Type | Description |
---|---|---|
opt_X | struct with the fields described in the table below | Port definition corresponding to the X-th optical port. |
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
The "parameters" struct is what provides the fiber_array model with it's flexibility. It enables the creation of multi-fiber arrays with any number of design parameters. The parameters are shared by all channels (input-output port combinations). "parameters" is a struct with the following fields:
Field | Type | Description |
---|---|---|
parameter_X | struct with the fields described in the table below | parameter_X with X being an integer is a design parameter for the fiber to waveguide coupling system that the user can arbitrarily define. |
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 the following fields:
Field | Type | Description |
---|---|---|
parameter_X | matrix |
parameter_X with X being an integer is a matrix containing parameter points corresponding to all the parameters defined in "parameters" section. alignment_loss and corr_matrix should be provided as a function of these parameter points. |
alignment_loss | matrix |
The alignment loss (dB) of the fiber array as a P1x..Pn matrix where P1 to Pn are the number of points provided for parameter_1 to parameter_n. The same data is used for all the channels (input-output port combinations). |
corr_matrix | matrix |
Correlation matrix for the input (fiber) ports as a PxNxN matrix where P is the number of parameters, and N is the number of channels (input/output ports). |
QA
"QA" is a struct with the follow fields:
Field | Type | Description |
---|---|---|
wavelength | number |
Source wavelength for setting up all the QAs in units of meter. |
Complete data requirement (for advanced users)
The complete data section provide a complete reference of data supported by the statistically enabled 8x8 fiber array model including the basic required data described in the previous section. The descriptions of all the fields in the statistically enabled 8x8 fiber array 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:
Field | Type | Description |
---|---|---|
opt_X | struct with the fields described in the table below | Port definition corresponding to the X-th optical port. |
Each struct above consists of the following fields:
[[snippet||11549759363603]]
parameters
The "parameters" struct is what provides the fiber_array model with it's flexibility. It enables the creation of multi-fiber arrays with any number of design parameters. The parameters are shared by all channels (input-output port combinations). "parameters" is a struct with the following fields:
Field | Type | Description |
---|---|---|
parameter_X | struct with the fields described in the table below | parameter_X with X being an integer is a design parameter for the fiber to waveguide coupling system that the user can arbitrarily define. |
Each struct above consists of the following fields:
[[snippet||11720299494931]]
model_data
"model_data" is a struct with the the following fields:
Field | Type | Description |
---|---|---|
photonic_model | string |
The name of the photonic model used for this template. Please visit here for a list of all available photonic models. |
parameter_X | matrix |
parameter_X with X being an integer is a matrix containing parameter points corresponding to all the parameters defined in "parameters" section. alignment_loss and corr_matrix should be provided as a function of these parameter points. |
alignment_loss | matrix |
The alignment loss (dB) of the fiber array as a P1x..Pn matrix where P1 to Pn are the number of points provided for parameter_1 to parameter_n. The same data is used for all the channels (input-output port combinations). |
corr_matrix | matrix |
Correlation matrix for the input (fiber) ports as a PxNxN matrix where P is the number of parameters, and N is the number of channels (input/output ports). |
QA
"QA" is a struct with the follow fields:
Field | Type | Description |
---|---|---|
wavelength | number |
Source wavelength for setting up all the QAs in units of meter. |
single_test | struct with the fields defined in single_test table |
Settings to run the QA test for a parameter preset. |
random_test | struct with the fields described in random_test table |
Settings to run the QA test for a randomized parameter set. |
relative_tolerances | struct |
The relative tolerances for QA tests which verify the accuracy of different figures of merit defined as a struct. This struct has the following fields corresponding to the FOMs of the element:
|
single_test
Field | Type | Description |
---|---|---|
enable_single_test | boolean | A flag which controls whether a QA test is run for a parameter preset. |
parameters | struct |
The preset parameters to run the single QA test for if enable_single_test is set to true. This struct contains the following parameter:
|
random_test
Field | Type | Description |
---|---|---|
Nr | integer | The number of randomized paraemeter sets to test. |
rand_seed | integer | Define the seed for generating randomized parameter sets |
parameters | struct |
The range of parameters to run multiple random QA tests. This struct contains the following parameter:
|
statistical
"statistical" is a struct with the 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 library master 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 follows the structure described in statistical parameters table. Note: This model assumes a 1:1 mapping between the statistical and the ‘nominal’ parameters defined in the parameters section. The statistical parameters should follow the same order as the ‘nominal’ parameters. |
QA | struct | Defining QA settings for statistical QA. The struct has fields described in the statistical QA table below. |
statistical parameters table
Field | Type | Description |
---|---|---|
name | string |
Name of the statistical parameter |
mean | number | Mean value of the statistical parameter |
corners | matrix |
Corner values for the statistical parameter provided as an Cx1 matrix where C is the number of process corners defined in the library master file. Note: The values for the process corners should follow the same order as in the library master file. |
LOCAL | struct |
A struct describing the LOCAL level variation of the X-th statistical parameter with the following fields:
Note: It is optional to provide a CORRGROUP for statistical parameters. |
GLOBAL | struct |
A struct containing the GLOBAL level variation of the X-th statistical parameter with the following fields:
Note: It is optional to provide a GLOBAL level variation for statistical parameters. |
normalization_factor | number |
The normalization factor between the value of the statistical parameter and the corresponding parameter defined in "parameters" section. |
statistical QA table
Field | Type | Description |
---|---|---|
enable_qa | boolean | Enable or disable running the statistical QA (Monte Carlo analysis). |
reference_data_available | boolean | When true, statistical QA results will be compared against reference data. When false, reference data are generated (only needed for the first run or after a model update). |
N_trials | number | Number of trials in Monte Carlo sweep. |
absolute_tolerance | number |
Absolute_tolerances for QA tests which verify the statistical variations of the FOMs. If the simulated values differ from the values provided in the data file by more than this tolerance, the QA tests will fail. This struct accepts absolute tolerance values as numbers for the following FOMs:
|