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, module and inline_hdl. 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
This command adds a cell from the AMD Vivado™ Design Suite catalog to the current subsystem design, creates a new hierarchical module to add to the subsystem design, or creates a new module by referencing the module definition from an HDL source file. Ensure to specify the following arguments based on the requirement:
-
-vlnv: When adding an IP core from the catalog -
-type hier: When creating a new hierarchical block design module -
-type moduleand-reference: When creating a block design module that references an RTL module or entity declarationThe
modulereference feature lets you add a module definition from an RTL file (Verilog or VHDL) into the block design. Add the source file containing the module definition 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 nothing if the command fails.
Arguments
-vlnv <arg> - (Required) Specifies the
-type IP (the default) and 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. -vlnv argument is
not required when creating a new hierarchical module.-vlnv property for an IP from the IP integrator catalog refers to the
files in the Vivado Design Suite installation hierarchy available at
data/ip/xilinx.
-type [ IP | hier | container | module | inline_hdl ]
- (Optional) Specifies the cell as the following:
-
IP: IP from the Vivado IP catalog. This is the default type of block design cell created, but requires the use of the-vlnvoption. -
hier: A new empty hierarchical block design module to add 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-referenceoption. -
module: A hierarchical module referenced from a Verilog or VHDL file loaded in the source fileset. This requires the use of the-referenceoption. -
inline_hdl: A lightweight HDL block from the Vivado IP cataloginline_hdllibrary. This requires the use of the-vlnvoption.
-vlnv or -type argument. 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.
<name> - The name of the IP cell or hierarchical module to add to
the current IP subsystem design.
-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.Examples
The following 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.The following 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 ]
The following 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
The following example creates a new hierarchical module named
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, creates a new module named myModule2, and adds to
the current instance. Finally the current instance resets 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
/
The following example adds an inline _hdl constant core from the
inline _hdl library of IP integrator catalog to the current
subsystem design with the specified name. Inline _hdl blocks are
in-memory HDL blocks embedded in the subsystem design file. These blocks do not have
any persistent storage on the disk.
create_bd_cell -type inline_hdl -vlnv xilinx.com:inline_hdl:ilconstant:* ilconstant_0