Sample: PipeTest

The PipeTest sample is helpful in testing and verifying bulk transfers. The sample allows you to do the following:

  • Perform bandwidth tests at full rate with various block and length settings
  • Perform bandwidth tests using block throttling to restrict data flow
  • Perform pattern tests with optional verification and error injection
  • Perform pipe transfer stress tests

Usage Information

  1. Download the pre-built sample bitfiles corresponding to your FPGA module from our Pins Downloads.
  2. Find PipeTest.exe (and its source code) in the Samples Directory installed with FrontPanel
  3. You need to have the following in a single directory:
    • PipeTest.exe
    • okFrontPanel.dll (.so for Linux, .dylib for macOS)
    • pipetest.bit (from step 1)

A device is only accessible in one application at a time. Ensure the FrontPanel application is closed before running the sample.

Usage: PipeTest bitfile [serial S] [repeat N] [pattern lfsr|sequential|walking1|walking0|hammer|neighbor|fixed F]
                 [throttlein T] [throttleout T] [check] [inject]
                 [blocksize B] [segmentsize S]
                 [stress] [bench] [read N] [write N]

  serial S       - Optionally specify serial S of device to test.
  bitfile        - Configuration file to download, alternatively specify \"nobit\" to skip configuration.
  repeat N       - Repeats the requested tests for N seconds (\"inf\" to run forever).
  pattern        - Set pattern to one of the supported patterns.
     lfsr        - [Default] Selects LFSR psuedorandom pattern generator.
     sequential  - Selects Counter pattern generator.
     walking1    - Selects Walking 1's pattern generator. (USB 3.0 only)
     walking0    - Selects Walking 0's pattern generator. (USB 3.0 only)
     hammer      - Selects Hammer pattern generator. (USB 3.0 only)
     neighbor    - Selects Neighbor pattern generator. (USB 3.0 only)
     fixed F     - Selects a fixed pattern defined by hex input F. (USB 3.0 only)
  throttlein     - Specifies a 32-bit hex throttle vector (writes).
  throttleout    - Specifies a 32-bit hex throttle vector (reads).
  check          - Turns on validity checks.
  inject         - Injects an error during data generation.
  blocksize B    - Sets the block size to B (for BTPipes).
  segmentsize S  - Sets the segment size to S.
  stress         - Performs a transfer stress test (validity checks on).
  bench          - Runs a preset benchmark script and prints results.
  read N         - Performs a read of N bytes and optionally checks for validity.
  write N        - Performs a write of N bytes and optionally checks for validity.