Get a list of source files
Syntax
get_files [‑regexp] [‑nocase] [‑filter <arg>] [‑compile_order <arg>]
[‑used_in <arg>] [‑references] [‑all] [‑of_objects <args>] [‑quiet]
[‑verbose] [<patterns>]
Returns
list of file objects
Usage
| Name | Description |
|---|---|
[-regexp]
|
Patterns are full regular expressions |
[-nocase]
|
Perform case-insensitive matching (valid only when -regexp specified) |
[-filter]
|
Filter list with expression |
[-compile_order]
|
Get files by type and in compilation order (must use with -used_in) |
[-used_in]
|
Get files used in a specific step (must use with -compile_order) |
[-references]
|
Get files referenced in the provided objects (must use with -of_objects) |
[-all]
|
Include all internal files. |
[-of_objects]
|
Get 'file' objects of these types: 'file fileset ip reconfig_module'. |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
[<patterns>]
|
Match file names against patterns Default: * |
Description
Gets a list of files in the current project that match a specified search pattern. The default command gets a list of all files in the project.
The get_files command returns a machine readable list of files in the project, in a design, or in a sub-design such as an IP core or block design. You can filter the results returned by get_files using one of the command arguments such as -of_objects, -compile_order, -used_in, and -filter.
The -compile_order and -used_in options must be used together to return a list of files from the sources or constraints filesets used in synthesis, simulation, or implementation, sorted according to the order of evaluation by the Vivado tools. The -compile_order and -used_in options use complex file ordering rules that can change based on header files, include files, or other language options. You can also filter files returned by get_files according to the USED_IN property, using the -filter option instead of the -used_in option.
You can use the report_compile_order command to generate a report of all files in the sources or constraints filesets, used in synthesis, simulation, AND implementation, sorted into different sections.
get_* commands return a container list of a single type of objects (e.g. cells, nets, pins, or ports). You can add new objects to the list (using lappend for instance), but you can only add the same type of object that is currently in the list. Adding a different type of object, or string, to the list is not permitted and will result in a Tcl error.
Arguments
-regexp - (Optional) Specifies that the search <patterns> are written as regular expressions. Both search <patterns> and -filter expressions must be written as regular expressions when this argument is used. Xilinx regular expression Tcl commands are always anchored to the start of the search string. You can add ".*" to the beginning or end of a search string to widen the search to include a substring. See http://perldoc.perl.org/perlre.html for help with regular expression syntax.
regexp is not anchored, and works as a standard Tcl command. For more information refer to http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.
-nocase - (Optional) Perform case-insensitive matching when a pattern has been specified. This argument applies to the use of -regexp only.
-filter <args> - (Optional) Filter the results list with the specified expression. The -filter argument filters the list of objects returned by get_files based on property values on the files. You can find the properties on an object with the report_property or list_property commands. Any property/value pair can be used as a filter. In the case of the "file" object, "FILE_TYPE", and "IS_ENABLED" are some of the properties that can be used to filter results.
get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}
bool) type properties can be directly evaluated in filter expressions as true or not true: -filter {IS_PRIMITIVE && !IS_LOC_FIXED}
-of_objects <args> - (Optional) Get the files that are associated with the specified file, fileset, IP, or reconfig_module objects. The default is to search all filesets. When -compile_order and -used_in are specified, the -of_objects switch will only accept a single fileset, or a single sub-design such as an IP core, Block Design, or DSP design. A sub-design is also known as a composite file.
-of_objects option requires objects to be specified using the get_* commands, such as get_cells or get_pins, rather than specifying objects by name. In addition, -of_objects cannot be used with a search <pattern>.
-compile_order [ sources | constraints ] - (Optional) Returns the source design files, or the constraint files sorted according to the order of compilation by the Vivado Design Suite.
-used_in option. When specified, the -of_objects switch will only accept a single fileset or sub-design.-used_in <arg> - (Optional) Accepts one of the enumerated values of the USED_IN property for files, and returns files matching the specified value. Valid values for this option include the following: synthesis, simulation, or implementation. Refer to the Vivado Design Suite Properties Reference Guide (UG912) for information on the USED_IN property and its supported values.
-compile_order option. When specified, the -of_objects switch will only accept a single fileset or sub-design.
-all - (Optional) Returns all of the files in the design, including internal files in support of IP and other objects.
-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config command.<patterns> - (Optional) Match files against the specified patterns. The default pattern is the wildcard '*' which gets all files in the project or of_objects. More than one pattern can be specified to find multiple files based on different search criteria.
Examples
get_files -filter {FILE_TYPE == VHDL && USED_IN =~ simulation*}
get_files -compile_order sources -used_in simulation
get_files -compile_order sources -used_in synthesis -of [get_files ip.xci]
get_files -of [get_filesets {sources_1 constrs_1}]