FPGA Accelerated Network Interface Card

fpga_nic

 

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
    • 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

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
  • 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.