Introduction
A compact model library is composed of a variety of different passive and active elements. For each library element, data is required to calibrate the photonic model to the foundry process. As such, the input to CML Compiler consists of an ensemble of folders called the library source directory containing element source data, as well as a library master file that contains library-wide data like the list of elements and library name.
Element vs Photonic Model
To understand the data requirements of CML Compiler, it is useful to make the distinction between an "element" and a "photonic model".
An element is the component that appears in the CML. For example, you may have many different types of waveguide elements (e.g. strip, ridge, silicon, silicon nitride, straight, arc, and combinations of these). Each element has a unique name and unique model data. However, the data requirement for each is the same, as they all implement the same photonic model.
A photonic model is the underlying model that dictates the element's circuit response. It requires model data to calibrate the response. For example, a waveguide photonic model captures the optical signal transmission amplitude and phase as a function of wavelength, waveguide length, and waveguide element data like effective index, group index, dispersion, and loss.
How do I obtain source data for each of my library elements?
CML Compiler does not place a requirement on how your data is obtained, so long as it meets the formatting requirements. That being said, compact models are typically most useful to circuit designers when they are calibrated to the foundry process. This means it is best to provide source data based on experimental measurements.
However, measurement can present many challenges and it is not always possible or practical to extract all of the data required for an accurate model. In cases where measured data isn't available, a good option is to run component-level simulations to extract the results needed. For example, our optical solvers like FDTD and MODE, and multi-physics solvers like CHARGE and HEAT are commonly used.