查看: 1080|回复: 3

基于FPGA的数字滤波器的使用

[复制链接]
  • TA的每日心情
    无聊
    2018-11-16 10:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2020-2-24 09:11:36 | 显示全部楼层 |阅读模式
    分享到:
    主要有两种方式,一是matlab滤波器工具箱设计并生成Verilog或VHDL的代码,二是matlab滤波器工具箱设计并export 系数,又FIR II ip core import。先说下滤波器设计工具箱,filter Designer 低版本叫做 fdatool





    先说调用ip core的方式,ip core是收费的,百度一下。
    点击file-export,保存成.txt的格式




    打开quartus17.1,添加ipcore




    然后就可以导入系数了,由滤波器工具箱直接生成的txt无法直接导入,需要做格式调整,将滤波器工具箱生成的系数文件命名为“filter.txt”,与附件中的filter.exe置于同一个目录下,并运行filter.exe(程序写的比较简陋,见谅)。
    导入程序自动生成的fil.txt文件






    记住输入输出的位宽,然后finish
    运行程序filter2.exe键入输入输出位宽



    会生成fir_filter.v文件,然后直接加入工程就能直接用了。
    这个模块完成了,FIR ipcore的例化和配置。
    module fir_filter(
            input clk,//系统时钟
            input rst_n,//复位信号
            input sample_clk,//采样时钟
            input [7:0] filter_in,//滤波器输入
            output reg [26:0] filter_out//滤波器输出
    );
    重点:这里的采样时钟有讲究,采样时钟的频率为设置的频率,占空比一定是采样时钟/系统时钟。
    例如:系统时钟50MHz,采样频率10MHz,则采样时钟为10MHz,占空比20%
             系统时钟50MHz,采样频率50MHz,则采样时钟为50MHz,占空比100%,即恒为高电平1
    至此,完成FIR ipcore的输入输出配置和介绍。
    下面是滤波器工具箱生成的方式




    设计方法同上,
    导出时注意一点

    选择语言,名称,保存路径,然后Generate就行了。
    (端口输入输出信号及仿真文件可以设置,自行解决)
    module filter
                   (
                    clk,
                    clk_enable,
                    reset,
                    filter_in,
                    filter_out
                    );
    要注意的是这里的clk_enable的要求与刚才说的采样时钟的要求一致。
    PS:这个滤波器工具箱生成的代码,性能和ip core差远了。

    欢迎各位补充。


    游客,如果您要查看本帖隐藏内容请回复
































    回复

    使用道具 举报

    该用户从未签到

    发表于 2020-6-29 09:39:43 | 显示全部楼层
    1111111111111
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 13:59 , Processed in 0.143941 second(s), 23 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.