Hints, Tips and Solutions

Q. How do I use the Mercury module to tune the design of a FET?

A. Mercury is a quasi-2d FET simulator which is part of the ATLAS suite. A fet simulation in Mercury is many times faster than the equivalent full 2D simulation in ATLAS. This speed means that the Mercury simulator is ideal for running a set of related simulations. Therefore Mercury can be used to examine how changing various parameters effect the characteristics of a device.

A very simple n-type GaAs planar MESFET is used for this example. The distance between the source and the drain is 2 microns, the gate is 0.8 microns long, and the device is symetrical. The doping (figure 1) consists of a narrow donor peak on a broad acceptor background.

In this example the transconductance and the breakdown voltage are investigated as a function of the position of the donor doping.


1) Setting Up The Mercury Deck

The Mercury simulation calculates two DC-IV curves (figure 2). The first holds the gate voltage at 0V and increases the drain voltage from 0V until the device breaks down. The second holds the drain voltage at 1.5V and decreases the gate voltage from 0V until the channel pinches off.

In order to automatically control the position of the doping, its location must be defined by a “set” variable.

set nd_peak=0.1

doping don gaussian conc=1e17 char=0.1 peak=$nd_peak

In order to collate the results of interest they must be defined by an “extract” variable. This is an approximation of the breakdown voltage

extract init inf=”bd.log”

extract name=”id” y.val from curve(v.”drain”, i.”drain”) where x.val=1.5

extract name=”vbd” x.val from curve(v.”drain”, i.”drain”) where y.val=1.2*$id

This calculates the transconductance

extract name=”gm” abs(slope(minslope(curve(v.”gate”, i.”drain”))))


2) Setting Up The Batch Deck

DeckBuild has a “batch” capability built in, which allows multiple simulations to be run one after another. This is “internal” to DeckBuild so the input deck is

go internal

load infile=fet.in

sweep parameter=don_peak type=linear range=”0.04,0.12,33”

save type=sdb outfile=gm.dat

The “load infile=fet.in” reads in the Mercury input deck. The “sweep” command shows we want to simulate “fet.in” with “don_peak” (the location of the peak of the donor doping) varying over the range y=0.04 microns to y=0.12 microns.
The values from the “extract” statements (for all simulations) are saved in the file “gm.dat” (figure 3).

Download PDF Version of this article