LVS Run Problem in Virtuoso Tool

M

meghna

Guest
Hi,
I am using Virtuoso tool of Cadence to run the LVS. I am getting
'Analysis Job Failed' error.
In the LVS directory, no netlist is getting generated. The 'si.log' file
has following global error -
Cannot find switch master cell for instance M14 in cellView
(inverter_adc_lvs schematic) from viewlist 'lvs schematic gate_sch
cmos_sch '

and similar errors for every transistor.

If someone knows the solution, please reply soon.

Thanks!
 
Hi,
I am using Virtuoso tool of Cadence to run the LVS. I am getting
'Analysis Job Failed' error.
The tool is rather called Diva, i guess.

In the LVS directory, no netlist is getting generated. The 'si.log' file
has following global error -
Cannot find switch master cell for instance M14 in cellView
(inverter_adc_lvs schematic) from viewlist 'lvs schematic gate_sch
cmos_sch '
your transistors should have a lvs view. if not, then are you sure your
design kit is made for use with Diva ? maybe it's setup to use another
verification tool-
if you have write acces to the library, you could try copying the
symbols to lvs views.

stéphane
 
Hi,
Thanks for the reply. I have checked the transistors and they have 'auLvs'
view, which may be compatible for LVS run. But the si.env file (which is
automatically generated in LVS directory) takes these definitions --
simViewList = '("lvs" "schematic" "gate_sch" "cmos_sch")
simStopList = '("lvs")
How can I change the enviornment so that the 'aulvs' can replace the 'lvs'
view? (Even if I change the si.env file, next time the same view 'lvs' is
being taken.)
I am using the transistors from standard 'analogLib' library so don't have
the write permission.

Thanks and Regards
 
You are using the analog libraries, so you have to use analog mode. I
don't know why they did things differently than the digital flow, but
set the shell environmental variable CDS_NETLISTING_MODE to Analog
before starting the tool. This changes a number of setting, including
the switch and stop lists.

On Sat, 05 Mar 2005 09:36:40 -0500, "meghna" <meghna@ee.iitb.ac.in>
wrote:

Hi,
Thanks for the reply. I have checked the transistors and they have 'auLvs'
view, which may be compatible for LVS run. But the si.env file (which is
automatically generated in LVS directory) takes these definitions --
simViewList = '("lvs" "schematic" "gate_sch" "cmos_sch")
simStopList = '("lvs")
How can I change the enviornment so that the 'aulvs' can replace the 'lvs'
view? (Even if I change the si.env file, next time the same view 'lvs' is
being taken.)
I am using the transistors from standard 'analogLib' library so don't have
the write permission.

Thanks and Regards
 
Can you tell me how to set the shell environmental variable
CDS_NETLISTING_MODE to Analog. Which file need to be changed? Is a user
permitted to do that (if so then how) or a administrator login is needed.

Regards
 
Can you tell me how to set the shell environmental variable
CDS_NETLISTING_MODE to Analog. Which file need to be changed? Is a user
permitted to do that (if so then how) or a administrator login is needed.

Regards
 
It's basic Unix stuff. Any user can change their own shell variables:

setenv CDS_NETLISTING_MODE Analog

Put it in your .login, .cshrc or .profile, as appropriate to the shell
you use.

On Sun, 06 Mar 2005 01:14:36 -0500, "meghna" <meghna@ee.iitb.ac.in>
wrote:

Can you tell me how to set the shell environmental variable
CDS_NETLISTING_MODE to Analog. Which file need to be changed? Is a user
permitted to do that (if so then how) or a administrator login is needed.

Regards
 
Diva Physical Verification wrote:
It's basic Unix stuff.
This is not a UNIX but a CADENCE stuff!

Any user can change their own shell variables:

setenv CDS_NETLISTING_MODE Analog

Put it in your .login, .cshrc or .profile, as appropriate to the shell
you use.
First: the appropriate has typically different syntax, there are
other shells than CADENCE love child csh

Second: it is a bad praxis to put program specific variables
in shell initialization scripts

Third: create a CADENCE/Virtuoso start script and put
such variables in there! OR put them in your .cdsinit
(working directory)
 
[snip snip]
As for the .cdsinit, it will not work since it has to be a shell
environmental variable, set before the program starts.
Why not ?
I saw some PDKs that set this var in libInit.il , and they work just
fine. Some other DKs customise the LVS submission form to add a radio
field to select the netlisting mode, so it is possible to change that at
a late stage, just before netlisting.

Does not the "si" netlister check the value of this shell env var on
every call ?

If you want to give it a try, using any decent shell:
echo 'setShellEnvVar("CDS_NETLISTING_MODE=Analog")' >> .cdsinit

Since the libinit is stg that runs after cdsinit, my first guess is
that this would work too.
 
Yes, it may work for si since that runs as a child process. The last
time I had this as a customer complaint, it was for the other portions
of the tool that depend on the setting of this shell variable. Like the
LVS form itself, which has extra buttons at the bottom for Analog mode.

