使用HLS各种问题
1 关于求指数函数 exp(x)
在HLS中使用exp(x),也就是指数函数。不能导出RTL到EDK 也就是Pcore 仅仅能导出为VIVADO IP:相关解释:见官方论坛
解决的方法 仅仅能通过通过vivado来做:http://www.xilinx.com/support/documentation/sw_manuals/xilinx2013_2/ug994-vivado-ip-subsystems.pdf
我的解决的方法是非不入流:我用VS2010或者matlab计算对应从0到30000的指数函数结果,然后保存到文件里,之后在HLS中通过查表法去訪问我须要的指数函数计算结果,这 种方法是你须要提前能预測你须要的区间。这样的方法从计算的角度是能够简化时间的。
void wxFillExpLut(float *lut, int size) { for (int i=0; i< size; i++) { lut[i]= expf( - (float) i / LUTPRECISION); //debug_lut[i] = lut[i]; } }
当中size就是我们须要计算的区间,LUT就是一张表。
VDMA driver :https://ez.analog.com/message/70323#70323