The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
May 18th, 2024, 9:31am
Pages: 1
Send Topic Print
Cadence cell-design tutorial question (Read 1859 times)
joel
Community Member
***
Offline



Posts: 43

Cadence cell-design tutorial question
Jun 04th, 2009, 4:23pm
 
Hi All,
 I'm trying to work through the cell-design tutorial bundled with Cadence Virtuoso.  I'm sure this is kindergarden stuff for most of you! But I'm stuck at the LVS step.

Netlisting the schematic works fine.
Creating the extracted view of the layout seems to work fine.
Netlisting the extracted view fails.

From the extracted-view window, I bring up the verify/lvs form.
I click the create-netlist for extracted-view, give it the appropriate names, set priority to 20 as instructed and click 'Run'.

Up comes the banner that says "Job Failed, you looser!".
From Info/log  I see the following error report, one for each transistor in the layout:

Cannot find switch master cell for instance +I3 in cellView (mux2 extracted) from viewlist 'auLvs extracted schematic' in library  'master'

It does this even if I use the extracted layout in the master library (supplied by Cadence), rather than the tutorial library (generated by me).

Any idea what's going wrong?  What's a switch master cell?  What's an auLvs view?

thnx, /jd
Back to top
 
 
View Profile   IP Logged
oermens
Community Member
***
Offline



Posts: 86

Re: Cadence cell-design tutorial question
Reply #1 - Jun 4th, 2009, 5:41pm
 
joel wrote on Jun 4th, 2009, 4:23pm:
Up comes the banner that says "Job Failed, you looser!".


Sorry I don't have anything to contribute, but does it actually say that? What tutorial is this exactly?
Back to top
 
 
View Profile   IP Logged
joel
Community Member
***
Offline



Posts: 43

Re: Cadence cell-design tutorial question
Reply #2 - Jun 4th, 2009, 6:04pm
 

Nah, it's not that directly insulting.  It just insidiously makes my afternoon miserable.

This is the tutorial that's bundled with Cadence Virtuoso.  If you bring up cdsDoc, expand the 'Virtuoso Layout Editor' chapter, there is a 'Cell Design Tutorial'.  You'll find it in $INSTALLDIR/dfII/samples/tutorials/le/cell_design .

I find that the layout uses various pCells for transistors, some of which have auLvs view and some not.  In the extracted view, all transistors are view 'ivpcell' of cell pfet or nfet as appropriate, from library sample.  sample/pfet and sample/nfet do not have auLvs views, presumably what the netlister is complaining about.

It just seems amazing to me that the tutorial has a bug, straight from Cadence.  So I must be doing something wrong.
Back to top
 
 
View Profile   IP Logged
joel
Community Member
***
Offline



Posts: 43

Re: Cadence cell-design tutorial question
Reply #3 - Jun 4th, 2009, 6:54pm
 
At a glance, the Diva rule file looks reasonable.  This is what is in my LVS run directory:

(lvsRules
   procedure((fetCompare lay sch)
       prog(nil
           if(((lay->l) && (sch->l))
               if((abs(((lay->l) - (sch->l))) > (0.1 * (sch->l)))
                   return(t)
               )
           )
           if(((lay->w) && (sch->w))
               if((abs(((lay->w) - (sch->w))) > (0.1 * (sch->w)))
                   return(t)
               )
           )
           return(nil)
       )
   )
   (compareDeviceProperty "nfet" fetCompare)
   (compareDeviceProperty "pfet" fetCompare)
)


I tried copying auLvs views into all  the various versions of n & p transistor cells in my library.  But I get the same error message.

The extracted view looks good as far as I can tell.  There's a little transistor schematic symbol with the extracted width & length at the top of each layout device, and the fly-lines marking connectivity look about right.

The schematic netlists fine, so I don't seem to be having a license problem.

But I just can't get an extracted netlist out of the extracted layout.  All the pop-up forms look just like the pictures in the tutorial.  Could it be that something in my environment is interfering with netlisting?
Back to top
 
 
View Profile   IP Logged
joel
Community Member
***
Offline



Posts: 43

Re: Cadence cell-design tutorial question
Reply #4 - Jun 4th, 2009, 7:17pm
 

From the Diva Reference appendix C. Simulation and Environment Control, it seems to state that the 'switch cell' is defined by the lvsLayoutStopList, which should be "lvs" for doing LVS.  It seems to be  {auLvs extracted schematic} according to the error in my logfile.  The reference says to control this, one types

lvsLayoutStopList = ' ( "lvs" )

When I enter that into the CIW, I get a syntax error.

At this rate, I think I'll switch to Mentor!
Back to top
 
 
View Profile   IP Logged
joel
Community Member
***
Offline



Posts: 43

Re: Cadence cell-design tutorial question
Reply #5 - Jun 4th, 2009, 7:28pm
 

OK, further reading larns me that the lvsLayoutStopList gets defined in the si.env file.  So I try to set it to "lvs" as the manual states, even though the canned tutorial puts it as "auLvs".  Of course this causes other errors...
Back to top
 
 
View Profile   IP Logged
joel
Community Member
***
Offline



Posts: 43

Re: Cadence cell-design tutorial question
Reply #6 - Jun 5th, 2009, 2:41pm
 
Back to top
 
 
View Profile   IP Logged
joel
Community Member
***
Offline



Posts: 43

Re: Cadence cell-design tutorial question
Reply #7 - Jun 11th, 2009, 5:07pm
 
It turns out that at my site, when I type 'icfb' I'm actually invoking a wrapper.  The wrapper would set CDS_Netlisting_Mode to Analog, overwriting whatever I might have otherwise set its value to be.

Modifying the wrapper to setenv CDS_Netlisting_Mode Digital allowed the LVS job to complete correctly.

By the way, setShellEnvVar("CDS_Netlisting_Mode=Digital") didn't help. For some reason this environment variable must be set before the icfb process is started, and can't be modified from within.

Good luck to all!  /jd
Back to top
 
 
View Profile   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: Cadence cell-design tutorial question
Reply #8 - Jul 10th, 2009, 9:11am
 
Sorry for not replying sooner - I was busy for a few weeks (still am, really), and so didn't see this until now. I could have put you out of your misery sooner, otherwise...

Anyway, if you do change the environment variable in the CIW, you need to call cdsSetNetlistMode() to make sure it gets honoured:

Code:
setShellEnvVar("CDS_Netlisting_Mode=Digital")
cdsSetNetlistMode() 


Best Regards,

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.