Create a new project
Syntax
create_project [‑part <arg>] [‑force] [‑in_memory] [‑ip] [‑rtl_kernel]
[‑quiet] [‑verbose] [<name>] [<dir>]
Returns
New project object.
Usage
Name | Description |
---|---|
[-part]
|
Target part |
[-force]
|
Overwrite existing project directory |
[-in_memory]
|
Create an in-memory project |
[-ip]
|
Default GUI behavior is for a managed IP project |
[-rtl_kernel]
|
Default GUI behavior is for a RTL Kernel project |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
[<name>]
|
Project name |
[<dir>]
|
Directory where the project file is saved Default: . |
Categories
Description
Creates an AMD Vivado™ Design Suite project file (.xpr), or a project file for the Vivado Lab Edition (.lpr), in the specified directory.
For the Vivado Lab Edition: The create_project
command has a different command syntax, with fewer options, in the Vivado Lab Edition. The options that are not supported in Vivado Lab Edition are:
-
-part
- The Vivado Lab Edition project (.lpr) does not specify a target part because thecurrent_hw_target
andcurrent_hw_device
determine the target part. -
-ip
- The Vivado Lab Edition does not define projects for the Managed IP flow.
For the Vivado Design Suite: The default project created for the Vivado Design Suite is an RTL project, which defines the project as holding and manage RTL source files in the source fileset. The type of project is determined by the DESIGN_MODE
Property on the source fileset when the project is created. To change the project type, use the set_property
command to set the DESIGN_MODE
property on the current_fileset
as follows:
- RTL Project -
set_property DESIGN_MODE RTL [current_fileset]
- Netlist Project -
set_property DESIGN_MODE GateLvl [current_fileset]
- I/O Planning Project -
set_property DESIGN_MODE PinPlanning [current_fileset]
Refer to the Vivado Design Suite User Guide: System-Level Design Entry (UG895) for more information on the different types of projects.
This command returns a transcript of its process and the name of the created project, or returns an error if it fails.
Arguments
-part <arg>
- (Optional) Specifies the part to be used for the project. This can be changed after the project is created. If the -part
option is not specified, the default part will be used. This option is not supported in Vivado Lab Edition.
-force
- (Optional) This option is required to overwrite an existing project. If the project name is already define in the specified <dir> then you must also specify the -force
option for the tool to overwrite the existing project.
close_project
command prior to running create_project
.
-in_memory
- (Optional) Specifies that the project should be created in the in-memory database of the Vivado Design Suite to support the Non-Project design flow. This project will not result in a project file or directory structure being written to disk. The purpose of the in-memory project is to allow properties usually associated with a project-based design to be associated with the in-memory design of the non-project design flow.
-in_memory
is not part of the standard non-project design flow, and may cause unexpected behaviors in the Vivado tools. For more information on Non-Project Mode refer to the Vivado Design Suite User Guide: Design Flows Overview (UG892).
-ip
- (Optional) Create a project for the Managed IP flow for exploring IP in the IP catalog, customizing IP, and managing a repository of configured IP. Refer to the Vivado Design Suite User Guide: Designing with IP (UG896) for more information on the Managed IP flow. This option is not supported in Vivado Lab Edition.
-rtl_kernel
- (Optional) Specifies the creation of the project is for use in defining an RTL kernel for the Vitis core development kit.
-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>
- (Required) This argument does not require a parameter name, however, it must appear before the specified <dir>. Since these commands do not have parameters, the tool interprets the first argument as <name>
and uses the second argument as <dir>. A project file is created <name>.xpr, (or <name>.lpr) and a project data folder is also created <name>.data and both are written into the specified directory <dir>.
set_property
command to set the DESIGN_MODE property to change the project from an RTL source project to a Netlist or an I/O Pin Planning project.<dir> - (Optional) This argument specifies the directory name to write the new project file into. If the specified directory does not exist a new directory will be created. If the directory is specified with the complete path, the tool uses the specified path name. However, if <dir> is specified without a path, the tool looks for or creates the directory in the current working directory, or the directory from which the tool was launched.
<name>
to the <dir> and creates a project directory <dir>/<name> and places the new project file and project data folder into that project directory.Examples
When run from the Vivado Design Suite, the following example creates a project called project1.xpr in a directory called myDesigns:
create_project project1 myDesigns
When run from the Vivado Lab Edition, this example creates a project called project1.lpr in a directory called myDesigns:
create_project project1 myDesigns
The following example creates a project called Proj1 in a directory called FPGA in C:/Designs. In addition, the tool will overwrite an existing project if one is found to exist in the specified location. In the second and third lines, the location of -force
is changed to show the flexibility of argument placement.
create_project Proj1 C:/Designs/FPGA -force
-or-
create_project Proj1 -force C:/Designs/FPGA
-or-
create_project -force Proj1 C:/Designs/FPGA
<name>
variable, and the second argument without a preceding keyword is the <dir> variable.The following example creates a project for the Manage IP flow in the specified directory:
create_project -ip manageIP C:/Data
The following example creates a new project called pin_project, and then sets the DESIGN_MODE
property as required for an I/O Pin Planning project, and finally opens an IO design:
create_project pin_project C:/Designs/PinPlanning
set_property design_mode PinPlanning [current_fileset]
open_io_design -name io_1