Design Structure - 2023.2 English

Vitis Libraries

Release Date
2023.2 English

The heart of the implementation is the Binomial tree engine which implements the model. It takes one set of input parameters and a flag to control which type of option (American/European Call or Put) should be calculated. It then returns the option price.

These input parameters are in the form of a structure that contains:

  • S - Stock price
  • K - Strike price
  • T - Expiration time
  • rf - Risk free interest rate
  • V - Volatility
  • q - Dividend yield
  • N - Height of the binomial tree

This function is mostly standard C++ with some exception of using the HLS maths library to replace it. Layered on top of the design is the HLS specific kernel wrapper which is responsible for gathering the input data sets (from DDR or HBM for example), converting them to parallel streams and passing them into the kernel. It then writes the results back out. This level is where the HLS #pragmas are used to control the amount of pipelining and unrolling.