Xilinx / finn-hlslib

Vitis HLS Library for FINN

Home Page:https://xilinx.github.io/finn/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Test results for WIDTH*SIMD greater than 64 are not accurate

arkhodamoradi opened this issue · comments

Test results (test_conv3) are not accurate for SIMD*WIDTH greater than 64 (in memdata.h) . And anything greater than 64 bits will be considered as zero with the following warning:

integer constant is too large for its type

For example:
FixedPointWeights<3,ap_fixed<32,4>,1,1>, last weight is zero
FixedPointWeights<3,ap_uint<32>,1,1>, last weight is zero
FixedPointWeights<68,ap_uint<1>,1,1>, last 4 weights are zero

Correct, the values in memdata.h for that use case have to be written differently for Vivado HLS to process them correctly. You can either modify the gen_weigths.py to print each value between quotation marks (example: "0x0") or with explicit casting (example: ap_uint<65>("0x63561a",16)).
These approaches nonetheless increase the synthesize time and that's why we don't adopt them in the regression tests.