zoukankan      html  css  js  c++  java
  • 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这个参数的设置讲解完毕。

      

     

  • 相关阅读:
    POJ 3268 Silver Cow Party (Dijkstra)
    怒学三算法 POJ 2387 Til the Cows Come Home (Bellman_Ford || Dijkstra || SPFA)
    CF Amr and Music (贪心)
    CF Amr and Pins (数学)
    POJ 3253 Fence Repair (贪心)
    POJ 3069 Saruman's Army(贪心)
    POJ 3617 Best Cow Line (贪心)
    CF Anya and Ghosts (贪心)
    CF Fox And Names (拓扑排序)
    mysql8.0的新特性
  • 原文地址:https://www.cnblogs.com/tanqiqi/p/11359321.html
Copyright © 2011-2022 走看看