Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't use -filter "NAME = ". It is inefficient #551

Open
Solamar opened this issue Mar 16, 2016 · 0 comments
Open

Don't use -filter "NAME = ". It is inefficient #551

Solamar opened this issue Mar 16, 2016 · 0 comments
Assignees

Comments

@Solamar
Copy link

Solamar commented Mar 16, 2016

It is inefficient to use a -filter [NAME=xxx] for the tcl commands.
Since the object name is part of the get_xxx command line, it is much more efficient to use:
get_cells xxx
This allows Vivado to get only the objects that match, not all objects in the device.

An example of poor coding is in XilinxTclStore / tclapp / xilinx / designutils / report_hier_util.tcl on line 41:
Rather than:
set childList [get_cells -quiet -hierarchical -filter "NAME =~ $hierCell/* && IS_PRIMITIVE"]
use:
set childList [get_cells -quiet -hierarchical $hierCell/* -filter "IS_PRIMITIVE"]

This is especially obvious in things like get_sites, get_bels, etc. For example:

get_bels -filter [NAME = Tilename/Site_]
will get ALL bels in the device, then filter based on the request.
but
get_bels Tilename/Site_
will ONLY look at the bels in the specified Tilename. This is much faster.

Sterling Babcock

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants