Non-Project Flow - 1.3 English

UltraScale+ Devices Integrated Block for PCI Express Product Guide (PG213)

Document ID
PG213
Release Date
2023-10-19
Version
1.3 English
In a non-project environment, the same basic approach as the project environment is used. First, create the IP using the IP catalog as shown in the Tandem PCIe UltraScale+ Example Tool Flow. One of the results of core generation is an .xci file, which is a listing of all the core details. This file is used to regenerate all the required design sources.
  1. Read in design sources, either the example design or your design.
    read_verilog <verilog_sources>
    read_vhdl <vhdl_sources>
    read_xdc <xdc_sources>
  2. Define the target device.
    set_property PART <part> [current_project]
    Note: Even though this is a non-project flow, there is an implied project behind the scenes. This must be done to establish an explicit device before the IP is read in.
  3. Read in the PCIe IP.
    read_ip pcie_ip_0.xci
  4. Synthesize the design. This step generates the IP sources from the .xci input.
    Note: When out of context synthesis is used, you might need to apply the Pblock constraints using a constraints file that is only applied during implementation. This is because some constraints depend on the entire design being combined to apply the constraints.
  5. Ensure that any customizations to the design, such as the identification of the configuration mode to set the persisted pins, are done in the design XDC file.
  6. Implement the design.
    opt_design
    place_design
    route_design
  7. Generate the bit files. The -bin_file option should be used for Tandem PCIe. The BIN file is aligned to a 32-bit boundary and can facilitate the software loading of the stage 2 bitstream over PCIe.
    write_bitstream -bin_file <file>.bit