I would not be surprised if someone came up with a way around the
problem finally, but when it was first found we were told there was
nothing to do but exit the tool, set the variable, then start the tool
again. A point that seems to support this is that in recent releases the
shell wrapper for icfb sets the shell variable to Analog before
executing the binary.

Personally, I wanted the shell variable scrapped and the use of an
analog library to set the internal mode variables properly. Even better
would have been to get rid of the special behavior completely, making it
part of the normal processing, when the tool saw it was needed.

Just for your information, the libInit.il file is executed when the
library is first accessed, if the library has such a file. Not after
..cdsinit as a matter of course. If the LVS code that checks the variable
and sets a global flag is executed before the library is accessed, then
setting the variable in libInit.il will have no effect on LVS behavior,
though the si behavior would be under separate control.

On Sun, 06 Mar 2005 21:41:19 -0500, fogh <adff@xs4all.nl> wrote:

As for the .cdsinit, it will not work since it has to be a shell
environmental variable, set before the program starts.
Why not ?
I saw some PDKs that set this var in libInit.il , and they work just
fine. Some other DKs customise the LVS submission form to add a radio
field to select the netlisting mode, so it is possible to change that at
a late stage, just before netlisting.

Does not the "si" netlister check the value of this shell env var on
every call ?

If you want to give it a try, using any decent shell:
echo 'setShellEnvVar("CDS_NETLISTING_MODE=Analog")' >> .cdsinit

Since the libinit is stg that runs after cdsinit, my first guess is
that this would work too.
 
Hi,
Actually I was using 'bash' shell instead of 'csh' shell. That command was
already there in my .cshrc.ic file. When I changed the shell, it worked
properly.
Thanks again!
 
Diva Physical Verification wrote:
Since most Cadence customers using Diva are also using the AMS flow,
they always run with CDS_NETLISTING_MODE set to Analog. While a script
for starting the tool is better, I notice you didn't bother to tell him
how to do it.
This is a typical consequence of top-posting:
my replay was to your post and not to the original!
 
Yes, this use of shell environmental variables is specific to Cadence,
and is not the best idea anybody had. But the question was "how to set
the variable", not "what is the variable for", and setting environmental
variables is basic Unix stuff.

Since most Cadence customers using Diva are also using the AMS flow,
they always run with CDS_NETLISTING_MODE set to Analog. While a script
for starting the tool is better, I notice you didn't bother to tell him
how to do it. He is obviously unfamiliar with Unix, so I gave him the
simplest solution.

Feel free to be constructive instead of uselessly critical. Post a shell
script for him to use. And since you feel there are multiple better
shells, include a script for each and every one of them, with
instructions for recognizing which shell he uses. After all, the
original poster does not appear to be Unix literate.

As for the .cdsinit, it will not work since it has to be a shell
environmental variable, set before the program starts.

On Sun, 06 Mar 2005 20:23:33 +0100, PM <pm@gmx.de> wrote:

Diva Physical Verification wrote:
It's basic Unix stuff.

This is not a UNIX but a CADENCE stuff!

Any user can change their own shell variables:

setenv CDS_NETLISTING_MODE Analog

Put it in your .login, .cshrc or .profile, as appropriate to the shell
you use.

First: the appropriate has typically different syntax, there are
other shells than CADENCE love child csh

Second: it is a bad praxis to put program specific variables
in shell initialization scripts

Third: create a CADENCE/Virtuoso start script and put
such variables in there! OR put them in your .cdsinit
(working directory)
 
On Sun, 06 Mar 2005 17:27:09 -0800, Diva Physical Verification
<diva@cadence.com> wrote:

I would not be surprised if someone came up with a way around the
problem finally, but when it was first found we were told there was
nothing to do but exit the tool, set the variable, then start the tool
again. A point that seems to support this is that in recent releases the
shell wrapper for icfb sets the shell variable to Analog before
executing the binary.
The reasons for the two netlisting modes are entirely historical. Probably the
difficult decision to consolidate on one netlisting mechanism should have been
taken 15 years ago - it's too late now though I guess. So, we have to pay the
price and have two netlisting modes - Analog (CDF based) and Digital (NLP
based).

You can change the netlisting mode within DFII, by doing the following:

setShellEnvVar("CDS_Netlisting_Mode=Analog")
cdsSetNetlistMode()

The second function sets the internal setting of the netlisting mode based
on the current value of the UNIX environment variable. This function has
existed for as long as I can remember, but was only made public relatively
recently (I think). It's documented (in the OSS Reference Manual). Here's the
quick reference (cdsFinder) help for it:

cdsSetNetlistMode()

This function is used to set the SHELL environment variable
CDS_Netlisting_Mode to either Analog, Digital or Compatibility.This function
is used from within the workbench's SKILL environment to change the
CDS_Netlisting_Mode without quitting and restarting the workbench.

So the two lines above could be put in your .cdsinit file, which would
keep PM happy.

Regards,

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top