3.6.3.18 SHLS-33
(Ask a Question)Message
Error: (SHLS-33) {buffer_type} '{variable}' on {location} must be written by one dataflow subfunction (the producer) first, then read in a later subfunction (the consumer). The first subfunction '{function}' does not write.
/***************************************************************** * This example is expected to result in * - Code : SHLS-33 * - Type : Error * - Cause : Data buffer 'tmp' within the top-level function DUT() * is read by the the first invocation of subf() before * being written during the subsequent invocation of * subf(). *****************************************************************/ #define NELEM 10 void subf(int in[NELEM], int out[NELEM]) { #pragma HLS loop pipeline for (int i = 0; i < NELEM; i++) { out[i] = in[i] + 1; } } void DUT(int in[NELEM], int out[NELEM]) { #pragma HLS function top dataflow int tmp[NELEM]; subf(tmp, out); subf(in, tmp); }
Related to: Data Flow Parallelism, Streaming Library, C++ Double Buffer and Shared Buffer, Dataflow Channel
