GTS AXI Streaming IP for PCI Express* Design Example User Guide
ID
817713
Date
10/23/2025
Public
2.1. Directory Structure
2.2. Generating the Design Example
2.3. Simulating the Design Example
2.4. Design Example Simulation Testbench
2.5. Compiling the Design Example
2.6. Hardware and Software Requirements
2.7. Program the FPGA
2.8. Installing the Linux Kernel Driver
2.9. Running the Design Example
A.1.1. ebfm_barwr Procedure
A.1.2. ebfm_barwr_imm Procedure
A.1.3. ebfm_barrd_wait Procedure
A.1.4. ebfm_barrd_nowt Procedure
A.1.5. ebfm_cfgwr_imm_wait Procedure
A.1.6. ebfm_cfgwr_imm_nowt Procedure
A.1.7. ebfm_cfgrd_wait Procedure
A.1.8. ebfm_cfgrd_nowt Procedure
A.1.9. BFM Configuration Procedures
A.1.10. BFM Shared Memory Access Procedures
A.1.11. BFM Log and Message Procedures
A.1.12. Verilog HDL Formatting Functions
2.4.4. Single Root I/O Virtualization (SR-IOV) Design Example Testbench
The figure below shows the SR-IOV design example simulation design hierarchy. The tests for the SR-IOV design example are performed by the task called sriov_test, which is defined in altpcietb_bfm_cfbp.v.
The SR-IOV testbench supports up to two Physical Functions (PFs) and 32 Virtual Functions (VFs) per PF. The testbench starts with link training and then accesses the configuration space of the IP for enumeration. After that, it performs the following steps:
- Send a memory write request to a PF followed by a memory read request to read back the same data for comparison. If the read data matches the write data, it is a Pass. This test is performed by the task called my_test (defined in altpcietb_bfm_cfbp.v). This test is repeated twice for each PF.
- Send a memory write request to a VF followed by a memory read request to read back the same data for comparison. If the read data matches the write data, it is a Pass. This test is performed by the task called cfbp_target_test (defined in altpcietb_bfm_cfbp.v). This test is repeated for each PF and VF.
- Send a burst of memory write request and a burst of memory read for data comparison. If the read data matches the write data, it is a Pass. This test is for a VF under PF0 only to test out incremental addresses.