当前位置: 首页 > news >正文

VIVADO IP核整理(二)——FFT

目录

  • IP 核配置
  • IP 核接口
    • s_axis_config_tdata 配置
    • 输入输出端口描述
  • 仿真


参考:FFT IP核 详细介绍
参考:官方文档介绍

IP 核配置

在 IP Catalog 中搜索:Fast Fourier Transform

在这里插入图片描述
在这里插入图片描述

按照上图所示进行配置,下文对配置内容进行详述。

  • Configuration
    • Number of Channels:FFT 通道数,多通道即代表多帧数据同时进行 FFT 计算
    • Transform Length:FFT 长度
    • 当 Architecture Choise 选择 Automatically Select 时,Target Clock Frequency(期望的时钟频率)和 Target Data Throughput(期望的数据吞吐量)这两个参数用于确定使用的 FFT 架构
    • 四种 FFT 架构
      • Pipelined Streaming I/O:支持连续的数据流处理,具有最高的处理速度,但资源占用也最多。适用于对实时性要求高的应用
      • Radix-4 Burst I/O:资源占用比上级少,处理速度比上级慢
      • Radix-2 Burst I/O:资源占用比上级少,处理速度比上级慢
      • Radix-2 Lite Burst I/O:资源占用最少,但处理速度最慢。适用于对性能要求不高且资源非常有限的场景。
    • Run Time Configurable Transform Length:勾选后,可通过设置 s_axis_config_tdata 中 NFFT 字段的长度来改变 FFT 长度(需小于 Transform Length)
  • Implementation
    • Data Format:可选定点或浮点
    • Scaling Options:在 Radix-4 架构下,每经过一级蝶形运算,值会出现 3bit 的增长;Radix-2 则会出现 2bit 的增长,为避免溢出或资源浪费,需设置缩放模式
      • Scaled(缩放):可通过配置缩放因子控制每一级的缩放情况
      • Unscaled(未缩放):不对数据进行缩放,输出数据位宽会在计算过程中增长
      • Block Floating Point(块浮点缩放):在每个计算阶段动态调整缩放因子,相比于 Scaled 模式,块浮点模式会增加资源使用
    • Rounding Modes:Truncation(截断)、Convergent Rounding(收敛舍入,精度高但资源消耗大)
    • ACLKEN(使能信号)
    • ARESETn(复位信号)
    • Output ordering:
      • Natural Ordering:输出按顺序排列,已处理过
      • Bit/Digit Reversed Order:对于 8 点 FFT,输出顺序为 0、4、2、6、1、5、3、7,需自行后续处理
    • XK_INDEX:频谱索引
    • OVFLO:溢出指示信号
    • Throttle Scheme(节流方案):可选择 Non Real Time(非实时)或者 Real Time(实时)

IP 核接口

s_axis_config_tdata 配置

在这里插入图片描述

字段触发条件定义
NFFT勾选 Run Time Configurable Transform Length位宽 5 bit,数值为 log2(FFT点数)
CP_LEN勾选 Cyclic Prefix Insertion循环前缀长度
FWD/INV必选1 为 FFT,0 为 IFFT,每个 bit 对应一个 FFT 通道,第一通道放在最低位
SCALE_SCHScaling Options 选择 scaled 时配置缩放因子,具体方法见下文
PAD自动触发用于 8bit 对齐,当比特数不足 8 时,用零补齐

SCALE_SCH 配置方法:

  • 基于 Radix-2 架构,蝶形运算的阶数为 log₂(N),基于 Radix-4 和 Pipelined Streaming I/O 架构,蝶形运算的阶数为 log₄(N)
  • 对于 Radix-2 和 Radix-4 架构,为每一阶配置一个缩放因子,因子可选 3/2/1/0,每个因子占 2bit
  • 因子 3 对应缩放 1/8;因子 2 对应缩放 1/4;因子 1 对应缩放 1/2,一般而言,总放缩系数为 1/N
  • 例如,对应 Radix-4 架构的 128 FFT点数,位宽为 2 * ceil( log₄(N) ) = 8,缩放因子可以设置为 [1,2,2,2],高阶放在高位

