void xilly_decprint(const uint32_t val, const int digits) { const uint32_t powers10[] = {1000000000, 100000000, 10000000, 1000000, 100000, 10000, 1000, 100, 10, 1}; _ssdm_SpecConstant(powers10); #32 "coprocess/example/src/xilly_debug.c" char out[11]; int i; int first = 10 - digits; uint32_t v = val; for (i=0; i<10; i++) { char x = 0; while (v >= powers10[i]) { v -= powers10[i]; x++; } out[i] = 0x30 | x; if ((x != 0) && (first > i)) first = i; } out[10] = 0; xilly_puts(out + first); }
void xillybus_wrapper(int *in, int *out) { #pragma AP interface ap_fifo port=in #pragma AP interface ap_fifo port=out #pragma AP interface ap_ctrl_none port=return float a[N], b[M]; uint32_t tmp1; float tmp2; int i; xilly_puts("Hello, world!\n"); for (i = 0; i < N; i++) { tmp1 = *in++; a[i] = *((float *)(&tmp1)); } ofdemodulating(a, b); for (i = 0; i < M; i++) { // *out++ = *((int *)(&b[i])); // synthesis fail tmp2 = b[i]; *out++ = *((int *)(&tmp2)); } }
void xilly_hexprint(const uint32_t val, const int digits) { char out[9]; int i; int first = 8 - digits; uint32_t v = val; for (i=7; i>=0; i--, v=v>>4) { char x = v & 0xf; out[i] = (x < 10) ? 48 + x : 87 + x; if ((x != 0) && (first > i)) first = i; } out[8] = 0; xilly_puts(out + first); }