These C++ files generate an arctangent (ATAN) look-up table function that is used in the AutoESL tool. The design uses the ap_fixed<> data types for input and output. The bit widths and binary points are parameters defined in a header file.
Design Languages (HDL/SW):
C++ source, AutoESL project.
The file "atan_lut_gen.cpp" (compiled with g++) generates a file of ATAN look-up values. The file it creates, "atan_ROM.h" is used in the design function, "atan_lut.cpp," to implement the ATAN LUT function. The testbench file, "atan_lut_tb.cpp," compares the ATAN LUT function with a floating-pt ATAN function. All bit width and binary point parameters are set in "atan_lut.h."
A AP_RESOURCE directive was placed on the atan_ROM array in "atan_lut.cpp" in AutoESL tool to cause it to implement the LUT in BRAM. The AP_SOURCE was set to "core = ROM_coregen."