VIVADO FFT IP核配置以及端口说明

(以下内容均是在学习了别人博客后,自己小结出来的)
原文链接1:https://blog.csdn.net/FPGADesigner/article/details/80694673
原文链接2:https://blog.csdn.net/qq_36375505/article/details/81742680
#FFT IP核配置说明

VIVADO FFT IP核配置以及端口说明_第1张图片
第一个选项是同时进行几路数据流并行。
第二个选项是变换的实际点数,如果设计可以在线更改变换点数的FFT,这里选择的点数是所需要的最大的FFT点数。
第三个工作时钟(Target Clock Frequency)。
第四个选择一种FFT结构,包括流水线Streaming、基4 Burst、基2 Burst和轻量级基2 Burst,计算速度和消耗的资源依次减少。
第五个需要实时更改FFT的点数,则需要更改Run Time Configurable Transform Length。
VIVADO FFT IP核配置以及端口说明_第2张图片
VIVADO FFT IP核配置以及端口说明_第3张图片
Implementation标签卡下
设置FFT的数据格式为定点Fixed Point或浮点Float Point;
设置输入数据的位宽和相位因子位宽(相当于旋转因子)。
ARESETn这个信号一般要选上
“Output Ordering”设置FFT计算结果以自然顺序(Nature Order)或位/数值反序(Bit/Digit Reversed Order)输出。
VIVADO FFT IP核配置以及端口说明_第4张图片
这页基本不用修改。
#信号端口说明
VIVADO FFT IP核配置以及端口说明_第5张图片
.aclk, 时钟信号
aresetn 复位信号
s_axis_config_tdata // input wire [7 : 0] s_axis_config_tdata (8’d1,表示做FFT)
s_axis_config_tvalid // input wire s_axis_config_tvalid (表示能够提供数据)
s_axis_config_tready // output wire s_axis_config_tready (表示IP能够接收数据)
s_axis_data_tdata // input wire [31 : 0] s_axis_data_tdata (将数据扩展成为32位,不够高位补0)
s_axis_data_tvalid // input wire s_axis_data_tvalid (拉高2048个周期,输入2048个数据)
s_axis_data_tready // output wire s_axis_data_tready (IP核能够接收数据)
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_tuser(m_axis_data_tuser), // output wire [15 : 0] m_axis_data_tuser(输出FFT的地址值,输出值*fs/N=对应频点)
m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid (输出数据时拉高,2048个数据)
m_axis_data_tready(1’b1), // input wire m_axis_data_tready (完成2048个点fft后拉高一个时钟周期,表示完成fft)
m_axis_data_tlast(m_axis_data_tlast), // output wire

event_frame_started(event_frame_started),// (在新的一帧数据开始前拉高一个周期,用于帧计数,处理特殊帧)

event_tlast_unexpected(event_tlast_unexpected),// (当s_axis_data_tlast上跳,但IP核认为这并不是最后一个数据时上跳一次。数据位数不配 )

event_tlast_missing(event_tlast_missing),// : OUT STD_LOGIC;(当IP核认为这是最后一个数据,但s_axis_data_tlast还是低的时候,该信号上跳。数据位数不配)

event_status_channel_halt(event_status_channel_halt),//(IP核需要向status通道上面写数据而通道没有空间时,拉高)

event_data_in_channel_halt(event_data_in_channel_halt),//
(IP核需要数据,但是输入通道没有数据提供时,拉高)

event_data_out_channel_halt(event_data_out_channel_halt)// (IP核需要输出但是输出通道buffer是满的,拉高)

你可能感兴趣的:(FPGA)