采用DSP、PLD和ASIC实现多速滤波器设计的比较
时间:09-25
来源:互联网
点击:
采用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滤波器自动生成工具已经面世。至少这些工具能在给定系数后自动生成各个滤波器,而更先进的工具可以为用户产生定点系数,并在此基础上实现多相滤波器,同时进行芯片面积和速度评估。
本文结论
实现插值与抽取逻辑的方案很多,设计师必须评估所需的吞吐量,提出高效率的实现方案,并在设计优化与尽快完工之间取得设计工时上的平衡。
从实现层次看,需要采用特殊的结构(占用最小的器件资源,工作于最低的功耗等)。这种方案的选用取决于运算速度要求,对于要求几百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滤波器自动生成工具已经面世。至少这些工具能在给定系数后自动生成各个滤波器,而更先进的工具可以为用户产生定点系数,并在此基础上实现多相滤波器,同时进行芯片面积和速度评估。
本文结论
实现插值与抽取逻辑的方案很多,设计师必须评估所需的吞吐量,提出高效率的实现方案,并在设计优化与尽快完工之间取得设计工时上的平衡。
滤波器 DAC ADC DSP 低通滤波器 集成电路 MIPS 半导体 仿真 相关文章:
- 适合单片机实时处理的简单FIR滤波器设计(06-30)
- 基于FPGA的分布式算法FIR滤波器设计(11-12)
- 数字匹配滤波器的优化设计与FPGA实现(11-26)
- 手机中ESD和EMI干扰及其解决方案(07-06)
- 便携式设备的EMC和ESD设计(09-08)
- 基于AVR的数字滤波器滤除工频干扰的快速算法实现(07-17)