CISL Tutorials

Running Nanosim


If you haven't read the CAD tool information page, READ THAT FIRST.

Nanosim is a fast event-driven circuit simulation engine.  It differs from HSPICE in that the circuit is partitioned into a set of stages, usually defined by transistor connected together by their sources and drains (referred to as channel-connected components, CCCs, or channel-connected regions, CCRs).  On when the inputs of the CCC change is the circuit simulation engine envoked on that CCC.  In addition, Nanosim uses simplified device models to speed analysis.

Nanosim work very well on digital designs.  For mixed-signal designs, you must use care in how the design is partitioned and the accuracy options you use to get good results on the analog pieces.  This will be true for SRAM sense amps, for example, or any PLL or DLL designs.

You will use Nanosim for functional verification; that is, to run large number of patterns through your design to make sure that your design is logically correct.  You may also use Nanosim for timing verification, although it is always a good idea, given the approximate nature of the device models, to simulate at least a few patterns in HSPICE.  You will find, however, that Nanosim is dramatically faster than HSPICE on large designs.

Nanosim is largely run outside of the Cadence environment.  It is a Synopsys tool; consequently, neither Synopsys nor Cadence has a particular interest in getting a good Cadence integration..  To run Nanosim on your design, you'll need to perform the following steps:

Instead of using sources in your schematic to provide stimulus, you can also use a vector file.  A simple vector file might be the following:

type vec
signal reset_inst start_inst
radix 1 1

0 1 0
10 0 0
5100 0 1

Another larger stimulus example is given here.

This file, stored for example as the file "stimulus", can be used to set the values of the signals reset_inst and start_inst.  The first column is the time (in nanoseconds) and the second and third columns are the logic values.  With the vector file, Nanosim must be invoked with the command:
nanosim -n design.spi -nvec stimulus -c config.cfg