0% found this document useful (0 votes)
82 views9 pages

Signalstorm Problems

The document discusses issues getting SignalStorm to work with Spectre simulation engine instead of HSPICE. The key issues were: 1) Mixing SPICE models with a Spectre netlist, which was resolved by converting models to Spectre format. 2) Unable to get simulations to run, as the simulation logs and work directories were empty. Setting up the simulation daemon and LSF variables did not resolve the issue. 3) Questions about defining a default cell group to match unspecified cells, and why the simulation logs are not being kept despite using the -keep_log switch.

Uploaded by

SriramNaiduGorle
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views9 pages

Signalstorm Problems

The document discusses issues getting SignalStorm to work with Spectre simulation engine instead of HSPICE. The key issues were: 1) Mixing SPICE models with a Spectre netlist, which was resolved by converting models to Spectre format. 2) Unable to get simulations to run, as the simulation logs and work directories were empty. Setting up the simulation daemon and LSF variables did not resolve the issue. 3) Questions about defining a default cell group to match unspecified cells, and why the simulation logs are not being kept despite using the -keep_log switch.

Uploaded by

SriramNaiduGorle
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

www.chiptalk.

org

http://www.chiptalk.org/modules/newbb/print.php...

SignalStorm problems
Posted by jbakos on 2005/12/13 9:24:36
Hello!
I'm having some issues with SignalStorm.
First, I'm trying to get SignalStorm to work using spectre as the simulation engine, since
apparently we don't have an HSPICE license (shouldn't the HSPICE license be included
with our Cadence licenses?).
Here's where I am. Let's say I have a simple inverter spectre netlist. Here it is...
subckt inv A Z vdd gnd
\+1 (Z A vdd vdd) PFET w=6e-06 l=6e-07 as=9e-12 ad=9e-12 ps=9e-06 \
pd=9e-06 m=1 region=sat
\+0 (Z A gnd gnd) NFET w=3e-06 l=6e-07 as=4.5e-12 ad=4.5e-12 ps=6e-06 \
pd=6e-06 m=1 region=sat
ends inv

Note that I changed this netlist from what the netlister produced. First, I replaced the
global "vdd!" and "0" nets with "vdd" and "gnd", then I added these to the subcircuit
interface. From what I understand, SignalStorm won't recognize global supply nets. Also, I
changed the model names to "PFET" and "NFET" to match the special SignalStorm SPICE
model le from the OSU-StdCells.
So far so good. Now, I start SignalStorm with "slc".
Then I type:
set_var SG_SPICE_SIMPLIFY true
set_var SG_SPICE_SUPPLY1_NAMES "vdd"
set_var SG_SPICE_SUPPLY0_NAMES "gnd"
db_open scells
Note: setting SG_SIM_TYPE and SG_SIM_NAME don't seem to make ANY dierence, so I
don't do that anymore.
Now I type:
db_install -model ami06.m -subckt scells.scs
...and I get:
==== Simplify Mode ====

1 of 9

Sunday 05 April 2015 12:38 PM

www.chiptalk.org

http://www.chiptalk.org/modules/newbb/print.php...

