(已删除)FFT -优化的HDL代码生成使用最少的硬件资源
的最小资源FFT块已被移除。使用FFT HDL优化块与体系结构参数设置为破裂基数2
,而不是。有关更多信息,请参见使用FFT HDL优化块为FPGA实现FFT.
过时了
dspobs
HDL最小资源FFT块实现了使用最小硬件资源的FFT体系结构。HDL最小资源FFT块支持基于时间抽取(DIT)的Radix-2算法进金宝app行FFT计算。看到FFT.块以获取关于此算法的更多信息。
由HDL最小资源FFT块返回的结果与FFT块返回的结果是位对位兼容的。由于硬件实现的要求,HDL最小资源FFT块的操作与FFT块不同。HDL最小资源FFT块:
需要串行输入
生成串行输出
在突发I/O模式下操作
HDL最小资源FFT块提供握手信号以支持这些功能。金宝app
输入端口是:
喧嚣
:输入数据信号。需要一个复杂的信号。
开始
:布尔控制信号。当这个信号被断言为真(1)时,HDL最小资源FFT块开始对数据帧进行处理。
输出端口是:
dout
:数据输出信号。具有DIT算法的RADIX-2通过线性排序产生输出。
Dovalid.
:布尔控制信号。HDL最小资源FFT块断言此信号TRUE(1)当有效输出数据的突发时dout
港口。
准备好
:布尔控制信号。HDL最小资源FFT块断言此信号TRUE(1)表示它已准备好处理新帧。
为了有效地部署HDL最小资源FFT块的硬件,必须仔细考虑块的输入和输出数据流的时间。系统时钟与时钟之间的时间关系如下图所示开始
,准备好
, 和Dovalid.
信号。
什么时候准备好
断言,开始
信号(有效高)触发块。高周期的开始
信号不会影响块的行为。
一个时钟周期后开始
触发器,块开始加载数据和准备好
信号是困难的。在块加载,处理和输出数据时的间隔期间,准备好
是低的开始
信号被忽略。
的Dovalid.
在处理完成后,N个时钟周期(其中N是FFT长度)的信号被断言是高的。准备好
在n点FFT输出发出后再次断言。
表达方式Tcycle
表示HDL最小资源FFT块完成长度为N的FFT所需的时钟周期总数。Tcycle
定义如下:
哪里n> 8
Tcycle = 3n / 2-2 + log2(n)*(n / 2 + 3);
其中N = 8
Tcycle = 3N/2-1 +log2(N)*(N/2+3);
给予Tcycle
然后,您可以定义HDL最小资源FFT的断言之间的句点开始
以适合您的应用程序的方式发出信号。例如:
if (N<=8) startLen = (cstr (Tcycle/N)+1)*N; / /循环周期else startLen = cstr (Tcycle/N)*N;结束
使用这个startLen
变量作为驱动HDL最小资源FFT块的脉冲发生器的周期开始
输入。
HDL最小资源FFT块断言和降低准备好
和Dovalid.
自动信号。将这些信号路由到您的设计的部件,以便从HDL最小资源FFT块写入和读取。
FFT长度
默认值:8
FFT长度必须是2的功率,在2范围内3... 216.
舍入模式
默认值:地面
HDL最小资源FFT块支持FFT块的所有舍入模式。金宝app看到也FFT.块引用部分。
溢出模式
默认值:饱和
HDL最小资源FFT块支持FFT块的所有溢出模式。金宝app看到也FFT.块引用部分。
正弦表
默认值:与输入的字长相同
选择如何指定SINE表的值的单词长度。正弦表值的分数长度等于单词长度减1。
当你选择与输入的字长相同
,则正弦表值的字长与输入块的字长相匹配。
当你选择指定字长
,您可以在位中输入正弦表值的单词长度正弦表字长字段。正弦表值不服从舍入模式和溢出模式参数;他们总是饱和和圆最近的
.
产品输出
默认值:同样作为输入
使用此参数指定要指定产品输出字和分数长度的方式:
当你选择同样作为输入
,这些特征与输入块的特征相匹配。
当你选择二进制点缩放
,您可以输入产品输出的单词长度和分数长度,以位产品字长和产品部分的长度字段。
蓄电池
默认值:同样作为输入
使用此参数指定如何指定累加器单词和分数长度:
当你选择与产品产量相同
,这些特性与产品输出的特性匹配。
当你选择同样作为输入
,这些特征与输入块的特征相匹配。
当你选择二进制点缩放
,您可以输入累加器的单词长度和分数长度,以位蓄电池字长和蓄电池部分的长度字段。
输出
默认值:同样作为输入
选择如何指定输出单词长度和分数长度:
当你选择同样作为输入
,这些特征与输入块的特征相匹配。
当你选择二进制点缩放
,可以输入单词长度和输出的分数长度,以位为单位输出字长和输出部分的长度字段。
请注意
HDL FFT块在蝶形输出上跳过两种操作,用于定点信号。
HDL Coder™提供了影响HDL实现和合成逻辑的其他配置选项。
此块具有单个默认的HDL体系结构。
ConstrainedOutputPipeline | 通过在您的设计中移动现有延迟,在输出时放置的寄存器数量。分布式流水线不会重新分配这些寄存器。默认为 |
InputPipeline | 输入管道级的数量以插入生成的代码。分布式流水线和约束输出流水线可以移动这些寄存器。默认为 |
OutputPipeline | 输出流水线阶段以生成的代码插入。分布式流水线和约束输出流水线可以移动这些寄存器。默认为 |