3 模块设计
设计的FIR滤波器由10个小VHD文件和一个总体BDF文件组成,VHD文件可以分为以下三种模块:寄存器、加法器、乘法器。
3.1 寄存器设计
寄存器用于寄存一组二值代码,对寄存器的触发器只要求它们具有置1、置0的功能即可,因而本设计中用D触发器组成寄存器,实现寄存功能。
在CP正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁。
寄存器的波形仿真
3.2 加法器
在将两个多位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位3个数相加。这种运算称为全加,所用的电路称为全加器。
实现两个二进制数字的相加运算。当到达时钟上升沿时,将两数输入,运算,输出结果。
加法器的波形仿真
3.3 乘法器
从资源和速度考虑,常系数乘法运算可用移位相加来实现。将常系数分解成几个2的幂的和形式。下例为乘4c电路设计。实现输入带符号数据与固定数据两个二进制数的乘法运算。当到达时钟上升沿时,将两数输入,运算,输出结果。
乘法器的波形仿真
4 FIR滤波器整体电路
FIR滤波器的整体电路基本与其原理图类似。整体电路如下图所示:
5 FIR滤波器整体电路仿真结果
当输入为信号为[99,0,0,0,99,0,0,0,99,O,0,0,99。…]滤波器的实际仿真波形见下图:
因为该滤波器为九阶,信号通过各级触发器,加发器乘法器的总延迟为13个时钟周期,故在仿真中前13个时钟周期没有信号输出。通过matl ab对滤波器进行仿真得出的理论输出序列为:[33,28,34,50,33,28,34,50,33,28,34,50,33,28,34,50…….]与实际仿真波形比较,波形基本一致,但是因为该滤波器只有九阶,所以与理论值有一定误差。