Xilinx Vivado FFT IP使用步骤

1 介绍

        只作为本人调试笔记使用,如有错误,请指正,感谢。

2 生成IP

        软件版本基于2023.2。

        

使用ooc方式编译IP,会生成cmodel文件,可以直接在matlab中仿真使用:

3 编写HDL测试文件:

以512个数据长度为例:


module tb();

reg		clk250 = 1'b0;
always #2 clk250 <= ~clk250;

reg		nRst = 1'b0;

reg signed [15:0] mem_data_I[511:0];
reg signed [15:0] mem_data_O[0:511];
integer outputfile;
integer outputfile1;
reg	[8:0]	n;

initial begin
	clk250	<= 1'b0;
	nRst	<= 1'b0;
	#101
	nRst	<= 1'b1;
    $readmemh("G:/FFT/fft_ip_in.txt",mem_data_I);
	outputfile = $fopen("G:/FFT/fft_ip_out_re.txt","w");
	outputfile1 = $fopen("G:/FFT/fft_ip_out_im.txt","w");

	#23000
//	for(n=0;n<=511;n=n+1)  
//	$fwrite(outputfile,"%x\n",mem_data_O);
	$fclose(outputfile);
	$fclose(outputfile1);
end

reg		[9:0]		cnt = 'd0;


reg signed [31:0] s_axis_data_tdata  = 'd0;
reg               s_axis_data_tvalid = 1'b0;
reg               s_axis_data_tlast  = 1'b0;  
wire              s_axis_data_tready;

reg               m_axis_data_tready = 1'b1;
wire              m_axis_data_tvalid;
wire              m_axis_data_tlast;
wire signed [31:0] m_axis_data_tdata;

reg		[9:0]	m_cnt = 'd0;

always@(*) begin
	if(cnt == 511) begin
		if(s_axis_data_tready) begin
			s_axis_data_tvalid	<= 1'b1;
			s_axis_data_tlast	<= 1'b1;
			s_axis_data_tdata	<= {16'd0,mem_data_I[cnt]};
		end else begin
			s_axis_data_tvalid	<= 1'b0;
			s_axis_data_tlast	<= 1'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值