Add an IP cell from the IP catalog, or add a new hierarchical block.
Syntax
create_bd_cell [‑vlnv <arg>] [‑type <arg>] [‑reference <arg>]
[‑revision <arg>] [‑quiet] [‑verbose] <name>
Returns
The newly created cell object. Returns nothing if the command fails.
Usage
Name | Description |
---|---|
[-vlnv]
|
Vendor:Library:Name:Version of the IP cell to add from the IP catalog. |
[-type]
|
Type of cell to create. Valid values are IP, hier, container and module. Default: IP |
[-reference]
|
Top module-name or file-path of the module which is referred to create the cell. |
[-revision]
|
(Optional) Core revision Default: -1 |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
<name>
|
Name of cell to create |
Categories
Description
Add a cell from the Vivado® catalog to the current subsystem design, create a new hierarchical module to add to the subsystem design, or create a new module by referencing the module definition from an HDL source file.
When adding an IP core from the catalog, the -vlnv
argument is required.
When creating a new hierarchical block design module, the -type hier
argument is required.
When creating a block design module that references an RTL module or entity declaration the -type module
argument is required, as well as -reference
. The module reference feature lets you add a module definition from an RTL file (Verilog or VHDL) into the block design. The source file containing the module definition must be added to the project, or read into the design before creating a module reference. Refer to the Vivado Design Suite User Guide: Designing IP Subsystems Using IP Integrator (UG994) for more information on referencing modules.
This command returns the name of the newly created cell object, or returns nothing if the command fails.
Arguments
-vlnv <arg>
- (Required) This option is required for -type IP
(the default), or optional for -type hier
. Specify the Vendor:Library:Name:Version attribute of the cell to add from the IP integrator catalog. The VLNV attribute identifies the object in the IP integrator catalog. This argument is not needed when creating a new hierarchical module.
-vlnv
property for IP from the IP integrator catalog refers to files in the Vivado Design Suite installation hierarchy that can be found at data/ip/xilinx.
-type [ IP | hier | container | module ]
- (Optional) Specify the cell as being:
-
IP
: IP from the Vivado IP catalog. This is the default type of block design cell created, but requires the use of the-vlnv
option. -
hier
: A new empty hierarchical block design module to add to, and populate in the current design. -
container
: A block design container referenced from a BD file loaded in the source fileset. This requires the use of the-reference
option. -
module
: A hierarchical module referenced from a Verilog or VHDL file loaded in the source fileset. This requires the use of the-reference
option.
-vlnv
and -type
are marked as Optional, one or the other must be specified. Use -vlnv
to identify the IP core to add from the Vivado IP catalog, or specify -type
to create or reference a hierarchical module.
-reference <arg>
- (Optional) Specifies the module name to reference from a loaded RTL design source file.
-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.
<name>
- The name of the IP cell or hierarchical module to add to the current IP subsystem design.
Examples
This example adds an AXI FIFO core from the IP integrator catalog to the current subsystem design, with the specified name:
create_bd_cell -vlnv xilinx.com:ip:axi_fifo_mm_s:4.0 axi_fifo_1
-vlnv
argument identifies the core to add from the Vivado catalog.This example creates a new block design container in the block design, referencing the specified module definition from a previously loaded BD source file:
set bdc [ create_bd_cell -type container -reference hier_0 bdc ]
This example creates a new module in the block design, referencing the specified module definition from a previously loaded RTL source file:
create_bd_cell -type module -reference rtlRam rtlRam_0
This example creates a new hierarchical module, myModule1, and moves the AXI FIFO from the prior example into the new module. myModule1 is set as the current instance in the subsystem design, and a new module is created, myModule2, which is added to the current instance. Finally the current instance is reset to point to the top-level of the subsystem design:
create_bd_cell -type hier myModule1
/myModule1
move_bd_cells /myModule1 [get_bd_cells /axi_fifo_1]
/myModule1
current_bd_instance /myModule1
/myModule1
create_bd_cell -type hier myModule2
/myModule1/myModule2
current_bd_instance
/