FFT IP核调用与仿真之SCALE压缩因子设置
关于FFT IP核的配置,网上有很多相关的资料可以参考,但是唯独涉及到scaled压缩因子设置这个参数,资料却非常匮乏,这是个什么参数,应该整么设置,设置后对结果输出会有什么影响,整样才能知道它设置的合理不合理?

先来看一下官方说明手册里关于scaled的说明:

翻译过来就是:对于Pipelined Streaming I/O结构,将临近的一对基2阶组在一起,即阶0和阶1为组0,阶2和阶3为组1,阶4和阶5为组2等等。例如数据长度N=1024,Scale_SCH = [10 10 00 01 11]表示对组0(阶0和阶1)右移位3,对组1(阶2和阶3)右移位1,对组2(阶4和5)没有移位,对组3(阶6和7)右移位2,对组4(阶8和9)右移位2。但是要注意,如果变换长度N不是4的幂次方时,最后一组只包含一个基2阶,只能用00或者01表示,例如数据长度N=512时,Scale_SCH = [10 10 10 10 10]的设置则是无效的,而Scale_SCH = [01 10 10 10 11]的设置就是有效的。对于Scale_SCH的位宽,针对Pipelined Streaming I/O结构和Radix-4,Burst I/O结构,位宽为2*ceil(0.5*log2(N)),对于Radix-2,Burst I/O和Radix-2 Lite,Burst I/O结构,位宽为2*log2(N),其中N为转换数据长度。
1)scaled的作用是什么?
scaled是压缩比例参数,由于多点运算的FFT的计算量比较大,合理设置scaled可以减少资源的消耗;
2)scaled如何设置?
参照数据手册的说明,下面举例说明scaled的设置方法:
设 N=512: 由于变换长度N不是4的幂次方,最后一组只包含一个基2阶,只能用00或者01表示, 设scaled的位宽是8位: XX(阶3) XX(阶2) XX(阶1) XX(阶0)
a、设置 scaled=8'b 00 11 11 11 ----- 赋值合理,表示压缩 2^(3+3+3)=2^9=512 倍 ;
b、设置 scaled=8'b 11 11 11 11 ----- 赋值不合理,最高阶只能是00或者01,不能是11;
设 N=1024: 由于变换长度N是4的幂次方,对最高阶的赋值没有要求,设scaled的位宽是10位:XX(阶4)XX(阶3) XX(阶2) XX(阶1) XX(阶0)
a、设置 scaled=10'b 11 00 11 10 00----- 赋值合理,表示压缩 2^(3+0+3+2+0)=2^8=256倍,但是不提倡这种赋值方式,N点最好压缩N倍,所以1024个点最好压缩1024倍。
b、设置 scaled=10'b10 10 10 10 10 ----- 赋值合理,表示压缩 2^(2+2+2+2+2)=2^10=1024倍 。
对scaled进行赋值之后,IP核的输出结果可进行移位还原为真实值,这样就可以将输出结果放到MATALB等数学工具中,对自己的输出结果进行直观的图示验证。

另外,FFT IP核有ovflo这个信号,可以将它引出来,可以直观在仿真波形中查看自己的scaled是否设置合理,如果设置的数值不够大,ovflo会溢出显示为高电平。

至此,关于scaled这个参数的设置讲解完毕。
FFT IP核调用与仿真之SCALE压缩因子设置的更多相关文章
- FFT IP核调用与仿真之FFT数学分析
对于FFT这个IP核,我其实对它真的是又爱又恨,因为它真的耗费了我太多时间,但是随着研究的深入,遇到的问题一点点给消化解决,终于不用带着问题睡觉了,哈哈,有时候真的挺佩服自己的,遇到不懂的,不了解的, ...
- 从Xilinx FFT IP核到OFDM
笔者在校的科研任务,需要用FPGA搭建OFDM通信系统,而OFDM的核心即是IFFT和FFT运算,因此本文通过Xilinx FFT IP核的使用总结给大家开个头,详细内容可查看官方文档PG109.关于 ...
- Quartus FFT IP核简介
为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. ...
- 实测—fft IP核使用(包括ifft的配置使用)
Vivado xilinx fft9.0 使用笔记: ****注 仿真实测1024点的转换需要经过1148个时钟周期才能得到转换结果: 模块配置信号含义请参考pg109文档手册(写的贼烂会看晕),不详 ...
- FPGA基础学习(1) -- FFT IP核(Quartus)
为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. ...
- QuartusII 13.0 PLL IP Core调用及仿真
有一个多月没用用Quartus II了,都快忘了IP 是怎么用调用的了,还好有之前做的笔记,现在整理出来,终于体会到做笔记的好处. 一. QuartusII的pll的调用 打开软件界面 Tool—— ...
- Xilinx FFT IP核缩放因子说明
以1024点FFT为例, reg [9:0] scale_sch = 10'b11_10_01_01_01; 流水线结构中,将每个基 2 的蝶形处理单元视为一个阶段. 每个阶段进行一次数据的缩减,缩减 ...
- Altera三速以太网IP核快速仿真与使用(上篇)
对于比较高级的ip核,altera一般都会提供仿真案例,网上有关于这个IP核的各种仿真方法,但都比较繁琐,前几日,朋友跟我分享了一个比较快速高效的仿真方法,这个方法也是他摸索折腾了一段时间才总结出来的 ...
- modelsim 独立仿真vivado的IP核及仿真脚本
Modelsim独立仿真vivado的IP 最近一直在做local dimming项目的FPGA硬件实现,算法的其中一步就是直方图统计,即数字图像的某一灰度级的像素数,这个直方图的源码找了半天才搞到, ...
随机推荐
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_08 Map集合_1_Map集合概述
map集合是双列集合 map有两个泛型.左边K也叫作键 右边V是value
- Microsoft SQL Server 2008 R2官方中文版(SQL2008下载)
Microsoft SQL Server 2008 R2官方中文版(SQL2008下载) http://www.2cto.com/database/201308/235349.html
- css 实现渐变
background:-ms-radial-gradient(circle,rgba(0, 0, 0, 0.2),rgba(0,0,0,0)); /* IE 10*/ background: -web ...
- 关于jdbc和数据库连接池的关系(不是封装的关系)
你都说是数据库连接池了.那就是连接数据库用的.JDBC是java封装的对数据库的操作.当然你可以自己进一步封装.数据库连接池是JDBC使用的前提,如果连数据库连接池都没连上,JDBC的操作就谈不上了. ...
- 2 Vue.js基础
1 简易计算器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- windows和linux中查看端口占用情况并kill掉对应进程
好几次在不同的情况下遇到 需要查看端口信息 并且kill掉对应进程的情况 相关的参数总是记不全 在这里记录下 以后查看方便 windows中查看正在使用端口的信息netstat -ano|findst ...
- oracle--表分区、分区索引
--|/ range分区 create table sale( product_id varchar2(5), sale_count number(10,2) ) partition by range ...
- VSL基础
VSL是Virtools提供的一个非常有创意的脚本语言,它以输写代码的方式(区别于Virtools现有的图形化编程界面)进行编程开发,提高了程序的可读性和工作效率. 下图的功能是:将一个3D物体拷贝出 ...
- javascript自定义Map对象
javascript定义map对象开发前端组件的重要性就不过多阐述了,直接参考以下案例即可 <script type=text/javascript charset=utf-8> func ...
- X86平台下用汇编写"HelloWorld"
首先需要安装一个汇编器,我用的是Nasm,这个汇编器在Linux下安装还是很简单的. Nasm下载地址http://www.nasm.us/pub/nasm/releasebuilds/ 在下载之后对 ...