Coder Social home page Coder Social logo

sylinuxhy / ece1373_2016_hft_on_fpga Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mustafabbas/ece1373_2016_hft_on_fpga

0.0 1.0 0.0 3.17 MB

High Frequency Trading using Vivado HLS

License: MIT License

Tcl 11.09% C++ 1.21% Shell 0.13% Verilog 71.20% VHDL 16.09% C 0.09% Python 0.19%

ece1373_2016_hft_on_fpga's Introduction

ECE1373 Course Project - High Frequency Trading

Summary

This project is an HFT subsystem for Xilinx FPGAs, that provides a very low latency (<450ns roundtrip) abstract view of a FAST (FIX Adapted For Streaming) financial data Eternet feed. The core idea is to factor out the common aspects of an HFT system (efficient networking, encoding/decoding, sorting and storing market data) into an easy to use moidule that is accesible entirely through AXI Streams, so that more specialized HFT trading algortihms can be built on top of it.

The module also supports timestamping outgoing orders for in-hardware latency profiling

How to use

Step 1: Build the HLS IP cores:

  • Navigate to src folder and run the following comands:

vivado_hls -f build_fast_core.tcl vivado_hls -f build_microblaze_to_switch_core.tcl vivado_hls -f build_order_book_core.tcl vivado_hls -f build_threshold_core.tcl

Step 2: Build the Vivado IP Integrator Project

  • Navigate to src folder and open vivado tcl console using the following comand:

vivado -mode tcl

  • In the tcl console run the following comand

build_project.tcl

Step 3: Program the FPGA

  • Open vivado and open the project in src/hft_proj

  • click generate bitstream: this will run through the vivado synth and place and route flow

  • Export bitstream and launch the sdk if you wish to program the microblaze (step not needed)

  • program the device using the sdk src files found in src/sdk_src

Step 3: Run the scripts

scripts/testSystem.py [input testcase from createTestVectors.py]

  • Tests the system using the provided testcase. Order book is displayed in a GUI window. scripts/manualPacketTest.py
  • Allows simple sending of hex number over the network.

Repository structure

src/ Contains the Vivado project used to build the project

/src/*_src/ Contains the src code of HLS projects for the various parts of our project. All project cores were developed using Vivado HLS.

Authors

Brett Grady, Mustafa Abbas, Andrew Boutros

Acknowledgements

Thanks to Dan Ly-Ma for providing the initial base project (simple demonstration of Xilinx Network Stack on 8K5) which this project used as a base.

ece1373_2016_hft_on_fpga's People

Contributors

mustafabbas avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.