pointer reference作为顶层参数(二)

发布时间:2026/5/21 23:47:11

pointer  reference作为顶层参数(二) 接上pointer reference作为顶层参数(一)https://blog.csdn.net/dong6016/article/details/161292412?spm1001.2014.3001.5502核心顶层设计代码为#include array_FIFO.h//void array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {void array_FIFO (dout_t d_o[4], din_t *d_i, didx_t idx[4]) {#pragma HLS INTERFACE s_axilite register depth1 portd_i//#pragma HLS INTERFACE s_axilite register depth4 portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {//d_o[i] d_i[idx[i]];d_o[i] *d_i;}}测试激励为#include array_FIFO.hint main () {din_t d_i[4];dout_t d_o[4];didx_t idx[4];int i, retval0;FILE *fp;// Create input datafor (i0;i4;i) {d_i[i] i10;//idx[i] i;idx[i] 3-i;}// Call the function to operate on the dataarray_FIFO(d_o,d_i,idx);// Save the results to a filefpfopen(result.dat,w);fprintf(fp, Din Dout\n);for (i0;i4;i) {fprintf(fp, %d %d\n, d_i[i], d_o[i]);}fclose(fp);// Compare the results file with the golden resultsretval system(diff --brief -w result.dat result.golden.dat);// if (retval ! 0) {// printf(Test failed !!!\n);// retval1;// } else {// printf(Test passed !\n);// }// Return 0 if the test passes//return retval;return 0;}仿真结果为可以看到depth1的结果不对。将depth改为4#include array_FIFO.h//void array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {void array_FIFO (dout_t d_o[4], din_t *d_i, didx_t idx[4]) {#pragma HLS INTERFACE s_axilite register depth4 portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {//d_o[i] d_i[idx[i]];d_o[i] *d_i;}}

相关新闻