MODEL FILE: ami06.m ( #size = 4689 )


Reading MODEL: NFET
Reading MODEL: PFET
SUBCKT FILE: ami06.m ( #size = 4689 )

SUBCKT FILE: scells.scs ( #size = 244 )


Reading SUBCKT:INV
Expanding SUBCKT:INV
Writing : scells.ipdb/INV.design

Note: scells.scs is the le shown above, while ami06.m is actually "ami05.m" from the
signalstorm directory of the OSU-stdcells.
Okay, so far so good!
Now I run into a brick wall.
I type:
db_gsim
...and I get:
=============================================
ENVIROMENT PARAMETERS FOR VECTOR GENERATION
=============================================
DS_REDUCT_DELAY_FLAG
: true
DS_REDUCT_RACE_FLAG
: true
DS_MEASURE_HOLD_FLAG
: true
DS_MEASURE_REMOVABLE_FLAG : true
DS_INTERNAL_RACE_FLAG
: true
=============================================
Reading : scells.ipdb/INV.design
==============================
DESIGN : INV
==============================
---------------------------------------------------------=> 0 vectors generated
Writing : scells.ipdb/INV.design/simulate/spec
Writing : scells.ipdb/INV.design/simulate/subckt
[WARNING(db_gsim)]alone net : A is found. => [reset to ground]
[WARNING(db_gsim)]alone net : Z is found. => [reset to ground]
[WARNING(db_gsim)]alone net : VDD is found. => [reset to ground]
[WARNING(db_gsim)]alone net : GND is found. => [reset to ground]
================================
stimulus generation summary
================================
Name
#MOS
#DVEC
#RVEC
----------------------------------------

2 of 9

Sunday 05 April 2015 12:38 PM

www.chiptalk.org

http://www.chiptalk.org/modules/newbb/print.php...

INV
0
0
0
*
---------------------------------------0
0

It won't generate simulation vectors. I don't understand why. Any thoughts?


Thank you so much in advance!!!
-Jason

Re: SignalStorm problems


Posted by jgrad on 2005/12/13 12:46:36
Hi,
HSpice is actually a Synopsys product, and comes with the Synopsys University Program. If
you have it, you can point $LM_LICENSE_FILE to that license and slc will pick up Hspice.
I am using slc successfully with Spectre for a long time, but I can't publish my scripts in
public. Recently I did a quick run of the OSU cells with Spectre and it worked ne. I
actually used Spectre models and Spice netlists. That is because the model is handed down
to Spectre unchanged. But slc stores the netlist in its own database and then writes out a
spectre netlist from scratch. So it doesn't matter which format is used for the input data (as
long as SP_SPICE_SIMPLIFY or something like that isn't used). I created the spectre model
with the conversion toolbox in icfb.
db_open osu05_stdcells
set_var SG_SIM_NAME "spectre"
set_var SG_SIM_TYPE "SPECTRE"
db_install -model allModels.scs -subckt osu05_stdcells.sp
set_var SG_SPICE_SUPPLY1_NAMES "vdd vdd2"
set_var SG_SPICE_SUPPLY0_NAMES "gnd gnd2"

This works for me. If you have a chance to try it without the SIMPLIFY and with a Spice
netlist, that might be the easiest way of getting it to work.
Thanks,
Johannes

Re: SignalStorm problems


Posted by jbakos on 2005/12/13 13:32:49
Johannes,
Your message revealed the solution. I didn't think that the models had anything to do with
generating the simulation vectors but I was wrong. My problem was that I was mixing

3 of 9

Sunday 05 April 2015 12:38 PM

www.chiptalk.org

http://www.chiptalk.org/modules/newbb/print.php...

SPICE models with a Spectre netlist. Once I converted the NCSU SPICE models to Spectreformat using spp, SignalStorm generated the vectors with no problems.
However, now I'm stuck at another problem. I can't seem to get the simulator running. I'm
setting up the simulation daemon by running "ipsd", then "ipsc -w 4", then "ipsc -w 4 -n
spectre". Everything appears to start up ne, because after the third command I get a
message saying that there's 300 available spectre licenses.
By the way, is this the correct sequence of operations?
Next I open SLC (on the same machine), but when I issue the "db_spice -keep_log -s
spectre" command, I get:
slc> db_spice -keep_log -s spectre
DESIGN
PROCESS
#ID
STATUS
------------+------------+---------+-------------INV
typical
D0000
SIMULATE
INV
typical
D0001
SIMULATE
============|============|=========|==============
INV
typical
2
2
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Simulation Summary
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*------------+------------+---------+------------+---------DESIGN
|
PROCESS |
#ID
|
STAGE
| STATUS
------------+------------+---------+------------+---------INV
typical
D0000
INITIAL
FAIL
INV
typical
D0001
INITIAL
FAIL
------------+------------+---------+------------+---------[INFO(db_spice)] Check the sigstormlc.log/<DESIGN>_<PROCESS>_<ID>.log file
to determine the cause of the failure. The SPICE simulation log file can
be found in the sigstormlc.work/<DESIGN>_<PROCESS>_<ID>/ directory.
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- Total Simulation : 2
- Total Passed
: 0(0%)
- Total Failed
: 2(100%)
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

...but when I check, there's NOTHING in the sigstormlc.log directory, and nothing in the
sigstormlc.work directory but a le named .slcrc containing a set of variables.
If I turn o the simulation daemon, I get this (as expected):
[ERROR(db_spice)]cannot establish client-server

When I try it using your LSF variables (SG_SIM_USE_LSF=1, SG_SIM_LSF_CMD="",


SG_SIM_LSF_PARALLEL=10), I get this:
DESIGN
PROCESS
#ID
STATUS
------------+------------+---------+-------------INV
typical
D0000
SIMULATE
INV
typical
D0001
SIMULATE

4 of 9

Sunday 05 April 2015 12:38 PM

www.chiptalk.org

http://www.chiptalk.org/modules/newbb/print.php...

============|============|=========|==============
INV
typical
2
2
[ERROR(db_spice)]t/f1/jbakos/cds_work/ss/sigstormlc.work: No such file or directory
[ERROR(db_spice)]t/f1/jbakos/cds_work/ss/sigstormlc.work: No such file or directory
[ERROR(db_spice)]t/f1/jbakos/cds_work/ss/sigstormlc.work: No such file or directory
[ERROR(db_spice)]t/f1/jbakos/cds_work/ss/sigstormlc.work: No such file or directory
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Simulation Summary
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*------------+------------+---------+------------+---------DESIGN
|
PROCESS |
#ID
|
STAGE
| STATUS
------------+------------+---------+------------+---------INV
typical
D0000
INITIAL
FAIL
INV
typical
D0001
INITIAL
FAIL
------------+------------+---------+------------+---------[INFO(db_spice)] Check the sigstormlc.log/<DESIGN>_<PROCESS>_<ID>.log file
to determine the cause of the failure. The SPICE simulation log file can
be found in the sigstormlc.work/<DESIGN>_<PROCESS>_<ID>/ directory.
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- Total Simulation : 2
- Total Passed
: 0(0%)
- Total Failed
: 2(100%)
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

...and again, there's nothing in the log or work directories. In this case, it looks like
SignalStorm is getting some garbage text when it queries for my current working directory.
Maybe these errors (ipsd/LSF) are related?
Also, here's another question for you... is there a way to dene a cell group in the
SignalStorm setup le that will match all cells that aren't matched by the other groups? In
other words, how do you dene a default group? Do you have to do something like this:
Group DEFAULT_GROUP {
CELL = * ;
};

...or will this group gobble up all the cells, even the ones with special suixes?
Thanks,
-Jason

Re: SignalStorm problems


Posted by jgrad on 2005/12/13 13:43:30
Hi,
can you add the switch "-keep_log" to the "db_spice" command? That way it will keep the
netlist and simulation runs. This is turned o by default since so much data is generated.

5 of 9

Sunday 05 April 2015 12:38 PM

www.chiptalk.org

http://www.chiptalk.org/modules/newbb/print.php...

During debug, you may want to use


db_spice -keep_log -d INVX1
to process only a single cell until it goes through. Then you can try "AND*" to test some
more cells.
I am not sure about the default group. I'll let you know if I nd something.
thanks
Johannes

Re: SignalStorm problems


Posted by jbakos on 2005/12/13 13:49:24
Johannes,
I am using the -keep_log switch, but it's still not keeping a log. I also tried using the -d
switch to specify the cell. It's very strange...
Thanks,
-Jason

Re: SignalStorm problems


Posted by jgrad on 2005/12/13 13:50:43
Forgot to ask, which version of TSI are you using?

Re: SignalStorm problems


Posted by jbakos on 2005/12/13 13:58:38
Johannes,
It's 4.2USR3. This should be the latest version.
Thanks,
-Jason

Re: SignalStorm problems


Posted by jgrad on 2005/12/13 13:59:35
Hi,
sorry about that, I should have read your last post more carfully, I should have realized that
you use "-keep_log" already.
So the problem is really that slc can't create les in the rst place. The LSF commands are
a good way to debug that, without having to worry about the simulation deamons.

6 of 9

Sunday 05 April 2015 12:38 PM

www.chiptalk.org

http://www.chiptalk.org/modules/newbb/print.php...

The source of the problem appears to be this path name:


t/f1/jbakos/cds_work/ss/sigstormlc.work

Did this get garbled up just by the website or is this what slc reports? What should the
directory really be? Are there any special circumstances that could cause the directory
name to be mishandled?
When you use the LSF submission command you only work on the local machine, so you
may want to move your slc data to a local folder like /tmp and try again. That way we could
see if the network has anything to do with it.
Johannes

Re: SignalStorm problems


Posted by jbakos on 2005/12/13 14:12:03
Johannes,
The path is actually garbled up. I already thought of trying it in /tmp. For example, if I do
the db_spice with LSF in /tmp/ss, I get the following error:
slc> db_spice -keep_log -s spectre
DESIGN
PROCESS
#ID
STATUS
------------+------------+---------+-------------INV
typical
D0000
SIMULATE
INV
typical
D0001
SIMULATE
============|============|=========|==============
INV
typical
2
2
[ERROR(db_spice)]/ss/sigstormlc.work: No such file or directory
[ERROR(db_spice)]/ss/sigstormlc.work: No such file or directory
[ERROR(db_spice)]/ss/sigstormlc.work: No such file or directory
[ERROR(db_spice)]/ss/sigstormlc.work: No such file or directory
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Simulation Summary
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*------------+------------+---------+------------+---------DESIGN
|
PROCESS |
#ID
|
STAGE
| STATUS
------------+------------+---------+------------+---------INV
typical
D0000
INITIAL
FAIL
INV
typical
D0001
INITIAL
FAIL
------------+------------+---------+------------+---------[INFO(db_spice)] Check the sigstormlc.log/<DESIGN>_<PROCESS>_<ID>.log
file to determine the cause of the failure. The SPICE
simulation log file can be found in the sigstormlc.work/<DESIGN>_<PROCESS>_<ID>/
directory.
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- Total Simulation : 2

7 of 9

Sunday 05 April 2015 12:38 PM

www.chiptalk.org

http://www.chiptalk.org/modules/newbb/print.php...

- Total Passed
: 0(0%)
- Total Failed
: 2(100%)
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

It looks like SLC can't seem to determine the correct current path. I have no idea why... it
doesn't seem to have any problem reading les or writing the database directory, or even
writing empty log and work directories.
Thanks,
-Jason

Re: SignalStorm problems


Posted by jbakos on 2005/12/14 8:34:41
Johannes,
Downgraded TSI to the version without any updates. The problem did not occur. Looks like
there's a bug in USR3. I'm going to try USR2 and a fresh install of USR3 to track down the
problem.
-Jason

Re: SignalStorm problems


Posted by jgrad on 2005/12/14 8:38:43
Hi,
thanks for the good news. I haven't upgraded to USR3 myself yet, been using USR2 all this
time. So you might be okay using USR2.
Johannes

Re: SignalStorm problems


Posted by jbakos on 2005/12/14 9:38:41
Johannes,
Conrmed: USR3 exhibits the problem, while USR2 does not exhibit this problem and
works perfectly. Why am I always the one who encounters these bugs?
I will notify
Cadence support about this issue. Thanks so much for your help, Johannes.
To revisit an earlier issue... I'm still curious about that default group in the setup.ss le...
for example, the ami06 OSU-stdcell library contains cells that do not have an X1, X2, X4, or
X8 suix. An example of this are the DFFSR and LATCH cells. From what I can see in your
setup.ss le, SignalStorm would not put these cells into any group and therefore there
would be no indexes for them. How does SignalStorm handle this?
Thanks,

8 of 9

Sunday 05 April 2015 12:38 PM

www.chiptalk.org

http://www.chiptalk.org/modules/newbb/print.php...

-Jason

Re: SignalStorm problems


Posted by jgrad on 2005/12/14 9:55:08
Hi,
the SLC manual is fairly cryptic when it comes to the simulation setup. Here is my
understanding of the setup, which may or may not be correct:
set_process: Set the default simulation conditions for the entire library
set_group: Set them for only a group of cells
set_cell: Set them for one specic cell
These are in increasing order of priority, meaning "set_group" will not overwrite "set_cell".
This would also mean "set_process" will catch all cells not covered otherwise. I have to
admit, it looks like we didn't do that in the OSU library. It's been a while so I'm not exactly
sure what we did there.
Johannes

Re: SignalStorm problems


Posted by jgrad on 2005/12/17 22:49:10
Just as a quick follow up, I created a simple Signalstorm tutorial in case anybody is
interested:
http://www.chiptalk.org/modules/wfsection/article.php?articleid=15
Thanks,
Johannes Grad

This Post was from: http://www.chiptalk.org/newbb/viewtopic.php?forum=2&topic_id=83

9 of 9

Sunday 05 April 2015 12:38 PM

You might also like