0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一边学习控制FFT IP核,一边学习AXI4-Stream协议

冬至配饺子 来源:Bug记录 作者:woodfan 2023-06-19 14:38 次阅读

FFT IP核的设置

这里做最简单的设置,打开Vivado,点开IP Catalog,找到FFT IP核。设置界面如下:

图片Configuration 设置

设置的参数意义如下:

  • Numbers of Channels: 通道数,FFT IP核可以设置多个数据通道,进行多路FFT操作
  • Transform Length: 传输的数据长度,就是FFT中的点数,决定输出的频谱分辨率
  • Architecture Configuration:如果Architecture Choice选择Automatically Select,IP核会根据你填的时钟频率和数据吞吐量选择适合的架构

图片

Implementation

设置的参数意义如下:

  • Data Format: 数据格式,定点数或浮点数,浮点数不能使用多个通道同时进行FFT操作
  • Scaling Options: 对输出的数据进行等比例缩小,如果选Scaled,则在控制IP核时需要设置缩小比例,详情见: 资料1
  • Input Data Width:输入数据位宽,这里只用输入I,Q一路的位宽,不需要输入组合起来的位宽
  • Phase Factor Width:因为进行FFT 操作涉及乘加操作,肯定会有精度损失,这里可以设置一个合适的值平衡精度和面积的要求。
  • 控制信号:时钟使能跟复位信号,复位信号拉低最少要保持两个时钟周期。
  • Output Ordering: Natural Order输出的频谱数据还要做fftshift,这个跟fft算法流程有关系
  • Optional Output Fields: 输出的索引信号和overflow信号,勾选后这些信息会跟频谱数据一起输出

图片

Detail Implementation

直接默认跳过。

IP核生成后可以看到有很多信号,这些信号代表的意义又是怎么样的。可以在IP核设置界面的左侧Implementation Detail看到下图内容

图片

从图中可以看出:

  • Output Data Width: 输出数据的位宽,当然也是I,Q一路信号的位宽
  • S_AXIS_DATA_TDATA: 这是把时域信号往FFT IP核传输的数据通道,通过图中可以看到,57:32传输Q路信号,25:0传输I路信号。

图片

  • S_AXIS_CONFIG_TDATA: 这是对FFT IP核设置参数内容;图中很明显告知,16:1传输SCALE_SCH信号,这个信号决定输出的数据等比例缩小多少倍,具体参数设置可以看: 资料1的内容;0位传输的控制信号,为1时IP核做FFT运算,为0时做IFFT运算。
  • M_AXIS_DATA_TDATA: 这是FFT输出的频谱数据,从图中可以看到,57:32对应的是虚部数据,25:0对应的是实部数据。

图片

  • M_AXIS_DATA_TUSER: 这个信号根据图中可知,传输的是输出频谱的索引,有一定的作用。这里输出的具体内容根据上述的FFT IP核设置决定

图片

大概的运算时间

这些信号其实都是AXI4-Stream的相关信号

AXI4-Stream协议

除了AXI4-Lite的信号,AXI4-Stream还增加了以下信号:

  • TKEEP:指示信号,指明当前数据数据类型,发送数据方控制该信号;为低电平表明对应字节数据是空字节,可以移除;与TSTRB一同发挥作用,两个信号都是可选非必需信号
    当去掉TKEEP信号,TKEEP视作全高电平
    当去掉TSTRB信号,TSTRB的值等同TKEEP
    两个信号都被选择后作用如下图:
    图片
  • TLAST:指示信号,指明当前是最后一次数据传输,发送数据方控制该信号;只有在最后一次数据传输时该信号会拉高一次,信号一直拉高表明数据都是独立的而不是来自同一个数据包,可选非必需信号;
    发送方(Master)不要求一定要支持该信号
    接受方(Slave)的该信号固定为低电平
  • TID: 指示信号,指明当前数据流的ID,标明不同的数据流,发送数据方控制该信号,可选非必需信号,内容见TLAST;
  • TDEST:指示信号,提供数据流的路由信息,发送数据方控制该信号,可选非必需信号,内容见TLAST;
  • TUSER:可以自定义的数据信息,发送方跟接收方协商好,数据内容根据双方协商确定,起传输辅助信息内容,发送数据方控制该信号,并且跟随发送方的数据流一同发送,双方的TUSER数据位宽确定规则如下:
    MIN(MAX[TUSER bits per byte of masters], MAX[TUSER bits per byte of slaves])
  • TREADY,TDATA也是可选非必需信号;去掉TREADY信号,TREADY视作为高电平;去掉TDATA,TSTRB也被视作去掉

而在FFT IP核中,一共出现了下列信号:

  • s_axis_data: FFT IP核的时域数据输入通道,这个传输过程中,FFT IP核作为接收方(Slave)
  • s_axis_config: FFT IP核的配置数据输入通道,这个传输过程中,FFT IP核作为接收方(Slave)
  • m_axis_data: FFT IP核的频谱数据输出通道,这个传输过程中,FFT IP核作为发送方(Master)

