Stress Effects and Well Proximity Parameter Extraction

09 : Stress Effects and Well Proximity Parameter Extraction

Minimum Required Versions: Expert 4.10.37.R, Hipex 3.4.38.R

As process technology are getting smaller (90 nm and below), well proximity and shallow trench isolation (STI) stress effects play a more significant part in the behavior of MOS device characteristics. Accurate post layout SPICE simulation can't be achieved without taking these effects into account. Newer SPICE device models, like BSIM4, have parameters for the simulation of well proximity and STI stress effects.

Silvaco's Guardian LPE tool provides special functions for well proximity and STI stress effects parameter calculation. These two functions can be used in a LISA scripts for generic devices: device_enclosure_vector and device_enclosure.

This example will describes these function and demonstrate how they can be use to netlist the necessary parameters for accurate post layout simulation.

1.0 Function "device_enclosure_vector"

Well proximity and stress effects parameter calculations can be done via enclosure vector. Guardian LPE provides a pair of LISA functions that permits the calculation of the enclosure vector, and has the following syntax:

  • enclosure_vector = device_enclosure_vector(<layer_name>, max_distance)
  • device_set_enclosure_property(enclosure_vector)

The first function (device_enclosure_vector) calculates the enclosure vector for a specified measurement layer layer_name over the device seed shape. The device seed shape must satisfy the following conditions:

  • be rectangular
  • be completely overlapped by measurement layer polygon
  • two opposite sides of the seed shape must coincide with edges on measurement layer

In the Figure1 , the measurement layer polygon is split into trapezoids with sides that are parallel to the coincident edges of the layer and the device seed shape. Each trapezoid provides three values a, b, and w for the enclosure vector element. The max_distance parameter defines the size of the search window and so defines the maximum value for a and b.

The number of elements in the enclosure vector corresponds to the number of trapezoids and can be obtained via the SIZE field of the enclosure vector (enclosure_vector.size). As mentioned above, the enclosure vector element has three fields a, b, and w, and access to these fields can be obtained in the following way: enclosure_vector[i].a, enclosure_vector[i].b, enclosure_vector[i].w, where i is the element index.

If the measured layer covers several device seed shapes the enclosure vector is calculated for each seed shape separately. During the enclosure vector calculation all other device seed shapes are ignored. If the device seed shape doesn't satisfied the required conditions, the a, b, and w values are set to -1.

The second function (device_set_enclosure_property) is used to output the enclosure vector to a netlist in the following format:

sa1=... sb1=... sw1=... [sa2=... sb2=... sw2=... [...]]

The use of this function in a LISA generic device file is shown in Figure2.

An example of netlist created by using this function in shown in Figure3 .

2.0 Function "device_enclosure"

The well proximity enclosure function can be used for the calculation of well proximity and shallow trench isolation. The corresponding LISA function for Guardian LPE has the following syntax:

enclosure_vector = device_enclosure (direction, <base_layer_or_pin>, <meas_layer_or_pin>, <orient_layer_or_pin>, max_distance)

where enclosure_vector is a vector of triplets (a, b, w), direction is the measurement orientation with respect to the coincident edges of the base layer base_layer_or_pin and orientation layer orien_layer_or_pin , and can have two values ORIEN_PERPENDICULAR and ORIEN_PARALLEL , meas_layer_or_pin is the name of the measurement layer that encloses the base layer. Figure4 illustrates the function used with the orientation set to ORIEN_PERPENDICULAR and Figure5 displays the function used with the orientation set to ORIEN_PARALLEL .

The following are the function input arguments conditions:

  • the base layer can be the device layer, any pin or auxiliary layer, or pin name. The base layer object must be rectangular and completely overlapped by the measurement layer polygon.
  • the measurement layer can be any pin or auxiliary layer, or pin name. The measurement layer polygon must completely overlap the rectangular base layer object.
  • the orientation layer can be any pin or auxiliary layer, or pin name. The polygon(s) from the orientation layer must have at least one coincident edge with the base layer object. If there are several coincident edges then all such edges should be parallel each other.
  • The base, measurement and orientation layers must all be different layers.

The measurement layer polygon is split into trapezoids, with sides that are parallel to the coincident edges of the base layer rectangle and orientation layer polygon for ORIEN_PARALLEL direction argument or are perpendicular to the coincide edges for ORIEN_PERPENDICULAR direction argument.

Each trapezoid provides three values a, b, and w for the enclosure vector element (see Figure4 and Figure5 ). The max_distance parameter defines the size of the search window and so defines the maximum value for a and b.

There is an additional function device_set_named_enclosure_property which is used to output the enclosure vector with a special name to the netlist:

device_set_named_enclosure_property(<name>, enclosure_vector),

where <name> is a string variable.

The output will have the following format:

<name>a1=...<name>b1=...<name>w1=...[<name> a2=...<name>b2=...<name>w2=...[..]]

The use of these functions in a LISA generic device file is shown in Figure6.

An example of netlist created by using this function in shown in Figure7 .

3.0: Experimenting with these functions

Once all the example files have been downloaded, open an EXPERT session and open the (*.eld) file called hipex_ex09.eld . Then open the top cell "hipex_09" . A cell layout view showing a single PMOS transistor as shown in Figure8 , should open.

In this *.eld file, all the necessary derived layers are already present (layer in lower case). Therefore during the extraction, the user does not need to generate the derived layers.

Before performing the extraction of this device with all the netlist parameters, the user needs to set the proper path to the LISA generic device extraction file.

Choose Setup->Technology->Device Setup and make sure that the File Name field located at the bottom of the window points to the downloaded file "hipex_ex.lisa" .

The proper extraction setup also needs to be loaded using the menu, Verification->Extraction->Setup and choosing the Load button, the user needs to point to the downloaded file "hipex_ex09.lpe" . Some paths may have to be remapped to your local installation, especially the path to the netlist being generated (located under the Netlisting tab of the window).

Once this configuration section is completed, the user can perform the extraction by choosing Verification->Extraction->Hipex-Net->Run.

A progress window titled "Netlist Extraction in progress..." will display for a brief moment and the same window will change to a "Guardian NET" window with the message "Guardian NET run completed successfully" . In this window, press the Open Netlist button to inspect the extracted netlist. You should see the netlist shown in Figure9 .

The user can see the use of the different functions described in this example by opening the file hipex_ex.lisa . This file could be modified depending on the user needs and on what parameter names and formats is expected by the model file used for the post layout simulation.