Hints, Tips and Solutions


Q: How To: Is it possible to pass a variable from an ATLAS deck into a C-Interpreter function?

A: Yes it is. All you have to do is to add just a few simple statements.


The Silvaco C-Interpreter (SCI) allows convenient and flexible definition of physical models and material parameters via an ANSI standard C-language interface. The SCI uses sophisticated techniques to assemble user defined functions at run time, while maintaining fast execution time. ATLAS supports a wide range of SCI functions such as doping, composition fraction, defect density of state, temperature and composition dependent band parameters, as well as mobility, recombination and generation models.

To provide additional flexibility it is now possible to pass variables from a deck into the SCI file. As a stand-alone enhancement this opens a whole new range of possibilities. Combine this feature with a deck used in VWF, either in the Design Of Experiments (DOE) or Optimization environment and the possibilities for enhanced, efficient, highly customized experiments become almost limitless.


The Example

The example considered here was used to simulate an organic TFT (OTFT). Mobility modelling is somewhat different in organic material in comparison to inorganic material. For the specific example considered here the original authors wanted to model the bulk mobility in the OTFT as being dependent on the concentration of carriers and the parallel electric field as shown in Equation 1:

EQ 1

Where μn is the concentration dependent parallel electric field dependent mobility to be calculated μo is the bulk mobility, EII is the parallel electric field, n is the carrier concentration, no is the bulk carrier concentration and γ is a fitting parameter. All of the parameters are known or calculated except the fitting parameter γ. To this end γ needs to be varied in the SCI file. With the new passing feature the variable can now be defined in the ATLAS deck and passed to the SCI file where the mobility model was defined.

Figure 1. Part of the SCI file showing the key syntax enabling the passing of variables from an ATLAS deck.


Figure 1 shows the more pertinent parts of the SCI file used in this example. To pass in a variable there are two key statements. The firsts:

#include “template.h”

This gives the SCI file access to the function that has been created to enable the passing of variables.

The second key statement in the SCI file for this example is:

double gam1 = get_global_double(“gamma1”)

This statement grabs the variable (named gamma1 in this instance) from the ATLAS deck and renames it (to gam1) for subsequent use in the SCI function as can be seen towards the bottom of the deck with such statements as:

double t1 = pow(pratio, gam1)

Figure 2 shows the ATLAS deck. Some of the values are parameterized with SET statements including the variable that is to be passed to the SCI file.

Figure 2. The parameterized ATLAS deck with flags to enable the passing of variables into the SCI file.


The key statement in the ATLAS deck is:

Options cint.param=gamma1 \

The value of $gamma is fixed in the SET statement at the beginning of the deck making the deck easy and flexible to use in conjunction with dbIntenal or VWF. This value is then given the variable name gamma1 and can then be called into the SCI file. As shown in Figure 1.


Further Possibilities

The options statement for the passed variable could be embedded in the solve statements enabling the value to be changed during simulation. For example:

options cint.param=gamma1 cint.double=0.1
solve vgate=0 vstep=-0.5 vfinal=-30 name=gate
options cint.param=gamma1 cint.double=0.2
solve vgate=0 vstep=-0.5 vfinal=-30 name=gate

In the first solve gamma1 (and thus gam1 in the SCI function) has the value 0.1, but in the second solve gamma1 has the value of 0.2.

CINT.CHAR, CINT.INT are also available, enabling the passing of integers and strings as well. Only one global parameter may be defined per OPTIONS statement but multiple option statements are permitted.


Download PDF of this article