Digital inverter

This example is taken from Chapt. 6.2.1 Tutorial #1 from the ASCO manual. In addition to the features already mentioned above, it adds Monte-Carlo and corner simulations. The file inv.cfg contains the following section:

#Optimization Flow#

Alter:yes $ do we want to do corner analysis?

MonteCarlo:yes $ do we want to do MonteCarlo analysis?

AlterMC cost:3.00 $ point at which we want to start ALTER and/or

$ MONTECARLO

ExecuteRF:no $ Execute or no the RF module to add RF parasitics?

SomethingElse:

#

Monte Carlo is switched on. It uses the AGAUSS function (see Chapt. 22.2). Its parameters are generated by ASCO from the data supplied by the inv.cfg section #Monte Carlo#. According to the paper by Pelgrom on MOS transistor matching [22] the AGAUSS parameters are calculated as[\begin{array}{ll} {W = AGAUSS\left( {W,\frac{ABeta}{\sqrt{2 \cdot W \cdot L \cdot m}} \cdot \frac{W}{100} \cdot 10^{- 6},1} \right)} & \ \end{array}]

[\begin{array}{ll} {delvto = AGAUSS\left( {0,\frac{AVT}{\sqrt{2 \cdot W \cdot L \cdot m}} \cdot 10^{- 9},1} \right)} & \ \end{array}]

The .ALTER command is not available in ngspice. However, a new option in ngspice to the altermod command (17.5.4) enables the simulation of design corners. The #Alter# section in inv.cfg gives details. Specific to ngspice, again several .control section are used.

# ALTER #

.control

* gate oxide thickness varied

altermod nm pm file [b3.min b3.typ b3.max]

.endc

.control

* power supply variation

alter vdd=[2.0 2.1 2.2]

.endc

.control

run

.endc

#

NMOS (nm) and PMOS (pm) model parameter sets are loaded from three different model files, each containing both NMOS and PMOS sets. b3.typ is assembled from the original parameter files n.typ and p.typ, provided with original ASCO, with some adaptation to ngspice BSIM3. The min and max sets are artificially created in that only the gate oxide thickness deviates ±1 nm from what is found in model file b3.typ. In addition the power supply voltage is varied, so in total you will find 3 x 3 simulation combinations in the input file <computer-name>.sp (after running asco-test).