http://www.paper.edu.cn
DSP 实现方案的比较与应用选择
秦连铭
(1.中国矿业大学(北京)信息工程学院 100083 2.中国科学院微电子研究所 100029)
摘要:本文首先对比说明几种 DSP 技术的实现方案,然后对基于通用 DSP 和 FPGA 的两种主流 DSP 应用
设计技术作较详细比较,并提出应用选择建议。
关键词:DSP ;实现方案;FPGA;PDSP;应用选择
中图分类号:TN402 文献标识码:B
Comparison and Selection among Solutions of DSP
(1.China University of Mining Technology(Beijing School) 100083,)
Qin Lianming
Abstract:In this paper,firstly,several solutions of DSP are introduced and compared,then
more concrete comparison between two main-stream DSP solutions(based on FPGA and PDSP) is
shown..Some advice is also given on how to select DSP solution when designing DSP system.
Key words :DSP(digital signal processing), solution,FPGA(field programmable gate
array),PDSP(programmable digital signal processing),selection
1 引言
数字信号处理(Digital Signal Processing ,简称 DSP)是一种利用计算机或专用处理设备,
以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、和识别等处理,以得到
符合人们需求的信号形式的一种技术。DSP 作为一门随着信息学科和计算机学科的高速
发展而迅速发展起来的新兴学科,其应用领域甚为广泛,涉及民用电器、多媒体系统、
雷达卫星系统、移动通信、网络会议、医学仪器、实时图像识别与处理、联合战术无线
电系统、智能基站等方面。面对不同的场合与需求,DSP 的实现有多种方案,本文对此
进行分析和比较,希望能对学习 DSP 技术以及准备应用 DSP 技术进行设计的人员有所
启发和帮助。
2 几种 DSP 实现方案比较
根据使用目的及应用场合的不同,数字信号处理的实现方法一般可分为以下几种:
(1)在通用的计算机上(如 PC 机上)用软件(如 C 语言、Basic 语言等)实现。软件
是自己编写的,也可以使用现成的软件包。这种方法缺点是速度太慢,不能用于实时系
统,只能用于教学和仿真研究。而 MATLAB 软件下的部分仿真程序可以通过转化为 C
语言,再通过 DSP 的 C 编译器直接在 DSP 硬件上运行,这对实时系统和算法研究来说
是很有吸引力的。
(2)在通用计算机系统中加上专用的加速处理机实现。加速卡可以是通用的加速处理
机,也可以是由 DSP 开发的用户加速卡。如果加速卡是用户开发的加速卡,那么在日益
复杂的控制系统中,在 DSP 芯片价格日益下降的条件下,这一方法是很常用的。但是,
由于大数据量处理时,加速卡和计算机之间的数据交换速度比较慢,要求传输的数据量
大,因而通用计算机只能起到管理者的作用,而不参与实时处理。
http://www.paper.edu.cn
(3)用通用的单片机实现。这种方法可用于一些不太复杂的数字信号处理,如数字控
制等;但由于单片机采用的是冯诺依曼总线结构,所以单片机在运算量大实时控制系统中
很难有所作为。
(4)用专用的 DSP 芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用
DSP 芯片很难实现,例如专用于 FFT、数字滤波、卷积、相关等算法的 DSP 芯片,这
种芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程。使用专用 DSP
芯片时,使用者给出输入数据,经过简单的组合就可以在输出端得到结果。这一般用于
对速度要求很高的场合。这种方案的缺点是灵活性差,而且开发工具还不够完善,不适
用于个人和小型单位开发。
(5)用通用的可编程数字信号处理器(Programmable Digital Signal Processor,后简称
PDSP)实现。与单片机相比,通用 PDSP 具有更加适用于数字信号处理的软件和硬件资
源,可用于复杂的数字信号处理算法,是可用指令/软件编程的 DSP。可选用的产品有
TI 公司的 TMS320 系列 DSP 芯片,AD 公司的 ADSP 系列产品,以及 Motorola 等公司
的产品。这种 DSP 芯片应用领域较广,正广泛于信号处理、通信、语音图像图形处理、
仪器仪表、自动控制、医疗仪器、民用电器、雷达处理导航与导弹制导等诸多领域。
(6)用 FPGA(Field-programmable Gate Array)等可编程门阵列实现数字信号处理算法(称
基于 FPGA 的 DSP)。许多 FPGA 生产公司(如 Altera、Xilinx 等)都提供软件或 VHDL
等开发语言,通过软件编程用硬件实现特定的数字信号处理算法。这一方法由于具有通
用性的特点,并可以实现算法的并行运算,无论是作为独立的数字信号处理器还是作为
DSP 芯片的协处理器,目前都是比较活跃的研究领域。而且,近年来,一些公司开发和
设计出把 FPGA 和 DSP 以及 ARM 等芯片结合在一起的大型可编程逻辑器件,成为今后
几年数字信号处理实现的一个很重要的方向。
综上所述,在几种方法中,第一种方法的缺点是速度慢,一般可用于 DSP 算法的模拟;
第二种方法和第四种方法专业性强,应用受到很大限制,第二种方法也不便于系统的独
立运行;第三中算法也只适用于简单的 DSP 算法;第五种方法使数字信号处理的应用打
开了新的局面。这种方法兼具有上述几种方法的优点,既有灵活性,有处理速度快、能
力强、可做到实时性。实际上通常讲的数字信号处理器(Digital Signal Processor,简称
DSPs 或 DSP)就是为了实现高速、实时信号处理的单片可编程微处理器芯片,在本文里
称为 PDSP。
3 两种主流技术进一步对比
通用 PDSP 和基于 FPGA 的 DSP 是当今两大主流数字信号处理算法实现技术,引领
着 DSP 技术应用的发展潮流。很有必要进一步对这两种 DSP 技术实现方案作对比和说
明,希望对应用 DSP 技术进行系统开发的研究人员提供有益的帮助。下面针对这两种技
术方案,从硬件结构及性能、开发流程、开发技术标准化、仿真测试、及知识产权自主
性等方面进行比较说明,并对应用方案的选择提出建议。
(1) 硬件结构及性能发展方面
通用 PDSP 是一种基于精简指令集计算机(Reduced Instruction Set Computer,RISC)
的范例。通用 PDSP 都采用了数据总线和程序总线分离的哈佛结构及改进哈佛结构,由
至少一个快速阵列乘法器和一个扩展字宽的累加器构成,具有指令流控制,一个指令字
可以同时控制片内多个功能单元的操作。其优势源于大多数信号处理算法的乘-累加运
算(multiply and accumulate,MAC)都是非常密集的。通过多级流水线结构,DSP 可以
获得仅仅受阵列乘法器的速度限制的 MAC 速度。通用 PDSP 的优势主要是具有很好的
通用性和灵活性,与普通单片机应用系统十分相似,只要将调好的机器码放在程序 ROM
http://www.paper.edu.cn
中,就能使系统正常工作。
在 PDSP 中增加更多的 MAC 单元能进一步提高 DSP 的吞吐量,但对于某些一般数
据处理量比较达的 DSP 算法,其通用性却下降了,例如 Viterbi 编译码器和 FIR 滤波器
就属于这种情况,为解决这个问题,PDSP 生产商有将一些专用的硬件加速器类的协处
理器模块加入进处理器结构。如 Viterbi 协处理器、Turbo 协处理器和增强性滤波器协处
理器等。由于这些协处理器本身的非通用性,即主要是倾向于某种或某些算法的协处理
器,从而导致了 PDSP 无法适用于多种类型的 DSP 算法和 DSP 技术应用。结果成本增
加,通用性下降了。因此大部分的 DSP 应用场合并没有从这种增加了各种硬件加速器
的 DSP 结构的变化中得到好处。不但如此,这种硬件加速器模块是一种固定的硬件结
构,无法根据特定的需要作任何更改,特别是面向当今通信领域中的不断发生的各种技
术标准和协议的变更,这种加速器模块很容易过时,从而导致整个 DSP 系统的过时。
另外,多片 DSP 处理器并行工作时,虽然可以弥补速度和吞吐量的不足,但同时也带
来了系统在灵活性、功耗、成本、体积、可靠性等技术性能的进一步变差
通用 PDSP 处理器的灵活性主要体现在软件更改的容易以及对各种算法处理和复
杂算法的实现上,而对硬件本身的更改则没有任何灵活性而言。
FPGA 器件是由大量的逻辑宏单元组成的,通过配置,可以使这些逻辑宏单元形成
不同的硬件结构,从而构成不同对电子系统,完成不同的功能。由 FPGA 构成的 DSP 电
路可以同样以并行或顺序方式工作,并行工作方面,FPGA 与专用 DSP 器件相当,远优
于通用 PDSP 处理器,对于 PDSP 处理器需要大量运算指令完成的工作,FPGA 可在一个
周期内完成。而在顺序执行方面,FPGA 比通用 DSP 快,同时 FPGA 中可以使用各种状
态机,或使用嵌入式微处理器来完成工作,并且,每一顺序工作的时钟周期中能同时并行
完成许多执行,而通用 PDSP 处理器却不能。故 FPGA 具有明显的速度优势。另一方面,
基于 FPGA 的 DSP 在各种应用场合具有主硬件用户可定制性以及可重配置性,硬件方面
表现出极大的灵活性,可根据需要通过改变 FPGA 中构成 DSP 系统的硬件结构来改变硬
件的功能、技术指标、通信方式、硬件加密算法、编解码方式等。随着达数百万门高密度
的 FPGA 的出现,FPGA 在原有的高密度的逻辑宏单元基础上嵌入许多面向 DSP 专用硬
核模块,结合大量可配置于 FPGA 硬件结构中的参数化的 DSP IP 软核,DSP 开发者能十
分容易地将整个 DSP 系统实现在一片 FPGA 中,从而实现了所谓的可编程 SOC(system on
chip ),即 SOPC(a System On a Programmable Chip)。迅速发展的 FPGA 以它高速高带宽
的优势在 DSP 技术应用上显示其光辉前程。
应用广泛的通用 P DSP 处理器正面临着 FPGA 的竞争,并且这种竞争日趋激烈。在
先进通信基础设施应用中,信号处理的工作量正在超出通用 PDSP 的承受能力,这就为其
它新类型器件如 FPGA 进入这些应用带来机会。
(2) 开发流程方面
图(1)是基于通用 PDSP 系统的典型开发流程,大致步骤如下:
(a) DSP 开发者首先使用诸如 MATLAB 工具对 DSP 算法进行优化设计和仿真测试,
或用 Simulink 进行 DSP 系统建模,以获得满足功能要求和适应硬件特点的算法
模型。
(b) 根据 DSP 目标系统的功能要求、技术指标、系统升级可行性、性能标准可能的
变化以及成本限度等因素,具体确定 DSP 处理器(并行使用的)数量和型号。
(c) 根据选定的 DSP 处理器和系统功能要求,3 完成应用系统评估板或测试板的设
计。
(d) 根据 MATLAB 的算法模型和 DSP 评估板的硬件结构编写 C、C++程序,或汇
编程序。在标准的开发环境(如 TI 的 CCS)中进行编译、仿真,然后通过 DSP
硬件仿真器在应用板或评估板进行调试和实时仿真。
(e) 最后完成实用硬件系统的实现。
http://www.paper.edu.cn
MATLAB/Simulink
DSP 算法模型建立
系统仿真
根据 DSP 仿真模型、
应用系统的功能以及
技术指标,确定 DSP
处理器的数量和型号
根据 DSP 仿真模型和功能要
求完成 DSP 应用系统评估板
或测试板的设计
编译 软件工具:
Compiler,
Assembler,
Linker And Debugger
仿真调试
根据 DSP 模型写汇编
程序或 C 程序
基 于 C 的
DSP 库
完成 DSP 实用系统
图(1)基于通用 PDSP 系统的典型开发流程
图(2)为基于(Altera 公司的)FPGA 的
DSP 系统级开发流程
如图示的开发流程中,顶层的开发工具
是 MATLAB/Simulink,整个开发流程几乎
完全可以在同一环境中完成,真正实现了自
顶向下的设计流程,包括 DSP 系统的建模、
系统级仿真、设计模型向 VHDL 硬件描述语
言代码的转换、RTL 级功能仿真测试、编码
适配和布局布线、时序实时仿真,直至对
DSP 目标器件的编程配置。
上述两种 DSP 技术实现方案的仿真有
很大差别。通用 PDSP 开发中除可以利用
MATLAB 等工具完成算法仿真外,唯一有实
际意义的仿真是借助实时开发系统仿真,即
必须与实际的硬件系统相连后才能进行,这
种“仿真”实为硬件调试。实际意义仅在于
假设(事实也要求)待开发的硬件系统已经
MATLAB/Simulink 建模/仿真
VHDL 转换/逻辑综合/功能仿真/
编译适配/时序实时仿真/硬件配置
DSP 系统建模
基于 IP 核的
DSP 库
DSP Builder
综合、适配
布线、布局
(QuartusII)
FPGA
DSP 系统实现
图(2)基于 FPGA 的 DSP 系统级开发流程
http://www.paper.edu.cn
设计成功并能正常工作的条件下,完成 DSP 源程序在硬件系统上的调试活动。这种调
试环节单一,许多软硬件中的存在问题定位十分困难,对于 DSP 器件组成的大系统调
试效率很低。而基于 FPGA 的 DSP 开发流程中有多个层次的仿真测试和硬件调试环节。
如基于 MATLAB/Simulink 模型的系统级的仿真,包括对数字信号和模拟信号的仿真
测试;利用 HDL 仿真器 ModelSim 进行 RTL 级功能仿真和模拟信号仿真;用 ModelSim
对 DSP 数字系统进行实时时序仿真;利用 Quartus II 中的门级仿真器进行时序仿真;
利用嵌入式逻辑分析仪 SignalTapII 对 DSP 硬件系统进行测试。以上五种测试环节中任
何一处发现问题,都可以随时修正和排除。
(3) 系统知识产权自主性方面
由于基于 FPGA 的 DSP 系统主要是纯硬件系统设计,可选的硬件实现方式很多,
因此,系统具有较好的自主知识产权属性。基于 PDSP 处理器的系统则没有这种属
性。
(4) 开发技术标准化、规范化及技术兼容性方面
不同系列功能特点的 PDSP 处理器结构有较大差别,需要选择不同的汇编语言及
其对应的仿真开发工具及编码软件。无论是设计流程、仿真开发工具还是开发语言都
不可能得到标准化、规范化;较难于其他开发技术融为一体。如单片机技术、嵌入式
系统开发技术、可配置模块系统开发技术、大规模可编程逻辑系统开发技术,乃至
SOC 开发技术等。
开发技术标准化和规范化是基于 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 速度,通用 PDSP 成本上更具有优
势。这使得目前 PDSP 在诸如信号处理、语音图像图形处理、仪器仪表、自动控制、
通信、医疗仪器、家用电器得到广泛应用。在先进通信基础设施应用中,信号处理
的工作量正在超出通用 PDSP 的承受能力。由于 FPGA 更高的速度以及可以通过一个
芯片上的多级 MAC 单元来提供更高的带宽,FPGA 的巨大性能优势使其成为一些高端
信号处理应用的技术选择。在诸如 3G 移动基站、复杂实时工控系统、卫星导航设备、
实时图像处理、联合战术无线电通信系统等领域中,FPGA 的 DSP 解决方案成为非此
莫属的选择。并且 FPGA 也将在前端的可编程数字信号处理算法,例如 FFT、FIR、
IIR 滤波器及 CORDIC(Coordinate Ratation Digital Computer,旋转数字式计算)
http://www.paper.edu.cn
等算法的实现方面大显身手。如果有大批量需求,基于 FPGA 的 DSP 设计能方便转换
成 ASIC,会大大降低成本,更显示 FPGA 的优势。 面临竞争产品的前后夹击,通用
PDSP 的前景似乎不妙,但是,PDSP 供应商也在不断创新,以便其产品在更广泛的应
用中具有吸引力。例如,模拟器件公司计划使其 Blackfin 数字信号处理器支持
Linux,此举将使该系列数字信号处理器远远胜过一般通用处理器。摩托罗拉公司最
近则宣布,将把它的数字信号处理器与可重构硬件结合起来,以便抗衡 FPGA 的进步。
随着信号处理应用的不断扩张,PDSP 处理器很可能会继续“借鉴”一些竞争技术的
特性。
4 结束语
通过以上的分析,建议从事 DSP 应用的设计人员在运用 DSP 技术设计系统时要根据
使用场合、速度要求、可靠性、价格、开发难易程度及开发周期长短等多方面综合考虑,
以选取适当的 DSP 实现方案达到技术目标。
参考文献
(1) 潘松 黄继业 王国栋 编著. 现代 DSP 技术.西安电子科技大学出版社,2003
(2) 李真芳 苏涛 黄小宇著. DSP 程序开发——MATLAB 调试及目标代码生成.西安电子科技大学出版
社,2003
(3) 付丽琴 桂志国 王黎明 编著. 数字信号处理原理及实现.国防工业出版社,2004
(4) Uwe Meyer-Baese 著 刘凌 胡永生 译. 数字信号的 FPGA 实现.清华大学出版社,2003