Export the current design to a Tcl file on disk.
Syntax
write_bd_tcl [‑force] [‑bd_name <arg>] [‑no_mig_contents] [‑no_ip_version]
[‑ignore_minor_versions] [‑bd_folder <arg>] [‑boundary_of <arg>]
[‑check_ips <arg>] [‑hier_blks <arg>] [‑include_layout]
[‑exclude_layout] [‑keep_paths_as_is] [‑make_local]
[‑no_project_wrapper] [‑exclude_pfm] [‑updated_pfm_attrs]
[‑export_inline_hdl] [‑quiet] [‑verbose] <tcl_filename>
Returns
TCL_OK, TCL_ERROR if failed.
Usage
Name | Description |
---|---|
[-force]
|
Flag to overwrite existing file. |
[-bd_name]
|
Name for block diagram. By default will use current block diagram's name. |
[-no_mig_contents]
|
Flag to not include MIG PRJ contents into generated Tcl script, but instead will load PRJ from working directory. Default is to include MIG PRJ contents in Tcl script. |
[-no_ip_version]
|
Flag to not include the IP version as part of the IP VLNV in create_bd_cell commands. NOTE - this may have implications if there are major IP version changes. |
[-ignore_minor_versions]
|
Use this flag to create the cells in the design using their latest minor version. For example, a project contains versions of blk_mem_gen IP like 7.3, 7.4, 8.3, 8.4. In the design there is a blk_mem_gen_v7.4. With this flag, write_bd_tcl will generate the line: create_bd_cell -type ip -vlnv xilinx.com:ip:blk_mem_gen:7.* bmg_0_v7. When the generated Tcl script is sourced, the cell bmg_0_v7 will use the latest blk_mem_gen_v7. |
[-bd_folder]
|
Remote BD feature - Specify the folder where the design will be generated when Tcl script is sourced. |
[-boundary_of]
|
Will generate only the boundary (external interfaces and external ports) of the given current design or hierarchical block by the Tcl script. Will not include any cell objects or connections. If this argument is used, other arguments/flags will be ignored. Use '/' for current design. |
[-check_ips]
|
By default value = true, therefore, will check if IPs/modules exist in the IP catalog or project before continuing to reconstruct the design. Valid values are (true/false), (yes/no), or (1/0). |
[-hier_blks]
|
Comma separated list of hierarchical blocks in the design that will be generated by the Tcl script. Will include any sub-hierachical blocks within the specified blocks too. This option will not create the top-level design portion. |
[-include_layout]
|
By default will NOT include the GUI layout of the design. Use this argument to include the layout information in the generated Tcl script. |
[-exclude_layout]
|
NOTE - This flag will be obsolete in a near future release, but is currently supported for backwards compatibility. Use this argument to not include the layout information in the generated Tcl script. |
[-keep_paths_as_is]
|
Flag to leave path values as is and to not convert relative paths to be absolute paths. Absolute paths will remain as absolute. (Default = false) |
[-make_local]
|
Use this flag when you want to write your remote BD out as a local BD. |
[-no_project_wrapper]
|
This option is used to write the BD create TCL procs without any project wrapper. |
[-exclude_pfm]
|
Use this flag to exclude pfm attributes for this design |
[-updated_pfm_attrs]
|
Use this flag to update the pfms to remove connected ports/interfaces from the values. |
[-export_inline_hdl]
|
Use this flag to convert utility ip to inline hdl blocks. |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
<tcl_filename>
|
Name of exported Tcl file |
Categories
Description
Export the current IP integrator subsystem design as a Tcl script file to the disk.
<name>
option must already exist, or the script will not be created.The Tcl script file lets you recreate, reuse, and customize IP integrator subsystem designs without having to archive the original subsystem design.
When working with a new software release, you must use the output script from the write_bd_tcl
command to create a block design in the same software release as the Tcl script was generated. This ensures the availability of the needed versions of any IP used in the script. You can then migrate the created block design into a new software release.
This command returns TCL_OK if it is successful, or TCL_ERROR if it fails, unless -quiet
is specified.
Arguments
-force
- (Optional) Overwrite an existing bd_tcl file of the same name if it already exists.
-bd_name <arg>
- (Optional) Specify the name to assign to the block diagram in the bd_tcl file. When the Tcl script is run, the new block diagram will be created with the specified name. By default, the current name of the block diagram will be used.
-no_mig_contents
- (Optional) Do not include memory IP PRJ contents into the generated Tcl script. By default this content will be included in the Tcl script.
-no_ip_version
- (Optional) Do not include the
Version in the Vendor:Library:Name:Version (VLNV) value that specifies the IP for
create_bd_cell
commands in the write_bd_tcl
file.
This allows a bd_tcl script to create a new block diagram using the latest version of
the IP from the AMD Vivado™ Design Suite IP catalog.
-ignore_minor_versions
- (Optional) Do not include the minor version in the IP VLNV. This lets the bd_tcl script use the latest minor revision of an IP, while preserving the major version. For example, an IP blk_mem_gen_v7.4 will be written as -vlnv xilinx.com:ip:blk_mem_gen:7.*
.
-bd_folder <arg>
- (Optional) Specify the directory where the block diagram will be generated when the bd_tcl script is run. This lets you specify the block design to be created outside of the directory structure of a project where the bd_tcl script is being run.
-check_ips [ true | false ]
- (Optional) A boolean argument that adds a check to the Tcl script to ensure that all required IP are found before starting the process of creating the block diagram when the script is run. If any IP are missing, the script will error out rather than attempting to create the block design. The default value is true
.
-hier_blks <arg>
- (Optional) Only generate the write_bd_tcl
script for specified hierarchical blocks or modules of the block design.
get_bd_cells
for example. In addition, if the specified bd_cells are not hierarchical blocks, then no Tcl script will be generated.
-include_layout
- (Optional) Include the graphical layout data of the block design in the output Tcl script. This preserves the current layout of the block design in the Vivado IP integrator design canvas in the output Tcl script. This option is ignored when used with the -hier_blks
option, as the layout information is written from the top-level of the block design.
-make_local
- (Optional) Specify this option when the block diagram is remote from the current project, but you want to make it local to the project when running the script to recreate it.
-no_project_wrapper
- (Optional) Write a Tcl script to recreate the block diagram without creating the top-level wrapper for the design.
-exclude_pfm
- (Optional) Use this flag to exclude PFM properties used in defining a Vitis platform from the created bd_tcl script.
-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.<tcl_filename> - Specify the name of the Tcl file to write. A suffix of .tcl will be supplied if no file suffix is specified.
Example
The following example creates a Tcl script from the current IP integrator subsystem design:
write_bd_tcl C:/Data/myDesign.tcl
This example creates a Tcl script from the current IP integrator subsystem design, specifies a new name for the block diagram, specifies that IP versions should not be included, and also indicates a folder to write the block diagram to when it is created by running the output bd_tcl script:
write_bd_tcl -bd_name newMB1 -no_ip_version \
-bd_folder C:/Block_Designs projMB1
The following example creates a Tcl script for the specified hierarchical block cell, overwriting any existing script of the same name:
write_bd_tcl -force -hier_blks [get_bd_cells myHier] \
-include_layout C:/Data/myHier.tcl
-include_layout
option is ignored in this example, due to the use of the -hier_blks
option.