ASITIC FAQ
| Introduction | Command Reference | Installation | Technology File | Quickstart | Sample Sessions |
Analysis Questions:
Platform Questions:
ASITIC stands for Analysis and Simulation of Inductors and Transformers in Integrated Circuits. Use ASITIC to design, analyze, and model the electrical and magnetic behavior of passive metal structures residing above a lossy conductive substrate.
Most users of ASITIC are designing inductors and transformers for Si RF/microwave circuits. But ASITIC is not limited to this application or technology alone. You can analyze substrate coupling, interconnect parasitics, and lossy transmission lines with ASITIC as well. For more information:
The units are in milliOhms/sq. For a typical process this number is between 1 and 100.
Unless otherwise stated:
Yes, use the JOIN command. JoinShunt X Y Z ... connects them in shunt and JOIN X Y connects structures X and Y in series. Note that X and Y are arbitrary structures and through repeated calls to JOIN you can create many parallel/series structures.
The PHASE of a structure represents the direction of current flow from segment to segment. (The "ShowPhase" command shows the direction of current flow in Version 10.20.99 and up.)
This can be significant when more than one structure is present and one wishes to examine the magnetic coupling from one structure to the other. For instance, in a transformer this phase plays an important role. Furthermore, when joining spirals in series make sure that the structures have the correct PHASE. For instance, if M > 0 for two spirals and you join them in series, you expect the inductance to increase to L1+L2+2*M. But if the phase is wrong, you will get L1+L2-2*M.
The ORIGIN command is used to place structures relative to the chip origin. Even with only one spiral is present, the ORIGIN can be important. Do not abut structures to the chip boundaries as the boundary conditions at the chip boundaries do not allow fields to penetrate the 'walls' of the boundary. Always use a chip-size larger than the largest physical dimension of your structure to avoid this.
Yes, use the CIFSAVE command to save the currently loaded structures into a CIF file. In an older version of ASITIC you may need to specify the scale and grid size.
scale=1and
1/(grid size)=100are common settings. If you are using a new release of ASITIC, the CIFSAVE command takes arguments. Type `help CIFSAVE' for more information. Also, see the Importing CIF Files into Cadence application notes.
Vias are supported in a limited fashion. The capacitance and magnetic coupling between vias is ignored. Only the resistance and inductance of vias is included in the analysis.
Vias can be the limiting factor for many designs utilizing baluns or symmetric inductor and inclusion of losses due to the vias are important. This will sometimes influence the number of turns in an optimization of a symmetric structure since new turns involved level interchanges which accrue resistance.
Yes, to create a balun use the balun command. In general, any pair of inductors can be treated as a transformer.
Similar to the pi parameters, the transformer model is a 2-port circuit representation of the 2-port parameters of the transformer, as shown in the figure below.

To make the circuit representation unique, a ground resistance is used. This ground resistance, though, can also show up in measurement results since many times the primary and secondary ground share a common path to the actual ground used in the measurements.
Read my thesis on-line or order by book.
The substrate tap is a metal conductor that grounds the surface of the substrate. Most integrated circuits use substrate taps to collect the substrate current injected by passive and active devices. You are not required to use a substrate tap but due to substrate conductivity lateral currents flow into the tap and the substrate loss will depend on the location of the substrate tap. You can model this effect by creating a substrate contact metal layer in the technology file and using the pix or 2portx commands to correctly extract the substrate effects.
The pi parameters do not really model the spiral but in fact represent the 2-port parameters of the structure at a particular frequency. The pi parameters are simply a one-to-one translation of the 2-port parameters into a circuit representation. If you like, this is a narrow-band or single frequency model of the structure. You will notice that the pi parameters vary as a function of frequency. You can construct a frequency-independent model the spiral by optimization, or by fitting the model parameters to the 2-port parameters of the structure. Use the 2portx command to calculate the 2-port parameters of a structure over a frequency range. See the next question for more details.
Use the 2portx command to calculate the 2-port parameters (s or y or whatever is most appropriate). Then select a circuit representation of the 2-port network such as the following.

Q1 represents the Q of the 2-port if you were to ground the inner port of the spiral. Similarly, Q2 represents the Q looking in from the inner port and grounding the outer port. Usually Q1 > Q2 since Q2 has extra substrate losses associated with the bottom metal layer. For symmetric inductors Q1 ~ Q2. Q3 or Qd represents the differential Q if you were to drive the structure differentially. Qd > max(Q1,Q2) since the substrate injection is minimized. Note that the concept of the outer and inner port of the spiral depends on the PHASE of the spiral.
Physically L (inductance) should decrease as a function of frequency since at higher frequencies internal inductance decreases as the magnetic field is prevented from penetrating the volume of conductors reducing the inductance to its asymptotic external limit. But when you observe the pi parameters for a high Q inductor, you will notice that inductance increases near the self-resonant frequency before changing sign as you cross the self-resonant frequency. For a low Q inductor the inductance decreases monotonically.
This effect is caused by the capacitance in shunt with the inductor. This capacitor has two components, a high-Q coupling capacitance through the air/oxide and a low-Q substrate capacitance. This capacitance eventually resonates the inductance and thus beyond self resonance the reactance becomes negative, or simply capacitive. Before self-resonance, though, the reactance of a high-Q structure peaks and close to self-resonance the imaginary part of the reactance divided by frequency (the "inductance") is larger than the value obtained far below self-resonance and this reactance increases faster than a linear function. This is why the inductance shows a boost close to self-resonance.
On the other hand, if the self-resonance occurs through a low Q capacitor, such as the substrate, then you will not observe this peaky behavior and you will simply notice a decrease in inductance. If significant eddy currents flow, then the inductance will also decrease as substrate currents in the substrate produce a magnetic field that tends to cancel the impressed magnetic field.
In answer to the second question, yes, it is physical. If you examine the real part of the input impedance of the 2-port network (with open or short on the other port) you will always discover a positive real part. Remember the pi network is just a translation of the 2-port parameters into a particular circuit representation. If this circuit representation is trying to represent a capacitor as an inductor, for instance, then the numbers will look funny. Hence when the device self-resonates, the inductance will to negative. To understand why Rseries goes negative is a bit more complicated but it can be understood by considering a Y to delta transformation of a two port network linked by lossy capacitors.
Yes,ASITIC models skin effect with the pix and indmat commands or through the various 2-port commands 2px by sub-dividing segments in width/thickness and generating the partial inductance matrix. The order of the matrix is reduced to produce a frequency dependent complex "inductance" matrix. The real part of this matrix increases as a function of frequency as it models skin and proximity effects.
For the simple pi command, the resistance is calculated at DC and then a closed-form expression is used to estimate the skin effect in the conductor at high frequency. This neglects proximity effects, though.
ASITIC now models eddy currents for "Manhatten" geometries using a fast 2D approximation. This has been tested against measurement for square single and multi-layer structures.
Versions prior to 10.20.99No. ASITIC calculates the magnetostatic partial inductance matrix in free space neglecting the substrate completely. Thus, no magnetically induced currents are assumed to exist in the substrate. For highly conductive substrates (less than 1 ohm-cm) , which can be found in CMOS processes, eddy currents do exist and severely limit the Q at higher frequencies. To address this problem, upgrade to the latest version of ASITIC.
Version 5.2.99 and up GENDATA is now built-in and not a separate program. Running pix, for instance, will generate the data files if they do not already exist. If you do not want to generate a physical file, use the "TechIO" command to turn off the writing to disk option.
Versions prior to 5.2.99
No. ASITIC works without GENDATA but only the fast/simple pi family of commands work. These commands do not simulate the 3-D substrate coupling that occurs between segments of a structure, or between two separate structures.
ld.so.1: asitic.SunOS.5.6: fatal: libXext.so.6.0: can't open file: errno=2
Fisrt, make sure you have a LD_LIBRARY_PATH environmental variable defined and set to the correct directory. If you still have this problem, it's because ASITIC is linked dynamically and thus requires the lib$EXT.so.6.$VER libraries instead of the lib$EXT.so.$VER library. You might resolve this problem temporarily by creating a link such as:
ln -s $LIBNAME.so.0 $LIBNAME.so.6.0
Another option is to update your libraries. For HP-UX, the same comments apply except the environmental varialbe is SHLIB_PATH. The program chatr may also be of some assitance under HP-UX.
Yes, but it is in development. I hope to release this version in the future but I have been saying this for a long time. Right now the real priority is improving the core of ASITIC rather than the interface. But I wholeheartedly recommend using the Linux version as it runs fastest.
Without a doubt, the Linux version running on a Pentium II+ based system is the best. The reason for this stems from the fact that Intel has released their BLAS 3 level code which allows the LAPACK routines, used heavily in matrix inversions, to perform optimally. LAPACK code utilizes the cache to maximize throughput from memory into the CPU in order to run the FPU at maximum capacity. LAPACK cannot do this without some awareness of the underlying hardware. This awareness is provided by the BLAS level 3 code. While the Sun and HP versions of the code utilize the generic netlib FORTRAN implementation of BLAS, this code is non-optimal.
If you possess BLAS code for your platform, please inform me and I can send you an optimized version of ASITIC. At UC-Berkeley we have access to the Sun High Peformance Library so I am able to dynamically link ASITIC with this code. But this code is only available at run time and you must have this library on your machine as well. Let me know if you are interested in obtaining an optimized version of ASITIC. For instance if you have access to MLIB for HP-UX or if you are running on a DEC alpha platform you will be able to get access to BLAS.
The difference in speed is dramatic. I run ASITIC on a P-II 400MHz platform and matrix inversions on the order 1000x1000 are performed in seconds as compared to several minutes on other platforms.
Linux 2.2 ELF binary, SunOS and Solaris (2.5, 2.6), HP-UX 9 and 10. All code compiled with gcc libraries and X11R6 X libraries.
If there is another platform you wish to use, please inform me and we will make arrangments to port the code. Generally ASITIC ports easily to UNIX systems running X.