首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

XILINX FFT IP仿真心得(一) ---转贴山一程 水一程的博客

XILINX FFT IP仿真心得(一) ---转贴山一程 水一程的博客

第一次使用Xilinx 的FFT的IP core。没有太多的资料和实例可以学习,只有一个软件自带的文档xfft_ds260,而且是英文的,看了很长时间受益不大。然后决定一边用一边再学习,就自己建立了一个工程实验。这个IP核可以选择多种结构的,什么基4的,基2,基lite,pipelined.streaming i/o,burst i/o ,各种结构。我选择的目的是结口最少,操作最简单。最后选择了基2 lite ,burst i/o 结构的,定点,输出不选顺序的,从而避开了那些没有理解的操作。值得注意的是xk_index与输入数据之间有三个时钟的延时。最后得到的结口是module fft8 (fwd_inv_we, rfd, start, fwd_inv, dv, done, clk, busy, edone, xn_re, xk_im, xn_index, xk_re, xn_im, xk_index);input fwd_inv_we;output rfd;input start;input fwd_inv;output dv;output done;input clk;output busy;output edone;input [15 : 0] xn_re;output [19 : 0] xk_im;output [2 : 0] xn_index;output [19 : 0] xk_re;input [15 : 0] xn_im;output [2 : 0] xk_index;。然后进行仿真:testbench是自动生成的,只添加了下面的部分,很简单的:nitial begin// Initialize Inputsclk = 0;xn_re = 0;xn_im = 0;start =0;fwd_inv_we=0;fwd_inv=0;// Wait 100 ns for global reset to finish#100;start =1;fwd_inv_we=1;fwd_inv=1;// Add stimulus here end always #5 clk = ~clk; always @(posedge clk)beginxn_re= xn_re + 1;end 仿真的结果是[[wysiwyg_imageupload:461:]][[wysiwyg_imageupload:462:]]这时的的一个输入:8个数据:14至22的8个数,所示的结果为:0 140+j*0,1 -4+j*9,2 -4+j*4,3 -4+j*1,4 -4+j*0,5 -4-j*2,6 -4-j*4,7 -4-j*10然后我们通过matlab 进行一个fft的运算,验证这一结果的准确性:代码是:n=0:1:7;s=n+14;>> y=fft(s,8);>> y y = 1.0e+002 * Columns 1 through 6 1.4000 -0.0400 + 0.0966i -0.0400 + 0.0400i -0.0400 + 0.0166i -0.0400 -0.0400 - 0.0166i Columns 7 through 8 -0.0400 - 0.0400i -0.0400 - 0.0966i考虑到有限精度的问题,显然结果是正确的。另外需要说明的是FFT输出的结果是二进制补码形式,我在仿真显示结果进行了转换,将二进制补码表示成了有符号的十进制,以便对比。 XILINX ROM仿真遇到的问题 作者 hiram 日期 2012-4-29 11:45:00第一个问题:当工程中包含*.xco 文件时,综合、布线、生成bit流文件都没问题,但是在仿真时,点击Behavioral Check Syntax 和Simulate Behavioral Model 时软件运行很短的一会,就停下来,无任何警告和错误提示第二个问题,rom 仿真时,不使用*。xco文件,两使用生成的HDL Model ,仿真时显示缺少blk_mem_gen_xx文件:官方给出的解答是:In that case , there is something wrong with the file BLK_MEM_GEN_V2_8.vPlease try to replace it with a file under ISE 10.1.3SP3 verilog/src/xilinxcorelib/BLK_MEM_GEN_V2_8.v.替换之后 问题果然得到解决
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表