D
Generating an EAD Technology File
An EAD technology file, named eadTechFile, is a binary encrypted file that contains electrical process parameters for RC extraction, halo distances, capacitance models, and the electromigration rules. While preparing the Layout EAD setup before running
Virtuoso provides the eadModelGen executable utility under $CDSHOME/tools/catena/bin in the Virtuoso installation area. You can use this utility to generate an EAD technology file.
The following sections provide the details on how to use the eadModelGen utility to create or update an EAD technology file:
- Prerequisites
- Generating an EAD Technology File
- Example Scenarios of EAD Technology File Generation
- Updating an EAD Technology File
Prerequisites
Before running the eadModelGen utility, ensure that the following are available:
-
A process description file in Cadence-standard text format: You can either provide
qrcTechFileor an ICT file that describes all the process parameters required for RC extraction.
If using qrcTechFile, ensure that the file contains the RCGEN models.
If using an ICT file, you can also add rules for electromigration checking to the ICT file using theem_modelstatements. It is mandatory that the file is provided in the Cadence-standard text format that has been defined in conjunction with various foundries. For details on how to create an ICT file, refer to the EXT Techgen Reference Manual in QRC installation. -
A multi-core machine with large RAM: The
eadModelGenis a resource-intensive utility, so it is recommended to use a multi-core machine, preferably with more than 16 cores and 64GB of RAM.
Generating an EAD Technology File
To run the eadModelGen utility, run the following command:
$ eadModelGen <ictfilename> | qrcTechFile
The utility reads the specified input ICT file or qrcTechFile to create a technology file and saves it at the current location. The input file is usually an ASCII file in the ICT format that contains the process description, but a binary qrcTechFile may also be used if an ICT file is not available.
For the <ictfilename> argument, you can provide the name of a technology file (ictfile, eadTechfile, or any other custom name) or a symbolic link to a technology file.
Depending on your requirements, you can also use one or more of the following optional command-line arguments:
| Command-Line Argument | Purpose |
|---|---|
-h | -help |
|
-v | -version |
|
-output_file |
Saves the output in a file specified using this argument. If not specified, an output file with the default name, |
-log_file |
|
-dry_run |
Displays the run information and options without actually running the command |
-threads | -multi_cpu |
Runs the model generation jobs using the given number of threads |
-update |
Updates the complete ICT file contained in
You cannot update the |
-update_em |
Updates an existing
While updating the EM rules, the command looks for matching layer names in the
You cannot update the |
-lsf_command |
Runs the model generation jobs using LSF. Use this argument to provide a command string that defines how to submit jobs to an LSF queue in your specific LSF environment. For example: -lsf_command "bsub -q lnx64 -m pto_opt -err err
Note that the LSF command must be enclosed in double quotes. You also need to specify the -lsf_number argument. It is also recommended that you use a unique project name (
Depending on the process and the number of conductor layers, the LSF jobs might take a long time to generate models. Therefore, after submitting jobs to the LSF server, the
eadModelGen command exits. When you find that LSF jobs have completed the run, you must execute the eadModelGen command again, with the same options except
-lsf_command and -lsf_number, to compile all the models into a binary technology file.
The following example steps show how to generate a technology file:
1. eadModelGen -lsf_command "bsub -q lnx64" -lsf_number 8 ictfile
2. Confirm that all the LSF jobs have completed their runs
3. eadModelGen ictfile
If you want the command to wait for the completion of jobs before exiting, use the -lsf_wait and
The eadModelGen command internally uses the |
-lsf_number |
Specifies how many LSF jobs to run in parallel. This argument is used with the -lsf_command argument. For example: -lsf_command "bsub -q lnx64 -m pto_opt -err err -o out " -lsf_number 100
You can use the
|
-lsf_wait |
Forces the
|
-lsf_wait_interval
|
Specifies the duration (in seconds) after which the |
-mail
|
Sends an email to the given address after all model generation jobs have completed and the EAD technology file has been created.
After receiving the completion mail, you must execute the |
-overwrite |
Forces overwrite of the existing eadTechFile if one already exists in the output directory. |
-split |
Splits the components of an existing |
-info |
Prints the summary information about the specified ICT file, EAD technology file, or |
-comments |
Prints the comments embedded in the ICT file in addition to the summary information printed by -info. |
-no_cap_models |
Creates an |
-no_load_models |
When using an existing eadTechFile, instead of an ICT file, as the input to eadModelGen for model generation, you can specify this option. This will avoid loading the existing capacitance models in the eadTechFile, which will not be used anyway. |
-use_ead2dc |
Use the native |
-use_ead2dc_for_device_layers |
Use the native |
-no_cap_3d_models |
Creates an eadTechFile without any 3D correction capacitance models. As a result, EAD will not consider any 3D corner or crossover effects for normal capacitance extraction. However, this does not affect extraction using the High Precision C Solver. |
-skip_layer_type |
Skips generating capacitance models involving layers of the given type. For example, |
-lithobias_file |
Specifies the lithoBias rules file to be considered for the generation of |
-combination_layers |
Limits the number of capacitance models to be generated to the set of layer combinations specified by the |
-protected_process |
Protects the process information in the resulting eadTechFile so that the ICT process description cannot be extracted from the file using the |
-max_spacing_factor |
Overrides the default halo spacing distance per layer, which is the distance that EAD uses to search for neighboring shapes. Specify a factor to be multiplied by the |
-max_simulation_widths |
Specifies that if the ICT file contains |
-max_width_file <file-name> |
Specifies an optional file that defines the maximum width for each conductor layer in the ICT file. Other than the comments marked with #, each line in the given file should consist of a layer name followed by a maximum width value (in microns). |
-status |
Returns the status of model generation jobs for the given ICT file. |
Important Points to Note
-
If the
eadModelGenutility does not generate aneadTechFiledue to some network or disk space issues, you can execute the command again. It will continue to run from the point where it stopped in the previous run. -
The time required to generate an
eadTechFilewith capacitance model depends on the hardware configuration of the computer on which it is running, the number of threads, and the number of layers for which model information is to be generated. -
The
eadModelGenutility also works with OpenLava, the open-source equivalent of LSF. -
An
eadTechFilegenerated using a newer version of Virtuoso is not compatible with an earlier version of Virtuoso. -
It is recommended to use
-lsf_waitwith-lsf_intervalin LSF mode to ensure that theeadModelGencommand does not exit after submitting the LSF jobs and compiles all the models generated by different jobs into a commoneadTechFile.
Example Scenarios of EAD Technology File Generation
This section provides some of the possible example scenarios in which an eadTechFile can be generated with different requirements.
Scenario 1: You need to update an existing eadTechFile with a new ICT file
You can update an existing eadTechFile with a new ICT file only if there is no change in the ICT file that would affect the capacitance models. For example, in cases where the existing eadTechFile does not contain the EM rules, but now you need to include the EM rules added to the ICT file. In this case, do the following:
-
Change the name of the new ICT file to a name other than
ictfile. -
Run the
eadModelGenutility with this following command:$ eadModelGen -update <new_ict_file_name> eadTechFile
Scenario 2: You need to extract all the components contained in the given eadTechFile.
You can do this by executing the following command:
$ eadModelGen -split <tmp_dir> eadTechFile
If you run this command on a protected eadTechFile, the specified directory will contain all the contents of eadTechFile except the ICT File.
The following examples describe how the eadTechFile is split in different cases:
-
If the
eadTechFilewas generated for R-only extraction,<tmp_dir>will contain theVHALOSfile. -
If the
eadTechFilewas generated for RC extraction,<tmp_dir>will containVHALOSand all the model files, but not the ICT File.
Scenario 3: You need to protect the process information in the eadTechFile.
You can use the -protected_process command-line argument, as shown below.
$ eadModelGen -protected_process -threads 16 ictfile
eadTechFile is protected, it is not possible to extract the ICT file using the
-split command-line argument.
Scenario 4: The generation of the complete eadTechFile with capacitance models takes a very long time (a few hours), so you need to generate a partial eadTechFile without capacitance models.
You can do this by executing the following command:
$ eadModelGen -no_cap_models -threads 16 ictfile
Scenario 5: Your ICT file contains an explicit specification of the layer combinations required for model generation in the manual_simulation_combinations section. You need to include only those layer combinations in the eadTechFile instead of automatically generating all the possible layer combinations.
To do this, run the following command to limit the model generation to only the specified layer combinations:
$ eadModelGen -combination_layers -threads 16 ictfile
Scenario 6: You need to verify some details for an existing eadTechFile.
You can do this using the -info command-line argument, as shown below:
$ eadModelGen -info -log_file info.log eadTechFile eadModelGen version 7.2.6r910, built 2014/03/31 23:01:34, platform opteron (64bit) Current time is Tue Apr 01 11:19:49 2014 Loading technology file : eadTechFile Technology File : ./eadTechFile Process Name : cln28hp_1p10m_7x2r_typical Model version : 6 Created on : 2013/08/11 14:39:47 Created by : eadModelGen version 7.2.6r543 (built 2013/08/05 23:41:52) Layers : 23 Diffusion : 1 (active)
Poly : 1 (poly)
Conductors : 10 (M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, C1, C2, B1, B2)
lithoBias : 0
Vias : 11 (odCont, polyCont, VIA1, VIA2, VIA3, VIA4, VIA5, VIA6, VIA7, VIA8, VIA9)
EM Models : 0
Cap models : 2944
Scenario 7: You have a QRC technology file, which contains a copy of the ICT file (including the EM rules). You need to use this for eadTechFile generation.
In this case, you can run the following command to generate eadTechFile from qrcTechFile:
$ eadModelGen -threads 16 qrcTechFile
Scenario 8: You have an EAD technology file, but the EM rules are missing. You need to update the eadTechFile to include EM rules from an iRCX file.
You can do this by performing the following steps:
-
Update the EAD technology file using the eadModelGen utility, as shown below.
$ eadModelGen -update_em <iRCX file> <eadTechFile>
-
(Optional) Confirm that the EAD technology file has EM models by using the eadModelGen utility, as shown below.
$ eadModelGen -info eadTechFile
The EM rules get added to the existing eadTechFile in lines beginning with EM models.
Scenario 9: Run eadModelGen with LSF using 200 jobs, wait for the LSF jobs to complete (checking every 10 minutes), and then receive an email when eadTechFile has been created.
You can do this by submitting an LSF command and using the supporting options, as shown below.
eadModelGen -lsf_command "/grid/sfi/farm/bin/bsub -P EAD:6.1.8:RD:gpdk090 -R
2015_lnx86_test -W 48:00 -q lnx64" -lsf_number 200 -lsf_wait -lsf_wait_interval
600 -mail abc@mailaddress.com ictfile
The LSF command string will depend on your specific LSF installation. It is recommended to use a unique project name (-P) when submitting your jobs so that you can query the job status later using that name. In the above example command, a project name has been provided using -P. You can query its status as shown below.
$ bjobs -P EAD:6.1.8:RD:gpdk090
Updating an EAD Technology File
As the foundries update the ICT and processes on a regular basis, you might also need to update the EAD models in the eadTechFile. For this, you can use the -update command-line argument to update the eadTechFile without regenerating the capacitance models.
Some examples of changes in ICT that do require generation of new EAD models are given below.
- When there is a change in parameters that affect the capacitance, including layer heights, thickness, widths, spacings, bias (top/bottom enlargement), WEE tables, dielectrics, layout scaling.
-
When a new
eadTechFilewill need to be generated.
You might also need to update the eadTechFile if some modeling improvements have been done.
Some examples of changes in ICT that do not require generation of new EAD models are given below.
- Changes to the sub_conductor device layers. This is because currently, EAD does not use these layers.
- Changes to resistance parameters, for example, rho tables, and wire_edge_enlargement_r.
- Addition or changes in the EM rules
After upgrading Virtuoso, you need not update or regenerate the eadTechFile because it is backward compatible.
EM Rule Support in EAD
This section lists the differences between EM rules supported in EAD and Voltus-Fi:
-
The EM parameter
em_recoveris supported by the parser but it is not used during EM analysis. - The following operators are supported in lowercase in EAD:
Voltus-Fi-XL supports parameters for only limit-based EM analysis. The following parameters can be used to specify EM rules in the ICT EM file. The EM rules might also be embedded in the ICT file or the qrcTechFile.
Current Density (JMAX) Keywords
The table below lists the Current Density (JMAX) keywords that can be specified in the ICT EM file.
|
Optional keyword that specifies the maximum recovery AC current analysis. |
Where star ‘*’ implies that ‘_w’ and ‘_n’ rules are also supported.
-
em_jmax_ac_peak_wis an optional parameter that is essentially the same asem_jmax_ac_peak, with the exception that it is specified for wide wires (as defined byem_W_n). -
em_jmax_ac_peak_nis an optional parameter that is essentially the same asem_jmax_ac_peak, with the exception that it is specified for narrow wires (as defined byem_W_n).
Rules for Defining EM Parameters
An example of the EM rule for defining the em_jmax_dc_avg parameter is provided below:
[em_jmax_dc_avg <value> | <value_1> <area_1/width_1> [...] | EQU <fn(E)>]
[jmax_factor <temp1> <scale1> [<temp2> <scale2> ...]]
[jmax_life <life1> <scale1> [<life2> <scale2>.......]]
[current_direction up | down | both]
[conditions]
[single]
[power_rail/power_grid ]
[priority==<priority no.>]
[device==”<device model names>”]
[sub_conductor=="<subconductor names>"]
[color=="<list of color no.>"]
[mask==<mask no.>]
[via_range <value>]
All other EM parameters are defined with the same structure but apply to different characteristics of the em_model (peak current versus average for instance). The following rules apply to all the limit-based em_model parameters:
-
Single Value Current Density
Specifying a single value or an equation is an enhancement for width or area dependent parameters (such asem_jmax_ac_avg). -
Piece-wise Linear (PWL) Interpolation
In a width-dependent model for a conductor layer, or for an area-dependent model for a via layer, PWL interpolation uses a series of data points that are points on a graph of X versus Y, where X can be either a value or an expression and Y is a value. For example, current density value and area<value1> <area1>, current density value and width<value1> <width1>, current density expression and area<expression1> <area1>, or current density expression and width<expression1> <width1>.
The following syntax are supported:em_jmax_dc_avg PWL <value1> <area1/width1> <value2> <area1/width1>
em_jmax_dc_avg PWL (<value1> <area1/width1> <value2> <area1/width1>)
em_jmax_dc_avg PWL (<expression1> <area1/width1> <expression2> < area1/width1>)
For example:em_jmax_dc_avg PWL 0.3582 0.001444 0.5694 0.003364 0.7164 0.0038
em_jmax_dc_avg PWL (0.3582 0.001444 0.5694 0.003364 0.7164 0.0038)
em_jmax_dc_avg PWL (0.05*0.5 0.002 0.1*0.5 0.004 0.2*0.5 0.008)
-
Equations in EM Model
The EQU keyword denotes the definition of an equation for current density.
An EOL or one of the qualifiers (jmax_factor,current_direction,orsingle) marks the end of an equation specifying the Current Density limit. If the equation resolves into two separate equations, then this will result in an error.
For EQU, the following operators (case-sensitive) are supported:
Where,expr1is a conditional expression. Ifexpr1evaluates totrue, thenexpr2is evaluated, elseexpr3is evaluated.
For example:
Life_factor= ((A < 5 and B > 2)? 3:4)
em_jmax_dc_avg EQU 3.0*w * Life_factor jmax_factor 50 1.1 110 1.0 125 0.92 L > 5 -
Spaces are permitted to make an equation more readable.
Variables within equations, such asdeltaT,w, andl, are populated by the analysis tool at runtime. Use theem_variablesparameter in the process definition to globally declare variables that are used within the variousem_models.
The equation definition ends when reaching the end of line (EOL) or another keyword like:
The equation definition ends when reaching the end of line (EOL) or another keyword like:-
/* Limit-based EM equations (EQU), terminated by any of the following: -
// EOL -
// jmax_factor -
// jcdf_factor -
// rating_factor -
// current_direction -
// single -
// power_rail -
// power_grid -
// priority -
// mask -
// color -
// VO_ -
// Itolerance -
// via_range -
// jmax_life -
// conditions [L/W/Lu/Wu/Lb/Wb/Lv2v/Wv/Lv/Vg/N/a == | < | <= | > | >= <value> -
// device -
// sub_conductor -
// sub_via -
// bridge_via -
// MD_AND_OD_OVERLAPPING_REGION -
// Sh -
// hi_em -
// em_ (the next em_ rule) -
// } (the end of the model)
List of supported variables are provided below:-
a:area of the resistor -
w:width -
l:length -
La:length of pseudo via -
La_x:length of pseudo via along the x-axis -
La_y: length of pseudo via along the y-axis -
N:number of vias -
deltaT: rise in temperature in degree Celsius -
r:duty ratio -
Tref: refers toem_tref, the nominal temperature for EM analysis defined in the process section of the ICT file. Ifem_trefis not defined, then default value(110C) is set. -
cdf_percentage: This variable lets you use the value specified using the keywordcdf_percentagein the emir config file or command file, in the EM rules.
-
-
Order Dependency
The actual Current Density limit (value, piece-wise linear or PWL pairs, or equation) should follow immediately after the Current Density keyword (em_jmax_dc_avg). Any of the qualifiers (jmax_factor,current_direction, orsingle) will come after that. The order of the qualifiers is not important. -
Units of Values
The unit should be specified in accordance with the setting defined by theem_conductor_unit,em_via_unit, andem_via_area_unitparameters defined in the process definition. Units are specified as: -
JMAX Factor
jmax_factor <temp1> <scale1> [<temp2> <scale2> ...]
jmax_factoris the optional scaling factor to use at different temperatures compared to the reference temperature (defined byem_trefin the process definition). The temperature forjmax_factorshould be specified in degrees Celsius.
Scaling factor is a positive integer:>1 to scale up, <1 to scale down, or 1 for no scale effect.
If the specified temperature,T, falls between the defined minimum and maximum temperatures, the software will calculate a new scale factor (RT) using the formula,TTF=A*J^(-n)*exp(Ea/kT).
For example:RT = RT1*exp((Ea/kT)*(1/T-1/T1))
whereEa/kT=(T1*T2/(T1-T2))*ln(RT2/RT1)
-
Format of the Conditions
Condition =[L/W/Lu/Wu/Lb/Wb/Lv2v/Sv/Td/r/a/N < | <= | > | >= | == | != <value in microns/micro seconds> | ground_net | supply_net | Vu_current_direction {up | down}] | [Itolerance < | <= | > | >= | == | != <value in percentage> ]
Conditions =[condition]*
TheLparameter specifies the length-based jmax values in microns.
TheWparameter specifies the width-based jmax values in microns.
LandWare applicable for both metals and vias.
Lu, Lb, Wu,andWbare applicable for vias only.
Lv2vandItoleranceare applicable only for thepower_railrule.Itoleranceis not supported in EAD and will be ignored.
Where,
L= lengthW= WidthLu= Upper metal lengthLb= Bottom metal lengthWu= Upper metal widthWb= Lower metal widthLv2v= Distance between terminal viasItolerance= Difference in the current values of terminal vias. For example, if a difference of up to 5 percent is acceptable, then specify 'Itolerance <= 0.05'.Td= Time duration in micro second or total ‘On Time” periodr= Duty ratioa= Area of the single cut in the via or in the via arrayN= Number of vias in the via array
Voltus-Fi-XL supports metal length/width rules above and below vias, where, the dimensions to be checked for the rules are different for the metal above and the metal below. In this case,Lu/Wurefers to dimensions of the metal above the via andLb/Wbrefers to dimensions of the metal below the via. -
Single
The keyword,singlecan be specified to differentiate between a single square cut via and square viaarray. The following example shows how to use thesinglekeyword:em_jmax_dc_avg PWL 0.022 0.01 jmax_factor 105 1.1 110 1.0 115
0.9 120 0.8 125 0.7 130 0.6 140 0.5 150 0.4 current_direction up
Lb > 4 Wb >= 0.05 current_direction up single
-
JMAX Life
The keyword,jmax_lifeprovides the ability to set the scaling factor that applies to the Current Density limits for different lifetimes. The syntax is as follows:jmax_life <life1> <scale1> [<life2> <scale2>.......]
The software will take the unit of lifetime from theem_lifetime_unitsparameter specified in the process section of the ICT file. In case the specifiedlifevalue does not match any of thelifevalues provided usingjmax_life, the software performs linear interpolation to calculate theTlifefactor. -
Current Direction
current_direction [up | down | both]can be specified for via current direction. The syntax ofcurrent_directionis:-
up- means the direction of the current is from bottom to top and specifies to use the length and width of the metal belowLb/Wbfor the VIA Jmax factor -
down- means the direction of the current is from top to bottom and specifies to use the length and width of the metal above Lu/Wu for VIA Jmax factor -
both- This rule is applicable only when the direction of the current is uncertain. This rule is unlikely to be applied since the software calculates the current direction
-
-
Power Rail/Power Grid
The keywordpower_railorpower_gridcan be specified to enable the particular EM rule for power-rail analysis. These rules are not supported in EAD and will be ignored during parsing. -
ApplyR
The keyword is not supported in EAD EM. -
Priority
These rules are not supported in EAD and will be ignored during parsing. -
Device
This keyword is used to specify different EM rules for device resistors, which are subsets of other layers. The syntax is as follows:
For example, the following keyword specifies that the particular EM rule is applicable only to device with the model names, “device=="device model names"devRA devRB”.device=="devRA devRB" -
Subconductor
This keyword is used to specify different EM rules for subconductors, which are subsets of poly or other layers. The syntax is as follows:
sub_conductor=="subconductor names"
For example, the following keyword specifies that the particular EM rule is applicable only to subconductor layers,pployandgpoly.
sub_conductor=="ppoly gpoly" -
bridge_via
This keyword is used to specify that the particular EM rule will apply only to bridge vias. -
Color
This keyword is used to specify that the particular EM rule is applicable only to the resistor with the specified color number.
For example,
color==”2 4 5”specifies that the particular EM rule is applicable only to the resistor with property,$M=2 OR $M=4 OR$M=5. -
Masks
This keyword is used to specify that the particular EM rule is applicable only to the resistor with the specified mask number.
For example,
mask==2specifies that the particular EM rule is applicable only to the resistor with property,$M=2.
Rules for Specifying Via Area
You can specify PWL in either one of the following ways:
-
Provide PWL for a specific area:
For example,em_jmax_* PWL Value_1 area_1 … Value_N areaNem_jmax_* PWL 1.3 2.0 1.7 3.0
-
Provide PWL for a specified area range:
em_jmax_* EQU <equation with 'a'> conditions
For example,em_jmax_* EQU (1.3 * a)/2.0 a>=0.0 a<2.5
em_jmax_* EQU (1.7 * a)/3.0 a>=2.5 N>=3
em_jmax_* EQU (1.9 * a)/3.0 a>=2.5 N<3
EM Rule Selection Priority
This section details the order of priority in which the EM rules are applied by Voltus-Fi-XL based on the specified keywords. The order of priority of keywords in descending order is provided below:
- device --> highest priority
- sub_conductor
- bridge_via
- priority
- power_grid/power_rail
- color
- mask
- current_direction
- Conditions
- Area matching in case of PWL
- Base rule
- Optimistic/pessimistic rules --> lowest priority
-
device
When a device is specified in the EM rule file, the software first looks for thedevicekeyword and applies the EM rules to the specified device.
For example, for a device with model name,devRA, if the following rules are specified in the ICT file:1. em_jmax* … device==“devRA”
2. em_jmax* … device==“devRB”
3. em_jmax* …
Then the software follows the order of priority provided below: -
sub_conductor
When a sub conductor is specified in the EM rule file, the software first looks for thesub_conductorkeyword and applies the EM rules to the specified sub conductor.
For example, for a resistor on layer,ppoly, if the following rules are specified in the ICT file:1. em_jmax* … sub_conductor==“ppoly”
2. em_jmax* … sub_conductor==“gpoly”
3. em_jmax* …
Then the software follows the order of priority provided below: -
bridge_via
When abridge_viais specified in the EM rule file, the software first looks for thebridge_viakeyword and applies the EM rules havingbridge_viakeyword for the bridge via. In case, the via is not bridge via, rules havingbridge_viakeyword will be ignored.
For example, for a bridge via, if the following rules are specified in the ICT file:1. em_jmax* … bridge_via
2. em_jmax* …
Then the software follows the order of priority provided below:
In case, the via is not bridge via, then the software will match rule 2. -
priority
This keyword is not supported in EAD. -
power_rail/power_grid
This keyword is not supported in EAD. -
color
When thecolorkeyword is specified in the EM rule file, in the following manner:1. em_jmax* … color==”1 3 5”
2. em_jmax* …
For example, if a resistor has color number 5, specified using$M=5, then the software follows the order of priority provided below: -
mask
When themaskkeyword is specified in the EM rule file, in the following manner:1. em_jmax* … mask==2
2. em_jmax* …
For example, if a resistor has mask number 2, specified using$M=2, then the software follows the order of priority provided below: -
current_direction
When thecurrent_directionkeyword is specified in the EM rule file, in the following manner:1. em_jmax* … current_direction up
2. em_jmax* … current_direction down
3. em_jmax* …
Then, for a resistor withcurrent_direction up, the software follows the order of priority provided below: -
Conditions
When conditions are specified in the EM rule file, in the following manner:1. em_jmax* … L <=5
2. em_jmax … L > 5
3. em_jmax* …
Then the software follows the order of priority provided below: -
Area Matching from the PWL
When the PWL for specific via areas are specified in the EM rule file, in the following manner:1. em_jmax* … PWL VAL_1 AREA_1 VAL_2 AREA_2 L <=5
2. em_jmax … PWL VAL_3 AREA_3 VAL_4 AREA_4 L <=5
Then the software follows the order of priority provided below: -
Base Rule Selection
When the PWL for specific via area is specified in the EM rule file, without any conditions in the following manner:em_jmax* … PWL VAL_1 AREA_1 VAL_2 AREA_2
Then the software follows the order of priority provided below:- Match the exact areas from the base rule
-
The software does not interpolate for unmatched areas (other than
AREA_1andAREA_2in above example)
When multiple rules match for a conductor/via, then maximum/minimum amongst them is returned depending upon the environment variablelayoutEAD.emuseMaxRule.
For more information about EM rules, see Voltus-Fi Custom Power Integrity Solution L User Guide and Voltus-Fi Custom Power Integrity Solution XL User Guide.
Solvers for Generation of Capacitance Models
eadModelGen can use different solvers for capacitance model generation. Each solver has its own advantages and limitations. Depending on your accuracy requirements, choose a solver by using appropriate command options.
The solvers available for capacitance model generation are listed below:
-
FEM 2D solver: Finite Element Method (FEM) 2D solver it is the default solver. It runs model generation on regular interconnect Back End of the Line (BEOL) layers. The BEOL is the second part of IC fabrication where the individual devices get interconnected with the wiring on the wafer. Both contribute towards the maximum rise in temperature that causes the self-heating effect.
The FEM 2D solver provides the best performance on the BEOL layers in the layer stack with high accuracy. It works best on those BEOL layers that are within some range of typical conductor dimensions for the given process. In general, for these types of BEOL layers, FEM 2D is much faster than EAD 2D with virtually the same accuracy, but in some cases, the performance might not be so good. Some of those cases are listed below:- For the top layers in the stack, also referred to as RDL layers, which are very thick or wide relative to the other layers in the stack, and are typically used for global power or ground distribution. In FEM 2D, the entire process layer stack is meshed for solving, so these very thick and wide layers can result in a very large mesh, which may consume a large amount of memory and increase the time to solve. In extreme cases, FEM 2D can actually be slower than EAD 2D on these layers.
- For the very thin layers. For example, the highly resistive RH_TN layers in the MEOL. These layers require using a very small mesh unit size. The presence of these very thin layers can result in a finer, and therefore, larger mesh for the layer stack, which increases the amount of memory required and decreases the performance.
-
EAD 2D solver: Runs model generation for most layers, including the regular interconnect (BEOL) layers down to the device and local interconnect Front End of Line (FEOL) and Middle End of Line (MEOL) layers. FEOL is the first part of IC fabrication where the individual devices such as transistors, capacitors, and resistors are patterned in the semiconductor. FEOL covers everything up to, but not including, the deposition of metal interconnect layers. MEOL, which is also called as MOL, comprises contacts that connect the separate transistor and interconnect pieces.
EAD 2D provides a good balance of speed and accuracy. Unlike FEM 2D, the EAD 2D solver does not mesh the interior of the conductors. It only meshes the boundaries of the conductors and the dielectrics in between them. Therefore, it is not susceptible to the same issues that FEM 2D has when there are large variations in the conductor widths or thicknesses. In general, it is slower than FEM 2D.
-use_ead2dc command-line option. You can also run a hybrid mix of these solvers by using the -use_ead2dc_for_device_layers command-line option. With this option, EAD automatically runs the EAD 2D solver for any models involving FEOL or MEOL layers, and invokes the default solver for the BEOL layers.Guidelines for Using a Solver
- It is recommended to use FEM 2D in general.
- Use EAD 2D only on those layers that either require higher accuracy (at the expense of speed), or for which FEM 2D shows performance issues.
-
Use EAD 2D only for specific layers, not for all layers. For example, the very thin or thick layers for which FEM 2D shows performance issues. Specify the layer names using the
-use_ead2dc_for_device_layersoption. eadModelGen always picks up where it left, so you can run EAD 2D for selected layers, and then run it using FEM 2D to complete the remaining models.
Return to top