- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信号与信息处理综合实验FPGA实验三报告fft
信息与通信工程学院信号与信息处理综合实验报告(FPGA部分)班级:姓名:学号:序号:实验三用FPGA实现快速傅里叶变换实验目的掌握Xilinx ISE中IP Core的使用方法;初步掌握Xilinx 公司的FFT IPCore的使用方法;比较DSP和FPGA实现FFT的异同。实验内容(1)按实验指导书所给出的步骤,用Xilinx IP Core实现256点的FFT并进行仿真和测试。(2)将所给出的例子改写为512点的IFFT并进行仿真和测试。三、实验过程说明Xilinx FFT IPcore使用说明在Xilinx公司的IPCore中,提供两不同的架构:Burst I/O架构和Streaming I/O流水线架构。所谓的Burst I/O是指数据的输入和输出都是突发的,即输入输出是一段一段的而不是连续的;所谓的Streaming I/O流水线架构则是指输入数据和输出数据都是以一定的频率连续不断地进行的。Burst I/O 架构下,采用的是时间抽取(DIT)方法,而在Streaming I/O流水线架构下采用的是频率抽取(DIF)方法。当采用基4分解时,N点FFT共需log4 (N) 级,每一级包含N/4个基4的蝶形图,如果点数N不是4的幂次,则还需要另外一个基2的级。如果采用基2的分解,则共有log2 (N)级,每一级包含N/2个基2蝶形。IFFT通过将对应的FFT的相位因子取共轭实现。本实验以Streaming I/O流水线架构为例学习Xilinx FFT IPcore的使用方法。Streaming I/O流水线架构示意图如下图所示。这种架构将多个基2的蝶形处理单元排成流水线形式以提供连续的数据处理,每个处理单元有它自己的存储单元用于存储输入和中间数据。数据数据可以连续输入到流水线的前级,经过一段计算时延,从输出端连续输出一个数据块的数据。当然,这种架构也允许在数据块之间添加一段时间的间隔。在scaled fixed-point模式下,数据在每进行一对基2级之后都会进行一次移位,移位次数可以事先根据输入数据范围确定。除了这种模式外,IP core还提供一种块浮点模式用于改善性能。输出数据可以以比特逆序输出,也可以自然序输出,当采用自然序输出时,需要用到额外的存储资源。与streaming I/O架构不同,Burst I/O以一组蝶形计算单元完成所有运算,其中基4的Burst I/O架构示意图如下图所示。在这种架构下,输入数据分为4块存储到RAM中,每计算一次蝶形运算,计算结果仍然存储到这4块RAM中,直至最后输出。在这种架构下,数据不能连续输入,整个IPcore的工作状态分为数据输入、处理和输出等不同的状态。显然,这种架构占用资源量明显少于Streaming I/O结构,但是处理数据的吞吐量有限。在不同的配置下,IPcore对外的接口有一些差别,下面仅对在本实验中将要用到的部分端口的功能做以下说明:端口名位宽方向描述Xn_re可配输入输入数据实部,与xn_index对应Xn_im可配输入输入数据虚部start1输入启动控制信号,拉高则FFT开始加载数据,可一直置高,此时由IP core的状态控制加载Fwd_inv1输入1表示FFT,0表示IFFTScale_sch在不同模式下位宽不同,在Streaming I/O模式下,输入各级移位次数Sclr1输入同步复位信号Clk1输入工作时钟Xk_re可配,scaled模式下同Xn_re输入输入数据实部,与xn_index对应Xk_im同上输入输入数据虚部Xn_index与点数有关输出Xn所对应的序号Xk_index与点数有关输出Xk所对应的序号RFD1输出加载数据阶段为高Dv1输出输出数据时为高实验步骤新建工程;新建FFT IPcore。命名为fft256,在IP列表中选择Digital signal processing-transforms-FFTs,选择7.1版本,点击Next,然后点击finish;在按以下截图下设置参数,然后点击Next在第2个页面上按下图设置,其含义分别为:定点格式;输入数据位宽16比特,相位因子16比特、Scaling选项选择scaled,截取模式选择truncation、添加同步复位sclr控制管脚、输出自然顺序,输入数据时序3 clock cycle offset选项。点击Next,进入第3页面第3页面上,选择Number of Stages using block ram为3,点击Generate生成IPcore。新建block RAM IPcore,取名为input_rom_I;在第2页面上选择单口ROM,其他选项保持不变;第3页面设置如下图,注意选择use ENA pin选项;(9)第4页面上,选择下图中所示的两个寄存器选项;(10)选择压缩包中
文档评论(0)