Jia3Xu
New Contributor
2 years agoHLS generate testbench failed.
I wrote a kernel defines like this:
void simulateDDR_512(mm_8bit_t& storage, ihc::stream_in<mmCmd>& txWriteCmdFifo, ihc::stream_out<mmStatus>& txWriteStatusFifo, ihc::stream_in<mmCmd>& txReadCmdFifo,
ihc::stream_in<net_axis<DATA_WIDTH> >& txBufferIn, ihc::stream_out<net_axis<DATA_WIDTH> >& txBufferOut,
ihc::stream_in<mmCmd>& rxWriteCmdFifo, ihc::stream_out<mmStatus>& rxWriteStatusFifo, ihc::stream_in<mmCmd>& rxReadCmdFifo,
ihc::stream_in<net_axis<DATA_WIDTH> >& rxBufferIn, ihc::stream_out<net_axis<DATA_WIDTH> >& rxBufferOut);
and the net_axis is defined as :
template <int D>
struct net_axis
{
ac_int<D, false> data;
ac_int<D/8, false> keep;
ac_int<1, false> last;
net_axis() {}
net_axis(ac_int<D, false> data, ac_int<D/8, false> keep, ac_int<1, false> last)
:data(data), keep(keep), last(last) {}
};
the emulation on x86-64 success. but simulation with questasim failed with Error:
Creating x86-64 testbench
Compiler Error: Cannot generate a testbench for component _Z15simulateDDR_512RN3ihc7mm_hostI6ac_intILi8ELb0EEJNS_6dwidthILi8EEENS_6awidthILi64EEENS_6aspaceILi1EEENS_7latencyILi0EEENS_8maxburstILi8EEENS_11waitrequestILi1EEEEEERNS_9stream_inI5mmCmdJEEERNS_10stream_outI8mmStatusJEEESK_RNSH_I8net_axisILi512EEJEEERNSL_ISQ_JEEESK_SO_SK_SS_SU_ because argument txBuffer is a pointer or reference to an opaque type. This may occur for templated types if the argument is unused in the component.
HLS Testbench component wrapper generation FAILED.
Makefile:27: recipe for target 'simulateDDR_512-sim' failed
any ideas or solutions to this problem?