I want to ask how to search a certain net in the extracted view?
In the "Search" function of the Virtuoso Editor, it can just search
instant, path....., I don't know how to use this to search the
specify net. Can anyone kindly teach me how to search the net?
Thanks in advance.
Regards,
Ken
If you have a small design it should work ok, if you can't see the
highlight (which is always yellow on my screen), try making everything
else invisible. If you have a really really large design, this may
not work. ie the net selected is so small that it won't appear. Does
anyone know how to zoom in to a selected net? Does anyone know how to
change the highlight color to something else than yellow?
But, if you are trying to select a net in a layout view, this option
is not available (unless you are in virtuoso-XL where you can use a
similar probe command, I think). Does anyone know how to do a search
and/or select for a net in the layout window?
Thanks,
Emmanuelle
--
Michael Keller Tel.: ++49-6221-544959
Kirchhoff-Institut fuer Physik Fax.: ++49-6221-544345
Schroederstr. 90 email: kel...@kip.uni-heidelberg.de
69120 Heidelberg HTTP: http://wwwasic.kip.uni-heidelberg.de/~keller
Hi Emmanuelle (and Ken),
We use the following SKILL routines (part of the NCSU CDK --
http://www.ece.ncsu.edu/cadence/CDK.html) to select, highlight and zoom
to nets, instances or labels in a variety of cellviews (it's been tested
in schematic, layout and extracted views).
To fire it up, simply load it and do a hiDisplayForm( hiliteObjForm ).
Regards,
--
Alan Glaser "It's not a competition,
ECE Dept. it's just a mint..." - K
North Carolina State University
PGP fingerprint: 14 C8 D6 30 D0 A6 03 6F 23 F3 9F 1D 61 43 EE 8C
;==========================================================================
;
; $Id: selobj.il,v 1.4 1999/01/26 17:09:38 jtschaff Exp $
;
; For extracted layouts & schematics, highlight a net by name.
;
;--------------------------------------------------------------------------
/*
* Globals:
* NCSU_zoomList
*/
procedure( sortLabelsCmpFunc( l1 l2 )
let( (searchList len1 len2)
searchList = reverse(parseString(hiliteObjForm->objName->value " ,;"))
len1 = length( member( l1~>theLabel searchList ) )
len2 = length( member( l2~>theLabel searchList ) )
len1 < len2
)
)
procedure( hiliteObjects( form )
prog( (searchList flag currentCellID foundNet foundInst)
currentCellID = hiGetCurrentWindow()->editCellView
if( currentCellID == nil return( nil ) )
unless( form->sticky->value == t
geDeselectAllFig( currentCellID )
)
/* if user was in "delete mode", hitting apply in this form
* sometimes deleted labels. so, cancel any pending enter
* functions here */
cancelEnterFun();
; use reverse() here so we can go down list and add to it
; using cons() and have the resulting list be in the order the
; user typed it in
searchList = reverse( parseString( form->objName->value " ,;") )
flag = nil
if( form->zoom->value == t then
NCSU_zoomList = list()
)
cond(
(
form->selobjRadioField->value == "Net"
foreach( netName searchList
foundNet = dbFindNetByName( currentCellID netName )
if( foundNet != nil then
foreach( fig foundNet~>figs
geSelectFig( fig )
if( form->zoom->value == t then
NCSU_zoomList = cons( fig NCSU_zoomList )
)
)
flag = t
)
))
(
form->selobjRadioField->value == "Instance"
foreach( instName searchList
foundInst = dbFindAnyInstByName( currentCellID instName )
if( foundInst != nil then
geSelectFig( foundInst )
if( form->zoom->value == t then
NCSU_zoomList = cons( foundInst NCSU_zoomList )
)
flag = t
)
))
(
form->selobjRadioField->value == "Label"
foreach( obj currentCellID~>shapes
if( (obj~>objType == "label") &&
(member( obj~>theLabel searchList ) != nil) then
geSelectFig( obj )
if( form->zoom->value == t then
NCSU_zoomList = cons( obj NCSU_zoomList )
)
flag = t
)
)
; sort so we zoom in in the right order
if( flag == t && form->zoom->value == t then
NCSU_zoomList = sort( NCSU_zoomList 'sortLabelsCmpFunc )
))
)
if( flag == nil then
hiGetAttention()
printf( "%s(s) specified do not exist\n"
hiliteObjForm->selobjRadioField->value )
if( form->nextZoom
hiDeleteField( form 'nextZoom )
)
return( nil )
)
if( form->zoom->value == t then
hiZoomIn( hiGetCurrentWindow() car( NCSU_zoomList )~>bBox )
NCSU_zoomList = cdr( NCSU_zoomList )
unless( form->nextZoom
hiAddField( form
list( hiCreateButton(
?name 'nextZoom
?buttonText "Zoom to next"
?callback "{
if( length(NCSU_zoomList) > 0 then
hiZoomIn( hiGetCurrentWindow()
car( NCSU_zoomList )~>bBox )
NCSU_zoomList = cdr( NCSU_zoomList )
)
}"
) 175:110 100:40 115 )
)
)
else
if( form->nextZoom
hiDeleteField( form 'nextZoom )
)
)
return( t )
)
)
hiCreateAppForm(
?name 'hiliteObjForm
?formTitle "Hilite Objects"
?buttonLayout 'ApplyCancelDef
?callback list(
"hiliteObjects( hiliteObjForm )" ; apply
"{
if( hiliteObjForm->nextZoom != nil
hiDeleteField( hiliteObjForm 'nextZoom )
)
NCSU_zoomList = list()
}" ; cancel
)
?fields list(
list( hiCreateStringField(
?name 'objName
?prompt "Object name(s): " )
5:10 500:20 100 )
list( hiCreateRadioField(
?name 'selobjRadioField
?prompt "Object Type:"
?choices list( "Net" "Instance" "Label")
?defValue "Net"
?itemsPerRow 3 )
5:30 150:65 100 )
list( hiCreateBooleanButton(
?name 'sticky
?buttonText "Keep current hilite"
?defValue nil )
5:75 170:45 135 )
list( hiCreateBooleanButton(
?name 'zoom
?buttonText "Zoom to found objects"
?defValue nil )
5:110 170:40 135 )
)
?help ""
)