Getting Started with ZTEX USB-FPGA-Module 2.14b – KBA229369

Version 1

    Author: HemanthR_06           Version: **


    How can I run an example firmware on ZTEX USB-FPGA-Module 2.14b, which interfaces FX3S with Xilinx FPGA?

    FPGA boards developed and sold by ZTEX are mainly designed for prototyping and small series development. These boards can also be used as evaluation or development kits. An open source SDK is available for ZTEX products.

    By using a firmware with Default Interface in combination with a Device Server, it is possible to access ZTEX FPGA board without developing any special software.

    ZTEX USB-FPGA-Module 2.14b uses Cypress FX3S as USB controller interfacing with Xilinx XC7A35T FPGA. You can purchase this board from the ZTEX online store.

    This knowledge base article (KBA) explains how to run the ZTEK SDK example, memfifo, on ZTEX USB-FPGA-Module 2.14b.

    In this example, a WinUSB Host application communicates with FX3S, which is interfaced to Xilinx FPGA. Figure 1 shows the USB-FPGA Module 2.14 board.

    Figure 1. USB-FPGA Module 2.14

    ZTEX also provides a debug board, which is an add-on card for Series 2 FPGA Boards. This debug board contains LEDs, switches, and a JTAG header, and is intended to simplify debugging and prototyping. You can buy the debug board from the ZTEX online store. However, the debug board is not necessary to run the memfifo example firmware discussed in this KBA.

    Follow these steps to run the memfifo example:



    1. Download the ZTEX SDK,, from here.

    2. Go to C:\Program Files\Java, on your PC, and check if Java Runtime Environment JRE 7 or higher is installed. If not, see the Software requirements for running packages section mentioned here.

    3. On the USB-FPGA Module 2.14 board, make sure that Jumper 1 (JP1) is closed. For more details, see the JP1 section mentioned here.

    4. Connect the board to a USB SuperSpeed (USB 3) port of PC.

    5. If Cypress USB device driver (cyusb3.sys) is installed in the PC, the board enumerates as Cypress FX3 USB Bootloader Device in the Universal Serial Bus controllers section of the Device Manager as shown in Figure 2.

    Figure 2. Board Enumerated as Cypress FX3 USB Bootloader Device


    If the device driver is not available, the board enumerates as WestBridge in the Other devices section of the Device Manager as shown in Figure 3.

    Figure 3. Other Devices Section of Device Manager


    In either case, update the device driver to WinUSB, using the Zadig application (see Figure 4).

    Figure 4. Using Zadig Application to Update Device Driver


    Note: You can download Zadig application from here.

    Once WinUSB is installed, the device is listed under the Universal Serial Bus devices section of the Device Manager as shown in Figure 5.


    Figure 5. After Binding the Device to WinUSB Driver


    6. Go to the path of the downloaded ZTEX SDK:
        ${ZTEX SDK Path}\ztex-191017\ztex\default\usb-fpga-2.14

    7. Run prog-2.14b.bat. Press continue when prompted. The board re-enumerates as shown in Figure 6.

    Figure 6. Device Enumerated with Two Interfaces


    8. Bind both interfaces, shown in Figure 6, to WinUSB driver according to step 5. The Device Manager is now updated (see Figure 7).

    Figure 7. After Binding Both Interfaces to WinUSB Driver


    9. The default firmware is now running on the board. Go to the path of the downloaded ZTEX SDK:
        ${ZTEX SDK Path}\ztex-191017\ztex\examples\memfifo

    10. Run memfifo.bat. Command prompt displays the logs as shown in Figure 8.

    Figure 8. Command Prompt Logs when Batch File is Run


    This example performs the tests mentioned in the Readme file present in the memfifo example directory. For more details on the test, see the file in the memfifo example directory. Note that the memfifo example directory is ${ZTEX SDK Path}\ztex-191017\ztex\examples\memfifo.