1.Create a Vivado Project
You need a Vivado project that targets the same FPGA part as your NI hardware so that the IP catalog shows only compatible IP.

- Select Create Project from the Quick Start panel


- Choose RTL Project. You can check Do not specify sources at this time since the project is only used for IP configuration

- On the Default Part page, select the FPGA part that matches your NI target (e.g., xcvu11p-flgb2104-2-e for the PXIe-7903).

- Finish the wizard. Vivado opens the project.
2. Browse the IP Catalog
- In the Vivado Flow Navigator (left sidebar), under PROJECT MANAGER, click IP Catalog.
- The IP Catalog panel opens, organized in a tree by category (e.g., Basic Elements, Communication & Networking, Math Functions, DSP, Memory & Storage Controllers, etc.).
- Use the Search bar at the top of the IP Catalog to find specific IP by name or keyword (e.g., "FIFO", "FIR Compiler", "Block Memory Generator", "AXI DMA").
- You can filter by Supported Devices, Vendor, or Status (Production, Beta, Deprecated) using the filter controls.
3.Configure and Customize IP
- Double-click an IP core in the catalog to open its customization dialog.
- The customization GUI lets you set parameters specific to that IP.

- The IP Symbol view on the left side of the dialog shows the port interface that will be generated, this is what you will connect to in LabVIEW FPGA.
- Set the Component Name to something unique and descriptive.
- Click OK when done configuring the IP.
- Vivado prompts you to Generate Output Products. Click Generate.

After generation, the IP output products are located under your Vivado project directory, typically:

4.Option A: Import via .xci File
The .xci file is the recommended approach when you want LabVIEW FPGA and the compile worker to synthesize the IP as part of the FPGA compile. The compile worker invokes Vivado to process the xci file, so the IP is synthesized with settings matching the rest of your design.
- 4A.1 Using the IP Integration Node (IPIN)
-
- In your LabVIEW FPGA block diagram, drop an IP Integration Node from the palette.

-
- Right-click the IP Integration Node and select Configure… (or double-click it).
- In the configuration dialog, press the Add Synthesis File... button and add the .xci file.

-
- Complete the rest of the wizard.

- 4A.2 Using CLIP (Component-Level IP)
You can also integrate the IP at the CLIP level, perhaps because it connects to physical I/O or because you are using the IP in a larger HDL module. You can reference the xci file in your CLIP XML declaration similar to other files. You can also use the CLIP Wizard to create the XML declaration:

5.Option B: Import a Synthesized Netlist (edif or dcp)
A .dcp (Design Checkpoint) or edif file contains the fully synthesized netlist of the IP. This approach is useful when:
-
- You want to avoid having the compile worker re-synthesize the IP (faster compile times for large IP).
- You run into issues importing the xci file
- 5.1 Generate the DCP in Vivado
If Vivado did not automatically produce a .dcp during output product generation:
- In the Vivado Sources window, right-click your IP instance.
- Select Generate Output Products….

- Select Out-of-Context (OOC) synthesis.
- After generation completes, the .dcp file is generated.
- If you want an edif file, at this point you can File -> Export -> Export Netlist

And then ensure the edif option is selected:

If you have additional HDL surrounding the IP:
- Run Synthesis on your Vivado project (or just the IP).
- After synthesis, open the synthesized design.
- Use File > Checkpoint > Write… to save a .dcp file.
Note: this is also a way to integrate SystemVerilog IP into LabVIEW FPGA.
- 5.2 Import a netlist into LabVIEW FPGA
-
- The netlist file can then be used with the IP Integration Node or CLIP in a similar manner to the xci file, add it as a source file in the configuration.
- If using the IP Integration Node, you will need a simulation model. The option to use LabVIEW to generate a post synthesis simulation model is convenient:

