Home > Community > Blogs > Custom IC Design > Things You Didn't Know About Virtuoso: Search Assistant
 
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more conveniennt.

Register | Membership benefits
Get email delivery of the Custom IC Design blog (individual posts).
 

Share

  • Email
  • Social Web
* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Things You Didn't Know About Virtuoso: Search Assistant

Comments(4)Filed under: Custom IC Design, Virtuoso, Virtuoso IC 6.1.3, IC 6.1

People say I have strong google-fu.   Whether it's finding information on a homework topic for my kids or reviews for that little restaurant downtown, all it takes is a minute or two at the keyboard and there it is.  Searching for information has become a very important skill in today's world, both in "real life" and at work.  Laying your hands on reliable information quickly can make your life easier, amaze your friends and impress your boss. 

So today, I'd like to introduce you to the new Virtuoso Search Assistant and Toolbar in IC6.1.  Whether you're looking for all the places a certain design variable is used or which instances a particular net is connected to or where in your design hierarchy a specific device type is used, the Search Assistant will give you the information you need.

First of all, where is this little gem hiding?  Virtuoso provides both a Search toolbar and an associated dockable assistant.  Both can be invoked by--all together now--clicking the RMB near the top of the window and selecting Search from either the top (for the assistant) or the bottom (for the toolbar) of the menu.  There's no difference in functionality between the two.  In fact, clicking "Show All" from the Search toolbar results will open the Search assistant automatically.

Search engines are typical pretty self-explanatory, but recently, I've been amazed at what fun little secrets a little digging can expose.  (For example, did you know that Google has a built-in calculator?)  So it is with the Search Assistant (ok, no built-in calculator...yet, but some other cool details I'll talk about in a bit).  Basically, you enter whatever it is you want to search for in the search field, hit Enter and you'll see everything in your design that matches that search string. 

What do you mean--everything?

Click on the little magnifying glass at the left of the search field.  This shows a partial list of the categories which will be searched (the complete list can be found by clicking Options... at the bottom of that menu).  You can limit your search by enabling only one of these categories (or several if you use the Options... dialog).  You can also limit your search to only those objects selected in the current view by choosing "Selected" at the bottom of the Search Categories menu.

Notice that you can even search for Skill functions and menu items.  So if you forget where to find the grid snap spacing you can search for "snap" and find it right away. 

Note: The Search Categories are also keywords for the search engine.  So you can enter "instances nmos2v" or "nets bias" to restrict your search that way.  Or type just "instances" or "nets" to get a complete listing.

Where is it searching?

Now click on the little triangle at the right of the search field.  This will give you options for how the engine should match the search string (case sensitivity, substring, and/or, etc.).  It allows you set the search scope, including the very powerful option to extend your search down through the design hierarchy.  So now you can immediately find every place in the hierarchy where a certain block is used.  In the search results, items not in the current view will be highlighted in gray.

What can I do now that I've found what I was looking for?

Good question.  This is where I find the real power of the Search Assistant.  First of all, you'll notice that selecting items in the Search Assistant cross-selects them in the main canvas as well as the Navigator and the Property Editor Assistant, so that's very handy right there. 

But wait, there's more...

By holding down a certain mouse button (hmm..which one might that RMB...) over the items, you'll see a context-sensitive menu of options specific to items of that category.  Depending on the category, you might be able to:

  • Add an instance of a cell
  • Open the cellview containing an instance or net if it's at a lower level of hierarchy
  • Open the Skill finder entry for a Skill function
  • Select a net and all instances attached to it
  • Open an options dialog or directly execute a menu command

In addition, you can save the search results to a CSV file for further documentation and reference.

 

search

 

"Searching is half the fun: life is much more manageable when thought of as a scavenger hunt as opposed to a surprise party."--Jimmy Buffett

 As always, feel free to share your discoveries and experiences (good or bad) with any of these topics.

Stacy Whiteman

Comments(4)

By Mike Santarini on July 23, 2009
Hi Stacy, I have a question about Virtuoso: Does this version support pycells? If I were to use them in virtuoso, what would happen? I'm asking becasue I'm moderating a panel on PDKs next week at DAC and some folks are saying that users get an interesting warning pop-up window when they try to use pycells in the current version. Want to check with you, though.

By Stacy Whiteman on July 27, 2009
The short answer is "no, we do not officially support Python PCells.

It is true that as part of OpenAccess, a Python PCell that has been evaluated is simply a database object.  The issue is that a PCell is executable code, not a static database object.  That executable code is the issue.  We do not test Python PCells in the Virtuoso regression suite.  We test SKILL with more than 20,000 tests (things like abutment, stretch handles, etc..).  So if a customer uses Python, they are using untested, unsupported executable code in Virtuoso.  

Hope this helps.


By Kevin Gard on August 6, 2009
It is nice to have something that helps you "search" through the current design, but there are other areas that could benefit as much if not more from an intelligent search engine.
1.A Netlists. It would be great to click on an instance and have the netlist pop up with the instance call.
1.B Generally searching netlists would also be nice. The current text search tool is a bit archaic.
But the biggest benefactor of a more intelligent search engine is the vast and unwieldy "Cadence Documentation" application. It would also be helpful if the documentation search was tied into the knowledge base at Sourcelink. Sourcelink is much better than the search feature in the documentation application, but why shouldn't the supplied documentation be easier to access than the web interface?
Thanks

By stacyw on August 7, 2009
Thanks for the great comments!
With the huge variety of user environments we support, it is very challenging these days to provide accurate and up-to-date information to our users quickly and intuitively.  
Context-sensitive and "quick" help features are actually a big focus here right now and some of your suggestions are already being investigated.  
Also, the Cadence help/documentation system has been continuously evolving (gives me another idea for a blog article...)  and I am often pleasantly surprised at how it has quietly improved over the past year or two.  
Thanks,
Stacy

Leave a Comment


Name
E-mail (will not be published)
Comment
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.