( ESNUG 363 Item 5 ) --------------------------------------------- [01/25/01]

Subject: How To Tell A Device From The Extracted View In Cadence Diva LVS

> I am having trouble with Cadence LVS.  I constantly get the error message:
>
>       ( sbmix2 schematic ) in library learning has been
>       changed since it was last extracted.
>       si: Netlist did not complete successfully.
>       End netlist:    Jan  8 17:38:42 2001
>
> The schematic is not changed after the layout was extracted and it does
> not help saving the schematic.  Does anybody now what my problem is?
>
>     - Joacim Rolsson


From: atl@cray.com (Tony Laundrie)

You have to run Check-And-Save, not just Save.

On a related note, occasionally I use Skill to make tiny edits to schematic
cellviews (like changing text on a sheet symbol), and don't want those
changes to force a new Check-And-Save.  In that case, dbReplaceProp(cv
"lastSchematicExtraction" "time" getCurrentTime())

    - Tony Laundrie
      Cray

         ----    ----    ----    ----    ----    ----   ----

From: Pratyush Kamal <pratyush.kamal@philips.com>

The netlist generator sees the time stamp for the extraction and so it might
be possible that a cell that you are using in your design is coming from
some other library where it's been changed but not yet extracted.  The would
suggest you to generate the netlist using CIW->file->Export->CDL and then
the same for streaming out the GDS2 if working with Cadence and then UNIX
command for LVS.

    - Pratyush Kamal
      Philips Research Laboratories              Eindhoven, Netherlands

         ----    ----    ----    ----    ----    ----   ----

From: Edward J Kalenda <ed@kalenda.com>

The use of the term extracted is unfortunate.  The schematic editor does an
"extract" during the check and save command.  What it extracts, I don't
know.  The datestamp set by check and save is compared to the last modified
datestamp set by the editor.  If modification is after extraction you get
that message.  It has nothing to do with the Diva extracted view.

That message can be even odder and more confusing when you are netlisting an
extracted view.  Since the extracted view is structurally the same as a
schematic view, just without the interconnect lines being drawn, the same
netlisting code is used.  If you manually edit the extracted view, the
lastSchematicExtraction property needs to be set.  I don't recall how you
keep the last modified time from being changed by the setting of the
lastSchematicExtraction.

    - Ed Kalenda

         ----    ----    ----    ----    ----    ----   ----

From: jynx@thepdu.org (Greg Michaelson)

Do you have any opinions on how to get LVS to tell the difference between a
device from a schematic and a device from an extracted view?  I am currently
using a CDF parameter that I set to '1' for schematic and '0' for extracted
but I figure there has got to be an easier way...  Any ideas?

    - Greg Michaelson

         ----    ----    ----    ----    ----    ----   ----

From: Edward J Kalenda <ed@kalenda.com>

In the property comparison function the layout device properties are always
the first parameter.  In the combine function there is no indication of
which netlist is being processed.

Why do you need to know this?

    - Ed Kalenda

         ----    ----    ----    ----    ----    ----   ----

From: jynx@thepdu.org (Greg Michaelson)

Currently, we check a parameter to determine whether the device is from a
schematic or extracted view.  Then we build the comparision lists based on
the value of this parameter.  How can I build a comparison list without
knowing whether the device is from a schematic or extracted view? 

I have attached a text file containing an example of this parameter use:

  ;Here is the list building function:

  (procedure buildbjt(d1)
  (prog (dvcnt outlist)
    if(d1->m != 0 then ;schematic device
       dvcnt = d1->m
       outlist = list(list(concat(d1->pmodel) list(list(list(1 1) dvcnt))))
    else          ; layout device
       outlist = list(list(concat(d1->pmodel) list(list(list(1 1) 1))))
    );if m != 0
    return(outlist)
  )
  )

  ;This is the compare function which calls the list building function:

  (procedure fooComparebjt(l1 s1)
  (prog (tmpString)

    if(l1->dvl then
       l1->dvl = evalstring(l1->dvl)
    else
       l1->dvl = buildbjt(l1)
       l1->id = vtcElmIdNum++
    )
    if(s1->dvl
       s1->dvl = evalstring(s1->dvl)
       s1->dvl = buildbjt(s1)
    )
    tmpString = compareLists(l1->dvl s1->dvl 'bjtCompare 'bjtSelect)
    if(tmpString == nil then
       return(nil)
    else
       sprintf(tmpString " id#: Q-%L %s" l1->id tmpString)
       return(tmpString)
    )

  )
  )

  ;This is the LVS command calling the compare function:

  compareDeviceProperty("Npn" fooComparebjt )

I'm not looking for answers by no means.  I'm just looking for another way
of doing this stuff.  The LVS checking is a legacy thing here that has been
passed down over the years with no one taking the time to ask 'What the 
heck is going on here?'  Luckily, that's my job... HA!

    - Greg Michaelson

         ----    ----    ----    ----    ----    ----   ----

From: "Gerry Vandevalk" <van@americasm01.nt.com>

In my "DIVA" LVS code, I have found that the first item is always the
extracted rep, and the second is the schematic.  (i.e. from the beginning
of an LVS deck:

  lvsRules(
    rDefault=1.0
    minWidth=0.8
    minLength=1.4

    putd( 'compareCap nil )

    procedure( compareCap( extracted schematic)
  ...

if(schematic->tolerance tolerance=float(schematic->tolerance) tolerance=1.0)

  ...

The compareCap code in our system "knows" that the tolerence CDF property
only exists on "schematic" views and not on "extracted" views.  This has
always worked for me.  YMMV.

    - Gerry Vandevalk
      Nortel Networks                            Ottawa, Canada

         ----    ----    ----    ----    ----    ----   ----

From: jynx@thpdu.org (Greg Michaelson)

Thanks Gerry.  That is exactly what I am getting at.  The fact that you need
to have a parameter in order to distinguish whether a device is taken from 
the schematic or extracted views.  I was just hoping I wasn't missing 
something obvious about this whole deal.

    - Greg Michaelson


 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)