Communication 版 (精华区)

发信人: dormouse (出征 V 号带飘扬), 信区: Communication
标  题: 采用DSP、PLD和ASIC实现多速滤波器设计的比较
发信站: 哈工大紫丁香 (2001年06月20日21:13:08 星期三), 站内信件

采用DSP、PLD和ASIC实现多速滤波器设计的比较
上网时间:2001年03月

采用专用器件实现数字信号处理是目前中国工程师的一个主要选择。Altera公司
Tony San认为,面对实现多速滤波的各种方案,设计工程师必须评估所需的数据吞
吐量,提出高效率的实现方案并正确地选择各类硬件,从而实现设计优化与尽快完
工之间的平衡。 

许多通信系统都要用到多速滤波器(multirate filter),多速滤波器是指输出数据
速率与输入数据速率不相等的滤波器,常用于某个物理接口如数模转换器(DAC)或
模数转换器(ADC)的接口处。当滤波器输出数据到DAC时,用户常会选择插值滤波器
,因为它能产生更多的取样点以使DAC的输出波形更加平滑;而当滤波器从ADC接收
信号时,用户一般会选用抽取滤波器,因为抽取滤波器允许数据被过取样从而获得
更高的信噪比(SNR)。使用抽取滤波器后系统只需工作在信号速率。 

在多速滤波器设计过程中,有效地采用硬件实现插值和抽取功能非常重要,问题的
关键还在于怎样选择正确的硬件类型。下面分别讨论采用DSP、PLD和ASIC实现多速
滤波器的方法。 

插值和抽取 

插值功能常用来增加输出信号的取样率(图1),实际上在原始取样值附近增加新的
取样值很有必要。由于新的取样点处的值是未知数,一般就设为零,因此也被称为
上取样(upsampling)、零值插入或零值填充。输出端数据点的增加会改变取样速率
,从而使奈奎斯特频率外推。在时域中向数据插入零值,则信号在频域上会产生原
始信号频谱的镜像。由于取样速率的改变并不会产生更多的信息,因此所有的镜像
信号(以人工方式加入系统中)都表现为噪声,幸运的是这些噪声可以通过理想低通
滤波器滤除。 



抽取滤波器的工作方式也大致相同。这种滤波器要消除某些取样点,从而降低取样
速率和奈奎斯特频率。任何低于或高于奈奎斯特频率的信号都将表现为噪声,因此
有必要在消除数据(下取样)前加入低通滤波器,这样可以确保噪声不串入系统(图
2)。 

实现策略 

在插值与抽取实现方案中采用的低通滤波器最好具有线性相位特性,一般是利用有
限冲击响应(FIR)滤波器来实现这种线性相位滤波器,但FIR滤波器的实现要比无限
冲击响应滤波器(IIR)的代价高得多。为了取得更好的性能,需要增加滤波器的阶
数,而FIR滤波器可以从10阶到200阶甚至更高。每个滤波器的输出必须经过10到
200次运算。由于FIR滤波器非常昂贵,设计师一般会采用专用硬件来实现,这里的
专用硬件可能是一块专用滤波芯片、一种可编程逻辑解决方案或一些半定制(标准
化单元实现)集成电路。 



用标准单元实现的FIR滤波器可以获得最大的吞吐量,按速度排序的话,可编程逻
辑器件(PLD)和专用滤波芯片的吞吐量排第二,然后才是通用DSP器件。当最终用户
需要高的数据吞吐量时,几乎没有什么硬件可以胜过ASIC和PLD。ASIC设计流程相
当成熟,对于PLD来说,可以利用能自动创建FIR滤波器的工具来加速开发流程。为
了减小插值与抽取滤波器的芯片面积并增强其性能,很有必要采用一些专门技术。
 

目前还没有最佳的多速滤波器实现方案,而方案的评估也有很多种方法。方案的成
本取决于某个实现方案所对应的性能要求。这里性能可以定义为每秒钟乘法运算的
总次数(由于加法一般都与乘法结合在一起,因此运算成本中不再包含加法)。假设
单个乘法操作需要一个时钟周期,那么我们就可以确定实现某个方案所需的MIPS值
。 

检查插值滤波器的运算速度有个比较直接的方法,即将数据先进行上取样然后再进
行滤波。图3所示的样本要求采用388抽头的滤波器,并且滤波器工作时的数据速率
必须达到每秒12兆样点(MSPS)。这种实现方式所要求的运算速率大约为4500MIPS。
 

多级滤波 

好在有许多方法来降低运算速率要求,比如可以在三级内实现插值因子为12的多级
滤波。设计人员可以将第一级的插值因子定为2,在第二级再以因子2对第一级的输
出进行插值,然后输出到第三级,第三级的插值因子设为3,这样就有了3级滤波器
,图3给出了每个滤波器的详细参数。 



通过分级插值可以降低对每个滤波器的要求,从而减少滤波器的阶数。另外,前二
个滤波器分别工作在2MSPS和4MSPS,只有最后一个滤波器才工作在12MSPS,而改进
前的方法要求整个滤波器工作在12MSPS。同样,若采用分级抽取,运算速率就不必
要求太高。 

多级滤波法可以将运算速率减小到1035MIPS。对多级滤波器的各级重新分配运算任
务,用小得多的滤波器就可以达到期望的运算结果,这是一种相对高水平的优化方
法。 

多相分解 

降低运算速率的另外一种方式需要详细分析插值滤波器的实现方案。众所周知,先
进行零值插入然后滤波,就可以将问题分解到多个较短的滤波器中解决,每个滤波
器工作于不同的时间点上,这种方法被称为多相分解,如图4所示。 

