-

参考链接

简介 • 快速傅里叶变换 LogiCORE IP 产品指南 (PG109) • 阅读器 • AMD 技术信息门户 — Introduction • Fast Fourier Transform LogiCORE IP Product Guide (PG109) • 阅读器 • AMD 技术信息门户

1. Xilinx FFT v9.0简介

版本:9.1

接口(Interfaces):AXI4-Stream

FFT IP核简介:快速傅立叶变换(FFT)是一种计算离散傅立叶变换(DFT)的高效算法。FFT 内核可在多达 12 个并行通道上计算 8 至 65536 点的正向或反向复变。输入数据是复数值矢量,用 8 至 34 位宽的二乘数或 32 位宽的单精度浮点数表示。相位系数可以是 8 至 34 位宽。所有存储器都在芯片上,使用块 RAM 或分布式 RAM。提供三种算术类型:全精度无标度、标度定点和块浮点。有几个参数可在运行时配置:点大小、正向或反向变换的选择以及缩放时间表。有四种架构可供选择,以便在大小和转换时间之间进行权衡。

2.Vivado中IP核的配置

主要配置通道数,点数,时钟,吞吐量,结构,以及是否可以运行时配置,需要注意的是结构的配置会影响调整因子。如下图所示:

第一页:

  1. **number of channels :**变换通道,可以选择多通道,实现多帧数据同时进行FFT运算;

  2. transform lenfgth : FFT变换长度(最大FFT点数),如果选择了最下面的‘run time configurable transdorm legth’,则该参数是FFT变化的最大长度,一般不选。

  3. Target Clock Frequency (MHz)(目标时钟频率):根据奈奎斯特采样定理,采样频率需大于信号频率的两倍;

  4. Target Data Throughput(MSPS)(目标数据吞吐量):FFT采样点数,代表对信号在频域的采样数;

  5. architecure choice : 这个标签里主要是用来实现,FFT变换所选用的架构:

    1. Automatically selected : 自动选择所需要的,FFT变化架构。

    2. pipelined streaming :并行流水线结构

    3. radix-4, burst i/o : 基4 I/O突发结构 

    4. radix-2, burst i/o :基2 I/O突发结构

    5. radix-2 life, burst i/o :基2 I/O突发结构

​ 其中流水线的结构变换处理时间最短,资源消耗最大。

run time configurable transdorm legth : 该选项可以在FFT变换中通过设置s_axis_config_tdata中NFFT字段的长度来改变FFT变化的长度。

第二页:

这里主要是配置 数据宽度,格式,控制信号,输出方式,和可选的控制信号。

  1. **data format;**下拉标签中,对应着FFT IP核支持两种数据类型:

    1. 定点全精度
    2. 定点缩减位宽
  2. **scaling optios :**缩放选项 :

    1. block floating point :不管输入的格式如何,FFT变化内部都采用浮点,会根据每一级的的数据情况自动缩放。 这个模式的输入输出位宽一致,便于调用。

    2. scaled :在m_axis_data_tuser中会有5BIT表示每一级的缩放情况,在s_axis_config_data中会有相应的字段配置配置缩放因子.每一级别包含2个stage ,2个bit 表示一级缩放,一般0-3可选,如果log(NFFT)不是2的倍数,则最高一级的缩放只能在0-1之间选取。

    3. unscaled :不用担心变化过程中会出现溢出,但是输入是32bit的话,输出是64bit。

  3. Precision Options:精度选项

    1. Input Data Width:输入数据宽度
    2. Phase Factor Width:相位因子宽度
  4. Control Signals:控制信号,主要有时钟使能信号和低电平有效的复位信号

  5. output odering options: 输出顺序选项。

    1. nature order:就是FFT变化后的输出已经调整了顺序,按照xk_index自然顺序列出变化结果,
    2. bit/digital reserved oder就是按照变化后的顺序直接输出,是倒序输出,需要自己后续处理,
  6. **optional output fileds :**选项输出字段

    1. xk_index:FFT 变幻的结果索引,在m_axis_data_user中有相应的字段。
    2. OVFLO是变换中溢出的指示信号,对应event_fft_overflow.

第三页

一般不需要变动

1: 数据
2: 相位因子
3: 重排序缓冲。
4: 复数乘法器
5: 蝶形运算单元。

接口定义

名称 方向 说明
aclk 输入 模块工作时钟,上升沿有效
aclken 输入 时钟使能信号,高电平有效,低电平时内核暂停工作,可通过此信号降低内核运行的最大时钟频率
aresetn 输入 低电平同步复位信号,优先级高于aclken,低电平至少持续两个时钟周期
配置 -
s_axis_config_tvalid 输入 配置通道的tvalid,由外部主机断言以表示它能够提供数据
s_axis_config_tready 输出 配置通道的tready,由内核断言以表示它已准备好接收数据
s_axis_config_tdata 输入 配置通道的tdata,携带配置信息,包括NFFT、FWD/INV、CP LENZ和SCALE SCH
输入数据 -
s_axis_data_tvalid 输入 输入数据通道tvalid,由外部主机断言以表示它能够提供数据
s_axis_data_tready 输出 输入数据通道tready,由内核断言以表示它能够接收数据
s_axis_data_tdata 输入 输入数据通道tdata,由外部主机提供待处理的数据
s_axis_data_tlast 输入 由外部主机断言表示最后一组数据,只在生成事件event_tlast_unexpected和event tlast_missing时,内核才使用它
输出数据 -
m_axis_data_tvalid 输出 输出数据通道tvalid,由内核断言表示它能够提供数据
m_axis_data_tready 输入 输出数据通道tready,由外部主机断言表示它能够接收数据
m_axis_data_tdata 输出 输出数据通道tdata,由内核提供FFT后的数据
m_axis_data_tuser 输出 输出数据通道tuser,由内核提供XK INDEX, OVFLO, BLK EXP信息
m_axis_data_tlast 输出 数据数据通道tlast,由内核断言表示最后一个输出数据

本站由 John Doe 使用 Stellar 1.28.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本"页面"访问 次 | 👀总访问 次 | 🥷总访客