MATLAB and C Results
We tested the MATLAB and C at multiple levels of iterations, ranging from 2^14 to 2^17 iterations. While the highest number of iterations theoretically produces the most accurate price, it is not necessarily needed to iterate so many times. Therefore, analyzing the error, we concluded that 2^15 iterations produces an acceptable level of deviations from the true price of the Barrier Option. In addition, reducing the number of iterations dramatically improves the performance. Reducing the iterations from 2^17 to 2^15 reduces the running time by roughly 75%.
Due to certain limitations of the VHDL simulations, we need to simulate at 2^8 iterations. Fortunately, as shown below, the relationship between iterations and time is linear, therefore we can multiply the time results of 2^8 iterations by 2^6 to arrive at projected time results for 2^14 iterations. Once we adjust the times, we still find that the hardware design is far superior to the MATLAB and C. It should be noted that the prices differ from the C and MATLAB, this is due to some difficulties with the Random Number Generator in VHDL. While it is something to repair in the future, the important results shown are the immense speed up of the hardware design over the MATLAB and C code.
As can be seen in the table above on the left, the speed-ups follow a relatively linear relationship with the number of iterations. As the iterations increase by a factor of 2, the process slows by a factor of 2. Additionally, as is evident in the table on the right, the VHDL implementation achieves a speed-up of over 450x the MATLAB.