设为首页 加入收藏

TOP

实测—fft IP核使用(包括ifft的配置使用)(一)
2019-08-24 00:06:31 】 浏览:401
Tags:实测 fft 使用 包括 ifft 配置

 Vivado xilinx fft9.0 使用笔记:

**** 仿真实测1024点的转换需要经过1148个时钟周期才能得到转换结果;

模块配置信号含义请参考pg109文档手册(写的贼烂会看晕),不详细说明;

一、查找fft IP核按如下几图配置可实现正确的fft转换结果:

配置1个转换通道;转换数据长度是1024 points;选择流线型结构类型pipelined,streamingI/O,优点并行转换速度快,,缺点占用资源多。 如图1

1

如图2,设置数据类型为定点小数;缩减因子设置成UnscaledRoundingModes设置成Truncation;输入位宽设置24位,精度设置16Output Ordering 设置成Natural OrderOptionalOutputFieldds勾选XK_INDEX

 

2

如图3 此页信息基本固定配置:

 

3

 

***注:注意图4中区域 有助于帮助你在编写testbenchs时对s_axis_config_tdata进行配置;

如图4  s_axis_config_tdata 只有1位配置fftfwd/inv;

 

4

 

 

Testbench代码如下:

 

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer: zyp

//

// Create Date: 04/21/2017 08:35:42 PM

// Design Name:

// Module Name: test

// Project Name:

// Target Devices:

// Tool Versions:

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//////////////////////////////////////////////////////////////////////////////////

module  test();

// Inputs

reg aclk;

reg aresetn;//active low

reg s_axis_config_tvalid;

reg s_axis_data_tvalid;

reg s_axis_data_tlast;

reg m_axis_data_tready;

reg [7:0] s_axis_config_tdata;

//reg [15:0] s_axis_config_tdata;

reg [47: 0] s_axis_data_tdata;

 

 

// Outputs

wire s_axis_config_tready;

wire s_axis_data_tready;

wire m_axis_data_tvalid;

wire m_axis_data_tlast;

wire event_frame_started;

wire event_tlast_unexpected;

wire event_tlast_missing;

wire event_status_channel_halt;

wire event_data_in_channel_halt;

wire event_data_out_channel_halt;

//wire [47:0] m_axis_data_tdata;

wire [79:0] m_axis_data_tdata; //un_scaled

wire [15:0] m_axis_data_tuser;

//

//reg[23:0] XK_RE;

//reg[23:0] XK_IM;

reg[39:0] XK_RE;//config  unsclaed

reg[39:0] XK_IM;//config  unsclaed

reg[23:0] mem0_re[0:4095];

reg[23:0] mem1_re[0:7];

reg[23:0] mem2_re[0:7];

initial $readmemh("D:/fpga/fft1/stimulus0_24bit.dat",mem0_re);

initial $readmemh("D:/fpga/fft1/stimulus1_24bit.dat",mem1_re);

initial $readmemh("D:/fpga/fft1/stimulus2_24bit.dat",mem2_re);

 

reg[7:0]   op_sample= 0;

reg        op_sample_first = 1;

reg[7:0]   ip_frame=0;

reg[7:0]   op_frame=0;

 

integer i;

 

// generate clk

    always #5 aclk =! aclk;

 

xfft_0  xfft_m0 (

      .aclk(aclk),                                                // input wire aclk

     // .aresetn(aresetn),

      .s_axis_config_tdata(s_axis_config_tdata),                  // input wire [7 : 0] s_axis_config_tdata

      .s_axis_config_tvalid(s_axis_config_tvalid), &

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇你真的会Xilinx FPGA的复位吗? 下一篇一个有趣的异步时序逻辑电路设计..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目