RTL design for a nasdaq compatible high frequency trading low level. Supports itch on moldudp64.
C
118
105 commits
updated Dec 24, 2023
The objective of this project is to have a fast, reliable and well verified hight frequency trading interface compatible with NADSAQ ITCH/OUCH protocols.
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
Requirement :
iverilogObtain 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
In tb/hft_tb.v specify the location of your nasdaq itch market data dump :
t = $tb_init("<path_to_file>");
In tb/vpi/Makefile specify path to iverilog :
IVERILOG=<path_to_iverilog>
( Default ) Build and run testbench with no waves :
make run
( 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.
Features currently under development :
This code is licensed under CC BY-NC 4.0, all rights belong to Julia Desmazes.
105 commits
C
61.2%
Verilog
33.3%
Tcl
3.6%
Makefile
1.9%
RTL design for a nasdaq compatible high frequency trading low level. Supports itch on moldudp64.
C
118
105 commits
updated Dec 24, 2023
The objective of this project is to have a fast, reliable and well verified hight frequency trading interface compatible with NADSAQ ITCH/OUCH protocols.
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
Requirement :
iverilogObtain 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
In tb/hft_tb.v specify the location of your nasdaq itch market data dump :
t = $tb_init("<path_to_file>");
In tb/vpi/Makefile specify path to iverilog :
IVERILOG=<path_to_iverilog>
( Default ) Build and run testbench with no waves :
make run
( 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.
Features currently under development :
This code is licensed under CC BY-NC 4.0, all rights belong to Julia Desmazes.
105 commits
C
61.2%
Verilog
33.3%
Tcl
3.6%
Makefile
1.9%