Manufacturing variations of photonic components can be statistically measured at various physical levels (intra-die, die-to-die, wafer-to-wafer, and batch-to-batch), and depending on manufacturing process spatial correlation of non-uniformity can be in different length scale.

INTERCONNECT allows users to specify **GLOBAL **level (i.e., global base) and **LOCAL **level (i.e., per- instance base) variations for statistical parameters, which is consistent with conventions of EDA SPICE models. Besides, spatial correlation can be enabled at the **LOCAL **level to introduce instance-to-instance correlations based on their physical locations in a layout, where the correlation coefficient for components’ parameter is determined by a correlation length \(L\) and components’ origin-to-origin physical distance \(d\):

$$coeff=e^{-2(d/L)^2}$$

This page describes how to define spatial correlations for Monte Carlo analysis in INTERCONNECT and gives some examples of how to define correlations in different use cases. For more information on how to set up a Monte Carlo analysis, see Monte Carlo analysis utility. This page also give an introduction to the spatial correlation visualizer.

## Defining spatial correlations in a library file

Spatial correlations between model parameters can be pre-defined in the .lib file with the use of correlation groups. Correlation groups are created using the CORRGROUP command in the .lib file, along with a name and correlation length for the group. The parameters of models can be added to a correlation group by tagging them with the correlation group name (see the example below). Note that parameters can only be placed in a single correlation group, and all of the parameters in a correlation group must be either in the same GLOBAL group or without GLOBAL group definitions.

The values of these tagged parameters will be correlated in a Monte Carlo sweep based on the correlation length of the group and the distance between the elements in the INTERCONNECT testbench. The positions of the elements are specified using their “x coordinate” and “y coordinate” properties (note that these are different than the element’s “x position” and “y position” properties, which specify where the elements are placed in the Schematic Editor).

Below is an example of a .lib file with two spatial correlation groups, *corr_L_delta_width* and *corr_L_delta_height*. In this file, the *delta_width* and *delta_height* parameters of the elements with the *WG* and *MMI* models will be correlated, with a correlation length of 2 mm and 3 mm, respectively.

.LIB statistical

.CORRGROUP corr_L_delta_width=2e-3

.CORRGROUP corr_L_delta_height=3e-3

.MODEL WG

+ delta_height=0 LOCAL=(normal,1) CORRGROUP=corr_L_delta_height

+ delta_width=0 LOCAL=(normal,1) CORRGROUP=corr_L_delta_width

.MODEL MMI

+ delta_height=0 LOCAL=(normal,1) CORRGROUP=corr_L_delta_height

+ delta_width=0 LOCAL=(normal,1) CORRGROUP=corr_L_delta_width

.ENDL

If two waveguide elements with the *WG* model and one MMI element with the *MMI* model are placed in an INTERCONNECT simulation and this library is imported into a Monte Carlo sweep with spatial correlations enabled, the correlation groups will appear under the “Correlations” tab of the Monte Carlo sweep object:

## Examples

For accurate modeling, users need to map their measured statistical data to **GLOBAL** and **LOCAL **variations for each statistical model parameter, and accordingly define the correlation length(s) for spatially correlated statistical parameters. Here, we will discuss a few typical use cases for spatial correlation, to guide users through this feature.

**Case 1: Variations at the intra-die level are not uniform, and have spatial correlation**

In this case, statistical data for intra-die variations determine **LOCAL **distribution for each statistical parameter. **GLOBAL **group and distribution can be optionally defined based on the data for die-to-die variations (or combining with wafer-to-wafer, and batch-to-batch variations if they are available). Spatial correlation group(s) should be defined for correlated statistical parameters, with spatial correlation length(s) measured at the intra-die level.

In the following example .LIB file, *delta_width* and *delta_height* are the two statistical parameters for *model_1*, *model_2*, and *model_3*, and their corresponding **LOCAL **distributions are characterized by the measured intra-die variations. *width_corr_length* and *height_corr_length* are the two spatial correlation groups defined for *delta_width* and *delta_height*, respectively, with correlation lengths of 1 mm. For two circuit components that are 200 um apart, their statistical parameters *delta_width* are correlated by a coefficient of 0.923, according to the equation in above.

…

.LIB statistical

.GLOBALGROUP GLOBAL_width=(normal,0.1)

.GLOBALGROUP GLOBAL_height=(normal,0.1)

.CORRGROUP width_corr_length=1e-3

.CORRGROUP height_corr_length=1e-3

.MODEL model_1

+ delta_width=0 LOCAL=(normal,0.5) CORRGROUP=width_corr_length GLOBALGROUP=GLOBAL_width

+ delta_height=0 LOCAL=(normal,0.2) CORRGROUP=height_corr_length GLOBALGROUP=GLOBAL_height

+ library="example_library"

.MODEL model_2

+ delta_width=0 LOCAL=(normal,0.5) CORRGROUP=width_corr_length GLOBALGROUP=GLOBAL_width

+ delta_height=0 LOCAL=(normal,0.2) CORRGROUP=height_corr_length GLOBALGROUP=GLOBAL_height

+ library="example_library"

.MODEL model_3

