R-Tile Avalon® Streaming Intel® FPGA IP for PCI Express* Design Example User Guide

ID 683544
Date 4/12/2024
Public
Document Table of Contents

2.2. Generating the Design Example

Figure 18. Procedure
  1. In the Quartus® Prime Pro Edition software, create a new project (File > New Project Wizard).
  2. Specify the Directory, Name, and Top-Level Entity.
  3. For Project Type, accept the default value, Empty project. Click Next.
  4. For Add Files click Next.
  5. For Family, Device & Board Settings under Family, select Agilex™ 7 I-Series.
  6. Select the Target Device for your design.
  7. Click Finish.
  8. In the IP Catalog locate and add the Intel R-Tile Avalon® -ST Hard IP for PCI Express* .
  9. In the New IP Variant dialog box, specify a name for your IP. Click Create.
  10. On the Top-Level Settings and PCIe* Settings tabs, specify the parameters for your IP variation.
    If you want to generate the SR-IOV design example, perform the following steps to enable SR-IOV:
    1. On the Top-Level Settings tab, set the PCIe Hard IP Mode parameter to Gen5 1x16, interface - 1024 bit
    2. On the PCIe0 Settings tab, navigate to PCIe0 PCI Express/PCI Capabilities > PCIe0 Device > PCIe0 Multifunction and SR-IOV System Settings and:
      1. Check the Enable Multiple Physical Functions parameter.
      2. Set the Total Physical Functions (PFs) parameter to 2.
      3. Check the Enable SR-IOV Support parameter.
      4. Set the Total Virtual Functions of Physical Function 0 (PF0 VFs) parameter to 16.
      5. Set the Total Virtual Functions of Physical Function 1 (PF1 VFs) parameter to 16.
    3. On the PCIe0 Settings tab, navigate to PCIe0 Base Address Registers > PCIe0 PF0 BAR Configuration > PCIe0 PF0 BAR and:
      1. Set the BAR0 Type parameter to 64-bit prefetchable memory or 64-bit non-prefetchable memory or 32-bit non-prefetchable memory.
      2. Set the BAR0 Size parameter to any value other than N/A.
    4. Repeat steps i and ii for PCIe0 PF0 BAR above in the PCIe0 PF0 VF BAR section.
    5. On the PCIe0 Settings tab, navigate to PCIe0 Base Address Registers > PCIe0 PF1 BAR Configuration > PCIe0 PF1 BAR and:
      1. Set the BAR0 Type parameter to 64-bit prefetchable memory or 64-bit non-prefetchable memory or 32-bit non-prefetchable memory.
      2. Set the BAR0 Size parameter to any value other than N/A.
    6. Repeat steps i and ii for PCIe0 PF1 BAR above in the PCIe0 PF1 VF BAR section.
    7. On the PCIe0 Settings tab, navigate to PCIe0 PCI Express/PCI Capabilities > PCIe0 MSI-X > PCIe0 PF MSI-X > PCIe0 PF0 MSI-X and check the Enable MSI-X parameter.
    8. On the PCIe0 Settings tab, navigate to PCIe0 PCI Express/PCI Capabilities > PCIe0 MSI-X > PCIe0 PF MSI-X > PCIe0 PF1 MSI-X and check the Enable MSI-X parameter.
    9. On the PCIe0 Settings tab, navigate to PCIe0 Device Identification Registers and set the following parameters for the PCIe0 PF0 IDs and the PCIe0 PF1 IDs:
      • Vendor ID: 0x00001172
      • Device ID: 0x00000000
      • Revision ID: 0x00000001
      • Class Code: 0x00ff0000
      • Subsystem Vendor ID: 0x00001172
      • Subsystem Device ID: 0x00000000
  11. On the Example Designs tab, make the following selections:
    1. For Available Example Designs, select the PIO, SR-IOV or Performance design example.
    2. For Example Design Files, turn on the Simulation and Synthesis options. If you do not need these simulation or synthesis files, leaving the corresponding option(s) turned off significantly reduces the example design generation time.
    3. For Generated HDL Format, only Verilog is available in the current release.
    4. For Target Development Kit, select the appropriate development kit.
      Note: If you select None, the generated design example targets the device you specified in Step 5 above. If you intend to test the design in hardware, make the appropriate pin assignments in the .qsf file. You can also use the pin planner tool to make pin assignments.
      Note: If you select a development kit, the device on that board overwrites the device selected in the Quartus® Prime project if the devices are different.
      Note: For Currently Selected Example Design, select PIO, SR-IOV or PERFORMANCE_DESIGN.
  12. Select Generate Example Design to create a design example that you can simulate and download to hardware. If you select one of the R-Tile development boards, the device on that board overwrites the device previously selected in the Quartus® Prime project if the devices are different. When the prompt asks you to specify the directory for your example design, you can accept the default directory, ./intel_rtile_pcie_ast_0_example_design, or choose another directory.
    Figure 19. IP Parameter Editor Screen for Generating Example Design
  13. Click Finish. You may save your .ip file when prompted, but it is not required to be able to use the example design.
  14. Close the current open project.
  15. Open the example design project. This is the new project that has been generated in the location specified in step 12.
  16. Compile the example design project to generate the .sof file for the complete example design.
  17. Close your example design project.
    Note that you cannot change the PCIe pin allocations in the Quartus® Prime project. However, to ease PCB routing, you can take advantage of the lane reversal and polarity inversion features supported by this IP.