Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)

这篇具有很好参考价值的文章主要介绍了Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IP配置

  • Configuration
    • 配置通道数和FFT长度
    • 时钟频率以及数据吞吐速率
    • FFT的结构选择
      • Srteaming , 可以对数据进行流水处理
      • Radix-4 , 基4的迭代算法,使用资源比流水线结构多,但是转换时间长
      • Radix-2, Radix-2 lite 都为基2的迭代算法,Radix-2 lite的资源占用更少,但是转换时间也更长。
    • Run Time configuration transform length

可以动态改变配置信息。

Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)

  • Implementation
    • Data format(数据格式)
      • 定点数或者浮点数
    • Scaled option(缩放选项)
      • Unscaled : 所有整数位的数据输出。这可以使用更多的FPGA资源。
      • Scaled     : 截取数据域输入数据位宽相同
      • Block Floating-Point  : 这种方式确定要充分利用可用的动态范围需要多大的缩放,并以块指数的形式报告缩放因子。
    • Rounding Modes
      • 截位方式:Truncation ,收敛截位。收敛舍入如果该数是奇数则向上舍入,如果该数是偶数则向下舍入
    • Precision(精度)
      • 数据输入位宽
      • 相位因子位宽:该位宽越大输出噪声越小,但是占用资源越多
    • Control Signals
      • 时钟使能信号
      • 复位信号
    • Output Ordering
      • 输出数据选择是位/数字反转顺序或自然顺序。基于Radix-2的体系结构(流水I/O、Radix-2 Burst I/O和Radix-2 Lite Burst I/O)提供了位反转排序,基于Radix-4的体系结构(Radix-4 Burst I/O)提供了数字反转排序。对于流水I/O架构,选择自然顺序输出顺序会增加内核使用的内存。对于Burst I/O体系结构,选择自然顺序输出会增加整体转换时间
    • Optional Output Fields
      • XK_INDEX 输出数据的通道数,也即是XK 的下标,
      • OVFLO 标识数据输出通道和状态通道。
    • Throttle Schemes
      • 实时模式通常提供更小、更快的设计,但对何时必须提供和使用数据有严格的限制。非实时模式没有这样的限制,但设计可能更大、更慢。更多细节请参见控制FFT核心。

Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)

  • Detaild implementation
    • Memory option
      • 选择数据存储的存储器类型
    • Optimize options
      • Complex multipliers
        • Use CLB logic: 所有的复乘法器都是用片逻辑构造的。这适用于性能要求较低的目标应用程序,或DSP片较少的目标设备。
        • Use 3-multiplier structure: 所有复杂乘法器都使用三实乘、五加减结构,其中乘法器使用DSP片。这减少了DSP片数,但使用了一些片逻辑。该结构可以利用DSP片预加器,减少或消除对额外片逻辑的需要,提高性能。
        •  Use 4-multiplier structure : 所有的复数乘法器都使用四个实数乘法,两个加减法结构,利用DSP片。这种结构以牺牲更多专用乘法器为代价获得了最高的时钟性能。在有DSP片的设备中,加/减操作在DSP片中实现。

Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)

s_axis_config_tdata(配置信息)

  • FWD/INV
    • 0 时做FFT, 1时做逆FFT
  • NFFT
    • FFT的点数,The value of NFFT is log2 (point size),例NFFT=3时。做8点FFT
  • CP_LEN
    • 循环前缀长度:在整个变换输出之前,从变换结束开始作为循环前缀初始输出的样本数量。CP_LEN可以是小于点大小的0到1之间的任何数字。此字段仅在循环前缀插入时出现。
  • SCALE_SCH
    • 当FFT核被配置为处理浮点数据时,不需要伸缩计划(SCALE_SCH被忽略)。浮点数据的规范化和缩放在内部处理。
    • 对于Burst I/O架构,伸缩调度为每个阶段指定两个比特,第一个阶段的伸缩由两个lsb给出。缩放可以指定为3、2、1或0,这表示要移位的比特数。N =1024,基数-4突发I/O的扩展调度示例为[1 02 3 2](从最后一级到第一级排序)。对于N =128, Radix-2突发I/O或Radix-2 Lite突发I/O,一种可能的扩展计划是[1 1 1 1 1 0 12](从最后一级到第一级排序)。
    • 对于流水I/O体系结构,伸缩调度为每一对基数-2阶段指定两个比特,从两个lsb开始。例如,N = 256的伸缩调度可以是[2 2 2 3]。当N不是4的幂时,最后阶段的最大比特增长为1位。例如,对于N = 512,[0 2 2 2]或[1 2 2 2 2]是有效的伸缩调度,但[2 2 2 2 2]是无效的。对于这个转换长度,SCALE_SCH的两个msb只能是00或01。此字段仅在缩放算术(非缩放、块浮点或单精度浮点)时可用。

