#ifndef tdf1_IMPL_H
#define tdf1_IMPL_H

#include "../tdf1_common_defines.h"

static const int READ_SCALE_FACTOR  = 3;
static const int OCHAN_SCALE_FACTOR = 2;

// This is a hack to prevent long synthesis times during the layer synthesis step
// The synthesis time of these layers is correlated with the number of 
// iterations of the top dataflow loop. When synthesizing with the full amount 
// of iterations, the synthesis can take a very long time to complete. But with
// a much smaller number, it is very fast, typically less than a minute.
// When synthesizing entire networks, FAST_COMPILE should be 0.
#if defined __SYNTHESIS__ && FAST_COMPILE == 1
static const int TOP_LOOP_ITERATIONS = 10;
#else
static const int TOP_LOOP_ITERATIONS = (NUM_OUTPUTS*POOLING_FACTOR*POOLING_FACTOR) / OCHAN_SCALE_FACTOR;
#endif

#endif
