使用n个DSP48E函数可创建一个n阶FIR滤波器。每个函数处理FIR滤波器的一个系数或一阶。其中h[0..n–1]表示FIR滤波器的n个系数。按照下列步骤,创建一个3阶FIR滤波器。

  1. 在FPGA终端上新建一个VI。
  2. 添加DSP48E函数至程序框图。
  3. 双击函数并按照下列方式配置函数:
    1. 函数页面:

    2. 接线端页面:

    3. 单击确定按钮保存更改,并返回程序框图。
  4. 添加另一个DSP48E函数至程序框图。按照下列方式配置函数:
    1. 函数页面:

    2. 接线端页面:

    3. 单击确定按钮保存更改,并返回程序框图。
  5. 按下<Ctrl>键,在程序框图上拖曳此节点以创建节点的副本。重复此步骤,直至程序框图上有总数为n个DSP48E函数。在此3阶滤波器范例中,程序框图上共有3个DSP48E函数。
  6. 双击第n个函数,单击接线端选项卡,取消勾选pcout复选框。
  7. 单击确定按钮保存更改,并返回程序框图。

  8. 连线函数和接线端。
    1. 连线至滤波器的数据至每个DSP48E函数的a输入端。根据该输入的源,可能需要调整a输入端的整数字节长度。
    2. 连线每个滤波器的系数至每个后续DSP48E函数的b输入端。可能需要缩放连线至这些接线端的值。
    3. 连线每个pcout输出接线端至下一个DSP48E函数的pcin输入端。
    4. 最后一个DSP48E函数的p输出接线端返回滤波后的数据。或者为此函数创建一个显示控件,或连线其至另一个函数。
  9. 当前的程序框图将显示下图:

  10. 保存VI至可用的路径为DSP48E FIR Filter.vi

在上图中,每个函数的a输入端处理想要滤波的数据。b输入端处理滤波器系数h[0]至h[n–1]。共有n个系数,每个DSP48E函数带有一个系数。

提示n较大,建议采取下列建议:
  • 大型数组将占用大量的FPGA空间。因此建议使用另一种方法存储系数,如存储器项。或者使用“离散延迟”存储用于一系列时钟周期的多个系数。
  • 程序框图上将存在多个DSP48E按钮。缩放这些按钮能够减少每个按钮的使用空间。

此VI可被输出以用于仿真。如要在FPGA终端上运行此VI,必须在单周期定时循环中关闭此代码。