仿真结果

信号输入输出:

信号

方向

定义

s_axis_config_tdata

in

 配置参数

s_axis_config_tvalid

in

s_axis_config_tready

out

s_axis_data_tdata

in

输入数据(复数)

s_axis_data_tvalid

in

数据有效信号

s_axis_data_tready

out

s_axis_data_tlast

in

标识每帧的最后一个数据

m_axis_data_tdata

out

数据输出(复数)

m_axis_data_tuser

out

输出数据的下标

m_axis_data_tvalid

out

数据有效

m_axis_data_tready

in

m_axis_data_tlast

out

标识最后一个数据

event_frame_started

out

当开始处理一个新帧时,该事件信号被断言为单个时钟周期。这个信号允许你计算帧数,并在需要时将核心的配置同步到特定的帧。

event_tlast_unexpected

out

当没有接收到一帧的最后一个数据而s_axis_data_tlast拉高时,这表明输入数据的长度与IP核预设的数据不匹配,输入数据长度小于预设的长度

event_tlast_missing

out

当接收到一帧的最后一个数据而s_axis_data_tlast没有拉高时,这表明输入数据的长度与IP核预设的数据不匹配,输入数据长度大于预设的长度

event_status_channel_halt

out

每当核心需要向data Output通道写入数据,但由于通道中的缓冲区已满而无法写入时,都会断言此事件。当发生这种情况时,核心处理将停止,所有活动将停止,直到通道缓冲区中有可用空间为止。框架没有损坏。

事件引脚仅在非实时模式下可用。

event_data_in_channel_halt

out

当IP核需要来自数据输入通道的数据但没有可用数据时,在每个周期断言此事件。

event_data_out_channel_halt

out

每当核心需要向Status通道写入数据,但由于通道上的缓冲区已满而无法写入时,都会断言此事件。当发生这种情况时,核心处理将停止,所有活动将停止,直到通道缓冲区中有可用空间为止。框架没有损坏。事件引脚仅在非实时模式下可用。

FFT仿真结果

Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)

时钟频率为160M,正弦波频率为160M/8=20M,FFT(128点)之后在第16根谱线达到最大值,频率为160M/128*16=20M。

Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)

当输入一个负频时,代表的频率为160M/128*(128-112)= -20M

Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)

IFFT仿真结果

         将参数FWD/INV置1就变成了IFFT运算,将IP核配置为IFFT模式,将前面的输出作为IFFT的输入进行仿真,

Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)

        输出的正弦信号个周期占据8个160M的时钟,说明该正弦信号的频率为:160M/8=20M,与做FFT输入的信号相同,说明IFFT运算结果正确。

Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)文章来源地址https://www.toymoban.com/news/detail-443595.html

