主要内容

IIR滤波器

为你的教程文件创建一个文件夹

在MATLAB之外设置一个可写的工作文件夹®安装文件夹,用于存储完成教程工作时生成的文件。本教程的说明假设您创建了该文件夹hdlfilter_tutorials在C盘。

在滤波器设计器中设计一个IIR滤波器

本教程指导您完成设计IIR过滤器、为过滤器生成Verilog代码以及使用生成的测试平台验证Verilog代码的步骤。

本节指导您完成为IIR过滤器设计和创建过滤器的过程。本节假设您熟悉MATLAB用户界面和过滤器设计器。

  1. 启动MATLAB软件。

  2. 将当前文件夹设置为您在其中创建的文件夹为你的教程文件创建一个文件夹

  3. 控件启动筛选器设计器filterDesigner在MATLAB命令窗口中的命令。出现“过滤器设计和分析工具”对话框。

  4. 在“过滤器设计和分析工具”对话框中,设置以下过滤器选项:

    选项 价值
    响应类型 高通滤波
    设计方法 IIR巴特沃斯
    过滤器订单

    指定顺序:5

    频率的规范

    单位赫兹

    Fs48000

    足球俱乐部10800

  5. 点击设计滤波器.筛选器设计器为指定的设计创建筛选器。任务完成后,筛选器设计器状态栏中将出现以下消息。

    设计滤波器……完成

    有关使用过滤器设计器设计过滤器的详细信息,请参见使用滤波器设计器与DSP系统工具箱软件

量化IIR滤波器

您应该量化用于HDL代码生成的过滤器。要量化过滤器,

  1. 打开中创建的IIR滤镜设计在滤波器设计器中设计一个IIR滤波器如果它还没有打开。

  2. 单击“设置量化参数”按钮在左侧工具栏中。筛选器设计器显示过滤算法列表在对话框的下半部分。

  3. 选择定点从名单上。过滤器设计器显示其对话框的三个选项卡面板中的第一个。

    使用量化选项测试各种设置对量化滤波器性能和精度的影响。

  4. 选择过滤器内部制表符和设置舍入模式地板上而且溢出模式饱和

  5. 点击应用.量化滤波器如下所示。

有关使用过滤器设计器量化过滤器的更多信息,请参见使用滤波器设计器与DSP系统工具箱软件

配置和生成VHDL代码

量化过滤器之后,就可以配置编码器选项并生成VHDL代码了。本节将指导您启动Filter Design HDL Coder™UI,设置选项,并为您设计和量化的IIR滤波器生成VHDL代码和测试台在滤波器设计器中设计一个IIR滤波器而且量化IIR滤波器

  1. 通过选择启动Filter Design HDL Coder用户界面目标>产生高密度脂蛋白在过滤器设计器对话框中。过滤器设计器显示生成HDL对话框。

  2. 的名字的文本框。目标窗格中,类型信息检索.此选项命名VHDL实体和包含过滤器的VHDL代码的文件。

  3. 选择全局设置界面的选项卡。然后选择一般的标签。附加的设置部分。

    标头注释文本框,键入教程- IIR滤镜.编码器将注释添加到每个生成文件的头注释块的末尾。

  4. 选择港口选项卡。的港口窗格中出现。

  5. 属性的复选框添加输出寄存器选择。的港口窗格现在显示如下图所示。

  6. 选择先进的选项卡。的先进的窗格中出现。

  7. 选择对寄存器使用'rising_edge'选择。的先进的窗格现在显示如下图所示。

  8. 单击试验台选项卡中的生成HDL对话框。在文件名称文本框中,将默认名称替换为iir_tb.这个选项命名生成的测试平台文件。

  9. 在“生成HDL”对话框中,单击生成启动代码生成过程。当代码生成完成时,单击好吧关闭对话框。

    编码器在生成过滤器和测试台VHDL文件时,在MATLAB命令窗口中显示以下消息:

    ###为filter: iir启动VHDL代码生成过程###生成:H:\hdlsrc\iir。vhd ### iir VHDL实体开始生成### iir VHDL架构开始生成###二阶段,###二阶段,###一阶段,## 3 ## HDL延迟为1个样本###成功完成VHDL代码生成过程过滤器:iir ### VHDL测试台开始生成###生成输入刺激###已生成输入刺激;长度为2172个样本。###生成测试台:H:\hdlsrc\filter_tb。vhd ###请稍等…###为filter: iir启动VHDL代码生成过程###为filter: iir启动VHDL代码生成过程###生成:H:\hdlsrc\iir。vhd ### iir VHDL实体的开始生成### iir VHDL架构的开始生成###二阶段,###二阶段,###一阶段,## 3 ## HDL延迟为1个样本###过滤器:iir VHDL代码生成过程的成功完成

    如消息所示,编码器创建文件夹hdlsrc在当前工作文件夹下并放置文件iir.vhd而且iir_tb.vhd在那个文件夹里。

    注意,这些消息包括到生成的代码和测试台架文件的超链接。通过单击这些超链接,您可以直接在MATLAB编辑器中打开代码文件。

    生成的VHDL代码具有以下特征:

    • VHDL实体命名为信息检索

    • 当复位信号激活时使用异步复位的寄存器high(1)。

    • 端口的默认名称如下:

      硬件描述语言(VHDL)端口 的名字
      输入 filter_in
      输出 filter_out
      时钟输入 clk
      时钟使能输入 clk_enable
      复位输入 重置
    • 用于处理过滤器输入的额外寄存器。

    • 时钟输入、时钟使能输入和复位端口为类型STD_LOGIC数据输入输出端口为类型STD_LOGIC_VECTOR

    • 系数被命名为多项式系数n,在那里n是系数数,从1开始。

    • 0连接时使用类型安全表示:'0' & '0'...

    • 属性生成寄存器rising_edge函数而不是语句ELSIF clk'event AND clk='1' THEN

    • 后缀“_process”附加到进程名后。

    生成的测试台:

    • 是可移植的VHDL文件。

    • 强制clock、clock enable和reset输入信号。

    • 强制时钟使能输入信号高激活。

    • 驱动时钟输入信号高(1)5纳秒,低(0)5纳秒。

    • 强制重置信号两个周期加上2纳秒的保持时间。

    • 对数据输入信号应用2纳秒的保持时间。

    • 对于IIR滤波器,应用脉冲、阶跃、斜坡、啁啾和白噪声刺激类型。

