欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于FPGA的快速傅立叶 变换(FFT)的IP核设计毕业论文.doc

    • 资源ID:3938413       资源大小:1.31MB        全文页数:43页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的快速傅立叶 变换(FFT)的IP核设计毕业论文.doc

    编号: 毕业设计说明书题 目:基于FPGA的快速傅立叶 变换(FFT)的IP核设计题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发2011年 6 月 10 日摘 要快速傅立叶变换(FFT)作为时域和频域转换的基本运算,是数字谱分析的必要前提。传统的FFT使用软件或DSP实现,高速处理时实时性较难满足。FPGA是直接由硬件实现的,其内部结构规则简单,通常可以容纳很多相同的运算单元,因此FPGA在作指定运算时,速度会远远高于通用的DSP芯片。FFT运算结构相对比较简单和固定,适于用FPGA进行硬件实现,并且能兼顾速度及灵活性。本文介绍了一种通用的可以在FPGA上实现32点FFT变换的方法。设计复数乘法器为核心设计了FFT算法中的基-2蝶形运算单元,溢出控制单元和地址与逻辑控制模块等其它模块,并以这些模块和FPGA内部的双口RAM为基础组成了基-2FFT算法模块。整个模块采用基-2时域抽取,顺序输入,逆序输出的方法;利用Modelsim完成了FFT模块的前后仿真;利用Matlab编写了用于比较仿真结果和Matlab中FFT函数产生的结果的程序,从而验证了仿真结果的正确性。实验果表明,设计完成的系统能够在保证运算精度和实现复杂度的同时,切实可行地完成设计的总体要求。 关键词:FPGA;FFT;IP核;基2;时域抽取AbstractFast Fourier Transform (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 its 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 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 other 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 and 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, practical 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的规格定义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静态时序分析295.2 FFT处理器的资源利用情况305.3仿真结果及分析315.3.1实线性信号的仿真325.3.2实单频正弦信号的仿真325.3.3实双频正弦信号的仿真335.3.4 复单频正弦信号的仿真34总结35引言在数字化高速发展的今天,对数字信号处理高速实时的要求也不断提高。因此为了满足这些要求,国内外都在研究实现数字信号处理的新方法,本论文主要研究基于FPGA的方法来实现FFT算法,并通过对算法结构的内部优化设计使其相较于传统的实现方法更具优势。快速傅立叶变换(FFT)是DFT的快速算法,是数据从时域到频域变换的基本运算。它是频谱分析的必要前提,是数字信号处理的核心工具之一。所以FFT在众多学科领域,例如数字语音编码、雷达信号处理、声纳信号分析、数字滤波、射电干涉等都有着十分广泛的应用。尤其是在要求较高的信号处理系统中,FFT的处理速度往往是整个系统设计性能的关键。1软件实现FFT运算速度慢,无法满足实时高速的系统性能要求。硬件实现FFT的方式主要有三种:通用数字信号处理器(DSP)、专用的FFT芯片(ASIC)、可编程逻辑器件(以FPGA为代表)。采用DSP方案通过软件编程来实现运算,虽然灵活性强,但是受到DSP本身性能及程序指令顺序执行的限制难以实现高速、大规模的FFT运算,同时也存在速度和精度之间的矛盾:若采用定点运算,舍入误差会降低最终处理结果的精度;若采用浮点运算,可以消除动态范围局限的问题,但由于实现结构复杂使处理速度难以达到要求,而且系统造价较高。采用ASIC芯片虽然可以达到较高的处理速度,但是灵活性差,特别是使用定制的大规模集成电路的时候,需要较高的开发和研制费用,不易扩展。随着超大规模可编程门阵列的迅速发展,新一代FPGA内部有高速数字信号处理(DSP)模块和大容量、高速RAM模块,这为利用FPGA实现FFT处理成为可能,既避免了软件方式所带来的速度方面的限制,又可以降低开发的成本和周期,是一种较为理想的开发方式。FPGA以高性能、高灵活性、友好的开发环境、在线可编程等特点可以使基于FPGA的设计满足实时数字信号处理的要求24。高速实时数字信号处理对系统性能要求甚高,因此,几乎所有的通用DSP都难以实现这一要求。可编程逻辑器件允许设计人员利用并行处理技术实现高速信号处理算法,并且只需单个器件就能实现期望的性能。在数据通信这样的应用中,常常需要进行高速、大规模的FFT及其逆变换IFFT运算。当通用的DSP无法达到速度要求时,唯一的选择是增加处理器的数目,或者采用定制门阵列产品。现在,随着微电子技术的发展,采用现场可编程门阵列(FPGA)进行数字信号处理发展迅猛。采用现场可编程器件不仅加快了产品上市时间,还可满足现在和下一代便携式设计所需要的成本、性能、尺寸等方面的要求,并提供系统级支持。FPGA是直接由硬件实现的,其内部结构规则简单,通常可以容纳很多相同的运算单元,因此FPGA在作指定运算时,速度会远远高于通用的DSP芯片。FFT运算结构相对而言比较简单和固定,适于用FPGA进行硬件实现,并且能兼顾其速度及灵活性。而采用DSP方式有很大的浪费,同时DSP芯片内部的乘法器资源十分有限,FFT算法中乘法量较大,在实现实时处理方案时必须使用多个DSP芯片,从而提高了价格、增加了功耗和体积。而选择内部嵌有多个乘法器内核的FPGA芯片就可以很轻易地消除这一严重的资源浪费现象。尤其是近年来,高密度的可编程逻辑器件FPGA的集成度、速度不断提高,设计、调试手段更加完善,因而得到更为广泛的应用。本论文就是在这样一个背景下提出一种基于FPGA的32点基-2FFT算法的具体实现方法。旨在设计出用FPGA实现的、具有高速特点的、可实现定点FFT运算的IP核,从而满足系统要求。1 FPGA的基础知识1.1 FPGA的简介FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,相对其他可编程器件具有更高的集成度、更强的逻辑实现能力和更好的设计灵活性。FPGA由许多独立的可编程逻辑模块组成,用户通过编程将这些模块连接起来实现不同的设计,作为专用集成电路(ASIC)领域中的一种半定制电路,它既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。采用FPGA设计ASIC电路,用户不需要投片生产,就能得到可用的芯片;FPGA可做其它全定制或半定制ASIC电路的中试样片,内部有丰富的触发器和I/O引脚资源,设计周期最短、开发费用最低、风险小,采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。现在FPGA已经成功地应用于计算机硬件、工业控制、遥感遥测、达声纳、数据处理、智能仪表、广播电视和医疗电子等多种领域中。现代通信中,FPGA已经成功地用作程控交换、数字复接、压缩扩张、编译码和调制解调等。因此,在进入20世纪90年代以后,FPGA已成为半体集成电路中销售量增长最快的部分,它的前景也必将十分广阔。1.2 FPGA的基本结构和设计原则1985年,Xilinx公司推出了世界上第一款FPGA,后来虽然生产厂家和产品种类众多,但它们的基本组成大致相同。FPGA由逻辑功能块排成阵列组成,并由可编程的互连资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。其中,FPGA的功能由逻辑结构的配置数据决定。工作时,这些配置数据存放在片内的SRAM或熔丝上。用户可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场编程7。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这个新概念,包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(InputOutput Block)和互连资源ICR(Interconnect Capital Resource)及用于存放编程数据的静态存储器SRAM(Static RandomAccess Memory)。FPGA的基本结构如图1.1所示。CLB阵列实现用户指定的逻辑功能,它们以阵列的形式分布在FPGA中;IOB为内部逻辑与器件封装引脚之间提供了可编程接口,它通常排列在芯片四周;可编程互连资源分布在CLB的空隙,互连资源可以编程配置在模块之间传递的信号网络,用于实现各个CLB之间、CLB与IOB之间以及全局信号与CLB和IOB之间的连接。FPGA利用可编程查找表实现逻辑块;程序控制多路复用器实现其功能选择。图1.1 FPGA的基本结构除了上述构成FPGA基本结构的四种资源以外,一般在FPGA中还可能包含以下可选资源:存储器资源(块RAM,分布式RAM、ROM);数字时钟管理单元(分频/倍频,数字延迟,时钟锁定);算术运算单元(高速硬件乘法器,乘加器);多电平标准兼容高速串行的I/O接口;特殊功能模块(以太网等硬IP核);微处理器(如PowerPC405等硬处理器IP核)。FPGA设计的一个重要指导原则是:面积和速度的平衡与互换。这里的“面积”是指一个设计消耗FPGA的逻辑资源的数量,而“速度”是指设计在芯片上稳定运行时所能够达到的最高频率。这两个指标贯穿着FPGA设计的始终,是对设计质量评价的终极标准。要求一个设计同时具备设计面积最小,运行频率最高是不现实的。更科学的设计目标应该是在满足设计时序要求(包含对设计频率的要求)的前提下,占用最小的芯片面积。或者在所规定的面积下,使设计的时序余量更大,频率跑得更高。这两种目标充分体现了面积和速度的平衡的思想,它们是和产品的质量和成本直接相关的。当两者发生冲突的时候,就要考虑面积和速度互换的问题了。我们在设计中应该综合考虑这两方面的要求,根据具体问题的需求设计出最合理的方案。1.3开发流程和开发软件简介FPGA设计的一般流程包括设计准备、设计输入、功能仿真、设计处理、时序仿真、器件编程与测试几个步骤。设计流程图如图1.2所示。图1.2设计流程图 (1)设计准备在对可编程逻辑器件的芯片进行设计之前,首先要进行方案论证、系统设计和器件选择等设计准备工作。(2)设计输入主要输入方法包括硬件描述语言和原理图,另外结构向导(Architecture Wizard)和核生成器(Core Generator)可以辅助设计输入。(3)功能仿真功能仿真没有器件内部逻辑单元和连线的实际延时信息,只是初步验证系统的逻辑功能。(4)设计处理实现包括优化、综合、布局布线、时间参数提取,同时产生各种报告和文件。(5)时序仿真时序仿真中使用了电路延时的最坏情况,分析时序关系,检查和消除竞争冒险,并对器件的实际工作性能进行估计。(6)器件编程与测试设计实现以后,建立FPGA可识别文件,将编程数据下载到相应的FPGA器件中去。在FPGA设计的各个环节都有不同公司提供的不同的EDA工具,一般由FPGA厂商提供集成开发环境,如Altera公司的MaxplusII、QuartusII和Xilinx公司的ISE。为了提高设计效率,优化设计结果,很多厂家还提供了各种专业软件,用以配合FPGA芯片厂家提供的工具进行更高效的设计。对于优化和综合,如Synplicity公司的synplify软件和Synopsys公司的FPGAexpress软件。利用Model公司的Modelsim软件可以完成仿真工作。本设计中要用到开发软件MaxplusII和仿真软件Modelsim。MaxplusII是Altera公司推出的第三代PLD开发系统(Altera第四代PLD开发系统为Quartus,主要用于设计6万100万门的大规模CPLD/FPGA)。通过此开发软件,用户可以任意对芯片进行编程、加密或用软件代替硬件,以满足自己的设计需要。但用户需要更改设计时,又可以方便地将以前的配置擦除,重新进行配置,从而大大提高了设计速度。MaxplusII提供了原理图输入、文本输入(采用HDL语言)和波形输入等多种输入手段,并可以把这些输入方式任意组合使用。利用该工具所配备的编辑、编译、仿真、综合、芯片编程等功能,可将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如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成为一种趋势。目前最主要的硬件描述语言是VHDL和Verilog HDL。VHDL发展的较早,语法严格,而Verilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。VHDL和Verilog HDL两者相比,VHDL的书写规则比Verilog HDL烦琐一些,但Verilog HDL自由的语法也容易让少数初学者出错。国外电子专业很多会在本科阶段教授VHDL,在研究生阶段教授Verilog HDL。它们的共同特点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构的变化而变化,更利于向ASIC的移植。Verilog HDL语言最初是于1983年由Gateway Design Automation公司为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言。由于其模拟、仿真器产品的广泛使用,Verilog HDL作为一种便于使用且实用的语言逐渐为众多设计者所接受。在一次努力增加语言普及性的活动中,Verilog HDL语言于1990年被推向公众领域。Open Verilog International(OVI)是促进Verilog HDL发展的国际性组织。1992年,OVI决定致力于推广Verilog OVI标准成为IEEE标准。这一努力最后获得成功,Verilog HDL语言于1995年成为IEEE标准,称为IEEE Std 13641995。完整的标准在Verilog HDL硬件描述语言参考手册中有详细描述。Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog HDL语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。1.4.2 Verilog HDL的优点数字信号处理(DSP)系统的研究人员一直在努力寻找各种优化的算法来解决相关的信号处理问题。当他们产生了比较理想的算法思路后,就在计算机上用C语言或其他语言程序来验证该算法,并不断修改以期完善,然后与别的算法作性能比较。在现代通信和计算机系统中,对于DSP算法评价最重要的指标是看它能否满足工程上的需要。而许多工程上的需要都有实时响应的要求,也就是说应需要数字信号处理(DSP)系统在限定的时间内,如在几个ms甚至于几个s内,对所输入的大量数据完成相当复杂的运算,并输出结果。这时如果我们仅仅使用通用的微处理器,即使是专用于信号处理的微处理器,往往也无法满足实时响应的要求。因此,不得不设计专用的高速硬线逻辑来完成这样的运算。设计这样的有苛刻实时要求的复杂的高速硬线运算逻辑是一件很有挑战性的工作,即使有了好的算法而没有好的设计工具和方法也很难完成。传统的数字电路设计方法是采用电路原理图输入法。当时的系统设计规模比较小,也比较简单,其中所用到的FPGA或ASIC设计工作往往只能采用厂家提供的专用电路图输入工具来进行。为了满足设计性能指标,工程师往往需要花费好几天或更长的时间进行艰苦的手工布线。此外,工程师还得非常熟悉所选器件得内部结构和外部引线特点,才能达到设计要求。这种低水平的设计方法大大延长了设计周期。采用Verilog HDL设计电路时,由于它的标准化,可以很容易的把完成的设计移植到不同厂家的不同芯片中,并且在不同规模应用时可以比较容易地进行修改,以适应不同规模的应用。采用Verilog HDL设计电路的最大优点其实就是它的与工艺无关性,这就使得工程师在功能设计、逻辑验证阶段不必过多考虑门级及工艺实现的细节,只要利用系统设计时对芯片的要求,施加不同的约束条件,即可设计出实际的电路,大大减轻了工程师的劳动强度。Verilog HDL和传统的原理图输入方法的关系就好比是高级语言和汇编语言的关系。Verilog HDL的可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好,效率高,比较直观,但设计大规模CPLD/FPGA时显得很烦琐,移植性差。在真正的CPLD/FPGA设计中,通常建议采用原理图和Verilog HDL结合的方法来设计,适合用原理图的地方就用原理图,适合用Verilog HDL的地方就用Verilog HDL,并没有强制的规定。在最短的时间内,用自己最熟悉的工具设计出高效,稳定,符合设计要求的电路才是我们的最终目的。由于Verilog HDL的设计方法与工艺无关,因此大大提高了Verilog HDL模型的可重用性。通常把功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的Verilog HDL模型称为“软核”(Soft Core),由软核构成的器件成为虚拟器件。在电路的设计过程中,利用软核和虚拟器件的可重用性,可以大大缩短设计周期,加快了复杂电路的设计速度。2 IP核的制作2.1 IP的基本特征 IP的本质特征是可重用性,其通常必然满足以下基本特征:一是通用性好,二是正确性有100的保证,三是可移植性好。通用性好是指IP的功能在某一应用领域广泛通用,IP的实现一般满足子功能可配置、甚至可编程的特点,如最常见的IP嵌入式CPU模块就具有非常好的通用性。正确性有百分之百的保证是指IP的实现严格遵守一系列的可重用设计开发规范,IP的验证用例具有完备性,功能覆盖率、测试覆盖率都能够达到100;并能够完全覆盖IP工作的临界条件,提供相应的大流量测试、随机性测试、甚至能够提供软硬件协同仿真的测试环境等。可移植性好是指IP的实现如行为描述、网表、GDSII文件具有可移植性,其设计输入可以在不同的开发平台上重现;综合用批处理文件具有可移植性,IP的综合结果可以用不同的综合工具,在不同的综合库条件下正确重现;仿真用测试用例可重用,测试环境可以很方便的重现,IP的验证可以用不同的仿真器,在不同的仿真库条件下重现。2.2 IP开发流程 IP开发的流程主要包括两条主线:IP设计和IP验证。IP设计流程一般可划分为确定规格和模块划分、子模块的定义和设计、顶层模块的设计、产品化等四个阶段。IP验证流程包括了建立参照模型、建立测试平台和准备验证用例、回归测试、形式验证。2.2.1 IP设计的四大阶段(1) 确定规格和划分模块IP的规格至少包含以下内容:概述、功能需求、性能需求、物理需求、详细的结构模块框图、对外系统接口的详细定义、可配置功能详细描述、需要支持的制造测试方法、需要支持的验证策略等。确定规格的过程一般又包括行为建模进行功能论证,可行性分析就性能和成本进行折中等活动。 划分模块是指规划师在给出IP结构模块框图的同时,对于每个子模块给出一个详细的功能描述,同时必须明确子模块之间的接口的时序要求。只有规划好,才能够建设好。确定规格和划分模块是IP开发是否成功最为关键的一步。(2) 子模块定义和设计 设计小组对所有子模块的规格进行讨论和审查,重点检查时序接口和功能接口的一致性。设计者编写时间约束文件、综合的批处理文件、子模块验证用测试平台(testbench)和测试套件(test suite)等。当这些工作完成并通过代码规范性检查、测试覆盖率检查、功能覆盖率检查、性能分析包括DFT、STA检查、功耗分析检查等验收以后,这个子模块就可用来与其他模块一起集成了。(3) 顶层模块设计 顶层模块的设计就是把子模块集成起来,产生顶层模块,并对它做综合处理和功能验证。综合过程包括编写综合的批处理文件,在不同的参考库上综合,针对在制造上的可测试性插入扫描链、ATPG,并进行最终的性能分析和功耗分析等。验证过程包括根据由行为模型发展来的测试向量对顶层模块进行仿真测试,针对IP模块的可配置选项进行多种配置条件下的回归测试,利用仿真工具检验测试向量的覆盖率等。(4) IP的产品化 IP产品化的过程包括以下几个部分:提供IP设计和验证用testbench,用商用转换器进行打包提交,但转换后需要重新验证,比如做回归测试以确保转换有效,并强调在几个主流仿真器上做仿真,在几种主要工艺库上做综合,做门级仿真,做形式验证以保证网表和RTL级的一致性,产生或更新用户文档等。如果是硬IP的开发,还需要在顶层模块(软IP)的基础上进行布局布线,版图提取,时序分析和形式验证,集成到试用该IP的原型芯片内进行试制投片,并在演示板上得到验证。2.2.2 IP验证的主要过程(1) 建立参照模型 这里的参照模型主要用于对系统功能进行验证以及和RTL模型的对照验证,是验证方法学提出的范畴。该模型可用SystemC/Specman E/Vera/Verilog/VHDL等语言来构造;(2) 测试平台的建立 测试平台的建立是指与子模块设计并行,由验证组的一些成员开始搭建验证环境和开发测试用例,并针对IP的行为级模型对测试环境和测试用例进行调试,从而同步准备好用来仿真测试RTL级IP的验证环境和测试用例。(3) 回归测试 回归测试解决的问题是设计在修改一个错误的同时,却引入了另外一个错误。回归测试保证在修改一个错误或加入一个新功能时,已经验证过的基本功能仍然正确。验证工程师应该注意在验证过程中找到一个错误,或加入一个新的功能时,要把它们对应的测试用例及时加入到我们的回归测试集中。(4) 形式验证 形式验证是一种系统级的验证手段,不需要测试向量,而是根据“静态”地通过判断两个设计是否等价来确认它们的功能是否一致,因此,形式验证必须事先有一个参照设计。在IP验证过程中,前面建立的参照模型就是我们的参照设计。形式验证常用来判断一个设计更改后和更改前实现的功能是否一致。同时,形式验证也被用来确认综合后、插入扫描链后、版图提取后网表实现的功能前后是否一致。2.3 IP的规格定义IP模块的规格定义必须能够解决以下问题:一是明确IP需要提供什么样的功能,性能需要达到什么样的技术指标。二是定义好IP模块与外部系统的接口。三是定义好该IP模块在可移植性方面所做的努力。四是定义好IP模块的面积和功耗等物理特性。这里我们只重点探讨IP与外部系统接口标准化的问题。 为了使开发的IP能够高效的集成到新的设计中去,标准化是必由之路。这包括IP模块接口的标准化,IP封装的标准化等内容。 方便快捷的连接各虚拟器件的方法是片上总线。然而太多的总线专利在使用,没有一个完美的片上总线能适应所有的情况。这是因为片上系统的环境和性能需求差异非常大。国际上VSIA组织的一个片上总线工作组先定义了各种片上总线的属性,然后定义了能够连接各种片上总线的Virtual Component Interface。IP模块接口只要遵从VCI规范标准,就能用一个接口设计而适应多个不同的片上总线。2.3.1 IP的验证 IP的验证必须是完备的、具有可重用性的。IP验证的完备性首先要求在设计IP仿真测试方案时必须体现出以下几个方面:1. 从IP的规格出发,对每一个模块测试功能点(testfeature)进行分析,定义每个子模块的仿真测试目标,并确定哪一个测试向量可以验证该测试功能点。2. 整理一个明确的测试列表,包括对目标的估计的和测试覆盖情况。3. 对测试用例的详细设计,并定义验证通过的标准。其次,IP的验证必须覆盖以下测试类型:一致性测试、回归测试、边界条件测试、长时间随机测试、实际应用环境测试等。IP验证的测试覆盖率、功能覆盖率都需达到100。 IP验证的可重用性首先要求搭建的IP仿真环境是由一系列可重用的测试组件构成的,如定义总线功能模型,通用的数据处理任务集等。对每一个组件,都应该有关键特征的描述。其次,IP验证要求列出采用的仿真器、仿真库及其版本。2.3.2 IP的打包提交 IP打包技术是指在IP开发基本结束后,将零散分布的设计信息集成的过程。其主要目的是使得设计者提供完整、清晰、明了的设计信息。软IP开发者提交给用户的信息至少应包括:(1)可综合的HDL代码和它的子模快;(2)综合脚本文件及时间约束文件;(3)插入扫描链和做ATPG的脚本文件;(4)综合和仿真用参照库模型;(5)验证中使用的总线功能模型和其他的系统组件型;(6)测试激励文件及相应测试向量;(7)用户文档包括用户手册/功能描述 、数据手册等;(8)应用要点,包括该IP使用的具体的例子,可配置特性等。对需要软件支持的IP,还应该提供相应的嵌入式软件信息。2.4 IP集成 IP集成面临着一系列的挑战。在现实的市场上,很少的IP模块是可以立刻重复使用的,因为许多IP在设计之初都是针对特定的应用,而很少考虑到要与外来电路搭配使用。IP模块本身的缺陷给IP集成带来的一系列问题有:IP模块的接口不能够和系统芯片(SoC)定义的片上总线很好地匹配,IP模块提供的验证模型如BFM等很难集成到SoC的验证环境,IP模块提供的技术文档不完善,IP模块提供的技术支持不充分、不及时等。这些问题的关键在于IP的定义没有一个通用的接口标准,这是因为芯片实现的功能千差万别,性能方面的要求也由于应用领域的差异而不同,即使同样功能的IP模块在速度、面积、功耗、对外接口等方面也表现各异。国际上,一些大公司的解决办法是逐步定义公司内部甚至是几个公司间通用的片上总线标准,这方面最著名的是国际上的VSIA组织。一些专业IP公司的解决办法是建立单一的开发平台,专注于某一个的应用领域提供不断完善的IP模块和设计服务。我们认为,成功的IP集成必须解决好以下问题。2.5 IP集成的一般考虑首先,在系统结构设计做好模块划分时,必须考虑好系统芯片采用什么样的片上总线结构,确定哪些模块是可以来自于IP库,哪些模块需要购买IP,IP模块的对接需要增加哪些连接性设计。哪些模块需要从头开始设计。 其次,模块间的接口协议要尽可能简单,模块间的接口定义尽可能与国际上通用的接口协议完全一致。一个常用的设计技巧就是在数据传送的接口建立申请和应答机制。这虽然会造成芯片在时序、面积、功耗等方面的损耗,但对于加快系统芯片的上市速度大大有利。第三,要注意积累IP和IP集成的经验。一旦成功地集成了一个IP到一个系统设计,设计组会对该IP的接口特性非常熟悉。这时候就应该进一步完善该IP,使之对下一个设计的可重用性更好,并逐步建立一系列的衍生IP模块;同时,把集成该IP的经验教训及时记录下来形成技术文档,这将对下一个IP集成者大大有利。 第四,如果是对应IP的集成,还必须在时钟分布,关键路径的走线,电源、地线的走线,IP模块支持的测试结构等方面考虑与系统芯片保持一致。2.5.1 IP集成的关键技术 IP集成的关键在于建立正确、高效、灵活的片上总线结构,构造以功能组装为基础的芯片开发模型。片上总线技术是IP集成的关键技术。片上总线技术包括两个方面,一是选用国际上公开通用的总线结构,二是根据特定领域开发的需要自主开发片上总线。国际上比较成熟的总线结构有PCI总线、ARM公司的AMBA总线、IBM公司提出的Processor Local Bus,On-Chip Peripheral Bus,Device Control Register Bus等。片上总线的开发我们还不熟悉,需要进一步跟踪和探讨。值得注意的是在确定片上总线结构时,并不排斥在IP模块内部做一些接口转换的设计,问题是这种设计的内容要尽可能简单。2.6 IP模块的评估与选择 IP的评估是指通过一个完整的Checklist来系统地检查IP设计。评测分为系统设计、编码、综合和验证等不同部分进行,并根据评测规则的重要程度为不同的规则检查分配不同的权值。这样在评测之后,就可以直观地看出整个设计的可重用性和分别在每一部分上的得失。它有助于设计者和管理者了解一个设计的可重用程度,以帮助体系结构的设计工程师针对性能、规模、成本和功耗等不同方面来评估IP模块。目前业界比较具有影响力的评测标准是由Synopsys和Mentor联合开发推行的、基于RMM的OpenMORE评测标准。 选择IP模块时首要考虑的因素是IP与目标系统的配合程度。一般说来,在进行集成之前,最好选择那些无需修改的IP模块。但是如今的大多数情况是设计人员在获得了IP模块后必须进行修改,修改的范围包括各个设计层次上的IP模型。这种修改会耗费大量的时间和资源,不仅会耽误产品的研发进度,还会给整个设计流程引入风险,并让IP厂商的支持变得困难重重。虽然某种程度的修改是不可避免的,但是如果设计人员能够牺牲一点芯片面积或功能来换取尽可能少地修改IP模块,那么情况就会有所改善。即使某些模块的功能可能超过了系统的需求,但是为了尽量少地进行IP的修改,我们也应该在某些不太重要的功能上做出妥协,以便直接使用一些我们需要的功能模块。选择IP模块时必须考虑的另外一个重要因素是:评估IP模块的品质、集成的方便程度和可重用性,并考虑IP提供者所能提供的技术支持程度等。如:使用手册的内容是否详尽完备、是否提供完整的设计和验证环境,是否有成功集成的先例,接口定义标准的遵从程度、未来发展升级的可能性、获取IP授权的效率以及合作厂商的可信赖程度等。3 FFT算法原理3.1 FFT的主要算法FFT算法并不是一种新的理论算法,它只是用来计算DFT的快速算法,所以它是以DFT为基础的。本课题采用的是基-2 FFT算法实现的,所以会详细介绍基-2 FFT算法。基-2 FFT算法是目前应

    注意事项

    本文(基于FPGA的快速傅立叶 变换(FFT)的IP核设计毕业论文.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开