AR# 59829

Vivado HLS - unsupported memory access on variable '****' which is (or contains) an array with unknown size at compile time

Description

I have the following code which fails with unsupported memory access on the variable 'src', which is (or contains) an array with unknown size at compile time:
 
void sInvTrans16_HEVCDec(tEmzInt16 *src, tEmzUint8 *predPtr, tEmzInt32 frameWidth)
{
lEEO[0] = sInvTran_4x4_Table[4]*src[ 64 ] + sInvTran_4x4_Table[12]*src[192];
lEEE[0] = sInvTran_4x4_Table[0]*src[ 0 ] + sInvTran_4x4_Table[8]*src[128];


How can I resolve this?

Solution

In this case 'src' is used as a pointer and has been accessed with non-sequential mode. 

This interface can be synthesized only when it has been declared as ap_bus.

Use the directive INTERFACE and set it as ap_bus.

For more information about using INTINTERFACE , please refer to (UG902)

http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_4/ug902-vivado-high-level-synthesis.pdf

AR# 59829
Date 03/25/2015
Status Active
Type Error Message
Tools More Less