输入输出端口描述

在这里插入图片描述

端口方向定义
s_axis_config_tdataIN配置数据
s_axis_config_treadyOUT表示已准备好接收配置数据
s_axis_config_tvalidIN表示配置数据输入有效
s_axis_data_tdataIN输入数据,[31:16]为虚部,[15:0]为实部
s_axis_data_tlastIN表示输入结束,当 N 点数据输入完后置高
s_axis_data_treadyOUT为高时表示 FFT 模块可以接收数据
s_axis_data_tvalidIN表示数据输入有效
m_axis_data_tdataOUT输出频谱数据,[31:16]为虚部,[15:0]为实部
m_axis_data_tlastOUT表示输出结束,当 N 点数据输出完后置高
m_axis_data_treadyIN表示从设备已准备好数据接收
m_axis_data_tvalidOUT表示数据输出有效

仿真

  • s_axis_config_tdata = 16’b10101001_1_0000000; 高八位是缩放因子,低八位是 FWD/INV 和用于补齐的零,如果不使用缩放因子的话,将其配置为 8’b0000_0001
  • s_axis_data_tdata [31:16]为虚部,[15:0]为实部,均为有符号数

在这里插入图片描述

  • 输入信号是频点为 2MHz的单载波,采样率是 64MHz
  • s_axis_data_tvalid 要与第一个信号输入的同时拉高,在最后一个信号输出后拉低
  • s_axis_data_tlast 是在最后一个信号的所在时钟周期拉高

在这里插入图片描述

  • m_axis_data_tuser 是频谱索引,m_axis_data_tuser * fs / N 为真实的频点,即 4 * 64M / 128 = 2MHz,与输入设置的相符

相关文章:

  • win11下pip安装matplotlib超时的问题解决
  • Android 10.0 SharedPreferences in credential encrypted storage are not avai
  • 《Python星球日记》 第46天:决策树与随机森林
  • 做 iOS 调试时,我尝试了 5 款抓包工具
  • 从图灵机到量子计算:逻辑可视化的终极进化
  • 动态规划之回文串问题
  • 『深夜_MySQL』数据库操作 字符集与检验规则
  • 格式工厂:一站式多媒体文件转换专家
  • 【MATLAB源码-第277期】基于matlab的AF中继系统仿真,AF和直传误码率对比、不同中继位置误码率对比、信道容量、中继功率分配以及终端概率。
  • 分布式-基于数据库排他锁
  • RFID电子标签(芯片)及RFID射频识别技术深度解析
  • 软件工程学概述
  • 加速页面加载的全流程优化策略
  • 【MySQL】C语言访问数据库
  • 解锁 AI 生产力:Google 四大免费工具全面解析20250507
  • (2025,AR,NAR,GAN,Diffusion,模型对比,数据集,评估指标,性能对比)文本到图像的生成和编辑:综述
  • Rust 与 Golang 深度对决:从语法到应用场景的全方位解析
  • 【HarmonyOS 5】鸿蒙中常见的标题栏布局方案
  • 深入探索 Spark RDD 行动算子:功能解析与实战应用
  • 张正友相机标定方法中标定板角点检测算法原理(Harris和Shi-Tomasi角点检测算法)
  • 阚吉林任重庆市民政局党组书记,原任市委组织部主持日常工作的副部长
  • 总导演揭秘十五运会闭幕式:赴一场星辰大海之约
  • 婚姻登记“全国通办”首日,上海虹口登记中心迎来“甜蜜高峰”
  • 警方通报男子地铁上拍视频致乘客恐慌受伤:列车运行一度延误,已行拘
  • 广西钦州:坚决拥护自治区党委对钟恒钦进行审查调查的决定
  • 华泰柏瑞基金总经理韩勇因工作调整卸任,董事长贾波代为履职