DSP实现方案的比较与应用选择
摘 要:首先对比几种DSP技术的实现方案,然后对基于通用可编程DSP和FPGA的两种主流DSP应用设计技术作较详细的比较,并提出应用选择建议。
关键词:DSP;实现方案;FPGA;PDSP;应用选择
引言
数字信号处理(Digital Signal Processing ,简称DSP)是一种利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩和识别等处理,以得到符合人们需求的信号形式的一种技术。其应用领域甚为广泛,涉及家用电器、多媒体系统、雷达卫星系统、移动通信、网络会议、医学仪器、实时图像识别与处理、联合战术无线电系统和智能基站等方面。面对不同的场合与需求,DSP的实现有多种方案,本文对此进行分析和比较,希望能对学习DSP技术以及准备应用DSP技术进行设计的人员有所启发和帮助。
DSP实现方案比较
根据使用目的和应用场合的不同,数字信号处理的实现方法一般可分为以下几种。
在通用的计算机(如PC机)上用软件(如C语言和Basic语言等)实现。这种方法的缺点是速度太慢,不能用于实时系统,只能用于教学和仿真研究。
在通用计算机系统中加上专用的加速处理机实现。由于大数据量处理时,加速卡和计算机之间的数据交换速度比较慢,因而通用计算机只能起到管理者的作用,而不能参与实时处理。
用通用的单片机实现。这种方法可用于一些不太复杂的数字信号处理,如数字控制等;但由于单片机采用的是冯诺依曼总线结构,所以在运算量大的实时控制系统中很难有所作为。
用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现。专用于FFT、数字滤波和卷积等算法的DSP芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程。这种方案的缺点是灵活性差,又由于开发工具还不够完善,不适用于个人和小型单位开发。
用通用的可编程数字信号处理器(Programmable Digital Signal Processor,后简称PDSP)实现。与单片机相比,通用PDSP具有更加适用于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法,是可用指令或软件编程的DSP。可选用的产品有TI公司的TMS320系列DSP芯片、AD公司的ADSP系列产品和Motorola等公司的产品。
用FPGA(Field-programmable Gate Array)等可编程门阵列实现数字信号处理算法(称基于FPGA的DSP)。许多FPGA生产公司(如Altera和Xilinx等)都提供软件或VHDL等开发语言,通过软件编程用硬件实现特定的数字信号处理算法。由于具有通用性,并可以实现算法的并行运算,无论是作为独立的数字信号处理器还是作为DSP芯片的协处理器,这一算法目前都是比较活跃的研究领域。而且,近年来,一些公司开发和设计出把FPGA、DSP和MCU等芯片结合在一起的大型可编程逻辑器件,成为今后几年数字信号处理实现的一个很重要的方向。
综上所述,在几种方法中,第一种方法的缺点是速度慢,一般可用于DSP算法的模拟;第二种方法和第四种方法专业性强,应用受到很大限制,第二种方法不便于系统的独立运行;第三种算法也只适用于简单的DSP算法;第五种方法使数字信号处理的应用打开了新的局面。这种方法兼具有上述几种方法的优点,既灵活、处理速度快、能力强,又可做到实时性。实际上通常讲的数字信号处理器(Digital Signal Processor,简称DSPs或DSP)就是为了实现高速、实时信号处理的单片可编程微处理器芯片,在本文里称为PDSP。
两种主流技术的对比
通用PDSP和基于FPGA的DSP是当今两大主流数字信号处理算法实现技术,引领着DSP技术应用的发展潮流。下面针对这两种技术方案从硬件结构及性能、开发流程、开发技术标准化、仿真测试和知识产权自主性等方面进行比较,同时对应用方案的选择提出建议。
1 硬件结构和性能发展
通用PDSP是一种基于精简指令集计算机(Reduced Instruction Set Computer,RISC)的范例。通用PDSP采用了数据总线和程序总线分离的哈佛结构及改进哈佛结构,由至少一个快速阵列乘法器和一个扩展字宽的累加器构成,具有指令流控制,一个指令字可以同时控制片内多个功能单元的操作。其优势源于大多数信号处理算法的乘-累加运算(multiply and accumulate,MAC)都是非常密集的,通过多级流水线结构,DSP可以获得仅仅受阵列乘法器的速度限制的MAC速度。通用PDSP的优势主要是具有很好的通用性和灵活性,与普通单片机应用系统十分相似,只要将调好的机器码放在程序ROM中,就能使系统正常工作。
在PDSP中增加更多的MAC单元能进一步提高DSP的吞吐量,但对于某些一般数据处理量比较大的DSP算法,其通用性却下降了,Viterbi编译码器和FIR滤波器就属于这种情况。为解决这个问题,PDSP生产商将一些专用的硬件加速器类的协处理器模块加入处理器结构,如Viterbi协处理器、Turbo协处理器和增强性滤波器协处理器等。由于这些协处理器本身的非通用性,即主要是倾向于某种或某些算法的协处理器,从而导致了PDSP无法适用于多种类型的DSP算法和DSP技术应用。结果成本增加,通用性也下降了,因此大部分的DSP应用场合并没有从这种增加各种硬件加速器的DSP结构变化中得到好处。
通用PDSP处理器的灵活性主要体现在软件更改容易以及对各种算法处理和复杂算法的实现上,而对硬件本身的更改则没有任何灵活性而言。
FPGA器件是由大量的逻辑宏单元组成的,通过配置,可以使这些逻辑宏单元形成不同的硬件结构,从而构成不同的电子系统,完成不同的功能。由FPGA构成的DSP电路可以同样以并行或顺序方式工作。并行工作方面,FPGA与专用DSP器件相当,远优于通用PDSP处理器,对于PDSP处理器需要大量运算指令完成的工作,FPGA可在一个周期内完成。而在顺序执行方面,FPGA比通用DSP快,同时FPGA中可以使用各种状态机,或使用嵌入式微处理器来完成工作,并且,每一顺序工作的时钟周期中能同时并行完成许多执行,而通用PDSP处理器却不能。基于FPGA的DSP在各种应用场合具有主硬件用户可定制性和可重配置性,硬件方面也表现出极大的灵活性,可根据需要通过改变FPGA中构成DSP系统的硬件结构来改变硬件的功能、技术指标、通信方式、硬件加密算法和编解码方式等。随着达数百万门高密度的FPGA的出现,FPGA在原有的高密度的逻辑宏单元基础上嵌入许多面向DSP的专用硬核模块,结合大量可配置于FPGA硬件结构中的参数化的DSP IP,DSP开发者能十分容易地将整个DSP系统实现在一片FPGA中,从而实现了所谓的可编程SoC(System on Chip),即PSoC。迅速发展的FPGA以它高速高带宽的优势在DSP技术应用上显示出其光辉的前景。
应用广泛的通用PDSP处理器正面临着FPGA的竞争,并且这种竞争日趋激烈。在先进通信基础设施应用中,信号处理的工作量正在超出通用DSP的承受能力,这就为其他新类型器件(如FPGA)进入这些应用带来了机会。
2 开发流程
上述两种DSP技术实现方案的仿真有很大差别。通用PDSP开发中除了可以利用MATLAB等工具完成算法仿真外,唯一有实际意义的仿真是借助实时开发系统仿真,必须与实际的硬件系统相连后才能进行。这种“仿真”实为硬件调试,实际意义仅在于假设(事实也要求)待开发的硬件系统已经设计成功并能正常工作的条件下,完成DSP源程序在硬件系统上的调试。这种调试环节单一,许多软硬件中的存在的问题定位十分困难,对于DSP器件组成的大系统调试效率很低。而基于FPGA的DSP开发流程中有多个层次的仿真测试和硬件调试环节:如基于MATLAB/Simulink模型的系统级仿真,包括对数字信号和模拟信号的仿真测试;利用HDL仿真器ModelSim进行RTL级功能仿真和模拟信号仿真;用ModelSim对DSP数字系统进行实时时序仿真;利用Quartus II中的门级仿真器进行时序仿真;利用嵌入式逻辑分析仪SignalTapII对DSP硬件系统进行测试。以上5个测试环节中任何一处发现问题,都可以随时修正和排除。
3 系统知识产权自主性
由于基于FPGA的DSP系统主要是纯硬件系统设计,可选的硬件实现方式很多,因此系统具有较好的自主知识产权属性。基于PDSP处理器的系统则没有这种属性。
4 开发技术标准化、规范化和技术兼容性
不同系列功能特点的PDSP处理器结构有较大差别,需要选择不同的汇编语言及其对应的仿真开发工具及编码软件,无论是设计流程、仿真开发工具还是开发语言都不可能得到标准化和规范化,较难与其他开发技术融为一体。
开发技术标准化和规范化是基于FPGA的DSP技术的优势之一。自顶向下的设计流程为DSP开发技术的标准化奠定了基础;标准化的硬件描述语言和大量支持这一语言的综合器和仿真器构成这一技术的核心;功能强大、适用面广的DSP开发集成环境将多种开发目标兼收并蓄;大规模的可重配置器件FPGA及相关的软硬IP核确保了DSP系统的高效率和高质量。
5 系统集成度、功耗和可靠性等
由于CPU的灵活性,对于低速、低吞吐量和大量复杂运算的情况,通用PDSP处理器的系统成本要比FPGA系统低得多,但是此方案具有不可替代性。在多片DSP系统中,每一片DSP处理器都必须配置完整的辅助器件才能正常工作。其中包括诸如数据RAM、程序RAM和ROM、FIFO、双口RAM和FPGA/CPLD辅助接口器件等。当这种系统成倍提高,功耗、集成度与可靠性等性能指标都将不同程度下降。基于FPGA的DSP系统的优势主要源于可以形成单片系统。目前拥有大规模逻辑资源的FPGA完全能容纳本来由多片DSP处理器构成的系统,从而使单片DSP系统在多项指标大幅度提高的前提下,成本和功耗大幅度下降,集成度和可靠性大幅度提高。
综上所述,通用PDSP处理器和基于FPGA的DSP两种技术各有千秋,有分工也有竞争。一般来说,通用PDSP处理器应用于复杂算法的领域(例如多重if-then-else结构),如果能够满足所需的MAC速度,通用DSP成本上更具有优势。在先进通信基础设施应用中,信号处理的工作量正在超出通用PDSP的承受能力,由于FPGA更高的速度以及可以通过一个芯片上的多级MAC单元来提供更高的带宽,它的巨大性能优势还是使其成为一些高端信号处理应用的技术选择。在诸如3G移动基站、复杂实时工控系统、卫星导航设备、实时图像处理和联合战术无线电通信系统等领域中,基于FPGA的DSP解决方案成为唯一的选择。同时,FPGA也将在前端的可编程数字信号处理算法,例如FFT、FIR、IIR滤波器及CORDIC(Coordinate Ratation Digital Computer,旋转数字式计算)等算法的实现方面大显身手。面临竞争产品的前后夹击,通用PDSP的前景似乎不妙,但是,PDSP供应商也在不断创新,以便其产品在更广泛的应用中具有吸引力。例如,AD公司计划使其Blackfin数字信号处理器支持Linux,此举将使该系列数字信号处理器远远胜过一般通用处理器。摩托罗拉公司最近则宣布将把它的数字信号处理器与可重构硬件结合起来,以便抗衡FPGA的进步。随着信号处理应用的不断扩张,PDSP处理器很可能会继续“借鉴”一些竞争技术的特性。
结束语
通过以上的分析,建议从事DSP应用的设计人员在运用DSP技术设计系统时要从应用领域、速度要求、可靠性、开发难易程度和价格等多方面综合考虑,以选取适当的DSP实现方案以达到技术目标。
文章版权归西部工控xbgk所有,未经许可不得转载。