skill to check and/or set VXL connectivity reference

D

danmc

Guest
Hello,

I recently used the library manager copy wizard to copy a design
hierarchy to a new set of cell names. Then I made a handful of
schematic changes. Now I want a layout person to update the layouts.
I noticed though that we have to manually go through and update the
connectivity source in VXL since it was still pointing to the original
schematic, not the new one.

So, is there skill code that can check and/or set the connectivity
source? I'd like to run a scan over my library and find the layout
cells that have the wrong value.

Thanks
-Dan
 
I found the following on Sourcelink a while ago.

Tim

Cadence Customer Support Solution


Error message:


Problem statement: I copied data from one project into another
project with both projects containing
numerous libraries. From library manager I can go to a cell in a
copied library
that contains both schematic and layout views.

1. I open the layout.
2. From the layout, tools menu I select Layout XL. VXL then opens the
schematic from
the original library.

Problem 1: I would expect it to open the schematic of current library/
cell. Why does it
open the schematic from the original library?
I can run Connectivity -> Update -> Source and reference the schematic
from the
copied library and this fixes the problem. However, there are
hundreds of cells in
this library and all of them have this issue.

Problem 2: Is there a way to update the connectivity source for all
the layouts of the
library, so that it points to current library schematic and not the
old library
schematic?



Solution: Answer 1: The Library Manager copy could not update
connectivity source for the
layout. This is the reason why layout is still pointing to the old
library
schematic. PCR 759731 has been filed to address this issue but it has
not been
fixed yet.

Answer 2: Yes, all the layout cells can be updated to point to current
library schematic
cells. Please use the below SKILL code for that.

;--------------------x Copy from here x------------------
/
*************************************************************************
* DISCLAIMER: The following code is provided for Cadence
customers *
* to use at their own risk. The code may require modification
to *
* satisfy the requirements of any user. The code and any
modifications *
* to the code may not be compatible with current or future versions
of *
* Cadence products. THE CODE IS PROVIDED "AS IS" AND WITH NO
WARRANTIES, *
* INCLUDING WITHOUT LIMITATION ANY EXPRESS WARRANTIES OR
IMPLIED *
* WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
USE. *
*************************************************************************/
procedure(CCSupdate_source(lib_name)
let((libName)
libName=ddGetObj(lib_name)
foreach(cellName libName~>cells
if(exists(x cellName~>views~>name
(x=="schematic")) &&
exists(x cellName
~>views~>name (x=="layout"))
then
lxSetConnRef(lib_name cellName~>name "layout"
"CELLVIEW" ?schLib
lib_name ?schCell cellName~>name ?schView "schematic")
) ;if
) ;foreach
) ;let
) ;proc
;--------------------x Copy till here x------------------

Copy the above code in file "skill.il". Load the code by typing
following in CIW:
load "skill.il"

It will define function CCSupdate_source(). The only argument it
expects is the
library name.
To run, type following in CIW:
CCSupdate_source("my_new_lib")

Where "my_new_lib" is the library name in which all layouts need to
point to respective
schematic of the same library.

Note: The above SKILL code passes SKILL LINT with a score of 100 and
it does not use any
private function.
 
Thanks! Anyone know if there is a function that lets you see what the
current connectivity reference is? That way I can do a sanity check
"dry-run" where I identify which cells need updating.

Thanks
-Dan
 
On 15 Mar 2007 16:09:12 -0700, "danmc" <spam@mcmahill.net> wrote:

Thanks! Anyone know if there is a function that lets you see what the
current connectivity reference is? That way I can do a sanity check
"dry-run" where I identify which cells need updating.

Thanks
-Dan
In addition to lxSetConnRef() to set the connectivity reference, you can use
lxGetLXInfo() to retrieve the source cellView (see the docs for more info).

Here's a segment of code I used to do this:

(setq cv (geGetEditCellView (getq args window)))
;-----------------------------------------------------------------
; If VXL initialized, can get the src cellView directly via
; the lxGetLXInfo API
;-----------------------------------------------------------------
(if (setq src (lxGetLXInfo "srcView" cv))
(progn
(setq srcChanged (dbGetq src instancesLastChanged))
(setq lib (dbGetq src libName))
(setq cell (dbGetq src cellName))
(setq view (dbGetq src viewName))
)
;-------------------------------------------------------------
; otherwise look at the properties to find the source
; cellview
;-------------------------------------------------------------
(progn
(setq hierProp
(dbGetq (dbGetq cv lxInternal) source))
(when hierProp
(setq lib (dbGetq hierProp lib))
(setq cell (dbGetq hierProp cell))
(setq view (dbGetq hierProp view))
(when (and lib cell view)
(setq src (dbOpenCellViewByType lib cell view)))
(setq srcChanged (dbGetq src instancesLastChanged))
(dbClose src)
)
) ; progn
) ; if

Regards,

Andrew.
--
Andrew Beckett
Principal European Technology Leader
Cadence Design Systems, UK.
 

Welcome to EDABoard.com

Sponsor

Back
Top