到了这里,关于Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS事件监听两种使用方法

    首先说一下什么是事件监听, 事件监听就是通过某一事物的源对象(当某种事件发生时),然后向监听器传送某种事件对象,监听器里面封装了某种事件信息,接到事件对象后进行某种处理,这就是事件监听。简单来说以学校放课铃作为事物源对象,然后放学 设置事件监听的

    2024年02月09日
    浏览(50)
  • npm使用国内淘宝镜像的方法(两种)

    1、设置淘宝镜像源 2、设置官方镜像源 3、查看镜像使用状态: 如果返回https://registry.npm.taobao.org/,说明配置的是淘宝镜像。 如果返回https://registry.npmjs.org/,说明配置的是淘宝镜像。 1、安装cnpm 2、使用cnpm

    2024年02月11日
    浏览(61)
  • 傅里叶变换音频加入噪声和去除噪声(python二维fft2,ifft2)

    简介 fft (a) [, n, axis, norm] ) 计算一维离散傅立叶变换。 ifft (a) [, n, axis, norm] ) 计算一维逆离散傅立叶变换。 fft2 (a) [, s, axes, norm] ) 计算二维离散傅里叶变换。 ifft2 (a) [, s, axes, norm] ) 计算二维逆离散傅立叶变换。 fftn (a) [, s, axes, norm] 

    2023年04月09日
    浏览(48)
  • Spring+MyBatis使用collection标签的两种使用方法

    目录 项目场景: 实战操作: 1.创建菜单表 2.创建实体  3.创建Mapper 4.创建xml  属性描述: 效率比较: 本文说明了Spring Boot+MyBatis使用collection标签的两种使用方法 1. 方法一: 关联查询 2. 方法二: 嵌套select查询 这里只创建一张表,树结构只有两级,方便学习,多表关联是同样的

    2024年02月09日
    浏览(60)
  • fckeditor编辑器的两种使用方法

    需要的资源包我放我资源里了,不要积分 https://download.csdn.net/download/wybshyy/88245895 首先把FredCK.FCKeditorV2.dll添加到引用 具体方法如下,一个是客户端版本,一个是服务器端版本 客户端版本: 服务器端 先在配置文件里配置好,再把资源包放项目里 appSettings     add key=\\\"FCKeditor:

    2024年02月11日
    浏览(43)
  • hive中case when的两种使用方法

    如下两种的表达效果是一样 方法一: select tm , count(tm) as times from ( select case when single_times = \\\'1\\\' then \\\'one_time\\\' when single_times = \\\'2\\\' then \\\'two_time\\\' when single_times = \\\'3\\\' then \\\'three_time\\\' when single_times = \\\'4\\\' then \\\'four_time\\\' when single_times = \\\'5\\\' then \\\'five_time\\\' else \\\'more_five\\\' end as tm from (select count(userid) si

    2023年04月11日
    浏览(62)
  • 使用JS获取当前地理位置的两种方法

    HTML5 Geolocation API HTML5 Geolocation API是W3C定制的用于获取用户地理位置信息的标准API,它可以使用纯JavaScript来获取用户的GPS坐标信息,这是一种免费的获取位置的方法。 IP定位API 如果HTML5 Geolocation API无法满足需求,可以使用IP定位API来获取用户的位置信息。它可以根据用户IP地址

    2024年02月06日
    浏览(51)
  • vue3中使用base64加密(两种方法)

    Hi,今天分享一个在vue中使用base64对用户名、密码进行加密的小案例。 我们是可以有两种方法的: 1.使用插件:js-base64 2.引入文件。 1.首先我们安装插件 2.项目中引入 3.使用 1.创建utils/base64.js文件夹,复制以下代码 2.在文件中引入该文件 3.使用 抓紧时间练起来吧,兄dei,再不练你

    2024年02月12日
    浏览(47)
  • 两种方法,巧看Mac电脑电池使用情况及健康状况

    在Macbook中电池的健康状况关系到Macbook的使用寿命,所以在Mac电脑中要知道如何查看Macbook电池的使用情况及健康状况,下面分享两种巧看MacBook电池使用情况及健康状况的方法。 方法一、 1、在Macbook屏幕中点击左上角的苹果图标,选择关于本机; 2、在关于本机页面,找到“系

    2024年02月11日
    浏览(35)
  • 磁共振图像处理中 fft1c 和 ifft1c 函数的 Python 实现

    fft1c 和 ifft1c 是 MRI 图像处理的常用函数。通常使用如下的 Matlab 实现 (Michael Lustig,2005) 但笔者在尝试将一个需要使用 ifft1c 函数移植到 Python 中时发现,无论是现有库还是其他现有开源代码很少有 ifft1c 的 Python 实现,Github 中少数的几个实现也和 Matlab 版不同,这给 debug 带

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包