基于FPGA的快速傅立叶 变换(FFT)的IP核设计毕业论文.doc
《基于FPGA的快速傅立叶 变换(FFT)的IP核设计毕业论文.doc》由会员分享,可在线阅读,更多相关《基于FPGA的快速傅立叶 变换(FFT)的IP核设计毕业论文.doc(43页珍藏版)》请在三一办公上搜索。
1、编号: 毕业设计说明书题 目:基于FPGA的快速傅立叶 变换(FFT)的IP核设计题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发2011年 6 月 10 日摘 要快速傅立叶变换(FFT)作为时域和频域转换的基本运算,是数字谱分析的必要前提。传统的FFT使用软件或DSP实现,高速处理时实时性较难满足。FPGA是直接由硬件实现的,其内部结构规则简单,通常可以容纳很多相同的运算单元,因此FPGA在作指定运算时,速度会远远高于通用的DSP芯片。FFT运算结构相对比较简单和固定,适于用FPGA进行硬件实现,并且能兼顾速度及灵活性。本文介绍了一种通用的可以在FPGA上实现32点FFT变换
2、的方法。设计复数乘法器为核心设计了FFT算法中的基-2蝶形运算单元,溢出控制单元和地址与逻辑控制模块等其它模块,并以这些模块和FPGA内部的双口RAM为基础组成了基-2FFT算法模块。整个模块采用基-2时域抽取,顺序输入,逆序输出的方法;利用Modelsim完成了FFT模块的前后仿真;利用Matlab编写了用于比较仿真结果和Matlab中FFT函数产生的结果的程序,从而验证了仿真结果的正确性。实验果表明,设计完成的系统能够在保证运算精度和实现复杂度的同时,切实可行地完成设计的总体要求。 关键词:FPGA;FFT;IP核;基2;时域抽取AbstractFast Fourier Transform
3、 (FFT) as the time domain and frequency domain transformation of the basic operations is a necessary prerequisite for digital spectrum analysis. The traditional FFT implementation using software or DSP, high-speed real-time processing is more difficult to meet. Directly from the FPGA hardware, and i
4、ts internal structure rules are simple, usually to accommodate many of the same operation unit, so as specified in FPGA computing, the speed will be much higher than the general DSP chips. FFT computation structure is relatively simple and fixed, suitable for hardware implementation using FPGA, and
5、can take into account the speed and flexibility. This paper presents a generic FPGA can be implemented on 32 points in the FFT transform method. Design a complex multiplier for the core design of the FFT algorithm based -2 butterfly unit, overflow control unit and address logic control module and ot
6、her modules, and within these modules and FPGA-based dual-port RAM formed the base - 2FFT algorithm module. When the module is the base -2 domain extraction, the order of input, output reverse method; use Modelsim before and after the completion of the FFT module simulation; prepared using Matlab an
7、d Matlab simulation results for the comparison function in the FFT result of the procedures to verify the correctness of the simulation results. Experimental results show that the design is completed the system can ensure the realization of the complexity of computing precision and the same time, pr
8、actical completion of the overall design requirements.Key words:FPGA;FFT;IPcore;Base-2;Time-domain extracti目 录引言11 FPGA的基础知识21.1 FPGA的简介21.2 FPGA的基本结构和设计原则21.3开发流程和开发软件简介41.4 Verilog HDL简介51.4.1 Verilog概述51.4.2 Verilog HDL的优点62 IP核的制作72.1 IP的基本特征72.2 IP开发流程72.2.1 IP设计的四大阶段72.2.2 IP验证的主要过程82.3 IP的规格定
9、义92.3.2 IP的打包提交92.4 IP集成102.5 IP集成的一般考虑102.5.1 IP集成的关键技术102.6 IP模块的评估与选择113 FFT算法原理113.1 FFT的主要算法113.1.1基-2FFT算法123.1.2基-2 FFT算法基本原理124 FFT处理器的FPGA的实现194.1 整体设计194.2 FFT处理器的工作过程204.3 引脚说明204.4 存储单元224.5 旋转因子单元234.6 原理与算法244.7 逻辑控制模块265 FFT系统仿真测试275.1 FPGA前端设计275.1.1算法验证和RTL设计275.1.2仿真与综合285.1.3静态时序分
10、析295.2 FFT处理器的资源利用情况305.3仿真结果及分析315.3.1实线性信号的仿真325.3.2实单频正弦信号的仿真325.3.3实双频正弦信号的仿真335.3.4 复单频正弦信号的仿真34总结35引言在数字化高速发展的今天,对数字信号处理高速实时的要求也不断提高。因此为了满足这些要求,国内外都在研究实现数字信号处理的新方法,本论文主要研究基于FPGA的方法来实现FFT算法,并通过对算法结构的内部优化设计使其相较于传统的实现方法更具优势。快速傅立叶变换(FFT)是DFT的快速算法,是数据从时域到频域变换的基本运算。它是频谱分析的必要前提,是数字信号处理的核心工具之一。所以FFT在众
11、多学科领域,例如数字语音编码、雷达信号处理、声纳信号分析、数字滤波、射电干涉等都有着十分广泛的应用。尤其是在要求较高的信号处理系统中,FFT的处理速度往往是整个系统设计性能的关键。1软件实现FFT运算速度慢,无法满足实时高速的系统性能要求。硬件实现FFT的方式主要有三种:通用数字信号处理器(DSP)、专用的FFT芯片(ASIC)、可编程逻辑器件(以FPGA为代表)。采用DSP方案通过软件编程来实现运算,虽然灵活性强,但是受到DSP本身性能及程序指令顺序执行的限制难以实现高速、大规模的FFT运算,同时也存在速度和精度之间的矛盾:若采用定点运算,舍入误差会降低最终处理结果的精度;若采用浮点运算,可
12、以消除动态范围局限的问题,但由于实现结构复杂使处理速度难以达到要求,而且系统造价较高。采用ASIC芯片虽然可以达到较高的处理速度,但是灵活性差,特别是使用定制的大规模集成电路的时候,需要较高的开发和研制费用,不易扩展。随着超大规模可编程门阵列的迅速发展,新一代FPGA内部有高速数字信号处理(DSP)模块和大容量、高速RAM模块,这为利用FPGA实现FFT处理成为可能,既避免了软件方式所带来的速度方面的限制,又可以降低开发的成本和周期,是一种较为理想的开发方式。FPGA以高性能、高灵活性、友好的开发环境、在线可编程等特点可以使基于FPGA的设计满足实时数字信号处理的要求24。高速实时数字信号处理
13、对系统性能要求甚高,因此,几乎所有的通用DSP都难以实现这一要求。可编程逻辑器件允许设计人员利用并行处理技术实现高速信号处理算法,并且只需单个器件就能实现期望的性能。在数据通信这样的应用中,常常需要进行高速、大规模的FFT及其逆变换IFFT运算。当通用的DSP无法达到速度要求时,唯一的选择是增加处理器的数目,或者采用定制门阵列产品。现在,随着微电子技术的发展,采用现场可编程门阵列(FPGA)进行数字信号处理发展迅猛。采用现场可编程器件不仅加快了产品上市时间,还可满足现在和下一代便携式设计所需要的成本、性能、尺寸等方面的要求,并提供系统级支持。FPGA是直接由硬件实现的,其内部结构规则简单,通常
14、可以容纳很多相同的运算单元,因此FPGA在作指定运算时,速度会远远高于通用的DSP芯片。FFT运算结构相对而言比较简单和固定,适于用FPGA进行硬件实现,并且能兼顾其速度及灵活性。而采用DSP方式有很大的浪费,同时DSP芯片内部的乘法器资源十分有限,FFT算法中乘法量较大,在实现实时处理方案时必须使用多个DSP芯片,从而提高了价格、增加了功耗和体积。而选择内部嵌有多个乘法器内核的FPGA芯片就可以很轻易地消除这一严重的资源浪费现象。尤其是近年来,高密度的可编程逻辑器件FPGA的集成度、速度不断提高,设计、调试手段更加完善,因而得到更为广泛的应用。本论文就是在这样一个背景下提出一种基于FPGA的
15、32点基-2FFT算法的具体实现方法。旨在设计出用FPGA实现的、具有高速特点的、可实现定点FFT运算的IP核,从而满足系统要求。1 FPGA的基础知识1.1 FPGA的简介FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,相对其他可编程器件具有更高的集成度、更强的逻辑实现能力和更好的设计灵活性。FPGA由许多独立的可编程逻辑模块组成,用户通过编程将这些模块连接起来实现不同的设计,作为专用集成电路(ASIC)领域中的一种半定制电路,它既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。采用FPGA设计ASIC电路,用户不需要投片生
16、产,就能得到可用的芯片;FPGA可做其它全定制或半定制ASIC电路的中试样片,内部有丰富的触发器和I/O引脚资源,设计周期最短、开发费用最低、风险小,采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。现在FPGA已经成功地应用于计算机硬件、工业控制、遥感遥测、达声纳、数据处理、智能仪表、广播电视和医疗电子等多种领域中。现代通信中,FPGA已经成功地用作程控交换、数字复接、压缩扩张、编译码和调制解调等。因此,在进入20世纪90年代以后,FPGA已成为半体集成电路中销售量增长最快的部分,它的前景也必将十分广阔。1.
17、2 FPGA的基本结构和设计原则1985年,Xilinx公司推出了世界上第一款FPGA,后来虽然生产厂家和产品种类众多,但它们的基本组成大致相同。FPGA由逻辑功能块排成阵列组成,并由可编程的互连资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。其中,FPGA的功能由逻辑结构的配置数据决定。工作时,这些配置数据存放在片内的SRAM或熔丝上。用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场编程7。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这个新概念,包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB
18、(InputOutput Block)和互连资源ICR(Interconnect Capital Resource)及用于存放编程数据的静态存储器SRAM(Static RandomAccess Memory)。FPGA的基本结构如图1.1所示。CLB阵列实现用户指定的逻辑功能,它们以阵列的形式分布在FPGA中;IOB为内部逻辑与器件封装引脚之间提供了可编程接口,它通常排列在芯片四周;可编程互连资源分布在CLB的空隙,互连资源可以编程配置在模块之间传递的信号网络,用于实现各个CLB之间、CLB与IOB之间以及全局信号与CLB和IOB之间的连接。FPGA利用可编程查找表实现逻辑块;程序控制多路复
19、用器实现其功能选择。图1.1 FPGA的基本结构除了上述构成FPGA基本结构的四种资源以外,一般在FPGA中还可能包含以下可选资源:存储器资源(块RAM,分布式RAM、ROM);数字时钟管理单元(分频/倍频,数字延迟,时钟锁定);算术运算单元(高速硬件乘法器,乘加器);多电平标准兼容高速串行的I/O接口;特殊功能模块(以太网等硬IP核);微处理器(如PowerPC405等硬处理器IP核)。FPGA设计的一个重要指导原则是:面积和速度的平衡与互换。这里的“面积”是指一个设计消耗FPGA的逻辑资源的数量,而“速度”是指设计在芯片上稳定运行时所能够达到的最高频率。这两个指标贯穿着FPGA设计的始终,
20、是对设计质量评价的终极标准。要求一个设计同时具备设计面积最小,运行频率最高是不现实的。更科学的设计目标应该是在满足设计时序要求(包含对设计频率的要求)的前提下,占用最小的芯片面积。或者在所规定的面积下,使设计的时序余量更大,频率跑得更高。这两种目标充分体现了面积和速度的平衡的思想,它们是和产品的质量和成本直接相关的。当两者发生冲突的时候,就要考虑面积和速度互换的问题了。我们在设计中应该综合考虑这两方面的要求,根据具体问题的需求设计出最合理的方案。1.3开发流程和开发软件简介FPGA设计的一般流程包括设计准备、设计输入、功能仿真、设计处理、时序仿真、器件编程与测试几个步骤。设计流程图如图1.2所
21、示。图1.2设计流程图 (1)设计准备在对可编程逻辑器件的芯片进行设计之前,首先要进行方案论证、系统设计和器件选择等设计准备工作。(2)设计输入主要输入方法包括硬件描述语言和原理图,另外结构向导(Architecture Wizard)和核生成器(Core Generator)可以辅助设计输入。(3)功能仿真功能仿真没有器件内部逻辑单元和连线的实际延时信息,只是初步验证系统的逻辑功能。(4)设计处理实现包括优化、综合、布局布线、时间参数提取,同时产生各种报告和文件。(5)时序仿真时序仿真中使用了电路延时的最坏情况,分析时序关系,检查和消除竞争冒险,并对器件的实际工作性能进行估计。(6)器件编程
22、与测试设计实现以后,建立FPGA可识别文件,将编程数据下载到相应的FPGA器件中去。在FPGA设计的各个环节都有不同公司提供的不同的EDA工具,一般由FPGA厂商提供集成开发环境,如Altera公司的MaxplusII、QuartusII和Xilinx公司的ISE。为了提高设计效率,优化设计结果,很多厂家还提供了各种专业软件,用以配合FPGA芯片厂家提供的工具进行更高效的设计。对于优化和综合,如Synplicity公司的synplify软件和Synopsys公司的FPGAexpress软件。利用Model公司的Modelsim软件可以完成仿真工作。本设计中要用到开发软件MaxplusII和仿真
23、软件Modelsim。MaxplusII是Altera公司推出的第三代PLD开发系统(Altera第四代PLD开发系统为Quartus,主要用于设计6万100万门的大规模CPLD/FPGA)。通过此开发软件,用户可以任意对芯片进行编程、加密或用软件代替硬件,以满足自己的设计需要。但用户需要更改设计时,又可以方便地将以前的配置擦除,重新进行配置,从而大大提高了设计速度。MaxplusII提供了原理图输入、文本输入(采用HDL语言)和波形输入等多种输入手段,并可以把这些输入方式任意组合使用。利用该工具所配备的编辑、编译、仿真、综合、芯片编程等功能,可将设计电路图或电路描述程序变成基本的逻辑单元写入
24、到可编程的芯片中(如FPGA芯片),做成ASIC芯片。Modelsim软件是由Model公司开发的工业上最通用的仿真器之一,简单易用,且逻辑仿真功能强大。Modelsim软件还支持VHDL和Verilog混合仿真,无论是FPGA/ASIC设计的RTL级和门级电路仿真还是系统的功能仿真都可以用它来做,编译仿真速度快,编译的代码与平台无关,便于保护IP核,具有个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,全面支持VHDL和Verilog语言的IEEE标准。1.4 Verilog HDL简介1.4.1 Verilog概述随着EDA技术的发展,使用硬件描述语言设计CPLD/FPGA成为一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于FPGA的快速傅立叶 变换FFT的IP核设计 毕业论文 基于 FPGA 快速 傅立叶 变换 FFT IP 设计
链接地址:https://www.31ppt.com/p-3938413.html