Essenceia / Nasdaq-HFT-FPGA

RTL design for a nasdaq compatible high frequency trading low level. Supports itch on moldudp64.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HFT FPGA RTL

The objective of this project is to have a fast, reliable and well verified hight frequency trading interface compatible with NADSAQ ITCH/OUCH protocols.

Project architecture!

Test bench

Our top level testbench is driven by a C library via the VPI interface. This library reads the binary file containing a day of nasdaq's itch packets, packages these itch messages into moldudp64 packets then breaks then down into an axis stream. We compare the outupt of the itch rtl decoder module out the other end.

For more information and quick start instructions see tb/README.md

Quickstart

Requirement :

  • iverilog
  1. Obtain a nasdaq binary file dump of totalview 5.0 itch messages.

    Link to the official nasdaq server : Nasdaq ITCH marketdata dumps

    Archive should be named <date>.NASDAQ_ITCH50.gz

  2. In tb/hft_tb.v specify the location of your nasdaq itch market data dump :

    t = $tb_init("<path_to_file>");
    
  3. In tb/vpi/Makefile specify path to iverilog :

    IVERILOG=<path_to_iverilog>
    
  4. ( Default ) Build and run testbench with no waves :

    make run
    
  5. ( Optional ) Dump waves during simulation :

    make run wave=1
    

    Open waves, by default we are using gtkwave :

    make wave
    

For more in depth usage and additional options see tb/README.md.

Roadmap

Features currently under development :

  • Totalview ITCH 5.0 decoder
  • Totalview ITCH 5.0 Glimpse extension decoder
  • MoldUDP64 AXI stream receiver
  • UDP Multicast receiver
  • MoldUDP64 missing message detection
  • Send MoldUDP64 missing message retransmission request
  • Ethernet Physical layer for 10GBASE-R
  • Ethernet Physical layer for 40GBASE-R
  • Ethernet MAC layer
  • Ethernet IP layer ( IPv4 )
  • Ethernet UDP layer
  • Ethernet TCP layer
  • SoupBinTCP
  • OUCH 5.0 encoder
  • TCP Glimpse request
  • TCP Glimpse response

License

This code is licensed under CC BY-NC 4.0, all rights belong to Julia Desmazes.

About

RTL design for a nasdaq compatible high frequency trading low level. Supports itch on moldudp64.

License:Other


Languages

Language:C 61.2%Language:Verilog 33.3%Language:Tcl 3.6%Language:Makefile 1.9%Language:Shell 0.0%