基于FPGA的数字信号处理方法简介.docx
《基于FPGA的数字信号处理方法简介.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数字信号处理方法简介.docx(18页珍藏版)》请在咨信网上搜索。
1、基于FPGA的数字信号处理方法简介1 引言数字信号处理就是用数值计算的方式对信号进行加工的理论和技术,主要研究有关数字滤波技术、离散变换快速算法以及谱分析方法。现场可编程门阵列(Field Programmable Gate Arrays, FPGA)以其丰富的逻辑资源和I/O引脚、低功耗、高可靠性以及可重构等特点,与通用DSP解决方案相比,FPGA器件在不牺牲灵活性的条件下,提供了更高的性能,逐步成为较为理想的实现平台。FPGA的设计描述通常分为四个抽象级,由低到高依次为:物理级、寄存器传输级(Register TransferLevel, RTL)、行为级和系统级。传统的FPGA设计基于自
2、顶向下设计方法采用硬件描述语言(Hardware Description Language, HDL)与Verilog HDL进行。随着FPGA在性能和密度上的发展十分迅猛,传统开发方法出现不足,高层次综合(High Level Synthesis, HLS)应运而生最近几年其相关技术日趋成熟且被广泛使用。这种高层次综合可以使算法和软件工程师们在无需拥有HDL和硬件知识的基础上,使用FPGA进行算法验证、移植和计算加速。本文主要介绍基于FPGA的数字信号处理的传统设计方法、高层次综合设计VIVADO HLS、OpenCL、System Generator、DSP Builder以及NI专用La
3、bVIEW FPGA的设计工具。2 高层次设计方法高层次综合的概念最早在20世纪70年代被提出,是在一定的约束下,将系统层和算法层转化成RTL级描述的方法和过程。系统层和算法层可以用相比于HDL更高级的编程语言,如Java、C、C+、Matlab等进行更加简洁、直观描述。为了便于设计者进行高层次、系统级的设计,所以需要将底层的综合过程交给开发工具进行。90年代中期的时候,Synopsys、Cadence和Mentor Graphics等EDA公司推出了商业化的、基于HDL语言的HLS开发工具,但是不成熟技术导致了市场化的失败。近年来,基于高级编程语言的HLS开发工具在解决了前一代开发工具的不足
4、的基础上,迅速发展,已在FPGA设计的市场中占有了一席之地,基于高层次综合的FPGA设计也已经逐步进入市场化和商业化。2.1 基于C/C+的工具简介Xilinx VIVADO HLS 编译器为我们提供了与面向标准处理器或专用处理器的应用开发的编译器相类似的集成编译支持环境,Xilinx VIVADO HLS与其他各种处理器编译器在对C语言程序或C+语言程序的编译、分析和优化拥有相同的关键技术,而区别在于应用所面向的执行目标。通过把FPGA作为执行目标,Xilinx VIVADO HLS使得软件开发工程师能够借助它来实现代码的优化,并且不受单一存储空间或者有限的开发资源这些开发瓶颈的限制,从而使
5、得计算量密集型软件算法得以被实际应用。Xilinx VIVADO HLS所使用的应用代码同其他处理器编译器一样面向的范畴一样,通过操作语句、条件语句、循环语句、以及函数等4个范畴来分析程序。在HLS中,循环和函数之间的主要区别是相关的术语。系统的循环和函数并行执行。而循环中,因为在循环迭代和运算符间有一个清晰的结构差异,这种转换通常称为流水线。对函数而言,外循环和内循环相处于同一层次,这导致如果长期使用它可能会出现流水线混乱。在使用HLS时,我们可以避免这种混乱,因为函数调用执行的并行化可以使得数据流优化。数据流优化指令使得HLS在给定的程序层次结构中对所有的函数创建独立的硬件模块。这些独立的
6、硬件模块可以并行执行并且具有独立的同步数据传输过程。除了Xilinx Vivado HLS外Altera公司针对自己的器件也有OpenCL工具进行对C等高级语言设计自动编译。2.2 基于MATLAB的工具简介Altera DSP Builder将The MathWorks MATLAB和Simulink系统级设计工具的算法开发、仿真和验证功能与VHDL综合、仿真和Altera开发工具整合在一起,实现了这些工具的集成。DSP Builder在算法友好的开发环境中帮助设计人员生成DSP设计硬件表征,从而缩短了DSP设计周期。已有的MATLAB函数和Simulink模块可以和Altera DSP B
7、uilder模块以及Altera知识产权(IP) MegaCore功能相结合,将系统级设计实现和DSP算法开发相链接。DSP Builder支持系统、算法和硬件设计共享一个公共开发平台。设计人员可以使用DSP Builder模块迅速生成Simulink系统建模硬件。DSP Builder包括比特和周期精度的Simulink模块,涵盖了算法和存储功能等基本操作。可以使用DSP Builder模型中的MegaCore功能实现复杂功能的集成。DSP Builder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的
8、优势。DSP Builder依赖于Math Works公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compiler可以把Matlab/Simulink的设计文件(*.mdl)转成相应的硬件描述语言设计文件(*.v),以及用于控制综合与编译的TCL脚本。而对后者的处理可以由FPGA/CPLD开发工具Quartus II来完成。当选择Xilinx的FGPA进行设计时,可以选择Xilinx System Generator工具结合MATLAB进行设计。2.2.1 DSP Builde
9、r系统级设计流程DSP Builder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。DSP Builder依赖于Math Works公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compiler可以把Matlab/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL/Verilog设计文件(.vhd/.v),以及用于控制综合与编译的TCL脚本。而对后者的处理可以由FP
10、GA/CPLD开发工具Quartus II来完成。DSP Builder系统级设计流程如图3-1所示:图3-1 DSP Builder系统级设计流程图DSP Builder设计流程的第一步是在Matlab/Simulink中设计输入,即在Matlab的Simulink环境中建立一个mdl模型文件,用图形方式调用Altera DSP Builder和其它Simulink库中的图形模块,构建系统级或算法级设计框图(或称Simulink设计模型)。在设计FIR滤波器时可以使用FDATool进行辅助设计,使得滤波器的设计更加简单方便。第二步是利用Simulink强大的图形化仿真、分析功能,分析此设计模
11、型的正确性,完成模型仿真。在这里与一般的Matlab Simulink建模过程几乎没有什么区别,所不同的是设计模型库采用Altera DSP Builder的Simulink库。第三步是DSP Builder设计实现的关键一步,通过SignalCompiler把Simulink的模型文件(后缀为.mdl)转化成通用的硬件描述语言VHDL文件(后缀为.vhd)或Verilog文件。由于EDA工具软件(诸如Quartus II、ModelSim)不能直接处理Matlab的.mdl文件,这就需要一个转换过程。转换获得的HDL文件是基于RTL级(寄存器传输级)的VHDL描述。再接下来的几个步骤是对以上
12、设计产生的VHDL的RTL代码和仿真文件进行综合、编译适配以及仿真。为了针对不同用户的设计目的和设计要求,DSP Builder提供了两种不同的设计流程,主要可以分为自动流程和手动流程。如果采用DSP Builder的自动流程,几乎可以忽略硬件的具体实现过程,可以选择让DSP Builder自动调用Quartus II等EDA设计软件,完成综合(Synthesis)、网表(ATOM Netlist)生成和Quartus II适配,甚至在Matlab中完成FPGA的配置下载过程。如果希望使用其它第三方的VHDL综合器和仿真器(除Synplify、LeonardoSpectrum和Quartus
13、II综合器及ModelSim外),或是希望完成特定的适配设置,如逻辑锁定、时序驱动编译、ESB特定功能应用等,可以选用手动流程设计。在手动流程中,设计者可以灵活地指定综合、适配条件。不过,需要手动地调用VHDL综合器进行综合,调用Quartus II进行适配,调用ModelSim或者Quartus II进行仿真,最后用Quartus II产生相应的编程文件用于FPGA的配置。采用手动流程时,除了行为级仿真验证和设计输入外,其它过程与标准的基于VHDL的EDA设计流程是完全一致的。由上一步DSP Builder设计流程得到的VHDL文件(由Simulink模型文件*.mdl通过SignalCom
14、piler转换而成的),送入综合器进行综合。综合器可以是Synplify PRO,也可以是LeonardoSpectrum,或者是Altera自己的Quartus II。在综合时,可以需要对综合器进行配置或者提供综合的约束条件。由于这个过程操作可能比较繁琐,所以DSP Builder的SignalCompiler相应提供了一个接口,针对设计,自动产生一个TCL脚本与综合器Synplify或LeonardoSpectrum相接。综合器在综合操作后会产生一个网表文件,以供下一个流程使用。这里产生的网表文件成为ATOM网表文件,主要是EDIF网表文件(.edf电子设计交换格式文件)或VQM(.vqm
15、 Verilog Quartus Mapping File),它们是一种参数可设置的,并含有具体器件系列的硬件特征(如逻辑宏单元LCs、I/O单元、乘积项、嵌入式系统块ESB等)的网表文件。Quartus II可以利用这些ATOM网表文件针对特定的具体器件进行适配,包括布线、布局、结构优化等操作,最后产生时序仿真文件和FPGA目标器件的编程和配置文件。在这一步,设计者可以在Quartus II中完成对Pin(引脚)的锁定,更改一些约束条件。如果用DSP Builder产生的DSP模块只是庞大设计中的一个子模块,则可以在设计中调用DSP Builder产生的VHDL文件,以构成完整的设计。同时,
16、一样可以使用Quartus II强大的逻辑锁定功能和SignalTap测试技术。在DSP Builder设计流程的最后一步,可以在DSP Builder中直接下载到FPGA用户开发板上,或者通过Quartus II完成硬件的下载、测试。在图3-1的流程中,其中有个流程在DSP设计中是不可或缺的,那就是HDL仿真。与DSP Builder可以配合使用的HDL仿真器是ModelSim。DSP Builder在生成VHDL代码或Verilog代码时,可以同时生成用于测试DSP模块的TestBench(测试平台)文件,DSP Builder生成的TestBench文件采用相同硬件描述语言,测试向量与该
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 数字信号 处理 方法 简介
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。