配置1个转换通道

He is a silent guardian, a wary protector, a dark knight.

Vivado xilinx fft9.0 使用笔记:

云顶娱乐 1

****注 仿真实地度量1024点的调换要求通过11五十多少个时钟周期技艺博取更动结果;

a2631992418

模块配置功率信号含义请参见pg109文书档案手册,不详细表明;

云顶娱乐 2

一、查找fft IP核按如下几图配置可落成科学的fft调换结果:

a2631992418

安插1个转移通道;转变数据长度是1024 points;选拔流线型结构类型pipelined,streamingI/O,优点并行调换速度快,,短处占用能源多。 如图1:

云顶娱乐 3

云顶娱乐 4

a2631992418

图1

云顶娱乐 5

如图2,设置数据类型为稳固小数;缩减因子设置成Unscaled;RoundingModes设置成Truncation;输入位宽装置22位,精度设置16;Output Ordering 设置成Natural Order;OptionalOutputFieldds勾选XK_INDEX;

a2631992418

云顶娱乐 6

云顶娱乐 7

图2

云顶娱乐 8

如图3 此页消息为主定位配置:

a2631992418

云顶娱乐 9

云顶娱乐 10

图3

a2631992418

***注:注意图4中区域 有助于援救你在编写制定testbenchs时对s_axis_config_tdata举办布署;

云顶娱乐 11

如图4 s_axis_config_tdata 只有1位配置fft的fwd/inv;

a2631992418

云顶娱乐 12

云顶娱乐 13

图4

a2631992418

Testbench代码如下:

云顶娱乐 14

