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_script
s: 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 will have 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,
then 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 a user
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.