Download presentation
Presentation is loading. Please wait.
1
第1章 概述 1.1 DSP实现方案及设计流程 1.2 现代DSP设计流程概述 1.3 两类DSP解决方案的比较
2
1.1 DSP实现方案及设计流程 不断发展的数字信号处理(DSP,Digital Signal Processing)技术迅速地扩展到了其应用领域,如3 G移动通信、网络会议、多媒体系统、雷达卫星系统、医学仪器、实时图像识别与处理、联合战术无线电系统、智能基站,以及民用电器等。所有这一切在功能实现、性能指标与成本方面都在不断增加其要求。
3
在过去很长一段时间,DSP处理器(如TI的TMS320系列)是DSP应用系统核心器件的惟一选择。尽管DSP处理器具有通过软件设计能适用于实现不同功能的灵活性,但面对当今迅速变化的DSP应用市场,特别是面对现代通信技术的发展,DSP处理器早已显得力不从心。例如其硬件结构的不可变性导致了其总线的不可改变性,而固定的数据总线宽度,已成为DSP处理器一个难以突破的瓶颈。DSP处理器的这种固定的硬件结构特别不适合于当前许多要求能进行结构特性随时变更的应用场合,即所谓面向用户型的DSP系统,或者说是用户可定制型,或可重配置型的DSP应用系统(Customized DSP或Reconfigurable DSP 等),
4
如软件无线电、医用设备、导航、工业控制等方面。至于在满足速度要求方面,由于采用了顺序执行的CPU架构,DSP处理器则更加不堪重负。
面向DSP的各类专用ASIC芯片虽然可以解决并行性和速度的问题,但是高昂的开发设计费用、耗时的设计周期及不灵活的纯硬件结构,使得DSP的ASIC解决方案日益失去其实用性。
5
现代大容量、高速度的FPGA的出现,克服了上述方案的诸多不足。在这些FPGA中,一般都内嵌有可配置的高速RAM、PLL、LVDS、LVTTL以及硬件乘法累加器等DSP模块。用FPGA来实现数字信号处理可以很好地解决并行性和速度问题,而且其灵活的可配置特性,使得FPGA构成的DSP系统非常易于修改、易于测试及硬件升级。
6
在利用FPGA进行DSP系统的开发应用上,已有了全新的设计工具和设计流程。DSP Builder就是Altera公司推出的一个面向DSP开发的系统级工具。它是作为MATLAB的一个Simulink工具箱(ToolBox)出现的。MATLAB是功能强大的数学分析工具,广泛应用于科学计算和工程计算,可以进行复杂的数字信号处理系统的建模、参数估计、性能分析。Simulink是MATLAB的一个组成部分,用于图形化建模仿真。
7
DSP Builder作为Simulink中的一个工具箱,使得用FPGA设计DSP系统完全可以通过Simulink的图形化界面进行,只要简单地进行DSP Builder工具箱中的模块调用即可。值得注意的是,DSP Builder中的DSP基本模块是以算法级的描述出现的,易于用户从系统或者算法级进行理解,甚至不需要了解FPGA本身和硬件描述语言。
8
为了满足DSP技术领域中的各种需求以及顺应DSP市场的发展,DSP应用系统的实现方式和目标器件的品种类型、结构特点乃至开发技术本身都经历着不断的改善和变革。
9
● DSP Processor DSP处理器;
● ASICs(Application-Specific Integrated Circuits) 专用集成电路; ● ASSPs(Application-Specific Standard Proucts) 专用标准电路模块; ● FPGA。 DSP Processor主要是指目前最常用的基于CPU架构的器件,通过软件指令的方式完成DSP算法。早期的DSP处理器(如大多数DSP实验室中采用的TMS320VC5402)中只有一个乘法器,而现在的处理器(如C6000系列)中,有的已达8个乘法器,工作性能有了很大的提高。
10
Processor在硬件结构上的不断改进,并没有摆脱传统CPU的工作模式。因而,尽管拥有多个硬件乘加器,使用了环形叠代的方法进行乘法操作,且许多DSP处理器还拥有使用多乘法器的并行指令,用于加速算术运算,然而由于其顺序的工作方式、较低的数据处理速率,以及缺乏实时工作的性能,使其至今仍只适合于低端的数字信号处理。
11
传统的DSP开发者通常都选用DSP处理器来构成DSP应用系统。DSP处理器的优势主要是具有很好的通用性和灵活性,有适用于各种DSP算法实现的通用硬件结构。图1-1所示的是一种比较典型的DSP系统电路图,除了选用的是DSP处理器以及应用程序加载工作方式外,与普通单片机应用系统十分相似,只要将调试好的机器码放在程序ROM中,就能使系统正常工作。因此通过这种硬件结构,能对实现各种数据处理的程序进行有效的执行。由此可知,这种灵活性几乎是没有限制的,因为,只要能用对应指令程序表达出DSP算法,其硬件结构都能接受并执行。
12
图1-1 基于通用DSP处理器的DSP系统
13
然而,各种算法可实现的灵活性与各种技术指标的可实现性,以及硬件结构的可变性完全是两回事。
ASSP和ASIC是专门针对完成某种DSP算法的集成电路器件,因此在性能指标、工作速度、可靠性和应用成本上优于DSP处理器。如卷积相关器IMSA100、FFT处理器A41102、复乘加器组PDSP16116、求模/相角器PDSP16330、下变频/信号解调器HSP50214等等。其优秀的工作性能主要源于特定的算法全部由ASSP和ASIC中的硬件电路完成。ASSP是半定制集成电路,在许多DSP算法的实现方面(如FIR,IIR滤波器)都优于DSP处理器,但在功能重构,以及应用性修正方面缺乏灵活性;ASIC虽然有一定的可定制性,但开发周期长,而且有一个最小定制量,因此应用风险和开发成本过高,正在逐渐失去其实用性。
14
但若直接使用FPGA完成DSP功能,则能在许多实用领域综合DSP处理器与ASIC/ASSP器件的优点,再加上FPGA本身的诸多优势,即能有效克服传统DSP系统的弱点。
由FPGA构成的DSP电路可以同样以并行或顺序方式工作。如图1-2所示,在并行工作方面,FPGA与ASIC/ASSP相当,远优于DSP处理器。对DSP处理器需要大量运算指令完成的工作,FPGA只需一个时钟周期的时间就能完成。而在顺序执行方面,FPGA也比DSP处理器快,因为FPGA中可以使用各种状态机,或使用嵌入式微处理器来完成,并且,每一顺序工作的时钟周期中都能同时并行完成许多执行,而DSP处理器却不能。就灵活性而言,FPGA的灵活性远胜于ASIC/ASSP,也胜于DSP处理器。
15
图1-2 DSP处理器顺序工作方式与FPGA的并行工作方式
16
DSP处理器的灵活性主要表现在软件更改的容易性以及对各种算法的处理和复杂算法的实现上,而对于系统硬件本身的更改,DSP是没有任何灵活性可言的。
现代大容量FPGA以其相关的开发技术在可重配置的DSP应用领域,以及DSP数据大吞吐量和数据的纯硬件处理方面,有独特的优势。FPGA面对传统的DSP处理器诸多难以克服的技术瓶颈,已有了突破性的应用。在各种DSP应用场合,FPGA具有全硬件的用户可定制性以及重配置性,即可根据需要随时通过改变FPGA中构成DSP系统的硬件结构来改变系统的功能、技术指标、通信方式、硬件加密算法、编解码方式等等。
17
这种结构变化可以由DSP开发者在开发时完成,也能在DSP系统投入实用中随时“在系统”更改,这就是所谓的可重配置特性。所以,基于FPGA实现的DSP系统,具有完全的硬件结构可定制性,包括总线结构的可定制性,存储器的可定制性,硬件加速器模块的结构与数量的可定制性,以及大量的MAC(乘加器)模块的可选性(系统设计中的硬件结构可变性称为可定制性,即Customized;系统设计完成后,成为产品后仍能随开发者甚至用户的要求随时进行硬件结构重构的,称为可重配置性,即Reconfigurable)。
18
DSP处理器结构与性能的发展 DSP处理器与普通处理器的基本差异是DSP处理器中有硬件乘加模块(MAC),专用的存储器以及适用于高速数据运行的总线结构。 MAC的工作性能通常是DSP处理器性能的关键所在。DSP应用系统主要是完成一些诸如FFT、FIR、IIR、矩阵相乘、卷积等算法。大部分的算法涉及到乘加结构的数学计算(如y = a ( b + c ( d ),这称为乘法累加操作(MAC)。为了提高DSP的性能,DSP处理器生产厂商在提高MAC模块硬件性能的同时增加它们的数量,以提高乘加的位宽与速度。例如,TI的TM320C6411中有8个MAC,能在一个时钟周期中完成8个乘法运算。
19
尽管在DSP处理器中增加更多的MAC单元,能进一步提高DSP的吞吐量,但对于某些一般数据处理量比较大的DSP算法,其通用性能却下降了,例如Viterbi编译码器和FIR滤波器就属于这种情况。为了解决这个问题,DSP生产厂商又将一些专用的硬件加速器类的协处理器模块加入进处理器结构。如Viterbi协处理器、Turbo协处理器和增强型滤波器协处理器等。由于这些处理器本身的非通用性,即主要是倾向于某种或某些算法的协处理器,从而导致了DSP处理器无法适用于多种类型的DSP算法和DSP应用。结果成本增加了,通用性下降了。
20
因此,大部分的DSP应用场合并没有从这种增加了各种硬件加速器的DSP结构的变化中得到好处。不但如此,这种硬件加速器模块是一种固定的硬件结构,无法根据特定的设计需要来作任何更改,特别是面向当今通信领域中不断发生的各种技术标准和协议的变更,这种加速器模块容易很快过时,从而导致整个DSP应用系统的过时。 针对这种情况,DSP处理器生产商又试图在DSP中增加一些可定制的指令,以便能对结构功能根据要求作一定的改变。然而这些修补并没有从根本上解决问题。
21
为了弥补速度及吞吐量的不足,实用的DSP系统使用多片DSP处理器进行并行工作已经是十分普遍的事,但这也同时带来了系统在灵活性、功耗、成本、体积、可靠性等技术性能上的进一步变差。
22
FPGA的结构与性能的发展 FPGA器件是由大量逻辑宏单元构成的。通过配置,可以使这些逻辑宏单元形成不同的硬件结构,从而构成不同的电子系统,完成不同的功能。正是FPGA的这种硬件重构的灵活性,使得设计者能够将硬件描述语言(如VHDL或Verilog)描述的电路在FPGA中实现。这样以来,同一块FPGA能实现许多完全不同的电路结构和功能。如DSL布线器、数字调制解调器、JPEG编码器、数字通信系统,以及网络接口等等。
23
随着达数百万门高密度的FPGA的出现,FPGA在原有的高密度的逻辑宏单元的基础上嵌入了许多面向DSP的专用硬核模块,结合大量可配置于FPGA硬件结构中的参数化的DSP IP软核,DSP开发者能十分容易地将整个DSP应用系统实现在一片FPGA中,从而实现了所谓的可编程SOC系统,即SOPC。
24
FPGA中的面向DSP的嵌入式模块有可配置RAM、DSP乘加模块和嵌入式处理器等,使FPGA能很好地适用于DSP功能的实现。例如Altera的Stratix系列器件中含有丰富的DSP功能块,包括能完成诸如累加、加/减、并行加等通用算法的功能模块,有多达224个乘法器,在一个时钟周期中就能完成224次乘法操作。 乘法器的带宽决定了整个DSP的带宽,而FPGA的DSP带宽比DSP处理器要宽得多。例如,Stratix器件的DSP模块能提供70GMACs/每DSP模块的吞吐量,而当今主流的DSP处理器只能达到4.8 GMACs。
25
此外,绝大部分的DSP处理器应用系统是用外部存储器来解决大数据量的处理的。然而FPGA的嵌入式高速可配置存储器在大多数情况下都能满足相类似的数据处理要求。例如,Stratix系列的FPGA可提供达10 Mb/s速率的嵌入式RAM。 FPGA中的嵌入式处理器进一步提高了FPGA的系统集成和灵活性,使之成为一个软件与硬件联合开发和灵活定制的结合体,可使设计者既能在嵌入式处理器中完成系统软件模块的开发和利用,也能利用FPGA的通用逻辑宏单元完成硬件功能模块的开发。Altera的FPGA器件还为用户提供了嵌入式处理器软核与硬核的选择。
26
嵌入式处理器软核是由网表文件表达的硬件结构,当同其它设计一同配置于FPGA中后,就成为FPGA芯片中的一个硬处理器核。高效率的SOPC设计能很容易地将软核(如Nios 嵌入式处理器)连同与该核相关的外围接口系统一同编程下载进同一片FPGA中。设计者能根据实际应用的需要定制Nios软核,使之满足不同的总线数量、总线宽度和总线功能要求,优化总线设计,排除传统DSP中许多常见的问题。还能定制处理器的指令,此时Nios的开发软件编译器将自动作相应的变化。这种结构可变(可定制)的DSP处理器能很好地根据实际的需求,在性能/功能与结构大小之间作最好的平衡,以适用于不同的DSP应用领域。
27
硬核处理器主要指在Excalibur系列FPGA中的ARM核。这种核已预先嵌入在FPGA中,含有完整的外围接口系统,如SDRAM、存储器控制单元、UART等。
现代的FPGA中含有十分灵活的、针对特定算法的加速器模块。与传统的DSP处理器中的加速器模块不同,FPGA中实现的硬件加速器是可以针对不同应用的,这可以使设计者针对不同的DSP任务实现硬件功能。设计者针对具体任务在FPGA中实现硬件加速器模块的途径很多,主要有下述几种:
28
● 用硬件描述语言HDL完成; ● 基于通用逻辑宏单元LCs的HDL设计; ● 基于可配置的DSP硬核模块:存储器、乘法器、并行加法器、累加器等; ● 基于全参数可设置的DSP软IP核的应用(进入FPGA中后其将成为性能优良的硬件 模块); ● Nios软核处理器; ● ARM硬核处理器。
29
在基于FPGA的DSP开发中,面向DSP的IP核的应用是最方便的设计方案。由Altera与其AMPP合作伙伴(Altera Megafunction Partner Program)提供针对DSP设计的各种用于硬件加速的IP核,大致可分为以下5类: (1) 通用IP核(如FIR,IIR,NCO,FFT等); (2) 图像处理IP核(如JPEG,DCT等); (3) 调制IP核(如QPSK,Equalizer等); (4) 编码IP核(如DES,Rjindael等); (5) 纠错IP核(如Viterbi,Turbo, CRC等)。
30
以上的每一个核都可以利用Quartus II中的“MegaWizard Plug-In Manager”管理器进行参数设置以构成针对特定应用的硬件功能模块。这种通过软件设置能随意改变专用硬件模块功能的技术,极大地提高了FPGA在DSP设计方面的灵活性。IP核的利用,可以使设计者将IP核加入到任何标准硬件描述语言中,完成特定的功能而不改变原来的设计程序;即使在设计中和设计完成后,都能根据实际需要改变嵌入的IP核的技术参数,而不改变整体设计综合得来的代码,从而改变DSP系统的技术指标和硬件功能。此外,IP核本身基本不依赖于某种特定的FPGA硬件结构,即具有硬件通用性(这一点与DSP处理器及其库程序有很大不同),因此可以在更新、更廉价的FPGA中实现。
31
显然,FPGA与软IP核的巨大灵活性能十分迅速地对即使是已经完成的设计系统,仍然能适应通信领域中不同的,诸如Wireless802
显然,FPGA与软IP核的巨大灵活性能十分迅速地对即使是已经完成的设计系统,仍然能适应通信领域中不同的,诸如Wireless802.lla, Wireless Broadband Working Group 及HiperLAN12等的新标准的要求,而绝对不必如使用传统DSP处理器那样,要等待很长时间才能有适用的器件出现,或是在开发前期必须针对某种通信的标准,而费时费力地确定某款合适的DSP处理器型号。
32
基于DSP处理器的DSP设计流程 图1-3是传统的DSP系统的典型开发流程。大致步骤如下: (1) DSP开发者首先使用诸如MATLAB这样的数学开发工具对DSP算法进行优化设计和仿真测试,或用Simulink 进行DSP系统建模,以获得满足功能要求和适应硬件特点的算法模型。 尽管现在已有可将Simulink的DSP模型直接转换成DSP处理器的C程序,但由于器件通用性问题,特别由于C程序的运行效率问题,通过MATLAB途径获得的C程序几乎没有实用价值。
33
(2) 根据DSP目标系统的功能要求、技术指标、系统升级可行性、性能标准可能的变化以及成本限度等因素,具体确定DSP处理器(并行使用的)数量和型号。这时必须十分熟悉当前主流DSP器件的详细硬件特性与价格范围,同时还要与手头的DSP开发软硬件工具和功能块程序库结合起来考虑。由于目前DSP处理器的厂商、品种、系列、功能、适用面以及价格等因素差异颇大,准确无误地确定DSP处理器的品种不但十分棘手,同时也事关重大。因为如果当系统最终设计并调试完成后,若发现由于DSP处理器导致的某项技术指标不能达到,或在以后的某项技术规范的升级要求中无法实现,将出现整个硬件系统必须重新开发的严重局面。
34
图1-3 基于DSP处理器的开发流程
35
(3) 根据选定的DSP处理器和系统功能要求,完成应用系统评估板或测试板的设计,否则无从调试DSP软件程序,更无法验证实际系统中各项技术指标的可实现性及应用系统的可行性。
(4) 根据MATLAB的算法模型和DSP评估板的硬件结构,编写C、C++程序,或汇编程序。在DSP标准开发环境中(如TI的CCS)进行编译、仿真,然后通过DSP硬件仿真器在应用板或评估板上进行调试和实时仿真。这一过程中,还能使用基于C的标准DSP功能块库来加速开发进程。
36
但是如果考虑到系统的实时性,包括数据运算、采样和输出的高速高效性,就必须使用汇编程序来完成设计,这时就必须严格考虑具体的器件型号和对应的指令系统,因为不同系列的DSP器件的指令系统通常是不兼容的。
(5) 最后完成实用硬件系统的实现。
37
基于FPGA的DSP设计流程 在早些时候,DSP开发者只能直接使用VHDL或 VerilogHDL语言进行FPGA的DSP系统设计,难度比较大。现在已经出现了许多新的基于FPGA的DSP开发工具。如DSP Builder、SOPC Builder、System Generator等,以及完整的软件开发平台。从而使得设计者能遵循一条类似于软件设计流程的开发方法进行FPGA的DSP设计,设计效率大为提高。 图1-4至图1-7概括了基于FPGA的几种不同的DSP系统设计流程。
38
图1-4 基于FPGA的软件与硬件开发流程
39
图1-5 基于FPGA的软件与硬件加速设计流程
40
图1-6 基于FPGA的硬件开发流程
41
图1-7 基于FPGA的系统级开发流程
42
1. 基于FPGA的软件与硬件的设计流程 图1-4所示的是含有嵌入式处理器的FPGA支持软件设计流程。Altera提供的软件开发工具有GNUPro套件,可用于编译、调试、汇编和连接。设计前可将编译好的软件下载到FPGA中的内部RAM中或是外部存储器中。 2. 应用硬件加速单元(IP核)的FPGA软件与硬件的设计流程 图1-5所示流程与以上的设计流程比较相似,这种流程除了要求有嵌入式处理器外,还要有硬件加速器,从而可以使DSP系统在灵活性、功能和成本方面都有很好的提高。
43
DSP开发者可以将软件设计流程与硬件加速模块结合起来。可以首先进行C程序的编程,并且将其中的必须的部分形成专用、高效的功能块,使用DSP IP核或直接开发定制指令,在FPGA中可以加速系统功能的高效实现,而其它的一些要求不高的DSP算法以及系统控制程序则可在嵌入式Nios中完成。此外,Altera还提供了系统级的设计工具,即SOPC Builder。设计者可以通过将嵌入式处理器(如Nios)、系统接口模块以及IP核结合起来完成整个硬件系统的设计。
44
DSP Builder也提供了一个从MATLAB/Simulink直接到FPGA硬件实现的设计接口。DSP Builder极大地简化了DSP功能的硬件实现流程,并提供了系统级仿真测试功能,设计者甚至可以不了解硬件描述语言HDL的设计流程,不必懂硬件描述语言本身,也能进行DSP应用系统的FPGA开发。
45
3. 基于FPGA的硬件设计流程 如图1-6所示,DSP设计者还能使用基于HDL的设计流程完成纯硬件的DSP系统开发。 Altera提供了一套完整的FPGA开发工具,包括Quartus II以及其它第三方EDA工具,如Modelsim、Synplify以及LeonardoSpectrum等,这些工具能完成硬件设计建模、仿真、综合、调试和在系统中进行DSP测试等。如果使用已得到良好优化的基于HDL的DSP IP核,则能大大简化整个开发过程。
46
4. 基于FPGA的系统级硬件设计流程 图1-7所示的流程就是本书将重点介绍的DSP开发流程。 与图1-3相比,一个重要的区别在于DSP处理器的设计流程中,MATLAB工具的使用仅仅是作DSP算法的建模和基于纯数学的仿真,其数学模型无法为硬件DSP应用系统直接产生实用的程序代码,其仿真测试的结果也仅仅是基于数学的算法结果,既非系统仿真,也非功能仿真,更非实时时序仿真,因而只能起到计算机辅助设计和辅助分析的作用(所以在流程转换中用虚线表示)。
47
图1-7所示的流程则表明基于FPGA的DSP开发流程中,顶层的开发工具就是MATLAB /Simulink,整个开发流程几乎完全可以在同一环境中完成!真正实现了自顶向下的设计流程,包括DSP系统的建模、系统级仿真、设计模型向VHDL硬件描述语言代码的转换、RTL级功能仿真测试、编译适配和布局布线、时序实时仿真,直至对DSP目标器件的编程配置。整个设计流程一气呵成地将系统描述和硬件实现有机地融为一体,充分显示了现代电子设计自动化开发的特点与优势。 图1-7的设计流程将在下一节中给予进一步的说明。
48
1.2 现代DSP设计流程概述 本节简要介绍基于MATLAB/Simulink、DSP Biulder和Quartus II等工具软件的DSP开发流程。由图1-7可见,整个设计流程,包括从系统描述直至硬件实现,可以在一个完整的设计环境中完成,同时构成了一个自顶向下的典型的EDA流程。因此这个流程不仅仅适用于DSP开发,同样适用于EDA技术和SOPC设计。
49
如图1-8所示,设计流程从利用MATLAB建立DSP电路模型开始。电路模型的建立可以是图形化的,可以方便地利用Simulink与DSP Builder中提供的丰富的功能块和IP核进行设计。DSP Builder包括比特和周期精度的Simulink模块,还涵盖了诸如算术和存储功能的基本设计模块以及IP库中的许多复杂的功能模块。电路中的功能块和IP的技术参数、数据格式、数据类型和总线宽度等都可以直接设置。电路模型设计完成后,可以进行系统级的模型仿真,属于系统功能仿真,与目标器件和硬件系统没有关系,是基于算法的仿真。图1-9是Simulink中的一个幅度调制设计模型电路和仿真结果。
50
图1-8 DSP Builder设计流程
51
图1-9 DSP电路模型和系统功能仿真
52
在图1-8中还能看到利用嵌入式逻辑分析仪的一个测试流程。SignalTap II嵌入式逻辑分析仪的应用是现代DSP技术中最有特色的测试技术之一,这项技术只能在FPGA的开发中使用。SignalTap II必须能够随心所欲地嵌入目标器件或从中撤走。SignalTap II可以直接插在Simulink模型电路中任何一处或多处,并可随该电路一同编译、适配和下载到DSP硬件系统的目标芯片中。在目标芯片指定的通道上,
53
嵌入的SignalTap II能根据给定的触发条件采集电路信号,并通过目标芯片的JTAG下载口将信号回送往PC机,然后在MATLAB界面上显示出来。一旦完成测试,可以通过模型修正和编译,将SignalTapII从目标器件中撤消。图1-9所示为DSP电路模型和系统功能仿真。
54
接下去是利用置于Simulink电路模型界面的DSP Builder的SignalCompiler,将电路模型文件即Simulink模块文件(.mdl)转换成RTL级的VHDL代码表述和Tcl(工具命令语言)脚本。这种转换是基于Simulink模型的结构化分析的。RTL级VHDL代码通俗的解释就是在FPGA中完成硬件电路实现的VHDL程序(因为并非所有的VHDL语句都能对应实际的硬件电路)。Tcl脚本主要是用于对后续的VHDL综合与仿真的控制与规范(注意,就目前基于FPGA的DSP设计工具而言,包括Altera的DSP Builder和Xilinx的System Generator,都只能将Simulink模型转换成VHDL,而非Verilog)。
55
一旦获得了转换好的VHDL描述,在Simulink中即可调用VHDL综合器了。目前可选择的综合器主要有Quartus II、Synplify和LeonardoSpectrum。由它们生成底层网表文件。图1-10即为Synplify生成的网表文件对应的RTL电路图。注意,只有在此时才能真正确定DSP硬件实现的目标器件的选择,包括FPGA器件的系列和型号。因为对RTL级的VHDL综合,必须确定底层元件的工艺特性和结构特性,但不必了解硬件时序特性,只有在适配时才需要时序信息。
56
图1-10 由VHDL综合出的RTL级电路图
57
电路描述的中间网表文件,称为原子级网表文件,即ATOM Netlist。
下一步是调用Quartus II中的编译器,根据网表文件及设置的优化约束条件进行布线布局和优化设计的适配操作。最后生成编程文件和仿真文件,即生成POF和SOF FPGA配置文件,可用于对目标器件的编程配置和硬件实现;同时生成可分别用于Quartus II的门级仿真文件和ModelSim的VHDL时序仿真文件,以及配套的VHDL仿真激励文件,可用于实时测试DSP系统的工作性能。
58
在以上的转换过程中,每个DSP Builder模块都经过了优化,利用专用硬件资源的优势,根据不同的目标器件系列作不同的综合与适配。例如在用Stratix器件时,累加器模块通常使用专用的DSP模块,而在为APEXII器件编译设计时,则使用逻辑宏单元LCs来代替。 读者在图1-8中可以注意到有一个ModelSim的VHDL仿真流程。 由上面的SignalCompiler生成的VHDL,在进入ModelSim仿真流程获得的结果与硬件时序没有关系,属于功能仿真结果;而当由Quartus II生成的VHDL仿真文件,进入ModelSim仿真流程后获得的仿真结果属于时序仿真,即是对系统的实时测试结果。
59
最后是将Quartus II生成的配置文件下载到目标器件中,形成DSP硬件系统。
作为总结,用图1-11所示的流程可以对图1-8作进一步的说明。 图1-11将DSP开发流程划分为两个层次:虚线左边为系统级设计与仿真流程,右边为RTL级设计、仿真和硬件实现流程。两个流程通过DSP Builder的SignalCompiler直接握手,左边是与硬件完全没有关系的类似于软件方式的设计流程,而右边则是硬件设计流程。
60
图1-11 基于FPGA的系统级开发流程
61
一方面,左边可以通过模型设计、模块应用、数据格式设置、触发条件选择等操作直接控制右边的硬件设计流程与硬件实现方式;另一方面,右边又能通过时序仿真、SignalTapII测试等方式及时或实时地将硬件信息反馈给左边。这是一个完美的组合,是现代DSP设计技术乃至现代电子系统设计技术的特色与核心。
62
由脱离硬件的系统级开始设计,优势是直观、快捷、高效、灵活、易于排错与及时修改,非常有利于对复杂系统的构建、测试及可行性判断,及时更改设计方案,同时也有利于系统的模块化构建、模块化测试和模块化重利用,是高效率低风险设计的有效解决方案。 将软件设计与硬件实现直接握手,是电子设计的难点,这对于传统电子设计来讲是不可思议的事情。这种设计流程的前提是必须使用硬件描述语言HDL和FPGA,因此传统的DSP处理器的开发很难介入到这个流程中。
63
1.3 两类DSP解决方案的比较 本节结合以上讨论的结果,对现代DSP技术与传统DSP技术作一个一般性的比较。这里所谓的传统DSP技术主要是指以DSP处理器为核心或作为主要处理单元的DSP应用系统及其开发技术,也包括将FPGA或CPLD作为这些系统中DSP辅助处理或接口等功能的情况。 需要指出的是,至少在目前,这两种技术还没有较好地相互替代(或相互包含、相互覆盖),
64
也没有很好地相互融合。例如在通信领域中,DSP处理器在基带处理功能方面具有不可替代的优越性,而在典型的软件无线电系统中的宽频处理、高频段的信号处理,包括通信系统结构的开放性、标准化、模块化,以及工作频段收发可变性,调制解调类型,数据格式,加/解密模式,通信协议,总线结构等的可变性,传输格式及通信体制的互通性和可变性等等方面,FPGA无疑将成为主要选择! 严格地说,现代DSP技术不可能融入传统DSP技术的内容,但反过来却可以,不过仍应属于传统技术范畴,因为其自底向上的设计流程没有改变。
65
现代DSP技术与传统DSP技术的不同之处主要表现在以下几个方面:
1. 系统工作速度不同 与FPGA相比,DSP处理器最大的劣势之一是处理速度比较慢。尽管在硬件结构上作了大量的改进,如增加硬件乘法累加模块和加入各种专用的加速协处理器等,但其速度瓶颈来自于基于CPU的指令顺序执行的基本工作模式,以及通常使用的多片DSP组合电路和过多的外部接口电路(FPGA通常可以实现单片系统)导致的信号通道过长、过复杂。 下面以FIR数字滤波器的设计为例,对两种DSP解决方案的计算速度作一些比较。
66
图1-12所示的是用多种途径实现16阶8位FIR数字滤波器在速度和相位线性等方面的综合性能的对比情况。柱面图高度表示相对性能指标,五个柱面分别表示用五种不同器件实现16阶8位FIR滤波器性能的相对指数(以TMS320C2XX系列50 MHz的DSP芯片的综合性能为比较基准),它们分别是133 MHz的专用CPU、50 MHz的DSP处理器芯片、4个同类50 MHz DSP处理器联合工作的情况和EPF8820A-2与EPF81500A-2的ALTERA的FPGA产品。
67
图1-12 实现16阶8位FIR滤波器综合性能对比
68
由图不难看出用FPGA实现滤波器在性能上的明显优势。以FPGA器件EPF81500A-2实现的数字滤波器的综合性能是普通DSP器件的67倍多。
以下再以目前完成乘法累加速度最快的TI的C6X系列DSP处理器、最常用的DSP处理器和FPGA完成同一算法(即8位224阶FIR滤波器)进行比较见表1-1。
69
表1-1 FPGA与DSP处理器运算速度的比较
功能实现资源需求 TI TMS320C5402 TI TMS320C6414 ALTERA FPGA EP1S120 阶数 224 乘法累加器数 1 8(最大) 224(28个DSP模块) 内部时钟速度 100 MHz 600 MHz 250 MHz 算出结果的时钟周期数 28 每秒乘加运算次数 0.1 GMACs 4.8 GMACs 56 GMACs
70
由表1-1可见,EP1S20型的FPGA的乘加速度最快,每秒为56千兆个MAC操作,是TMS320C6414的12倍,TMS320C5402的560倍。而这时FPGA中采用的内部时钟速度还不到TMS320C6414的1/2。 此外还应看到两点: (1) TMS320C6414和TMS320C5402中的MAC模块的极限分别是8和1,而EP1S120中的224个类似于MAC的DSP模块数却非极限,因为FPGA中有数以万计的逻辑宏单元LCs可供随意组合成各种类型的硬件电路功能模块。
71
(2) TMS320C6414与EP1S120的单片售价相当,但在实用DSP系统中,单片C6X几乎无法完成实际的运算任务,而FPGA 却常能构成单片系统。
值得注意的是,处理器TMS320C5402是目前国内绝大多数DSP实验室中的主流器件。
72
2. 设计流程不同 在上一节中已对两种解决方案的设计流程作了说明。比较图1-3和图1-7,不难发现两种设计流程恰好相反,前者是自底向上的设计流程,后者是自顶向下的设计流程。 在图1-3的流程中,由于必须首先完成硬件系统的设计,以供仿真调试之用,然而在没有进行任何有效的系统可行性评估、硬件电路测试和实时仿真的情况下,就不得不首先确定DSP器件的型号、系统电路原理图及系统板的设计,而且此后很难随心所欲地更改。这一切无疑具有相当的盲目性和风险性(包括成本风险及开发周期的风险),这将严重影响开发的效率和成功率。
73
不难发现,自底向上的设计流程将导致这样一个佯谬:实时仿真调试的目的是为了设计出符合要求的DSP系统,然而如果没有这样一个系统就根本无法进行实时仿真调试。这是一个互为依据、自相矛盾的现象,显然是一种不科学的、被动的和无奈的选择。 自顶向下的设计流程则彻底解决了这一矛盾。如图1-7所示,系统设计可以在与硬件无关的环境中完成,实时时序仿真完全可以在实际的硬件电路系统设计出来以前进行,
74
至于选择或更改总线宽度、浮点或定点数据的类型、单精度或双精度格式、串/并行处理方式,以及硬件加速模块的使用类型、数量、方式等等十分重要的工作,都可以在MATLAB的Simulink顶层设计环境中随时完成而不必顾及今后硬件的选择。 显然自顶向下的设计流程对于硬件系统的结构控制具有全程的主动权和能动性,是优化设计和高效开发的必要条件。
75
3. 系统结构可重构性不同 虽然加载不同的软件程序能够改变DSP处理器的功能,但这种相对于AISC系统来说十分灵活的功能并没有什么实用价值。因为仅仅通过对DSP处理器加载不同的程序代码,并不能有效地改变DSP系统的诸如吞吐量、数据总线宽度、DSP加速模块的数量与功能、调制模式(如AM、FM、ISB、FSK、PSK、MSK、QAM等)、实时加/解密算法、模块DSP系统、处理频段带宽、通信协议、动态范围、制式(如FDM、TDM、CDMA、WCDMA间的切换)等等技术参数和技术方案。
76
这是因为这一切必须完全改变硬件结构、硬件功能和硬件组成才能实现。即除非DSP系统具有硬件可重构性,即结构有可重配置性才能实现上述变化。
由于不同的配置文件下载于FPGA后,将能获得不同的硬件结构和硬件功能,因此基于FPGA的DSP系统具有良好的系统结构可重配置特性。 不同的配置文件对于FPGA的加载可以有多种方式,如下所述。
77
(1) 将多个配置文件预先存储在DSP系统的ROM中,系统根据实际需要自动选择下载的配置文件。缺点是配置文件数有限。
(2) 将配置文件全部预存在大存储器中,或PC机中,由外围系统选择下载配置文件。 (3) 通过无线遥控方式,对远处的DSP应用系统进行配置,从而遥控改变功能模块或系统的硬件结构,达到改变技术指标和硬件工作方式的目的。 (4) 通过互联网进行配置,实现远程硬件结构控制。
78
4. 仿真测试技术不同 DSP处理器开发中除了可以利用MATLAB等工具完成算法仿真外,唯一有实际意义的仿真是借助于实时开发系统的仿真,即必须与实际的硬件系统相连后才能进行。然而从仿真的严格意义上讲,这不能称之为“仿真”,而只能称为“硬件调试”,即所谓的“Hardware Debug”,因为对于A/D和D/A模拟信号的测试,特别是实时测试,只能通过实际的仪表才能实现。所以说只有脱离了作为仿真对象的硬件系统的测试活动才能称为“仿真”。
79
而在DSP处理器系统的“仿真”中,就有些相当于“生米煮成熟饭”的感觉,当在“硬件调试”中发现有问题时,如果不是来自源程序本身的错误,除非彻底更改整个硬件系统,否则就只能将就接受“既成事实”了。而且这种“仿真”的实际意义仅在于,假设(事实也要求)待开发的硬件系统已经设计成功并能正常工作的条件下,完成DSP源程序在硬件系统上的调试活动。因此,这种“硬件调试”的意义就弱化了许多。另外由于仿真调试的环节太单一,许多软硬件中的存在问题的定位十分困难,对于多DSP器件组成的大系统调试效率很低。
80
基于FPGA的DSP开发流程则不同,由图1-8和1-11可见,整个流程有多个层次的仿真测试和硬件调试环节。主要可分为下述5个环节:
(1) 基于MATLAB/Simulink模型的系统级仿真,包括对数字信号和模拟信号的仿真测试。这个仿真环节可以对系统构成和算法模型进行调试和评估; (2) 利用功能强大的HDL仿真器ModelSim进行RTL级功能仿真和模拟信号仿真; (3) 利用ModelSim对DSP数字系统进行实时时序仿真;
81
(4) 利用Quartus II中的门级仿真器进行时序仿真;
(5) 利用嵌入式逻辑分析仪SignalTapII对DSP硬件系统进行测试。 在以上5个仿真测试环节中的任何一处发现问题,都可以随时修正和排除。 5. 系统知识产权自主性不同 由于基于FPGA的DSP系统主要是纯硬件系统设计,可选的硬件实现方式很多,因此系统具有较好的自主知识产权属性。基于DSP处理器的系统则没有这种属性。
82
6. 开发技术标准化、规范化与技术兼容性不同 为了适应不同DSP应用系统的技术指标要求和适用领域,必须推出不同系列和功能特点的DSP处理器,而不同的DSP处理器其硬件结构通常都有较大的差别,因此对应不同的汇编语言,需要不同的软硬件开发工具和仿真器。此外,由于相应的C程序的运行效率比较低,实时要求较高的系统仍然需要利用汇编语言进行开发,因此,调试成熟的软件模块难以移植和再利用。
83
在这里,硬件结构与计算机语言的密切相关性、仿真测试与硬件系统的密切相关性,以及系统性能与DSP处理器选择的密切相关性,注定了无论是设计流程、仿真开发工具还是开发语言都不可能得到标准化、规范化,从而极大地降低了DSP开发技术的学习效率、开发效率、实现效率及升级更新效率。 传统DSP技术难以标准化的另一重要原因是,该技术的实现流程过于单向化,技术兼容性不好,很难与其它开发技术融为一体。如单片机开发技术、嵌入式系统开发技术、可配置模拟系统开发技术、大规模可编程逻辑系统开发技术,乃至SOC开发技术等。
84
开发技术标准化和规范化是现代DSP技术的优势之一。自顶向下的设计流程为DSP开发技术的标准化奠定了基础;标准化的硬件描述语言和大量支持这一语言的综合器与仿真器构成了这一技术的核心;功能强大、适用面广的DSP开发集成环境将多种开发目标兼收并蓄;大规模的可重配置器件FPGA/CPLD及相关的软硬IP核确保了DSP硬件系统高效高质的实现。
85
7. 掌握开发技术的难易程度不同 掌握传统DSP技术的困难主要来自以下几个方面: (1) 不同的开发目标需要选择不同的DSP处理器,详细了解DSP器件的结构对正确地设计DSP硬件系统至关重要,特别需要多片DSP联用时更是如此。对器件硬件结构的熟悉和关注能力需要相当的硬件开发经验,这显然增加了学习的难度。 (2) 不同的DSP处理器结构将对应不同的汇编语言,以及不同的编程方法和编程技巧。语言与结构的密切相关性在明显增加学习难度的同时,缩短了新的计算机语言的可用性周期,即学会的软硬件知识容易过时。
86
(3) 不同的DSP处理器结构、不同的汇编语言及其对应的不同的DSP系统结构,都将对应不同的仿真开发工具以及编译软件。
87
现代DSP技术是完全基于电子设计自动化技术的,系统级开发工具是目前各学科领域普遍使用的MATLAB,一切设计操作都可以在同一环境中完成,整个设计流程中几乎可以不必了解FPGA的结构和VHDL硬件描述语言,从而最大程度地发挥了计算机自动化设计的优势。设计者所有的任务都集中在系统行为和功能的描述,以及系统性能的优化上。
88
比较图1-3和图1-7可以发现,基于图1-3流程的传统DSP开发中,最初在MATLAB中的DSP模型建立、相关参数的获取以及模型功能仿真等工作仅仅是整个开发工作的一个开端(因为更关键更困难更实质性的工作是在图1-3的虚线以下);然而,同样的一个“开端”,当移到图1-7中时,整个DSP 的开发工作已完成了80%以上!其难易之别是不言而喻的。
89
8. 系统成本、功耗、集成度与可靠性不同 由于CPU的灵活性,对于低速、低吞吐量和大量复杂运算的情况,DSP处理器方案的系统成本要比FPGA系统低得多,而且此方案具有不可替代性。 然而在实用系统中,以上的情况是比较少的。大多数的情况中不但需要尽可能高速、高性能的DSP处理器,而且多片DSP连用的情况也十分普遍。在这种多片DSP系统中,每一片DSP处理器都必须配置完整的辅助器件才能正常工作,其中包括诸如数据RAM、程序RAM和ROM、FIFO、双口RAM、FPGA/CPLD辅助接口器件等等。
90
这种系统的成本将成倍提高自不必说,功耗、集成度与可靠性等性能指标也都将不同程度地下降。但是如果使用FPGA来构成DSP系统,在DSP处理器系统中存在的许多问题将迎刃而解。基于FPGA的DSP系统的优势主要源于可以形成单片系统。目前拥有大规模逻辑资源的FPGA完全能容纳本来必须由多片DSP处理器构成的系统,从而使得单片DSP系统在各项技术指标大幅度提高的前提下,成本和功耗大幅度下降,集成度与可靠性则大幅度提高。
91
图1-13所示的是用FPGA APEX20KE设计完成的单片100 Mb的8端口以太网交换机芯片的内部功能块结构图。其中含有各种用途的FIFO、RAM、CAM、Cache和各种功能的控制器、微处理器、100 Mb MAC接口模块、高速差分接口LVTTL、数字锁相环PLL、PCI接口等等。
92
图1-13 单片100 Mb 8端口以太网交换机
93
如果为了进一步降低成本,提高性能,而且可以不考虑重配置性,则能将已经设计完成的DSP单片系统直接转化为ASIC。 方法是使用“HardCopy”技术将FPGA变成HardCopy器件。
一般地,将一项成功的设计无论是直接转换成ASIC,还是通过大容量可编程逻辑器件(PLD)迁移,都是一件十分艰巨和困难的事。ASIC设计固有的初次开发性能的不确定性、巨大的开发成本、产量要求问题和面市压力等诸多风险因素正是ASIC产品研发者必须面对的严峻挑战。
94
然而,一个变通的方法是,利用Altera提供的一套全新的ASIC设计解决方案即HardCopy器件的应用。可以将专用的硅片设计和FPGA至HardCopy的自动迁移过程结合在一起,提供了帮助设计者把可编程解决方案无缝地迁移到低成本的ASIC上的实现方案。这样,HardCopy器件就把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有大批量要求并对成本敏感的DSP应用系统产品上。这个解决方案可以避开直接设计ASIC的困难,而从原型设计提升至产品制造,通过FPGA的设计十分容易地移植到HardCopy器件上,达到既降低成本,又加快面市周期的目的。
95
HardCopy器件避免了ASIC的风险,它采用FPGA的专有迁移技术。它们是直接在Altera PLD体系之上构建的,采用有效利用面积“逻辑单元海”内核。本质上,HardCopy器件是FPGA的精确复制,剔除了可编程性,专用配置和采用金属互连使用的走线。这样,器件的硅片面积就更小,成本就更低,而且还改善了时序特性。 HardCopy产品支持Altera的大容量APEX20KE,APEX20KC,APEXII和Excalibur器件系列。HardCopy器件采用和其相应的APEX20K,APEXII和Excalibur的工艺技术特性。
Similar presentations