`timescale 1ns / 1ps

a2631992418

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

云顶娱乐 15

// Company:

a2631992418

// Engineer: zyp

云顶娱乐 16

//

a2631992418

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

云顶娱乐 17

// Design Name:

a2631992418

// Module Name: test

云顶娱乐 18

// Project Name:

a2631992418

// Target Devices:

云顶娱乐 19

// Tool Versions:

a2631992418

// Description:

云顶娱乐 20

//

a2631992418

// Dependencies:

云顶娱乐 21

//

a2631992418

// Revision:

云顶娱乐 22

// Revision 0.01 - File Created

a2631992418

// Additional Comments:

云顶娱乐 23

//

a2631992418

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

云顶娱乐 24

module test();

a2631992418

// Inputs

云顶娱乐 25

reg aclk;

a2631992418

reg aresetn;//active low

云顶娱乐 26

reg s_axis_config_tvalid;

a2631992418

reg s_axis_data_tvalid;

云顶娱乐 27

reg s_axis_data_tlast;

a2631992418

reg m_axis_data_tready;

云顶娱乐 28

reg [7:0] s_axis_config_tdata;

a2631992418

//reg [15:0] s_axis_config_tdata;

云顶娱乐 29

reg [47: 0] s_axis_data_tdata;

a2631992418

// Outputs

云顶娱乐 30

wire s_axis_config_tready;

a2631992418

wire s_axis_data_tready;

云顶娱乐 31

wire m_axis_data_tvalid;

a2631992418

wire m_axis_data_tlast;

云顶娱乐 32

wire event_frame_started;

a2631992418

wire event_tlast_unexpected;

云顶娱乐 33

wire event_tlast_missing;

a2631992418

wire event_status_channel_halt;

云顶娱乐 34

wire event_data_in_channel_halt;

a2631992418

wire event_data_out_channel_halt;

云顶娱乐 35

//wire [47:0] m_axis_data_tdata;

a2631992418

wire [79:0] m_axis_data_tdata; //un_scaled

云顶娱乐 36

wire [15:0] m_axis_data_tuser;

a2631992418

//

云顶娱乐 37

//reg[23:0] XK_RE;

a2631992418

//reg[23:0] XK_IM;

云顶娱乐 38

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

a2631992418

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

云顶娱乐 39

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

a2631992418

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

云顶娱乐 40

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

a2631992418

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

云顶娱乐 41

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

a2631992418

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

云顶娱乐 42

reg[7:0] op_sample= 0;

a2631992418

reg op_sample_first = 1;

云顶娱乐 43

reg[7:0] ip_frame=0;

a2631992418

reg[7:0] op_frame=0;

云顶娱乐 44

integer i;

a2631992418

// generate clk

云顶娱乐 45

always #5 aclk =! aclk;

a2631992418

xfft_0 xfft_m0 (

云顶娱乐 46

.aclk, // input wire aclk

a2631992418

// .aresetn,

云顶娱乐 47

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

a2631992418

.s_axis_config_tvalid(s_axis_config_tvalid), // input wire s_axis_config_tvalid

云顶娱乐 48

.s_axis_config_tready(s_axis_config_tready), // output wire s_axis_config_tready

a2631992418

.s_axis_data_tdata(s_axis_data_tdata), // input wire [47 : 0] s_axis_data_tdata

云顶娱乐 49

.s_axis_data_tvalid(s_axis_data_tvalid), // input wire s_axis_data_tvalid

a2631992418

.s_axis_data_tready(s_axis_data_tready), // output wire s_axis_data_tready

云顶娱乐 50

.s_axis_data_tlast(s_axis_data_tlast), // input wire s_axis_data_tlast

a2631992418

.m_axis_data_tdata(m_axis_data_tdata), // output wire [47 : 0] m_axis_data_tdata

云顶娱乐 51

.m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid

a2631992418

.m_axis_data_tready(m_axis_data_tready), // input wire m_axis_data_tready

云顶娱乐 52

.m_axis_data_tlast(m_axis_data_tlast), // output wire m_axis_data_tlast

a2631992418

.m_axis_data_tuser(m_axis_data_tuser),//XK_INDEX

云顶娱乐 53

.event_frame_started(event_frame_started), // output wire event_frame_started

a2631992418

.event_tlast_unexpected(event_tlast_unexpected), // output wire event_tlast_unexpected

云顶娱乐 54

.event_tlast_missing(event_tlast_missing), // output wire event_tlast_missing

a2631992418

.event_status_channel_halt(event_status_channel_halt), // output wire event_status_channel_halt

云顶娱乐 55

.event_data_in_channel_halt(event_data_in_channel_halt), // output wire event_data_in_channel_halt

a2631992418

.event_data_out_channel_halt(event_data_out_channel_halt) // output wire event_data_out_channel_halt

云顶娱乐 56

);

a2631992418

initial begin

云顶娱乐 57

// Initialize Inputs

a2631992418

aclk = 0;

云顶娱乐 58

aresetn = 0;

a2631992418

s_axis_config_tvalid = 0;

云顶娱乐 59

s_axis_config_tdata = 0;

a2631992418

s_axis_data_tvalid = 0;

云顶娱乐 60

s_axis_data_tdata = 0;

a2631992418

s_axis_data_tlast = 0;

云顶娱乐 61

m_axis_data_tready = 0;

a2631992418

// Wait 150 ns for global reset to finish

云顶娱乐 62

#150;

a2631992418

aresetn = 1;

云顶娱乐 63

m_axis_data_tready = 1;

a2631992418

s_axis_config_tvalid = 1;

云顶娱乐 64

//s_axis_config_tdata = 16'b10110101011; // 512points bit0-9 sclae_sch bit10 fwd/ivs 那样布置不对 FFT desired (and not IFFT

a2631992418

//s_axis_config_tdata = 16'b01101010111; // 512points bit1-10 sclae_sch bit0 fwd/ivs 按那组数据配置结果收缩了1000倍 FFT desired (and not IFFT

云顶娱乐 65

//s_axis_config_tdata = 16'b00000000001; // 512points result 与下一种情景亦然

a2631992418

s_axis_config_tdata = 1'b1; // 配置fwd 512 or 1024 points 配置unscale 情状 位宽有进位 输出位宽要对应 结果正确精确!!!!!

云顶娱乐 66

//s_axis_config_tdata = 16'b1101101010111;//4096points bit1-12 sclae_sch bit0 fwd/ivs

a2631992418

//s_axis_data_tlast = 1;

云顶娱乐 67

s_axis_data_tdata = 48'h000000;

a2631992418

s_axis_data_tvalid = 0;

云顶娱乐 68

#10

a2631992418

s_axis_config_tvalid = 0;

云顶娱乐 69

begin

a2631992418

for(i=0;i<1024;i=i 1) begin

云顶娱乐 70

#10

a2631992418

s_axis_data_tvalid <= 1;

云顶娱乐 71

s_axis_data_tdata <= {{24'h000000},mem0_re[i]};

a2631992418

$display("mem_a[%d] = %h", i, mem0_re[i]);

云顶娱乐 72

end

a2631992418

end

云顶娱乐 73

assign XK_RE = m_axis_data_tdata[39:0];

a2631992418

assign XK_IM = m_axis_data_tdata[79:40];

云顶娱乐 74

#10;

a2631992418

s_axis_data_tdata = 48'h000000;

云顶娱乐 75

s_axis_data_tvalid = 0;

a2631992418

#400000 $finish;

云顶娱乐 76

end

a2631992418

endmodule

云顶娱乐 77

/*test smaple 1 N=8 (?????s_axis_config_tdata = 8'b00000001);

a2631992418

云顶娱乐,s_axis_data_tdata =[1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1] 十伍人稳固小数

云顶娱乐 78

s_axis_data_tdata =[1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a] 十三个人牢固小数

a2631992418

vivado_result 00000024ccd0 09a820fc0000 040000fc0000 01a820fc0000 000000fc0000 fe57e0fc0000 fc0000fc0000 f657e0fc0000

云顶娱乐 79

matlab_result 36.8000 0.0000i -4.0000 9.6569i -4.0000 4.0000i -4.0000 1.6569i -4.0000 0.0000i -4.0000-1.6569i -4.0000-4.0000i -4.0000-9.6569i

a2631992418

s_axis_config_tdata = 8'b00000000大概不布署

云顶娱乐 80

vivado_result 00000024ccd0 f657e0fc0000 fc0000fc0000 fe57e0fc0000 000000fc0000 01a820fc0000 040000fc0000 09a820fc0000

a2631992418

compare result right!!!!!

云顶娱乐 81

*/

a2631992418

/*test sample 2 N=16 (?????s_axis_config_tdata = 8'b00000001);

云顶娱乐 82

s_axis_data_tdata =[1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a] 16点 15位稳固小数

a2631992418

vivado_result 0000004999a0 000000000000 135040f80000 000000000000 080000f80000 000000000000 035040f80000 000000000000 000000f80000 000000000000 fcafc0f80000 000000000000 f80000f80000 000000000000 ecafc0f80000 000000000000

云顶娱乐 83

matlab_result 73.6000 0.0000i 0.0000 0.0000i -8.0000 19.3137i 0.0000 0.0000i -8.0000 8.0000i 0.0000 0.0000i -8.0000 3.3137i 0.0000 0.0000i -8.0000 0.0000i 0.0000 0.0000i -8.0000-3.3137i 0.0000 0.0000i -8.0000-8.0000i 0.0000 0.0000i -8.0000-19.3137i 0.0000 0.0000i

a2631992418

compare result right!!!!!

云顶娱乐 84

*/

a2631992418

/*test sample 3 N=128 (s_axis_config_tdata = 16'b0000000000000001;error )

云顶娱乐 85

s_axis_config_tdata = 16'b0101010101010101;error

a2631992418

s_axis_data_tdata =[1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a]*8 13位牢固小数

云顶娱乐 86

*/

a2631992418

*****注:在那之中输入数据"D:/fpga/fft1/stimulus0_24bit.dat"为15位稳固小数如下:

云顶娱乐 87

1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a

a2631992418

1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a

云顶娱乐 88

1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a

a2631992418

1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a

云顶娱乐 89

1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a

a2631992418

1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a

云顶娱乐 90

1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a

a2631992418

1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a 1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a

云顶娱乐 91

Vivado simulationresult 如图所示:

a2631992418

云顶娱乐 92

云顶娱乐 93

图5

a2631992418

将上述输入数据调换来16为固定小数为a=[1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1……..]b=fft MATLAB仿真结果如图:

云顶娱乐 94

云顶娱乐 95

a2631992418

图6

云顶娱乐 96

相比较之下图5、图6可见结果保持一致。

a2631992418

二、配置IP核实现ifft转换

云顶娱乐 97

Testbench 代码如下:

a2631992418

`timescale 1ns / 1ps

