CML Compiler has the capability of generating statistically enabled compact models using certain Photonic Models.
For a list of statistically enabled photonic models, please see Statistical models available in CML Compiler.
Data for Statistical Compact Models
The process to generate statistical compact models is the same as generating "nominal" compact models, except for the fact that the user will have to provide some additional data. This data should be provided in the “statistical” section in the element source data file. This section will contain both statistical parameters information in a section named “parameters” and also statistical QA settings in a section named “QA”.
parameters
In addition to the nominal model parameters, the CML Compiler user has to pick an arbitrary number of statistical parameters for each element, that can either be physical parameters (e.g. width or height variations of the waveguides) or figures of merit (e.g. the shift in resonant wavelength or insertion loss of a ring modulator) or a combination of both. These parameters are defined in a “parameters” struct in the statistical section in the element source data file. For each statistical parameter, the user has to provide the distribution ('normal' and 'pearson4' distribution is supported) at the LOCAL level (within wafer or within lot variation) and optionally at the GLOBAL level (wafer to wafer or lot to lot variation) as well as the sensitivity of different model parameters to that statistical parameters (e.g. how the change is width affects the effective or group index of the waveguide).
To protect foundry’s sensitive data, the statistical information can be provided in a normalized format, with normalization factor typically defined as:
- normalization factor= measured sigma
For a normal distribution we will have:
- sigma = measured sigma/normalization factor
- mean = measured mean/normalization factor
- slope = slope * normalization factor
And for a pearson4 distribution we will have:
- sigma = measured sigma/normalization factor
- mean = measured mean/normalization factor
- beta2 = measured beta2 (normalization does not apply)
- gamma1 = measured gamma1 (normalization does not apply)
- slope = slope * normalization factor
In order to use the same GLOBAL level variation for statistical parameters of multiple models, the user can define a GLOBALGROUP in the library master file (see below) and point to the corresponding GLOBALGROUP within the model data file.
Follow the links of the statistical lumfoundry templates listed above to see some examples of different methods of providing statistical data.
This information about the statistical parameters and their distribution gets added to the element source data file.
[[NOTE]]: In a Monte-Carlo simulation, the Monte-Carlo sweep object in INTERCONNECT uses the LOCAL level variation data to randomly vary the statistical parameters for each element and the GLOBAL level variation data (if available) to simultaneously vary the statistical parameters for all elements using the same model. |
QA
For all statistically enabled photonic models, the element source data file should have a section named “QA” in the statistical section. This section contains the flag to enable/disable the running of the statistical QA scripts as well as the parameters to set up the MC sweeps in the QA scripts.
Library Master File
The library master file has a "statistical_data" section where the user needs to provide the following data:
Statistical Distribution Data
The data requirement for a statistical parameter depends on the distribution type.
Distribution type | Parameters |
normal |
This is a Gaussian distribution. For more information, please see: normpdf - Script Command. sigma: Standard deviation |
pearson4 |
This is a Pearson IV distribution. For more information, please see: pearson4pdf - Script Command. sigma: Standard deviation gamma1: Skewness beta2: Kurtosis |
Statistical Parameter Status
The statistical parameters of an element can be either "open" or "hidden" or "protected". This is a global setting that must be set in the library master file. If the library master file does not contain a choice for the statistical parameter status then the CML Compiler will not build statistical compact elements and will generate an error message.
Statistical Parameter Status | Behavior |
open |
The statistical parameters will be visible to the end-user in the compact model. End users will be able to see the distribution of the statistical parameters as well as the correlation matrix in a Monte-Carlo sweep. |
hidden | The statistical parameters will be hidden from the end-user in the compact model.
End users will be able to see the distribution of the statistical parameters as well as the correlation matrix in a Monte-Carlo sweep. |
protected |
The statistical parameters will be hidden from the end-user in the compact model. End users will not be able to see the distribution of the statistical parameters or the correlation matrix in a Monte-Carlo sweep. |
Corner Data (optional)
To enable process-corner modeling, users can provide corner values for each statistical parameter as part of the statistical data. The library master file must also be updated to list the names of all the process corners. The order of process corners in the library master file must match the order in which the data is provided for each statistical parameter.
GLOBALGROUPs (optional)
Users can define GLOBAL level variations of different statistical parameters by defining GLOBALGROUPs in the library master file within the "GLOBALGROUP_list" section. These GLOBALGROUPs can be shared between different models to simultaneously vary the GLOBAL level variations in these models.
In the Lumfoundry Template library the "lumfoundry_template_statistical.json" library master file contains information about three GLOBALGROUPs that are used by the Waveguide straight (Statistical), Ring Modulator (Statistical), and the Mach-Zehnder Modulator (Statistical) template.
CORRGROUPs (optional)
Users can introduce spatial correlation to LOCAL level variations of different statistical parameters by defining CORRGROUPs in the library master file within the "CORRGROUP_list" section. These CORRGROUPs can be shared between different model parameters for generating correlated LOCAL level variations based on elements' layout positions.
In the Lumfoundry Template library the "lumfoundry_template_statistical.json" library master file contains information about three CORRGROUPs that are used by the Waveguide straight (Statistical), Ring Modulator (Statistical), and the Mach-Zehnder Modulator (Statistical) templates. For more information on how to set up a Monte Carlo analysis with spatially correlated model parameters, see Monte Carlo analysis with spatial correlations.
Using a Statistically Enabled Compact Model Library
To facilitate statistical simulations using a statistical CML, the CML Compiler generates a .lib (library) file that contains the necessary statistical data for all models. By default, the .lib file contains a 'nominal' and a 'statistical' section for all statistically enabled CMLs. If corner data has been provided for some models and the corner list has been defined in the library master file, then the .lib file will contain individual sections for each corner listing the corresponding values for the statistical parameters of each model at each corner.
The .lib file gets bundled as part of the published compact models library and is encrypted so the end-user of the CML cannot see any sensitive information. The CML Compiler user can find an unencrypted copy of the same .lib file in the artifacts folder for verification.