Synopsys Epic Tools
Notes on Using Nanosim
Introduction
Synopsys now owns the Epic tools. Originally known as Timemill and
Powermill, Synopsys merged them into the Nanosim product, which is a fast
transistor simulator, simulating 10-1000 times faster than Spice with 5%
accuracy. Most importantly, it has wonderful power analysis and reporting
features.
General
-
The manual can be accessed with
acroread /usr/cluster/synopsys/documents/MasterTOC.pdf &
-
Nanosim cannot handle diodes, so the protection diodes must be stripped
from the netlist. Use this sed script to take care of this:
> sed -f rmd.sed inputnetlist.sp > outputnetlist.sp
>less rmd.sed
/DND/ d
/DPD/ d
/DWA/ d
/+N=/ d
/BV/ d
/CTP/ d
/+GAP/ d
/TPB/ d
/PHP/ d
/+MJ=0.42/ d
/+MJ=.34/ d
/+MJ=0.45/ d
-
To tell Nanosim what the "high" voltage is add
*epic_tech = "voltage 1.0"
to the second line of the netlist (first line is comment). If
you don't, Nanosim will try to figure it out from the netlist sources and
the models.
-
remove <CR> from input files
-
Powermill did have problems simulating at Vdd = 0.6V and below with the
Jupiter models.
-
Nanosim runs a technology generator before running the simulation on any
new transistor models or dimensions that it finds. The -z option
can help control this. You can point to existing technology files
to make sure this isn't run each time. The "techViewer" program can
be used to look at the contents of the technology generator. It is
a great tool that shows you piles of curves for the devices.
-
script epic2m that takes an Epic format output file with just the
current waveform (use cfgi) and generates a standard "x y" data
file that can be read into Matlab.
-
Z = trapz(inc_mux_i(:,i),inc_mux_i(:,2));
-
inc_mux_i is the input matrix
-
vtran is a great tool to convert different files to or from Epic
format or many others
Analog/Digital Function Model Interface (ADFMI)
-
ADFMI lets you simulate C models of blocks alongside the transistor models.
I used this for modeling an SRAM
-
The HPs couldn't compile properly, so had to run on Suns.
-
all ADFMI models need to be in one file with one initialization procedure
-
fmFree seems to have been changed so you now have to put (char*) before
the name of the pointer
-
void type for the main procedure
-