FPGA中FFT IP核应用(三)
时间:2022-11-01 18:30:00
Altera FFT IP核使用介绍
- 前言
- 一、生成FFT IP核
- 二、FFT IP核引脚说明
- 三、实验例程
前言
前两篇文章解释了如何使用它Xilinx公司的FFT IP如何使用核,现在就来介绍一下Altera公司的FFT IP核使用详解。因为我现在用的。Quartus版本为13.1.所以这个版本FFT IP以核为例解释其使用步骤。
一、生成FFT IP核
再正常添加FFT IP以下配置界面将出现在核后,我们只关心Step1和Step2就行。
- Step1:主要是关于IP我将我的配置放在下图中供您参考:
以下是芯片设备选项、采样点配置、输入数据位宽、旋转因子精度(应小于数据精度)
如下页面选择FFT并行引擎架构FFT以及发动机的数量I/O数据流。
页面选项配置的实现主要是存储会计资源的选择。
- Step2:如下图所示:
- Step3:生成IP核
二、FFT IP核引脚说明
信号 | 方向 | 说明 |
---|---|---|
clk | in | 输入时钟 |
reset_n | in | 系统复位,效率低 |
clk_ena | in | 时钟使能,高效 |
inverse | in | 假如断言,计算FFT逆。仅在SOP取样。即0 - FFT ,1 - IFFT |
sink_real | in | 实际输入数据 |
sink_imag | in | 虚部输入数据 |
sink_sop | in | 输入数据开始标记脉冲(保持一小时的高电平),并与第一个数据同步 |
sink_eop | in | 输入数据结束标记脉冲(保持一小时的高电平),并与最后一个数据同步 |
sink_valid | in | 通知拉高FFTN个数据输入即将到来 |
sink_error | in | 指示数据流的错误信息:00-无错误;01-丢失SOP;10——丢失EOP;11——多余的EOP; |
source_error | out | 表明upstream模块或者FFT模块出了问题,错误的信息提示和sink_error一样 output |
source_ready | in | 表明downstream模块(理解为FFT后续接收数据模块)可接收数据 input |
sink_ready | out | FFT模块准备就绪,可以接收数据 output |
source_real | out | 输出数据出数据的实际部分 |
source_imag | out | 转换后输出数据的虚拟部分 |
source_exp | out | 结果数据缩放因子:比如这个指数位的意思是3,也就是说此时输出的虚拟部分和实际值应该除以2的3次方,如果是10,则应该除以2的10次方。如果结果精度要求不高,可以直接截取相应长度。比如指数是3,实际输出是1011_0111_0111,那么实际值应该是1_0110_1110.111;取整就是101101110 |
source_valid | out | 准备输出结果 |
source_sop | out | 起始标记输出数据 |
source_eop | out | 输出数据结束标记 |
三、实验例程
实验环境
- EDA:Quartus II 13.1
- 仿真:ModelSim ALTERA STARTER EDITION 10.1d
由于Quartus没有成型的DDS IP核,所以自己设计DDS提供模拟信号输入的波形发生器DDS可参考波形发生器的设计,方便大家进行信号测试)。有例化了FFT IP核,操作输出的实部和虚部,获得频谱。在下图中,我得到了具体的频谱图,并在程序中添加了类似的频谱图Xilinx核索引信号易于计算频谱。
程序例化代码如下:
my_fft my_fft_inst( .clk(clk), .reset_n(rst_n), .clk_ena(clk_ena), .inverse(inverse), .sink_real(sink_real), .
sink_imag
(sink_imag
)
,
.
sink_sop
(sink_sop
)
,
.
sink_eop
(sink_eop
)
,
.
sink_valid
(sink_valid
)
,
.
sink_error
(sink_error
)
,
.
source_error
(source_error
)
,
.
source_ready
(source_ready
)
,
.
sink_ready
(sink_ready
)
,
.
source_real
(source_real
)
,
.
source_imag
(source_imag
)
,
.
source_exp
(source_exp
)
,
.
source_valid
(source_valid
)
,
.
source_sop
(source_sop
)
,
.
source_eop
(source_eop
)
)
;
注:在此附上实验例程的工程下载连接:https://download.csdn.net/download/qq_41894385/85366514解压密码:mjd,欢迎大家前来提问探讨。