FPGA Accelerated Network Interface Card
Open Source:
- This project has gone open-source, follow the development on the “FPGA Now” Blog:
Features:
- 4 x 10 Gigabit Network Connections (SFP+ Copper or Fiber-Optic options both available)
- 2GB onboard DDR3 RAM
- 3.5 Megabytes of Static RAM
- 32 DMA channels for low-latency data transfer to and from host computer
Abilities:
- Direct access to four (4) 10 Gigabit Ethernet Ports inside the FPGA
- Parse and extract important information from incoming Ethernet Frames before the MAC even sees the data
- Run one or more MicroBlaze Soft Processor Cores
- Run slimmed down version of linux
- Run full TCP/IP stack
- Run your Algo (C++ only)
- (RECOMMENDED) Move part of your Algo to the FPGA.
- We are the experts and can advise you on what to move:
- To the FPGA
- To the MicroBlaze Soft Processor Core
- What to leave behind on the host computer
- How to glue everything together
- We are the experts and can advise you on what to move:
- For more information about a Xilinx MicroBlaze Soft Processor Core see:
Destinations:
- All output of the FPGA processing of data can go to any or all of the following destinations:
- Host computer – the computer which you have plugged this FPGA board in to:
- Linux
- Windows
- OSX (Hey, why not? the FPGA is so fast you can even run this from your MacBook Air)
- C++ application running on a MicroBlaze Soft Processor Core
- Another part of the FPGA itself
- The rest of your network using as many of the 10 Gigabit connections as you like
- Host computer – the computer which you have plugged this FPGA board in to:
Ideas:
- With Market Data
- Filter Market Data based on instrument and/or exchange
- Calculate an Index (i.e. DOW, S&P, …etc)
- Consolidate multiple Market Data feeds into one
- Keep the best prices only
- Level 1, 2, or as deep as you want
- Custom Instrument Pricing
- About that new exotic/synthetic instrument you just started trading?
- Detect Events
- Want to avoid the next Flash Crash? Detect the Flash Crash inside the FPGA, and alert your entire network via the 4 destinations listed above.
- Other Live Analysis
- Have an idea? Want to know if it is feasible? Let us know… just try us.
- For Executing Orders
- Order Execution
- FIX/Proprietary Feed
- Maintain a list of orders with the aid of the Host Computer or application running on MicroBlaze Soft Core Processor
- Execute those orders by sending a fill as soon as a matching order enters the FPGA. Even before the Ethernet Frame is parsed by your MAC!
- Use IEEE-1588 synchronization to execute orders at exactly a specified time
- Market Making
- Maintain an OrderBook inside the FPGA
- Fill Orders
- FIX/Proprietary Feed
- Order Execution
- Improving Your Network
- Compress your custom protocol before sending it out on the network.
- Decompress it on the receiving end before sending it back up to your host computer
- Pre-parse your text-based protocol into the binary format appropriate for your host software.
- i.e. convert a text string representation of a date into the binary format required by your host operating system.