举个简单的例子来说明一下多相分解的工作原理。在该例中滤波器系数为24,插值
因子为4。由于滤波器插值因子为4,因此实际上大多数输出到滤波器的数据为零,
通过执行特殊的乘法操作可以消除这些零数据的系数。例如,第一个输出数据可以
单独由系数C0、C4、C8……C20确定,而第二个输出数据则由C1、C5、C9……C21等
系数决定。在这种情况下每个输出只要求6次乘法运算而不是24次乘法运算,调整
插值因子可以减少运算速率。对于插值因子为12的388抽头滤波器,每个输出只需
33次乘法即可确定。多相插值器可以用388MIPS完成相同的运算量。 



抽取结构同样也可利用类似的技术。在本例中抽取因子为4,因此4个数据点经过滤
波后只剩下了1个,其实没有必要去计算被丢弃的取样点数。多相抽取器将数据分
配给4个较短的多相滤波器(抽取因子为4),最后将4个滤波器的输出叠加在一起从
而形成最终滤波输出。每个多相滤波器以抽取后的数据速率输出数据,从而降低了
对抽取器的性能要求。 

当然可以综合运用多种方法以进一步降低运算速率。例如,可以对多相结构中的每
个单级滤波器执行多级滤波。 

采用DSP和内核的实现方案 

从实现层次看,需要采用特殊的结构(占用最小的器件资源,工作于最低的功耗等)
。这种方案的选用取决于运算速度要求,对于要求几百MIPS的情形采用DSP就是很
理想的方案,某些DSP器件的运算速度能达到1GOPS,采用DSP的典型设计还能做滤
波以外的其它工作,在处理器执行的所有不同功能上谨慎地分配MIPS也很有必要。
 

许多情况下用户都会做出MIPS预算,并根据具体性能要求选择DSP。如果性能要求
超过了单片DSP的处理能力,可以考虑多种应变方案,如将任务分配到多个DSP上,
或采用硬件协处理器来加速运算量巨大的任务,此时,采用ASIC和PLD器件就恰到
好处。 

采用专用逻辑器件的实现方案 

许多半导体供应商都提供能实现插值功能的专用芯片,这些芯片包含若干用于实现
滤波功能的乘法器,因此能获得比DSP器件更优异的性能。它们还能支持固定数值
的系数和特定的插值或抽取因子。 

ASIC和PLD方案可以结合起来形成“用户专用硬件”产品。采用这种方法后可以在
一个时钟周期内计算全部127抽头的FIR滤波器(比DSP快两个数量级)。设计中要仔
细考虑后续工作,如HDL仿真、综合、验证、可测性及故障覆盖率,这点在DSP设计
中也一样。 

对于完全并行的插值滤波器来说,将滤波器进行多相分解可以产生由较短滤波器构
成的滤波器组。为了在一个时钟周期内进行一次滤波运算,多相滤波器中的每个系
数必须配备一个乘法器。在每个输入时钟周期要完成两个任务:1.数据存贮到每个
多相结构中;2.每个滤波器会产生N个输出。最后输出时钟会在同一时间扫描所有
的各相滤波器,就如同是单一输入时钟的效果。 

时钟域与静态时序分析 

将设计分解开来可以得到二个时钟域,即输入时钟与输出时钟,输出时钟速率是输
入时钟速率的整数倍。输出结构(一个简单的乘法器)需要以高于输入多相滤波器的
数据速率工作。当进行专用硬件(如ASIC或可编程逻辑)设计时可以考虑减小时钟域
的数量。当用ASIC产生扫描向量时需要另外增加时钟域,通过静态时序分析可能还
需消除一些错误路径。采用可编程逻辑器件,可供选择的时钟信号数量是固定的,
因此每个时钟域也就显得更加珍贵。 

当时钟使能端作用于多相结构中的触发器时,就有可能采用输出时钟对整个结构进
行时钟控制。采用时钟使能功能,多相结构只需运行于输入时钟速率(较慢的时钟
信号),还可放宽这些复杂结构的时序要求。这使多相结构成为一个多循环组件,
静态时序必须符合多循环规范。在ASIC和PLD为主的设计流程中使用的时序分析工
具需要支持多循环规范。 

当设计ASIC时,所需数量的乘法单元可以集成进芯片中,并且可以在最小的面积上
获得所要的速度。ASIC实现方案要比DSP和PLD实现方案的灵活性低,任何改变都需
要对整个系统作重新设计(既费时又费力)。 

采用PLD结构的滤波方案 

PLD实现方案则不同,用PLD实现滤波功能可以采用两种结构:串行与并行,这两种
结构都能有效地将系数映射到查寻表格并执行乘法运算。完全并行的结构可在单个
时钟周期内进行完整的滤波运算,而串行结构需要将运算分配在若干时钟周期内完
成(取决于输入数据宽度),因此串行结构的吞吐量较小,但串行结构在芯片的利用
率方面还是很高的(只需很小的存储空间和逻辑单元)。 

目前用于可编程逻辑的FIR滤波器自动生成工具已经面世。至少这些工具能在给定
系数后自动生成各个滤波器,而更先进的工具可以为用户产生定点系数,并在此基
础上实现多相滤波器,同时进行芯片面积和速度评估。 

本文结论 

实现插值与抽取逻辑的方案很多,设计师必须评估所需的吞吐量,提出高效率的实
现方案,并在设计优化与尽快完工之间取得设计工时上的平衡。 

来源: Communication Systems Design 

Tony San是Altera公司的工程师,具有10多年的设计经验,并在Manhattan大学取
得工程学士和电子工程硕士学位。 
 

--
  

    I am dormouse.    我是睡鼠
    too lazy.

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: dormouse.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.736毫秒