Test results for WIDTH*SIMD greater than 64 are not accurate
arkhodamoradi opened this issue · 1 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.