IP User Files (ip_user_files) for Core Container - 2023.2 English

Vivado Design Suite User Guide: Designing with IP (UG896)

Document ID
Release Date
2023.2 English

During generation of the IP output products, some files are automatically copied into a special directory called ip_user_files for convenience. This is especially useful when using the Core Container feature (see Using a Core Container). IP support files are stored in a convenient location under the ip_user_files directory.

This directory structure allows you access to instantiation templates and simulation files for an IP using the Core Container feature without having to manually extract the files from the binary container. IP support files are stored in the ip_user_files directories regardless of whether you use Core Container feature.

When you create an IP customization (XCI), the Vivado IDE creates a directory whose name is the same as the IP that contains the IP definition and output products. IP Files and Directory Structure describes these files.

When you elect to use the Core Container feature, the Vivado IDE creates a XCIX binary file that contains all the files of the IP (see Using a Core Container for more details).

Depending on whether the IP was created in a RTL project or in a Managed IP project, this directory is either:

  • RTL project: <directory to project>/<project name>/ip_user_files/
  • Managed IP project: <managed_ip_project_directory>/ip_user_files/

Inside the ip_user_files directory there are a number of folders The folders that are present depend on what is in your project (IP, Block Designs, and so forth).

The following is a brief description of each of the directories that could be present. Each directory is covered in more detail in this section, and also described in IP Files and Directory Structure.

  • bd: Contains a sub-folder for each IP integrator block design (BD) in the project. These sub-folders have support files for the IP used.
  • ip: Contains files specific to each IP customization (XCI/XCIX) that is present in the project or that was created in the Managed IP project.
  • ipstatic: Contains common IP static files from all IP/BDs in the project.
  • mem_init_files: This directory is present if any IP deliver data files.
  • sim_scripts: By default, scripts for all supported simulators for the selected OS are created for each IP and for each Block Design present.

Regardless of whether you use the Core Container feature, the Vivado Design Suite creates these files and directories. In both cases, the files exist; either in the XCIX binary or in the IP directory.

To manually export IP/BD files to the ip_user_files directory you can use the export_ip_user_files command in the Tcl Console. When you reset and generate an IP or BD, this command runs automatically.

Contents of the bd Directory

The bd directory is present if your project has one or more IP integrator block designs. Each BD has a unique sub-folder that contains support files for the used IP.

The three directories present are:

  • hdl: Simulation top-level file for the block design.
  • ip: each IP in the BD has a directory present containing simulation files.
  • ipshared: The simulation files which are common between IP present in the BD.

If you selected an out-of-context (OOC) per BD during generation, stub files are present in the bd directory in the respective Block Design sub-folder.

Contents of the ip Directory

The ip directory contains support files for the IP present in the project. These files are placed in a sub-directory named after the IP. The support files include:

  • Simulation files in a sub-folder called sim (Core Container only, see Simulating with Core Container.)
  • Instantiation template files for Verilog and VHDL (.veo and .vho)
  • Stub files for use in a third-party synthesis tool to infer a black box for the IP (*_stub.v and *_stub.vhdl)

The support files are also located in the IP directory. For convenience and consistency with IP using the Core Container feature, copies of files that you might need are placed in the ip_user_files directory as well.

Contents of the ipstatic Directory

There are many IP that share files used for simulation that do not change for each customization. The ipstatic directory contains these files for all IP and BD in the project. The scripts created for simulation reference the files in this directory as needed. The dynamic simulation files that an IP deliver are in the IP customization directory. When using the Core Container feature, the dynamic simulation files are located in the ip directory. See IP User Files (ip_user_files) for Core Container.

Contents of the mem_init_files Directory

Some IP deliver data files. These files are marked with a DATA property. These files are stored in the mem_init_files directory. The files that can be present are tagged as data, and include memory initialization files (MIF) and text files (TXT).

Contents of the sim_scripts Directory

Scripts are created for each IP and BD simulation. By default, the Vivado Design Suite generates scripts for all simulators that are supported by the OS on which the IP was generated.

For Microsoft Windows, this includes:

  • Vivado simulator
  • Mentor Graphics ModelSim Simulator
  • Mentor Graphics Questa Advanced Simulator
  • Riviera-PRO Simulator
  • Active-HDL Simulator (Windows only)

For Linux, this includes these additional simulators:

  • Synopsys Verilog Compiler Simulator (VCS)
  • Cadence Incisive Enterprise Simulator (IES)

To control scripts generation, see the IP Settings. The generated scripts reference the simulation files from the IP customization directory. For IP that use the Core Container feature, the scripts reference the simulation files in the IP User Files (ip_user_files) for Core Container directory. For IP in a block design, the scripts reference the simulation files in the IP User Files (ip_user_files) for Core Container.

Tcl Command to Export Support Files

During generation of an IP, regardless of the use of the Core Container feature, support files are placed in the specified locations automatically. See Tcl Command to Export Support Files.