而且,s_axis_config只使用了TDATA,TREADY,TVALID; s_axis_data使用了TDATA,TREADY,TVALID, TLAST; m_axis_data使用TDATA,TREADY,TVALID, TLAST, TUSER;相对来说控制并不复杂;

FFT IP核的控制流程如下:

  1. 配置好s_axis_config_tdata, s_axis_config_tready跟s_axis_config_tvalid握手(都为高)后,配置数据传入;
  2. 等待s_axis_data_tready和s_axis_data_tvalid拉高,通过s_axis_data_tdata传入数据至FFT IP核,等到最后一次数据传输,同时拉高s_axis_data_tlast;
  3. 等待m_axis_data_tvalid和m_axis_data_tready拉高,接收m_axis_data_tdata的数据,m_axis_data_tuser的数据是频谱数据的索引,根据这个索引可以知道当前频谱数据的位置;等到m_axis_data_tlast拉高,数据传输结束。

最终结果图:

图片

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FFT
    FFT
    +关注

    关注

    15

    文章

    438

    浏览量

    59827
  • AXI4总线
    +关注

    关注

    0

    文章

    9

    浏览量

    1421
收藏 人收藏

    相关推荐

    TPA3255有直流输出,一边1V,一边2.2V,是什么原因?

    TPA3255有直流输出,一边1V,一边2.2V。不知是什么原因,电路是参考官方电路。BTL双声道输出
    发表于 10-12 08:05

    TPA3255加了PFFB后一边输出声音很小是什么原因?

    加了PFFB后一边输出声音很小,一边大,不知是什么原因;断开PFFB就没事;另PFFB电阻电容功率耐压要多大的?(现在用的是0805、电容耐压是100V) BTL模式
    发表于 10-12 09:05

    为什么L298n的输出端本来是一边一边低的,

    为什么L298n的输出端本来是一边一边低的,接上直流电机后,两端的电压就变了,就在跳动,0到4.3之间跳动:
    发表于 08-09 14:53

    手机一边充电一边使用对人,手机,电池有哪些危害

    手机一边充电一边使用对人,手机,电池有哪些危害
    发表于 08-04 09:43

    有人有经验AXI4-Stream到视频输出IP吗?

    be experienced AXI4-Stream to Video Out IP core?Is there any special keys I need to pay attention to make
    发表于 03-08 10:00

    请问我对AXI4-Stream FIFO的理解不正确吗?

    嗨,我正在研究Spartan 6的设计。数据来自PCIe IP,频率为62.5MHz,通过AXI4-Stream FIFO同步到100 MHz系统时钟。这是个示例波形;m_axis
    发表于 08-12 07:29

    用UCOS实现一边播放音乐一边触摸,为什么会有卡顿的现象

    用UCOS实现一边播放音乐一边触摸,为什莫播放音乐会有卡顿的现象? 图片中任务是触摸屏,任务二是播放音乐。
    发表于 05-20 09:57

    axi4-stream互连问题如何解决

    你好,大家好。我正在使用EMI14.4和xc6v315t。我正在尝试模拟IP CORE.It的axi4-stream interconnect.I配置ip为6siand 4mi。但是当
    发表于 06-18 15:08

    axi4-stream combiner问题的解决办法?

    AXI4-Streamslave接口上TDATA信号的宽度(以字节为单位)。 AXI4-Stream主接口TDATA宽度是此值乘以从属接口数参数。此参数是个整数,可以在0到(512 /从站接口数)之间变化。设置为0以省略
    发表于 08-20 14:36

    手机如何实现一边充电一边听歌(听)呢

    ,如何实现一边充电一边听歌(听)呢?因此,USB Type-C接口的转接器应时而生了,轻松的实现不同音频插头与音响耳机之间的相互转换,而且一边
    发表于 09-14 08:41

    仅使用一边输出时电路图

    仅使用一边输出时电路图
    发表于 08-04 10:46 522次阅读
    仅使用<b class='flag-5'>一边</b>输出时电路图

    自定义sobel滤波IPIP接口遵守AXI Stream协议

    自定义sobel滤波IP IP接口遵守AXI Stream协议
    的头像 发表于 08-06 06:04 4055次阅读

    关于AXI4-Stream协议总结分享

    XI4-StreamAXI4的区别就是AXI4-Stream去除了地址线,这样就不涉及读写数据的概念了,只有简单的发送与接收说法,减少了延时。由于AXI4-Stream
    的头像 发表于 06-23 10:08 2427次阅读

    AXI4-Stream Video 协议AXI_VDMA的IP介绍

    本文主要介绍关于AXI4-Stream Video 协议AXI_VDMA的IP相关内容。为后文完成使用带有HDMI接口的显示器构建图像视
    的头像 发表于 07-03 16:11 8790次阅读

    AXI4AXI4-Lite 、AXI4-Stream接口

    AXI4种高性能memory-mapped总线,AXI4-Lite是只简单的、低通量的memory-mapped 总线,而 AXI4-Str
    的头像 发表于 07-04 09:40 9011次阅读