xilinx 为用户提供了FFT的闭源核,个人学习对此进行了总结。
图1 fft 核示意图
此核心是xilinx闭源的IP核,其端口如上图所示主要有四个端口和事件报告的event端口,1、数据输入端口S_AXIS_DATA,2、配置端口S_AXIS_CONFIG,3、数据输出端口M_AXIS_DATA,4、状态输出端口M_AXIS_STATUS(scale缩放端口自适应选项使能后会出现)。以及事件报告的event六个端口(默认数量会随配置有一定改变)。
此fft核心是基于ARM的AXI stream协议的总线架构,此架构为数据流的结构,没有对应的具体实际物理地址,而是映射地址,每次完成一次数据流的传输。因此首先对各个端口的作用进行讲解,然后对配置页选项进行详细介绍。
一、端口介绍
1、数据输入端口 (S_AXIS_DATA)
s_axis_data_tdata[31:0] | 数据输入端口 | 低16位 实部数据 高16位 虚部数据(配置页可调整位数) |
s_axis_data_tlast | 数据传送完成标志位 | 最后一个数据传输到来时被拉高一个时钟,标志一次数据传输结束。 |
s_axis_data_tready | 数据输入状态标志位 | 该端口输出拉高表示,fft核做好了数据接收的准备。 |
s_axis_data_tvalid | 输入数据有效标志 | 该端口配合输入数据使用,fft核心判定当该端口拉高时,输入数据为有效数据。 |
2、配置端口(S_AXIS_CONFIG)
此端口用于配置fft工作的:1、快速傅里叶变换的点数 2、正向逆向傅里叶变换(fft or ifft) 3、缩放比例;
s_axis_config_tdata[7:0] | 数据输入端口 | fft配置端口 |
s_axis_config_tready | 数据输入状态标志位 | 该端口拉高表示,fft核做好了配置数据接收的准备。 |
s_axis_config_tvalid | 输入数据有效标志 | 该端口由外设备配合s_axis_config_tdata使用,拉高表示配置数据有效。 |