We are looking for someone who can program our new FPGA board with USB3.0.
Required skills are:
C/C++ and VHDL
Good understanding of Eclipse and Visual C++ IDE and ARM GCC
Good understanding of Xilinx Spartan 6 FPGAs and Xilinx ISE
Good understanding of USB
Our board has the following components:
1x USB3.0 Connector
1x CYUSB3014 USB Controller Chip with ARM Processor from Cypress
1X I2C EEPROM for ARM Processor
1x Spartan 6 XC6SLX16 FPGA
1x 1Gbit DDR2 SDRAM connected to the FPGA (Not used currently)
1x 100 MHz Clock for FPGA
2x 100 pin extension connectors
Power supplies for USB Chip and FPGA
The board features:
-Can be used as bus powered or self powered.
-Very Small, 45mmx65mm
-External connectors have:
. More than 100 General purpose IOs connected to FPGA or/and USB Chip
. JTAG connections for FPGA and USB Chip
. I2C bus connected to USB Chip
. SPI bus which can connect to an SPI Flash to configure FPGA
-FPGA can be configured with serial slave or SPI modes.
In SPI mode an SPI flash must be connected externally to extension connectors.
In serial slave mode (default) the USB Chip is responsible to configure the FPGA with serial interface (program, init, done, cclk, do ...).
Required software and FPGA development:
1 - USB3.0 driver for 32 bit and 64 bit Windows.
This is already done by Cypress and available for download together with a C++ and C# library.
2 - Firmware for CYUSB3014 USB3.0 chip. Compiled by ARM GCC using Eclipse IDE.
The firmware SDK is available to download from Cypress website (http://www.cypress.com/?id=3521&rtID=119).
The firmware should implement 4 USB Pipes. Control Read/Write, Bulk Read/Write.
It must transfer data over bulk pipes using slave fifo interface.
It should also implement vendor requests using Control pipes.
We need the following vendor requests:
- Configure FPGA
- Clear FPGA
- Reset FPGA
- Register write (address, data to FPGA)
- Register read (address, data to FPGA)
3 - Windows API DLL in C++ (Later also C#) developed with Visual Studio 2010.
We need the following functions.
- Enumerate devices
- Some other control and initialization functions.
4 - Windows Test program in C++ (Later also C#) developed with Visual Studio 2010.
It is just for testing the API functions.
5 - An FPGA entity which connects to slave fifo interface and tests bulk read/write and register read/write.
Please check the CYUSB3014 download link, http://www.cypress.com/?id=3521&rtID=119.
There you can download the driver, api, firmware library as well as many examples.
Selected developer will get the board schematics and a board for testing from us.