- In the IP catalog search bar, type:
fifo. - Double-click the FIFO Generator from
the Memories & Storage Elements group.
- The Customize IP dialog box opens, as shown in the previous figure. (This is not the original setting; it shows the change that you make to the customization).
- At the top of the Customize IP dialog box, change the Component
Name to
char_fifo. - In the Basic tab:
- Select the default Interface Type of Native.
- From the Fifo Implementation menu, set
Independent Clocks Block RAM.
- In the Native Ports tab:
- Set the Read Mode to
First Word Fall Through. - Set the Write Width to be
8 bits. - Click the Read Width field to adjust it
automatically to
8 bitsas well.
- Set the Read Mode to
- Select the Summary tab.
The Summary page displays a summary of all the options selected and lists resources used for this configuration. The summary for the FIFO Generator core must look like the following figure. For this configuration, you see you are using one 18 K block RAM.
- Verify that the information is correct as shown, and click OK to generate the customized IP core for use in
your design.
The Generate Output Products popup appears. When creating a repository of customized IP using the Managed IP flow, generate all output products, including the design checkpoint (DCP), for each IP. A specific release of the Vivado tools only supports a single version of an IP core. You cannot re-customize or generate outputs for a prior version of IP in the Vivado Design Suite. Instead, you need to update the IP to the latest version if you have not preserved the needed output products.
Important: Only one version of an IP is supported in a given release of the Vivado tool. To use older versions of an IP, ALL output products must be available in your custom IP repository. - Click the Generate button to create
the output products.
- When prompted, click OK.
To reduce synthesis runtime for a design using one or more customized IP cores, the IP are pre-synthesized as a standalone module by default. The netlist is saved in a synthesized checkpoint file (DCP).
During synthesis of the overall design, the Vivado synthesis infers a black box for the IP.
During implementation, the design links the netlists from the DCP files into the project. This flow is scriptable in Tcl for both Project and Non-Project Mode.
To create the synthesized checkpoint file, the Vivado IDE creates and launches a corresponding out-of-context module run.
This run automatically launches, and when synthesis completes, the char_fifo directory contains the following additional files:- char_fifo.dcp
- The synthesis design checkpoint, which contains a netlist for the IP.
- char_fifo_stub.v
- A Verilog port module for use with third-party synthesis tools to infer a black box for the IP. The stub contains directives for Synplify Pro to not insert IO buffers, this can require editing for other third-party synthesis tools.
- char_fifo netlist files, sim_netlist.v, and sim_netlist.vhd
- A Verilog and VHDL netlist for functional simulation of the IP core.
If you use a third-party synthesis tool for the design, you need a Verilog stub file with the port declarations or a VHDL component declaration. This enables you to infer the black box.
The Vivado Design Suite automatically creates this file along with the synthesis design checkpoint (DCP) when generating the output products.
You can reference customized IPs using the XCI file in both Project and Non-Project Mode.
In a project-based design, AMD recommends that you do not copy sources into the local project structure. Instead, reference them from your custom IP repository. For more information on Project Mode and Non-Project Mode, refer to the Vivado Design Suite User Guide: Design Flows Overview (UG892).
- Examine the <extract_dir>/lab_2/my_ip location.
Three directories are created, as shown in the following figure:
- The IP customization (char_fifo) containing the XCI file, which has all the customization information for the IP, and all the output products generated.
- The IP Project (managed_ip_project) which you created in this lab to customize the char_fifo IP and manage the output products, including the post synthesis DCP.
- The support files for IP (ip_user_files) contain
simulation scripts for all supported simulators, copies of the
instantiation templates, and stub files for use with third-party
synthesis tools. They also include static RTL files used for simulation.
The system copies all these files, except for the simulation scripts,
from the IP customization directory (in this case,
char_fifo). Refer to the
Vivado Design Suite User Guide: Designing with
IP (UG896) for more
details on the ip_user_files
directory.
- Examine the Sources window, to see the generated output products in the
Manage IP project.
The generated output products for the char_fifo core include the instantiation template, synthesis files, simulation files, and a synthesized design checkpoint. They also include functional simulation netlists and stub files for use with third-party synthesis tools.
Note: The FIFO customization created in this lab is the same as the one from Lab 1: Customizing the FIFO Generator. If you want to add existing IP into a Managed IP project, select .
You can work with the IP catalog by
searching with a keyword or browsing through the categories.
Tip: For a complete
description of the Customize IP dialog box and its use, see Customizing the FIFO Generator. This Lab assumes that you completed Lab 1, and are
familiar with the concepts covered in that lab.