云顶娱乐 98

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

云顶娱乐 99

// Company:

a2631992418

// Engineer: zyp

云顶娱乐 100

//

a2631992418

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

云顶娱乐 101

// Design Name:

a2631992418

// Module Name: test

云顶娱乐 102

// Project Name:

a2631992418

// Target Devices:

// Tool Versions:

// Description:

// 对512点做ifft变换

// 512样本数量来自【1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1......】的fft转换结果

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

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

module testbench_ifft();

//ifft_0信号

// Inputs

reg aclk;

reg aresetn;//active low

reg rst;

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 [63: 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 [95:0] m_axis_data_tdata; //un_scaled

wire [15:0] m_axis_data_tuser;

reg[47:0] XK_RE;//ceshi xianshi

reg[47:0] XK_IM;//ceshi xianshi

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

reg[63:0] mem3_re[0:511];//高43人是虚部 38位为使得 低肆拾二位是实部 31个人有效 15位牢固小数

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);

initial $readmemh("D:/fpga/fft1/stimulus3_80bit.dat",mem3_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;

reg[11:0] cnt;

// generate clk

always #5 aclk =! aclk;

ifft_0 ifft_m0 (

.aclk, // input wire aclk

// .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), // input wire s_axis_config_tvalid

.s_axis_config_tready(s_axis_config_tready), // output wire s_axis_config_tready

.s_axis_data_tdata(s_axis_data_tdata), // input wire [47 : 0] s_axis_data_tdata

.s_axis_data_tvalid(s_axis_data_tvalid), // input wire s_axis_data_tvalid

.s_axis_data_tready(s_axis_data_tready), // output wire s_axis_data_tready

.s_axis_data_tlast(s_axis_data_tlast), // input wire s_axis_data_tlast

.m_axis_data_tdata(m_axis_data_tdata), // output wire [47 : 0] m_axis_data_tdata

.m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid

.m_axis_data_tready(m_axis_data_tready), // input wire m_axis_data_tready

.m_axis_data_tlast(m_axis_data_tlast), // output wire m_axis_data_tlast

.m_axis_data_tuser(m_axis_data_tuser), //XK_INDEX

.event_frame_started(event_frame_started), // output wire event_frame_started

.event_tlast_unexpected(event_tlast_unexpected), // output wire event_tlast_unexpected

.event_tlast_missing(event_tlast_missing), // output wire event_tlast_missing

.event_status_channel_halt(event_status_channel_halt), // output wire event_status_channel_halt

.event_data_in_channel_halt(event_data_in_channel_halt), // output wire event_data_in_channel_halt

.event_data_out_channel_halt(event_data_out_channel_halt) // output wire event_data_out_channel_halt

);

initial begin

// Initialize Inputs

aclk = 0;

rst = 1;

s_axis_config_tvalid = 0;

s_axis_config_tdata = 0;

s_axis_data_tvalid = 0;

s_axis_data_tdata = 0;

s_axis_data_tlast = 0;

m_axis_data_tready = 0;

#150;

rst = 0;

m_axis_data_tready = 1;

s_axis_config_tvalid = 1;

s_axis_config_tdata = 1'b0; // 配置invs 512 or 1024 points 配置unscale 情形 位宽有进位 输出位宽要对应 结果正确准确!!!!!

s_axis_data_tdata = 64'h000000;

s_axis_data_tvalid = 0;

//#10

//s_axis_config_tvalid = 0;

begin

for(i=0;i<512;i=i 1) begin

#10

s_axis_data_tvalid <= 1;

s_axis_data_tdata <= {mem3_re[i]};

$display("mem_a[%d] = %h", i, mem3_re[i]);

end

end

assign XK_RE = m_axis_data_tdata[31:0];

assign XK_IM = m_axis_data_tdata[79:48];

#10;

s_axis_data_tdata = 64'h000000;

s_axis_data_tvalid = 0;

/*

#100;

begin

for(i=0;i<512;i=i 1) begin

#10

s_axis_data_tvalid <= 1;

s_axis_data_tdata <= {mem2_re[i]};

$display("mem_a[%d] = %h", i, mem2_re[i]);

end

#10;

s_axis_data_tdata = 64'h000000;

s_axis_data_tvalid = 0;

end

*/

#20000 $finish;

end

endmodule

样本文件是

0000000009333400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 026a0800ff000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01000000ff000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 006a0800ff000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000000ff000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ff95f800ff000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ff000000ff000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fd95f800ff000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

(以上是1.1 1.2.....1.8的513个数据的fft转变结果)

0000000000e66680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 003dcdb6ffe66680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00199980ffe66680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000a9ab6ffe66680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000000ffe66680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fff5654affe66680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ffe66680ffe66680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ffc2324affe66680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

(以上是0.1 0.2.....0.8的5拾一个数据的fft转变结果)

****注:ifft的转变结果必要除以调换长度N技术博得不错的结果;

注:在安插时output order要勾选nature order 不然输出结果时序是乱掉的;

本文由云顶娱乐发布于影视,转载请注明出处:配置1个转换通道

TAG标签: 云顶娱乐
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。