探索生成的VHDL代码

通过打开和浏览文件来熟悉生成的VHDL代码iir.vhd在ASCII或HDL模拟器编辑器中。

  1. 打开生成的VHDL过滤器文件iir.vhd

  2. 搜索信息检索.的值标识VHDL模块的名字选项中的目标窗格。参见第2步配置和生成VHDL代码

  3. 搜索教程.控件输入的文本将放在此部分标头注释选择。参见第5步配置和生成VHDL代码

  4. 搜索HDL代码.本节列出您在中修改的编码器选项配置和生成VHDL代码

  5. 搜索过滤器设置.VHDL代码的这部分描述了过滤器设计和量化设置在滤波器设计器中设计一个IIR滤波器而且量化IIR滤波器

  6. 搜索实体.的值命名VHDL实体的名字选项中的目标窗格。参见第2步配置和生成VHDL代码

  7. 搜索港口.这港口声明定义了过滤器的时钟、时钟启用、重置以及数据输入和输出端口。时钟、时钟使能、复位和数据输入输出信号的端口用默认字符向量命名。

  8. 搜索常数.这段代码定义了系数。它们使用默认命名方案命名,coeff_xm_sectionn,在那里x一个b系数是多少,和n是节号。

  9. 搜索信号.此代码定义了滤波器的信号。

  10. 搜索input_reg_process.的过程块名称input_reg_process包括默认的过程块后缀“_process”.这段代码从输入寄存器读取过滤器输入。默认情况下会生成该寄存器的代码。第7步配置和生成VHDL代码,你清除了添加输出寄存器选项,却离开了添加输入寄存器选项选中。

  11. 搜索如果重置.这段代码断言复位信号。指定了缺省值active high(1)。还要注意过程block在为寄存器生成VHDL代码时应用默认的异步重置样式。

  12. 搜索ELSIF.这段代码在过滤器操作寄存器时检查上升边。的rising_edge方法中指定的方法使用先进的面板的生成HDL对话框。参见第10步配置和生成VHDL代码

  13. 搜索第一节.这个部分是对二阶section 1数据进行过滤的地方。VHDL代码的类似部分适用于另一个二阶部分和一阶部分。

  14. 搜索filter_out.这段代码驱动过滤器输出数据。

验证生成的VHDL代码

本节解释如何使用生成的VHDL测试台验证为IIR过滤器生成的VHDL代码。本教程使用导师图形®ModelSim®模拟器作为编译和模拟VHDL代码的工具。您可以使用其他HDL仿真工具包。

要验证过滤器代码,请完成以下步骤:

  1. 启动模拟器。当你开始Mentor Graphics ModelSim模拟器中,屏幕显示如下所示。

  2. 将当前文件夹设置为包含生成的VHDL文件的文件夹。例如:

    cd hdlsrc
  3. 如果需要,可以创建一个设计库来存储已编译的VHDL实体、包、体系结构和配置。在Mentor Graphics ModelSim控件创建设计库时,可以使用vlib命令。

    vlib工作
  4. 编译生成的过滤器和测试平台VHDL文件。在Mentor Graphics ModelSim模拟器,你编译VHDL代码威科姆公司命令。下面的命令编译过滤器和过滤器测试台VHDL代码。

    威科姆公司信息检索。VHD vcom iir_tb.vhd

    下面的屏幕显示了这个命令序列和编译期间显示的信息消息。

  5. 加载试验台进行模拟。加载测试台的过程因所使用的模拟器而异。在Mentor Graphics ModelSim控件加载测试台架以进行模拟vsim命令。例如:

    vsim work.iir_tb

    下面显示加载的结果work.iir_tbvsim命令。

  6. 打开一个显示窗口,以便在测试台架运行时监视模拟。在Mentor Graphics ModelSim模拟器,使用以下命令打开窗口并将模拟结果作为HDL波形查看。

    添加波浪*

    以下窗口显示。

  7. 要开始运行模拟,请为模拟器发出启动模拟命令。例如,在Mentor Graphics ModelSim控件启动模拟程序,可以使用运行命令。

    下面的显示显示运行-命令用于启动模拟。

    在运行测试台架模拟时,请注意错误消息。如果出现错误消息,则将其解释为与过滤器设计和所选HDL代码生成选项有关。根据生成过滤器VHDL代码时指定的自定义确定结果是否符合预期。

    请注意

    • 注意到的警告信息时间:0ns在上面显示的不是错误,你可以忽略他们。

    • 出现在前面显示中的失败消息没有标记错误。如果消息包含文本测试完成,测试台架运行到完成,没有遇到错误。的失败部分消息与编码器用于结束模拟的机制绑定。

    以下窗口显示仿真结果为HDL波形。

Baidu
map