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這個參數的設置講解完畢。

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM