std cells4

9
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 file 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 difference, so I don't do that anymore. Now I type: db_install -model ami06.m -subckt scells.scs ...and I get: ==== Simplify Mode ==== www.chiptalk.org http://www.chiptalk.org/modules/newbb/print.php... 1 of 9 Sunday 05 April 2015 12:38 PM

Upload: sriramnaidugorle

Post on 07-Apr-2016

9 views

Category:

Documents


3 download

TRANSCRIPT

SignalStorm problemsPosted 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, sinceapparently we don't have an HSPICE license (shouldn't the HSPICE license be includedwith 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=satends inv

Note that I changed this netlist from what the netlister produced. First, I replaced theglobal "vdd!" and "0" nets with "vdd" and "gnd", then I added these to the subcircuitinterface. From what I understand, SignalStorm won't recognize global supply nets. Also, Ichanged the model names to "PFET" and "NFET" to match the special SignalStorm SPICEmodel file from the OSU-StdCells.

So far so good. Now, I start SignalStorm with "slc".

Then I type:

set_var SG_SPICE_SIMPLIFY trueset_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 difference, so Idon't do that anymore.

Now I type:

db_install -model ami06.m -subckt scells.scs

...and I get:

==== Simplify Mode ====

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

1 of 9 Sunday 05 April 2015 12:38 PM

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

Reading MODEL: NFETReading MODEL: PFET

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

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

Reading SUBCKT:INVExpanding SUBCKT:INVWriting : scells.ipdb/INV.design

Note: scells.scs is the file shown above, while ami06.m is actually "ami05.m" from thesignalstorm 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 generatedWriting : scells.ipdb/INV.design/simulate/specWriting : 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----------------------------------------

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

2 of 9 Sunday 05 April 2015 12:38 PM

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 problemsPosted by jgrad on 2005/12/13 12:46:36

Hi,

HSpice is actually a Synopsys product, and comes with the Synopsys University Program. Ifyou 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 inpublic. Recently I did a quick run of the OSU cells with Spectre and it worked fine. Iactually used Spectre models and Spice netlists. That is because the model is handed downto Spectre unchanged. But slc stores the netlist in its own database and then writes out aspectre netlist from scratch. So it doesn't matter which format is used for the input data (aslong as SP_SPICE_SIMPLIFY or something like that isn't used). I created the spectre modelwith 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 Spicenetlist, that might be the easiest way of getting it to work.

Thanks,Johannes

Re: SignalStorm problemsPosted 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 withgenerating the simulation vectors but I was wrong. My problem was that I was mixing

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

3 of 9 Sunday 05 April 2015 12:38 PM

SPICE models with a Spectre netlist. Once I converted the NCSU SPICE models to Spectre-format 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'msetting up the simulation daemon by running "ipsd", then "ipsc -w 4", then "ipsc -w 4 -nspectre". Everything appears to start up fine, because after the third command I get amessage 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 -sspectre" command, I get:

slc> db_spice -keep_log -s spectre DESIGN PROCESS #ID STATUS ------------+------------+---------+--------------INV typical D0000 SIMULATEINV 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 fileto determine the cause of the failure. The SPICE simulation log file canbe 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 thesigstormlc.work directory but a file named .slcrc containing a set of variables.

If I turn off 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 SIMULATEINV typical D0001 SIMULATE

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

4 of 9 Sunday 05 April 2015 12:38 PM

============|============|=========|==============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 fileto determine the cause of the failure. The SPICE simulation log file canbe 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 likeSignalStorm 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 define a cell group in theSignalStorm setup file that will match all cells that aren't matched by the other groups? Inother words, how do you define 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 suffixes?

Thanks,-Jason

Re: SignalStorm problemsPosted 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 thenetlist and simulation runs. This is turned off by default since so much data is generated.

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

5 of 9 Sunday 05 April 2015 12:38 PM

During debug, you may want to usedb_spice -keep_log -d INVX1

to process only a single cell until it goes through. Then you can try "AND*" to test somemore cells.

I am not sure about the default group. I'll let you know if I find something.

thanksJohannes

Re: SignalStorm problemsPosted 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 -dswitch to specify the cell. It's very strange...

Thanks,-Jason

Re: SignalStorm problemsPosted by jgrad on 2005/12/13 13:50:43

Forgot to ask, which version of TSI are you using?

Re: SignalStorm problemsPosted by jbakos on 2005/12/13 13:58:38

Johannes,

It's 4.2USR3. This should be the latest version.

Thanks,-Jason

Re: SignalStorm problemsPosted 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 thatyou use "-keep_log" already.

So the problem is really that slc can't create files in the first place. The LSF commands area good way to debug that, without having to worry about the simulation deamons.

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

6 of 9 Sunday 05 April 2015 12:38 PM

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 thedirectory really be? Are there any special circumstances that could cause the directoryname to be mishandled?

When you use the LSF submission command you only work on the local machine, so youmay want to move your slc data to a local folder like /tmp and try again. That way we couldsee if the network has anything to do with it.

Johannes

Re: SignalStorm problemsPosted 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 dothe 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 SIMULATEINV 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>.logfile to determine the cause of the failure. The SPICEsimulation log file can be found in the sigstormlc.work/<DESIGN>_<PROCESS>_<ID>/directory.

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- - Total Simulation : 2

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

7 of 9 Sunday 05 April 2015 12:38 PM

- 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... itdoesn't seem to have any problem reading files or writing the database directory, or evenwriting empty log and work directories.

Thanks,-Jason

Re: SignalStorm problemsPosted by jbakos on 2005/12/14 8:34:41

Johannes,

Downgraded TSI to the version without any updates. The problem did not occur. Looks likethere's a bug in USR3. I'm going to try USR2 and a fresh install of USR3 to track down theproblem.

-Jason

Re: SignalStorm problemsPosted 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 thistime. So you might be okay using USR2.

Johannes

Re: SignalStorm problemsPosted by jbakos on 2005/12/14 9:38:41

Johannes,

Confirmed: USR3 exhibits the problem, while USR2 does not exhibit this problem andworks perfectly. Why am I always the one who encounters these bugs? I will notifyCadence 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 file...for example, the ami06 OSU-stdcell library contains cells that do not have an X1, X2, X4, orX8 suffix. An example of this are the DFFSR and LATCH cells. From what I can see in yoursetup.ss file, SignalStorm would not put these cells into any group and therefore therewould be no indexes for them. How does SignalStorm handle this?

Thanks,

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

8 of 9 Sunday 05 April 2015 12:38 PM

-Jason

Re: SignalStorm problemsPosted 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 myunderstanding 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 specific 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 toadmit, it looks like we didn't do that in the OSU library. It's been a while so I'm not exactlysure what we did there.

Johannes

Re: SignalStorm problemsPosted by jgrad on 2005/12/17 22:49:10

Just as a quick follow up, I created a simple Signalstorm tutorial in case anybody isinterested:

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

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

9 of 9 Sunday 05 April 2015 12:38 PM