+ delta_width=0 LOCAL=(normal,0.5) CORRGROUP=width_corr_length GLOBALGROUP=GLOBAL_width

+ delta_height=0 LOCAL=(normal,0.2) CORRGROUP=height_corr_length GLOBALGROUP=GLOBAL_height

+ library="example_library "

.ENDL

**Case 2: Intra-die variations are highly uniform**

In this case, statistical data for intra-die variations determine **LOCAL **distribution for each statistical parameter. **GLOBAL **group and distribution can be optionally defined based on the data for die-to-die, wafer-to-wafer, and batch-to-batch variations, if available. Spatial correlation group(s) should be defined for components’ statistical parameters, with spatial correlation length(s) being much greater that the die size, which applies strong correlations to circuit components within the die.

For instance, in the following example .LIB file, spatial correlation lengths for groups *width_corr_length* and *height_corr_length* are set to 2 cm. For two circuit components that are 200 um apart in the same die, their statistical parameter delta_width are correlated by a coefficient of 0.9998.

…

.LIB statistical

.GLOBALGROUP GLOBAL_width=(normal,0.1)

.GLOBALGROUP GLOBAL_height=(normal,0.15)

.CORRGROUP width_corr_length=0.02

.CORRGROUP height_corr_length=0.02

.MODEL model_1

+ delta_width=0 LOCAL=(normal,0.5) CORRGROUP=width_corr_length GLOBALGROUP=GLOBAL_width

+ delta_height=0 LOCAL=(normal,0.2) CORRGROUP=height_corr_length GLOBALGROUP=GLOBAL_height

+ library="example_library"

.MODEL model_2

+ delta_width=0 LOCAL=(normal,0.5) CORRGROUP=width_corr_length GLOBALGROUP=GLOBAL_width

+ delta_height=0 LOCAL=(normal,0.2) CORRGROUP=height_corr_length GLOBALGROUP=GLOBAL_height

+ library="example_library"

.MODEL model_3

+ delta_width=0 LOCAL=(normal,0.5) CORRGROUP=width_corr_length GLOBALGROUP=GLOBAL_width

+ delta_height=0 LOCAL=(normal,0.2) CORRGROUP=height_corr_length GLOBALGROUP=GLOBAL_height

+ library="example_library "

.ENDL

**Case 3: Investigate the yield of circuits on specific region on the wafer, where die-to-die correlation is known to be strong (e.g., for wafer having island/donut shape non-uniformity, dies on the same wafer ring are correlated and circuits on those dies are more likely to match)**

In this case, both data for intra-die and die-to-die variations are corrected only at the specific wafer region under investigation. The data for intra-die variations determine **LOCAL **distribution for each statistical parameter, and the die-to-die variations defines **GLOBAL **group(s) and distribution(s). Spatial correlation group(s) should be defined for correlated statistical parameters, with spatial correlation length(s) measured at the die-to-die level. User can refer to the example .LIB file of case 2 for a reference.

**Case 4: Variations at the intra-die level are random, with no spatial correlation**

In this case, intra-die variations determine **LOCAL **distribution for each statistical parameter. **GLOBAL** group and distribution can be optionally defined based on the data for die-to-die, wafer-to-wafer, and batch-to-batch variations, if available. No spatial correlation group is defined in the .LIB file, as shown in the following example. In a Monte Carlo analysis, statistical parameters *delta_width* and *delta_height* vary independently.

…

.LIB statistical

.MODEL model_1

+ delta_width=0 LOCAL=(normal,0.5)

+ delta_height=0 LOCAL=(normal,0.2)

+ library="example_library"

.MODEL model_2

+ delta_width=0 LOCAL=(normal,0.5)

+ delta_height=0 LOCAL=(normal,0.2)

+ library="example_library"

.MODEL model_3

+ delta_width=0 LOCAL=(normal,0.5)

+ delta_height=0 LOCAL=(normal,0.2)

+ library="example_library "

.ENDL

## Spatial correlation visualizer

With the spatial correlation defined in the CML library file, after loading the library into INTERCONNECT Monte Carlo analysis window, users can use the "Preview" option to visualize the spatial correlation amongst the elements.

The example in above shows spatial correlations among elements "RM_1", "RM_2", and "WG_1", which are distributed at different location in a layout. Three spatial correlation groups are defined for the statistical parameters. Click on the "Preview" button under one of the correlation group will show the preview of the spatial correlations amongst elements' statistical parameters:

Elements' statistical parameters are represented by blue points in the preview plot. The blue points represent the relative physical location of elements (referring to the central element) and the spatial correlation length of the group is indicated at the bottom of the plot. Users can click on any element statistical parameter to use it as the reference (center) for other elements' statistical parameters. Users can hover over each blue point to visualize its spatial correlation coefficient with respect to the central parameter, and the spatial correlation coefficient for the central parameter to itself is always 1. The plot in above shows spatial correlations for group 'corr_delta_height', where parameter 'RM_1_delta_height' is selected as the center. The following is the same spatial correlation plot with parameter 'WG_1_delta_height' at the center and with correlations to 'WG_1_delta_height' and 'RM_1_delta_height' indicated in the plot:

### See also

Monte Carlo scripting commands