VXL-SKILL : How to find the schematic window from the layout

  • Thread starter Suresh Jeevanandam
  • Start date
S

Suresh Jeevanandam

Guest
Hi Andrew and all,
Is it possible to get the window ID of the schematic if I know the
layout(in VXL mode) window ID. And vice versa...

Also, there are no PI skill functions for the VXL commands. Are they
going to be in in future?

Thanks in advance.

regards,
Suresh
 
As a starting point,

Bernd


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Function : XIgetOpenWindows
;;
;; Author : Bernd Fischer
;;
;; Date : Fri, 23 January 2004
;;
;; Version : 1.0
;;
;; Global Variable(s) : None
;;
;; Synopsis : XIgetOpenWindows( )
;;
;; Description : Returns all open windows.
;;
;; Arguments : -
;;
;; Return Value : l_wId/nil
;;
;; Modification : -
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

procedure( XIgetOpenWindows( )

setof(
element
foreach(
mapcar
w_wId
hiGetWindowList( )
w_wId
)
element != hiGetCIWindow( )
) ;; close setof

) ;; close BFgetOpenWindows

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Function : XIgetSchematicWindows
;;
;; Author : Bernd Fischer
;;
;; Date : Fri, 23 January 2004
;;
;; Version : 1.0
;;
;; Global Variable(s) : None
;;
;; Synopsis : XIgetSchematicWindows( )
;;
;; Description : Returns all open windows which cell view type is
;; schematic.
;;
;; Arguments : -
;;
;; Return Value : l_wId/nil
;;
;; Modification : -
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

procedure( XIgetSchematicWindows( )

setof(
wId
XIgetOpenWindows( )
geGetWindowCellView( wId )~>cellViewType == "schematic"
) ;; close setof

) ;; close XIgetSchematicWindows

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Function : XIgetCorrespondingLayoutWindow
;;
;; Author : Bernd Fischer
;;
;; Date : Fri, 23 January 2004
;;
;; Version : 1.0
;;
;; Global Variable(s) : None
;;
;; Synopsis : XIgetCorrespondingLayoutWindow( w_schWiId )
;;
;; Description : Returns the corresponding layout window Id of the given
;; schematic window Id.
;;
;; Arguments : w_schWiId Current schematic window Id.
;;
;; Return Value : w_wId/nil
;;
;; Modification : -
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

procedure( XIgetCorrespondingLayoutWindow( schWiId )
let( ( t_libName t_cellName l_layoutWindows )

t_libName = schWiId~>cellView~>libName
t_cellName = schWiId~>cellView~>cellName

l_layoutWindows = XIgetLayoutWindows( )

car(
setof(
w_layWiId
l_layoutWindows
geGetWindowCellView( w_layWiId )~>libName == t_libName
&&
geGetWindowCellView( w_layWiId )~>cellName == t_cellName
) ;; close setof
) ;; close car

) ;; close let

) ;; close XIgetCorrespondingLayoutWindow


uresh Jeevanandam wrote:
Hi Andrew and all,
Is it possible to get the window ID of the schematic if I know the
layout(in VXL mode) window ID. And vice versa...

Also, there are no PI skill functions for the VXL commands. Are they
going to be in in future?

Thanks in advance.

regards,
Suresh
 
Sorry I missed one function,

Bernd

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Function : XIgetMaskLayoutWindows
;;
;; Author : Bernd Fischer
;;
;; Date : Fri, 23 January 2004
;;
;; Version : 1.0
;;
;; Global Variable(s) : None
;;
;; Synopsis : XIgetLayoutWindows( )
;;
;; Description : Returns all open windows which cell view type is
;; maskLayout.
;;
;; Arguments : -
;;
;; Return Value : l_wId/nil
;;
;; Modification : -
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

procedure( XIgetLayoutWindows( )

setof(
wId
XIgetOpenWindows( )
geGetWindowCellView( wId )~>cellViewType == "maskLayout"
) ;; close setof

) ;; close XIgetMaskLayoutWindows
 
Bernd Fischer wrote:
XIgetOpenWindows.il
Excellent.

I passed your code through a quick one-minute Virtuoso SKILL inventory:
CIW: Tools -> SKILL Development -> SKILL Surveyor
which revealed the following excellent results within seconds:
- 13 Cadence public functions employed (see list below)
- None were/are deleted in the prior/upcoming releases:
434,440,441,442,443,445,446,500,500MSR3,
50032,50033,IC5033USR1,IC5033USR2,IC50USR3,
IC5141, IC5141USR1, IC5141USR2, IC5251,
ICOA5033, ICOA5033USR1, ICOA5033USR2, ICOA5033USR3,
ICOA5141, ICOA5141USR1, ICOA5141USR2, ICOA5251
- None were/are changed in prior/upcoming releases above
- 0 private functions were found (good, this is safe code)
- 0 re-defined functions found (typically this is also good)
- 4 user-defined functions were found
- All user-defined funcdtions start with a capital-letter prefix
XIgetLayoutWindows() --> called once in the listed code
XIgetCorrespondingLayoutWindow() --> not called in the code
XIgetSchematicWindows() --> not called in the code itself
XIgetOpenWindows() --> called twice in the listed code
- An inventory of Cadence functions called (& how many times) is:
and 1
car 1
equal 4
foreach 1
geGetWindowCellView 4
getSGq 8
hiGetCIWindow 1
hiGetWindowList 1
let 1
nequal 1
procedure 4
setof 4
setq 3

Good work!
This would seem to be, syntactically, a nice example for SKILL coders!

John Gianni
--
Nothing I state on the USENET is prior sanctioned by my employer.
 
John Gianni wrote:
None were/are deleted in the prior/upcoming releases:
434,440,441,442,443,445,446,500,500MSR3,
50032,50033,IC5033USR1,IC5033USR2,IC50USR3,
IC5141, IC5141USR1, IC5141USR2, IC5251,
ICOA5033, ICOA5033USR1, ICOA5033USR2, ICOA5033USR3,
ICOA5141, ICOA5141USR1, ICOA5141USR2, ICOA5251
Actually, to be perfectly precise, the SKILL Survey revealed ONE of the
Cadence public functions Bernd depended upon DID change but that change
was very minor.

Here is the one "change" that was reported by the 1-minute survey:
rel434(getSGq:g_general:s_symbol:"gs")
rel441(getSGq:g_general:S_stringSymbol:"gS")

Basically, between DFII 434 and 441, there was a very minor tweak to
the definition of getSGq (which should not affect the operation of the
code).

The good news is that Bernd's code should theoretically work in any
release from 434 to ICOA5251 in so much as all the functions exist
syntactically unchanged.
 

Welcome to EDABoard.com

Sponsor

Back
Top