-29-2018 03:11 AM
From this input argument...
mytype_t Buffers[<some defines that resolves to 2048>]
...I am getting the error:
ERROR: [XFORM 203-103] Array 'Buffers.V' (<path and filename>):
partitioned elements number (2048) has exeeded the threshold (1024), which may cause long run-time.
01-15-2019 07:51 AM
If this in a c++ routine and using arbitrary precision... redefine the MAX prior to including the header file
#define AP_INT_MAX_W 4096 // Must be defined before next line
#include "ap_int.h"
ap_int<4096> very_wide_var;
Hope that helps
If so, please mark as solution accepted.. Kudos also weclomed :-)
01-15-2019 11:48 AM
No. The problem is not the width of the integer, but the length of the array: the number of elements.
The transmitted array seems to be partitionned.
I don't know the type myType_t, but If you think about the generated hardware: 2048 elements x let say 8 bits, this means 16384 wires directly connected to the IP! This is not manageable in hardware.
The error says also that it cannot partition an array longer than 1024, because it may cause long runtime. When you partition an array and execute a number of operations in parallel, the tool has to generate all these operations and schedule them: a lot of hardware at the end.
01-17-2019 03:49 AM
As @oliviert has said, what you're asking for is going to take an awfully large amount of space. The only time I've ever used a massively partitioned array (1024 elements) was when I was specifically trying to see how full I could get a Zynq 7045 before Vivado gave up; the answer was over 90% LUT utilization and still meeting timing...
Can you explain the scenario in more detail? Where is this data coming from (another IP? CPU?) and how is it being used?