Demo Video

Setup:

The FPGA is placed inside our suitcase for portability. Our benchmark CPU is located remotely in the A-Level. The GUI is located on our personal PC.

  • Simulator PC and FPGA interaction

The simulator sends a predetermined packets of option data through UART, and then waits until it receives the output information. It saves the output information to a file, then checks the accuracy of each calculation against the C benchmark’s output.

  • Simulator PC and Benchmark CPU interaction

The simulator creates a file of the options data, formatted for the C benchmark. It then connects to the server and sends the file. The CPU then runs calculations on the file, saves it, and sends it back to the simulator PC. The simulator then closes its connection to the server.

  • GUI

The press of the Begin Sending button initiates both interactions specified above. The simulator waits until all results have been sent back and then starts displaying the results and how many of the results were accurate to the tenth of a cent.

Comparison:

Here is a “live” comparison created with the timestamps sent back from the FPGA and the CPU. The CPU timestamps were calculated using rdtsc and the FPGA timestamps were calculated based off the number of clock cycles it took to computer with the clock frequency of the FPGA being 100MHz. Since the timestamps were in microseconds and the fastest c# could animate in was in milliseconds, the “live” times were slowed down significantly to accurately illustrate the difference in calculations performed.