版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章数字信号处理技术概要何宾2009.08本章概要本章主要介绍了数字信号处理的实现方法和应用领域,在此基础上对基于现场可编程门阵列(FieldProgrammableGateArray,FPGA)的数字信号处理的实现原理和方法,以及基于数字信号处理器(DigitalSignalProcessors,DSPs)的数字信号处理的实现原理和方法进行了详细的介绍,并对这两种实现方法进行了比较。本章内容是对数字信号处理实现方法的简要介绍。
上世纪80年代,首次出现了专门用于数字信号处理的数字信号处理器DSPs,随着半导体工艺的不断发展,DSPs的性能不断提高,价格不断降低。DSP以其高可靠性、良好的可重复性,以及可编程性已经在消费市场和工业市场中广泛地使用。DSP处理器发展的趋势是结构多样化,集成单片化用户化,开发工具更完善,评价体系更全面更专业。随着FPGA制造工艺的不断发展,FPGA已经从传统的数字逻辑的设计,发展到用于进行数字信号的处理和嵌入式系统的设计中。这就使得数字信号处理技术向着多元化实现的方向发展。数字信号处理技术的发展数字信号处理技术主要应用方面数字音频调制解调器数字用户回路移动多媒体应用软件无线电的应用
1)线性滤波线性滤波主要用于从信号中移除高频背景噪声。线性滤波技术可被用在任意一个应用中,只要两个信号可以通过它们占据的频带加以区分。
2)信号变换信号分量分析、信号检测等。将一个信号变换到不同的域中通常可以更方便地观察和分析一个信号。例如,转换到s域(拉普拉斯域)可以允许更直接的数学操作。转换到频域使得不同频率的信号比时域上更容易被观察。数字信号处理算法主要包含内容数字信号处理算法主要包含内容
3)非线性信号增强/滤波通过中值滤波去除脉冲噪声。有些信号(特别是2D图像)通常得益于非线性滤波的应用。
4)信号分析/解释/分类
用于心电图、语音识别、图像识别等。目的是用一个已知的图案与输入信号比较,以便识别输入信号并输出某些参数化的信息。
5)压缩/编码
高保真音频、移动通信、视频会议、ECG信号压缩等等。压缩是目前音频和电信业务中的一个重要的领域。在高保真音频市场,CDROM已经被通过因特网购买的压缩格式的音乐产品(比如MP3)所取代。对于电信应用,语音被编码成具有尽可能小的带宽,同时又保持了足够的信号质量。对于每一个新型移动设备,更强的DSP处理能力在允许位速率减小的同时(很快就会达到每秒几千比特),仍然保持了很好的信号质量。比如:减少信号的带宽和存储需求。数字信号处理算法主要包含内容数字信号处理算法主要包含内容
6)记录/复原,比如:CD、CD-R、硬盘记录等该过程和压缩过程相反,其目的是提取并恢复原始的信息。
对平台的选择取决于下面的因素:1)所需要实现的功能;2)处理性能的要求(速度,精度等);3)可重复编程的能力;4)生产成本;5)可用的设计资源;6)所需要的设计时间等。数字信号处理实现方法数字信号处理实现方法
目前,用于实现数字信号处理的方法有:1)专用集成电路(ApplicationSpecificCircuits,ASICs)ASIC为全定制数字(或者模数混合型)硬件,其优点主要有:使用ASIC的实现更加迅速和有效;对于大批量生产,ASIC的成本相对较低。但ASIC也有下面的缺点:ASIC流片时间长;ASIC设计过程复杂且昂贵;由于不具备可重复编程的能力,ASIC没有灵活性。
数字信号处理实现方法2)现场可编程门阵列(FieldProgrammableGateArrays,FPGA)FPGA内提供了大量的可编程的逻辑资源、布线资源和I/O模块。近来,为了使用FPGA进行数字信号处理,在FPGA内也集成了专用的DSP处理模块来提高数字信号处理的性能。3)数字信号处理器(DigitalSignalProcessors,DSPs)DSPs是专门用于数字信号处理的处理器芯片,典型的有TI公司和ADI公司的DSP处理器芯片,两者在性能方面各有千秋。
下面以一个数字FIR滤波器的实现为例,来说明不同实现方法所能达到的处理性能。1)使用DSP通过优化设计执行乘-累加(MAC)操作,N个MAC中的每一个均需要被顺序执行,因此可达到的最大执行速率大约为fclock⁄MHz,其中fclock为DSP的最高时钟频率(假定可以在单处理器周期内执行一个MAC操作)。2)而使用ASIC或FPGA,可以全并行地实现滤波器,其中N个MAC操作被并行执行(而不是顺序执行)。对于同样的fclock,滤波器执行速度可以快N倍。
数字信号处理实现方法数字信号处理实现方法3)大多数DSP提供了32位精度的累加器来存储MAC操作的结果。而对于ASIC与FPGA,即使它们理论上可以实现任意精确度的操作,普通滤波器在10到16位的范围内实现,因此达到更高的精度需要使用更多的逻辑资源。4)如果实现的系统需要具备可重复编程的能力,不能选择ASIC进行实现。当设计人员希望设计的系统能符合最新的标准,或者只是简单地更新设计,可通过下载修改DSP与FPGA的程序到芯片中来完成。FPGA的技术发展FPGA芯片朝着下面的方向发展,以适合未来高性能信号处理的要求:1)逻辑门数越来越大,运行速度越来越高;2)通过更小纳米的流片工艺增加FPGA器件的密度。一旦密度增加,器件的逻辑门数将变大,速度将变快;3)新一代FPGA朝着在单独的器件上实现整个系统的方向发展,即片上可编程系统(System-On-a-Programmable-Chip,SOPC)。FPGA的技术发展4)除了主要的可编程逻辑之外,FPGA中还包括RAM,专用的算术硬件,时钟管理与收发器等设计资源;5)还有些FPGA带有嵌入式处理器内核(嵌入硅片中的硬核或者作为具有可编程逻辑结构的软核);在许多应用中,FPGA被用做中央处理单元。这些应用包括:消费电子,汽车电子,图象/视频处理,军事/空间,基站,网络/通信,超级计算(supercomputing)和无线应用。每个FPGA系列具有不同的规格、封装和速率等级。选用器件的类型取决于设计目标/应用需求等诸多因素。下面因素通常影响设计人员对FPGA类型的选择:面积;数据/采样率;输入/输出与相关的数据速率;需要的存储空间;是否需要嵌入式处理器;成本。Xilinx的Virtex高端FPGA产品,目的是在单个器件上实现大型系统,这类FPGA芯片性能很高,但由于成本原因,不适合大批量的应用;Xilinx的Spartan低端FPGA产品,性能虽然不及Virtex系列,但由于成本相对较低,因此可用作大批量的应用。FPGA的种类及选择FPGA的种类及选择需要注意的是,通常低成本、高容量的FPGA系列是从高成本、高容量和高性能的FPGA系列中演变而来的(如Spartan-3系列源自Virtex-II系列,Spartan-II系列源自Virtex系列)。所以Xilinx高端和低端FPGA的数字信号处理设计流程基本一样。MIPS(每秒百万次)指标通常被用来比较DSP处理器的性能,但它不能用于定量FPGA的全部性能。这主要是由于:1.由于DSP算法在FPGA上可通过不同的方式灵活实现,所以其性能很难被准确的估计;2.Xilinx器件上的乘加(MAC)模块,在以几百MHz的时钟速率运行时,其性能可以达到上百GMAC/秒;3.FPGA制造商通常给出的最大的每秒乘加次数是指使用了可被用作乘法的所有的逻辑单元来得出的数值(这不能反映FPGA上实现的典型系统的性能);FPGA的性能及灵活性FPGA的性能及灵活性由于并行处理,FPGA在数据/算术吞吐量和灵活性上远远优于DSP处理器。但是DSP处理器仍然会在业界占有一席之地,在工程领域,其设计流程更加简单并且更加容易理解,而且某些算法在DSP上实现比用FPGA实现更简单。但是由于FPGA的灵活性,所以可通过使用不同的方法在FPGA上实现算法以满足特定的应用。这种灵活性是根据面积和速度呈反比的关系来确定的。如果必须要快速执行10个MAC,FPGA可在1个时钟周期内并行地执行它们,但是这样会消耗大量的芯片资源(面积)。如果10次MAC允许以低速度执行,则FPGA可以串行地执行,因此,FPGA芯片内逻辑资源的使用量减少到原来的1/10,但却需要10个时钟周期来执行MAC操作。当用FPGA实现DSP时,速率和面积可以相互权衡,而DSP处理器并不具备这种功能。需要说明,不会有人实现过只包括乘法器的FPGA设计。厂商提供的数据仅仅是想指明这些器件潜在的性能以及对比DSP处理器的优势.FPGA的性能及灵活性FPGA的性能及灵活性FPGA同样也是一块ASIC,这是由于Xilinx,Altera等厂商是FPGA的制造者,但它们最终仍然是全定制集成电路(尽管它们是高度可编程的)。DSP处理器同样是ASIC,随着ASIC处理技术的提高而且芯片的速度越来越快,DSP处理器也将变得越来越快。图1.1DSP和FPGA在灵活性和性能方面的比较FPGA的性能及灵活性
FPGA芯片主要包括下面的三个部分:1)可重构逻辑模块(高达106);2)输入/输出模块;3)可编程连线资源。下面对各模块进行简单介绍,后面将更详细的介绍这些内容。FPGA的公共资源FPGA的公共资源
--逻辑模块如图1.2,尽管不同厂商提供的逻辑模块不尽相同,但通常都包括下面的单元:查找表、除法器、复用器和进位逻辑。图1.2通用的FPGA逻辑模块查找表(Look-upTables,LUT)是逻辑实现的主要部件。查找表主要完成下面的功能:1.执行一个输入的组合功能(无反馈)。2.无论输入多么复杂,一个4输入LUT总会执行输入数小于或等于4的函数功能。3.地址输入选择存储单元中的逻辑函数。4.LUT的复杂度随输入数量的变大而增加。FPGA的公共资源
--4输入查找表FPGA的公共资源
--4输入查找表LUT是构成FPGA器件中组合逻辑的基本模块。然而通过综合过程,设计者事实上并不需要知道逻辑的实现过程。但是对LUT结构的理解是非常重要的,因为LUT允许在FPGA中实现逻辑函数。LUT实际上就是静态随机存取存储器(SRAM),它通过将n个输入的2n-1个逻辑函数存储起来以实现LUT功能。在这种形式中,SRAM的地址线被当作输入,而其输出提供了逻辑函数的值。如图1.3,给出了3输入逻辑函数的实现方法。SRAM单元中存储器的每个位都是一个D锁存器。SRAM单元按阵列构成并与控制逻辑结合在一起,形成一个完整的存储器件。除了专用复用器,LUT也可被配置为一个复用器。图1.33输入逻辑函数的实现FPGA的公共资源
--4输入查找表专用的复用器也是FPGA内重要的工作资源,其主要功能包括:1.允许数字开关将数据从n个源头中的一个连接到其输出端。2.通过把每一个输入与常量信号相连来实现不同的组合逻辑函数。3.通过将一系列复用器与基本逻辑门相连以构成一个逻辑模块,这样就可以实现大量的逻辑函数。FPGA的公共资源
--专用复用器FPGA的公共资源
--触发器
触发器也是FPGA逻辑块中重要的资源,单个触发器可被用于实现一个抽头延迟线。如图1.5所示,该数字滤波器使用了4位的数据。从图1.4可以看出,使用一个触发器可以实现一条抽头延迟线。使用4个触发器可以延迟/存储一个4位的采样。数字的位数越多,所需要的触发器的数量就越多。这就需要使用更多的逻辑模块以及更大的FPGA面积。专用触发器除了用于实现抽头延迟线之外,还具有其它的用途。比如,可配置该触发器以允许对输入数据执行串/并转换。图1.44位数据的触发器结构FPGA的公共资源
--触发器全加器具有两个数据输入x和y,以及来自前一级的进位输入。1位的和与溢出进位Cout作为全加器的输出。加法器是数字信号处理中一个最重要的运算单元,它可通过使用LUT在FPGA上实现。如图1.6,为了使用LUT实现全加器,需要对进位以及和的输出建立真值表,然后把它们做到LUT中。一些FPGA器件也包括了专用的进位逻辑,通过减小进位输入到LUT实现的进位输出之间的延迟来提高加法器的性能。FPGA的公共资源
--全加器FPGA的公共资源
--全加器图1.5使用LUT实现加法器
Xilinx针对FPGA上进行数字信号处理提供了SystemGenerator和AccelDSP两个软件工具用来帮助设计人员建立信号处理的模型,并完成信号处理模型的实现过程。基于FPGA的数字信号处理流程基于SystemGenerator的数字信号处理流程SystemGeneratorforDSP是业内领先的高级工具,用于借助FPGA来设计高性能DSP系统。其主要功能包括:利用业内最先进的FPGA开发高度并行系统;利用Simulink和MATLAB(MathWorks公司)实现系统建模与自动代码生成;整合了DSP系统的RTL、嵌入式、IP、MATLAB和硬件元件;XtremeDSP开发和入门套件的主要组成部分。SystemGeneratorforDSP是XilinxDSP工具(其还包含AccelDSP综合工具)的一部分。借助于SystemGeneratorforDSP,FPGA设计经验不足的开发人员只需传统RTL开发时间的一小部分即可迅速创建DSP算法的FPGA实现。该工具的关键特性包括:
DSP建模在Simulink内,利用包含信号处理(如FIR滤波器、FFT)、纠错(如Viterbi解码器、Reed-Solomon编码器/解码器)、算法、存储器(如FIFO、RAM、ROM)及数字逻辑功能的Xilinx模块集构建和调试高性能DSP系统。从Simulink自动生成VHDL或Verilog代码实现行为(RTL)产生,并面向Xilinx模块集内的特定XilinxIP核。SystemGenerator支持从AccelDSP综合工具生成的模块,并且还通过其黑盒支持定制HDL。
基于SystemGenerator的数字信号处理流程基于SystemGenerator的数字信号处理流程硬件协仿真代码生成选项,允许设计人员验证工作硬件并加速Simulink与MATLAB中的仿真。SystemGenerator支持以太网(10/100/千兆位)以及硬件平台与Simulink之间的JTAG通信嵌入式系统的硬件/软件协设计
构建和调试用于XilinxMicroBlaze软处理器核的DSP协处理器。SystemGenerator提供了HW/SW接口的共享存储器提取功能,自动生成DSP协处理器、总线接口逻辑、软件驱动器及协处理器用法方面的软件技术文档。比特流Systemgenerator在Simulink中开发可执行的设计规格(spec)开发SystemGenerator的描述自动RTL生成Xilinx实现流程下载到FPGAXilinxDSPBlocksetXilinxCoreGen测试平台生成使用ModelSim的RTL验证图1.6基于SystemGenerator的数字信号处理流程基于SystemGenerator的数字信号处理流程
从图中可以看出,使用标准的Simulink的模块集(blockset)创建可执行的设计规格(executablespec)。该规格使用浮点精度数来设计,并不涉及到具体的硬件。一旦功能和基本的数据流问题被定义,SystemGenerator用来指定用于在Xilinx芯片上的硬件实现细节。SystemGenerator使用XilinxDSP的模块集并自动调用XilinxCores生成器为DSP模块生成优化的网表。SystemGenerator能执行所有的下载实现工具为FPGA的编程产生比特流。可选的测试平台使用从Simulink环境提取的测试向量,这些测试平台将被ModelSim和ISE仿真器使用。基于SystemGenerator的数字信号处理流程基于AccelDSP的数字信号处理流程AccelDSP综合工具是基于高级MATLAB语言的工具,用于设计针对XilinxFPGA的DSP块。该工具的主要功能包括:自动浮点到定点转换生成可综合VHDL或Verilog代码创建用于实现设计验证的测试平台从MATLAB算法生成定点C++模型或SystemGenerator模块FPGA设计经验不足的开发人员只需传统RTL开发时间的一小部分即可迅速创建DSP算法的FPGA。该工具的关键特性主要包括:1、DSP建模利用面向XilinxFPGA的MATLAB实现高级DSP算法的设计、架构探索和调试,进而缩短设计周期和削减成本。2、自动浮点到定点转换浮点到定点转换的自动字宽选择与传送3、可综合VHDL或Verilog的自动代码生成定点设计完成后生成的位精确代码可满足系统规范基于AccelDSP的数字信号处理流程4、位精度验证
用于自动验证的RTL、布局与布线后模型比较5、C++仿真模型生成与标准定点MATLAB相比,仿真速度提高了1000倍6、SystemGenerator集成
SystemGenerator集成,生成的模块可以连接到SystemGenerator内的大型设计中7、第三方集成访问及整合第三方仿真和综合工具,以便为不熟悉RTL仿真与综合工具的算法设计者简化设计流程。基于AccelDSP的数字信号处理流程
图1.7给出基于AccelDSP的数字信号处理流程。该处理流程包含下面的步骤:1.检查浮点模型的代码类型。设计者可以首先验证MATLAB设计,该设计遵循最小的AccelDSP类型指南,这些类型在<<MATLABfor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第七章 会计账簿
- ATP的主要来源细胞呼吸-1
- J10型程控交换机简介
- DNA提取原理和方法
- LCD显示器性能专业评点
- D幻灯片定稿第4章MCS-51汇编语言程序设计
- gbk成熟休眠与衰老
- C语言北工商课件
- 2026年特许金融分析师资格考试投资组合监控与调整试卷
- 患者护理记录健康宣教
- 2026浙江杭州胡庆余堂集团有限公司招聘6人笔试题库附完整答案详解(名校卷)
- 四川绵茂公路建设投资有限责任公司2026年度第一次公开招聘考试备考试题及答案详解
- 2026年初中信息技术教研教师中学教师招聘考试试题【附答案】
- 基于智能体的车载智能场景重构
- 神经外科颅内动脉瘤破裂教学查房|完整课件 + 配套教案
- 商城物业服务合同模板
- DZ∕T 0348-2020 矿产地质勘查规范 菱镁矿、白云岩(正式版)
- 邮乐新员工入职培训考核试卷附有答案
- 早期人防工程分类鉴定标准
- 悬挑式卸料平台监理实施细则
- 镭雕机作业指导书
评论
0/150
提交评论