little_white321 2023-07-18 11:51 采纳率: 66.7%
浏览 52
已结题

怎么在vivado头文件中用宏定义大数组

怎么在vivado头文件中用宏定义大数组
我在用verilog完成数字滤波抽取,然后就要用到matlab生成的滤波系数来完成滤波器的设计,因为设计滤波器时需要的阶数比较大,所以对应的滤波器系数也比较多,我想将滤波器系数放在头文件中,但语法上一直会有问题,原始系数如下图:

img

如上,COE_DEFAULT_1是一个有300个数据的大数组,CW是系数位宽,18位,下图是我在头文件中用define定义的数组:

img

然后在代码文件中用`include "filter_coe.vh"调用头文件,在代码中将大数组拼位,如下:

img

然后就有语法报错了,上面这一段代码,原则上来说我应写为`COE_DEFAULT_1,但这样写会报错该参数没有定义,可是我不是在头文件中已经定义了这个数组么,这个问题困惑我好几天了,还有什么更好的办法在头文件中定义大数组吗,希望各位友友解答。

  • 写回答

1条回答 默认 最新

  • 老皮芽子 2023-07-19 09:52
    关注

    用宏来做不太好实现
    我一般是在代码中直接读文件
    在我的文章里,有 FIR 重新载入系数的设计,你可以参考一下

        wire[15:0]        fir_reload_dat[3:0][127:0];
        reg    [15:0]        fir_dat0[127:0];
        reg    [15:0]        fir_dat1[127:0];
        reg    [15:0]        fir_dat2[127:0];
        reg    [15:0]        fir_dat3[127:0];
    
        genvar  m;
    
        for(m=0;m<128;m=m+1)
        begin:for_mx
            assign    fir_reload_dat[0][m]    = fir_dat0[m];
            assign    fir_reload_dat[1][m]    = fir_dat1[m];
            assign    fir_reload_dat[2][m]    = fir_dat2[m];
            assign    fir_reload_dat[3][m]    = fir_dat3[m];
        end
    
        initial
        begin
            $readmemh("../../../../../reload_bandpass_10k_30k_30k_50k_1m.txt",    fir_dat0);
            $readmemh("../../../../../reload_bandpass_30k_50k_50k_70k_1m.txt",    fir_dat1);
            $readmemh("../../../../../reload_bandpass_50k_70k_70k_90k_1m.txt",    fir_dat2);
            $readmemh("../../../../../reload_bandpass_70k_90k_90k_110k_1m.txt",    fir_dat3);
        end
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 修改了问题 7月18日
  • 创建了问题 7月18日

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败