A parameterized photodetector model. In this template, the performance metrics of the device are dependent on its physical dimensions (width and length) as well as bias voltage, temperature and frequency (wavelength) of light.
Note: For legacy data format (2022 R2.4 and older) please visit following link:
Photodetector Pcell - Lumfoundry Template (Legacy)
Template: pd_pcell_c
Photonic Model: photodetector_pcell
Quality Assurance Test: photodetector_pcell QA
Parameters: width, length.
Interoperability with Cadence Virtuoso:
- Circuit design flows using INTERCONNECT model: Yes.
- Circuit design flow using photonic Verilog-A model: Yes.
Modeling Data
The source data template for a photodetector pcell element can divided into two sections.
- For new users (continue with following section: Basic data requirement section)
- Advanced users ( continue with section: Complete Data Requirement )
The photodetector pcell template can be used to create a very advanced compact model for a custom photodetector pcell . The template contains a lot of different modeling data to create an accurate model. However, not all these data need to be updated by the user. The fastest/simplest way to modify the template data and create a custom compact model would be to only update the values of the data listed in the 'basic data requirement section' below, while all rest of the data (which is illustrated in detail in subsequent sections) can be left at their default value.
Note: Advanced users please jump start with Complete Data Requirement (for advanced users) section.
Basic data requirement section (for new users)
The basic or minimum data required to build the photodetector pcell model is described below.
general
"general" is a struct with 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 that provides 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 following fields:
Field | Type | Description |
---|---|---|
opt_1 |
struct with fields described in table below | Port definition corresponding to the input optical port |
ele_an |
Port definition corresponding to the anode and cathode of the photodetector. |
|
ele_cat |
Each struct above consists of 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. |
dir | string | The directionality of the port, either "Input", "Output", or "Bidirectional" |
pos | string |
The side of the model which the port will be displayed on, either "Left", "Right", "Top", or "Bottom" |
order | number |
The order at which the port is listed in a netlist. |
parameters
"parameters" is a struct with following fields:
Field | Type | Description |
---|---|---|
temperature | struct with fields described in table below |
The temperature at which the models operate. Note:
|
thermal_noise |
The thermal noise of the photodetector. Note:
|
length | struct with fields described in table below |
Parameter defining the length (m) of the photodetector. |
width |
Parameter defining the width (m) of the photodetector. |
Each struct above consists of 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. |
unit |
string |
The default unit for display in the Property View window. |
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 following fields:
Field | Type | Description |
---|---|---|
mode_data |
cell |
M x 1 cell array, where M is the number of modes. Each element of the cell is a struct with fields:
Note: This model only supports a up to two modes. |
bandwidth_data
|
struct
|
The 3-dB cutoff frequency data of the photodetector as a function of bias voltage, width, length, and temperature. The required fields are:
Note: Data must be provided for at least two data points for each parameter (V,W,L,T > 1) |
Idark_data
|
struct
|
The total dark current of the photodetector as a function of bias voltage, width, length, and temperature. The required fields are:
Note:
|
resp_data
|
struct |
The responsivity of the photodetector as a function of frequency, bias voltage, width, length, and temperature. The required fields are:
Notes:
|
elec_eq_ckt_data (optional) | struct with fields described in elec_eq_ckt_data. | Data required for modeling the electrical equivalent circuit for accurate electro-optic simulations. For more information on the electrical equivalent circuit, see Electrical equivalent circuit details in the photonic model page. |
elec_eq_ckt_data
Note: The electrical sub-circuit is only enabled for the Verilog-A model; this field is ignored for the Interconnect model.
Field |
Type | Description |
voltage | number |
The bias voltages (V) values used to measure the bandwidth, given by Vbias = Vanode – VcathodeVbias = Vanode−Vcathode. |
width | number |
The width (m) values used to measure the bandwidth of the photodetector. |
length | number |
The length (m) values used to measure the bandwidth of the photodetector. |
temperature | number |
The temperature (K) values used to measure the bandwidth of the photodetector. |
Rj | struct |
The junction resistance (Ω) of the photodetector. Resistance Rj: V x W x L x T matrix containing the junction resistance (ohm) values of the photodetector, where:
Note: Data must be provided for at least two data points for each parameter (V, W, L, T > 1). |
Cj | struct |
The junction capacitance (F) of the photodetector. Capacitance Cj: V x W x L x T matrix containing the junction resistance (ohm) values of the photodetector, where:
Note: Data must be provided for at least two data points for each parameter (V, W, L, T > 1). |
Rp | number | Parasitic contact resistance (Ω) of the photodetector. |
Cp | number | Parasitic capacitance (F) from the metal pads. |
Complete data requirement (for advanced users)
The complete data section provides a complete reference of data supported by the photodetector pcell model including the basic required data described in the previous section. The description of all the fields in the photodetector pcell source data template are described below.
general
"general" is a struct with following fields:
[[snippet||11549514081811]]
ports
"ports" is a struct with following fields:
[[snippet||12153503240467]]
opt_2 (optional) |
struct with fields described in table below |
Port definition corresponding to the second input optical port |
ele_an_2 (optional) |
Port definition corresponding to the second anode of the photodetector. |
Each struct above consists of following fields:
[[snippet||11549759363603]]
parameters
"parameters" is a struct with following fields:
[[snippet||12153804332691]]
length | struct with fields described in table below |
Parameter defining the length (m) of the photodetector. |
width |
Parameter defining the width (m) of the photodetector. |
Each struct above consists of following fields:
[[snippet||11720299494931]]
model_data
"model_data" is a struct with following fields:
[[snippet||12161931903123]]
elec_eq_ckt_data (optional) | struct with fields described in elec_eq_ckt_data. | Data required for modeling the electrical equivalent circuit for accurate electro-optic simulations. For more information on the electrical equivalent circuit, see Electrical equivalent circuit details in the photonic model page. |
elec_eq_ckt_data
Note: The electrical sub-circuit is only enabled for the Verilog-A model; this field is ignored for the Interconnect model.
Field |
Type | Description |
voltage | number |
The bias voltages (V) values used to measure the bandwidth, given by Vbias = Vanode – VcathodeVbias = Vanode−Vcathode. |
width | number |
The width (m) values used to measure the bandwidth of the photodetector. |
length | number |
The length (m) values used to measure the bandwidth of the photodetector. |
temperature | number |
The temperature (K) values used to measure the bandwidth of the photodetector. |
Rj | struct |
The junction resistance (Ω) of the photodetector. Resistance Rj: V x W x L x T matrix containing the junction resistance (ohm) values of the photodetector, where:
Note: Data must be provided for at least two data points for each parameter (V, W, L, T > 1). |
Cj | struct |
The junction capacitance (F) of the photodetector. Capacitance Cj: V x W x L x T matrix containing the junction resistance (ohm) values of the photodetector, where:
Note: Data must be provided for at least two data points for each parameter (V, W, L, T > 1). |
Rp | number | Parasitic contact resistance (Ω) of the photodetector. |
Cp | number | Parasitic capacitance (F) from the metal pads. |
QA
"QA" is a struct with following fields:
[[snippet||12155371687955]]
temperature | number |
Temperatures (K) at which all tests will be done (can be a single value or an array). |
length |
Length values at which all tests will be done (can be a single value or an array). |
|
width |
Width values at which all tests will be done (can be a single value or an array). |