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);
}
Пример #2
0
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);
}