Hi,
arbeitet jemand mit Vitis HLS und hat Lust, den untenstehenden Code da
kurz durchzuschicken?
Meine Neugier beschraenkt sich grundsaetzlich darauf, ob der Code ohne
weitere Dekoration in eine einigermassen balancierte Pipeline umgesetzt
werden kann, und was da so an Resourcen rausfallen. Die generierte HDL
wuerde ich mir im Rahmen der Verifikation natuerlich auch gerne
anschauen :-)
1 | #include <stdint.h>
|
2 |
|
3 | void decompose(const int16_t *x, int n, int16_t *r0, int16_t *r1)
|
4 | {
|
5 | const int16_t *end_line= x + n - 2;
|
6 | int16_t p1 = x[1];
|
7 | int16_t p2 = x[2];
|
8 |
|
9 | while (x < end_line) {
|
10 | *r0++ = 6 * x[0] + 2 * (p1 + x[1]) - (p2 + x[2]);
|
11 | p1 = x[1]; p2 = x[0];
|
12 | *r1++ = 2 * p1 - (p2 + x[2]);
|
13 | x += 2;
|
14 | }
|
15 | // Last:
|
16 | *r0++ = 6 * x[0] + 2 * (p1 + x[1]) - (p2 + x[0]);
|
17 | *r1++ = 2 * (x[1] - x[0]);
|
18 | }
|