IP接口 (ip接口是什么意思啊)(1分钟之前已更新)
335
2022-11-08
Xilinx快速傅立叶变换接口及仿真测试实验设计
1 xilinx FFT IP介绍
Xilinx快速傅立叶变换(FFT IP)内核实现了Cooley-Tukey FFT算法,这是一种计算有效的方法,用于计算离散傅立叶变换(DFT)。
1)正向和反向复数FFT,运行时间可配置。
2)变换大小N = 2m,m = 3 – 16
3)数据采样精度bx = 8 – 34
4)相位系数精度bw = 8 – 34
5)算术类型:
°无标度(全精度)定点 °定标定点 °浮点数
6)定点或浮点接口
7)蝴蝶后舍入或截断
9)可选的运行时可配置转换点大小
10)可扩展的定点核心的运行时可配置扩展时间表
11)位/数字反转或自然输出顺序
12)用于数字通信系统的可选循环前缀插入
13)四种架构在内核大小和转换时间之间进行权衡
15)有四种运算架构可供选择
2 FFT IP接口介绍
图1 xilinx FFT IP
1)AXI4-Stream 介绍
图2 AXI4-Stream时序图
图2显示了在AXI4-Stream通道中的数据传输。TVALID由通道的源(主)端驱动,而TREADY由接收器(从属)驱动。TVALID指示有效负载字段(TDATA,TUSER和TLAST)中的值有效。TREADY表示从机已准备好接收数据。当一个周期中的TVALID和TREADY均为TRUE时,将发生传输。主机和从机分别为下一次传输分别设置TVALID和TREADY。
2)s_axis_config_tdata接口介绍
s_axis_config_tdata接口携带配置信息CP_LEN,FWD / INV,NFFT和SCALE_SCH。
NFFT(变换的点大小):NFFT可以是最大变换的大小或任何较小的点大小。例如,1024点FFT可以计算点大小1024、512、256等。NFFT的值为log2(点大小)。该字段仅在运行时可配置的转换点大小时出现。
CP_LEN(循环前缀长度):从转换结束起,在输出整个转换之前,最初作为循环前缀输出的样本数。CP_LEN可以是小于点大小的从零到一的任何数字。该字段仅在循环前缀插入时出现。
FWD_INV:指示是执行前向FFT变换还是逆向FFT变换(IFFT)。当FWD_INV = 1时,将计算前向变换。如果FWD_INV = 0,则计算逆变换。
SCALE_SCH伸缩时间表:对于突发I / O架构,伸缩时间表由每个阶段的两位指定,第一阶段的伸缩由两个LSB给出。缩放比例可以指定为3、2、1或0,代表要移位的位数。N = 1024,Radix-4 Burst I / O的示例缩放计划是[1 0 2 3 2](从最后阶段到第一阶段排序)。对于N = 128,Radix-2 Burst I / O或Radix-2 Lite Burst I / O,一个可能的扩展时间表是[1 1 1 1 0 1 2](从最后阶段到第一阶段排序)。对于流水线I / O架构,从两个LSB开始,每两对Radix-2级用两位指定扩展时间表。例如,N = 256的缩放时间表可以是[2 2 2 3]。当N不是4的幂时,最后一级的最大位增长为一位。例如,对于N = 512,[0 2 2 2 2]或[1 2 2 2 2]是有效的缩放时间表,但是[2 2 2 2 2]无效。对于此变换长度,SCALE_SCH的两个MSB只能为00或01。此字段仅可用于缩放算法(非缩放,块浮点或单精度浮点)。
s_axis_config_tdata接口格式:
1.(可选)NFFT加填充
2.(可选)CP_LEN加填充
3.前转/后转
4.(可选)SCALE_SCH
举例:
内核具有可配置的转换大小,最大大小为128点,具有循环前缀插入和3个FFT通道。内核需要配置为执行8点变换,并在通道0和1上执行逆变换,并在通道2上执行前向变换。需要4点循环前缀。这些字段采用表中的值。
这给出了19位的向量长度。由于所有AXI通道必须与字节边界对齐,因此需要5个填充位,从而s_axis_config_tdata的长度为24位。
3)相关标志信号
FFT的长度选择8点,x输入序列为x=[1,2,3,4,5,6,7,8];
clear allclose allclc x = [1,2,3,4,5,6,7,8];y =fft(x,8);realy=real(y);imagy=imag(y);
Y的实部输出为realy=[36,-4,-4,-4,-4,-4,-4,-4];
Y的虚部输出为imagy=[0,9.6569,4,1.6569,0,-1.6569,-4,-9.6569];
1)IP的设置
2)仿真顶层
3)仿真结果
Vivado最终的仿真结果为
Real=[36,-4,-4,-4,-4,-4,-4,-4];
Imag=[0,-10,-4,-2,0,1,4,9];
与matlab的计算结果相比实部一样,除虚部因为数据位的取舍问题以外,正数和负数部分顺序相反。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~