利用system generator 生成vivado ip—以低通濾波器舉例


  前段時間自學了matlab和vivado聯合推出的system generator工具,用來做數字信號處理,十分好用且使開發更便捷,下面舉個例子來供大家一起學習下。

首先打開matlab命令行,輸入simulink。注意要先安裝system generator ,這個網上有教程。

然后新建一個model,拖入模塊成我這樣:

一個一個來設置:首先是信號源,采樣率模逆的WCDMA碼速率,為3.84Mcps。                                                然后是Gateway In,這個是IP核的輸入端口,設定如下:

                                                                       

 

 Register保持不變,事實上加不加好像都沒什么影響。

重點是濾波器的設計,先點開FDA tool,設計出一個通帶截止點1MHz,阻帶起始點1.2MHz的低通濾波器。

 然后打開FIR compiler7.2,設置如下:1)輸入xlfda_numerator(‘FDATool’),綁定一個FDATool;2)量化形式選成跟隨FDATool量化,一般都是16bit保持不變。

 

 接着做截斷處理,這一步關系着IP輸出位寬。然后勾選Provide enanle port,這樣就多了個截斷使能信號。

                                                    

 

 默認16bit位寬,濾波器輸出位寬32bit,截斷為16bit,損失了一些精度,但是減小了輸出位寬。如果你想看各模塊的數據位寬,可以點擊model的菜單欄的Display->signals&Ports->Ports Datas type。

然后設置system generator:1)主要找到對應的FPGA芯片型號,只有對應的型號才能調用該IP。2)設計輸入時鍾,為該IP的主時鍾,仿真時鍾設置為3.84MHz。

 

 最終連起來

 

 點擊RUN,進行仿真,看看波形。頻譜儀點紅框可以看到雙邊譜,這里我就看了單邊譜。

 

 結論:因為我的信號源是3.84Mcps的脈沖信號,頻譜無限大,被一個單級低通濾波器限制帶1MHz,阻帶1.2MHz,功率下降了15個dbm,但是濾波器設計的是衰減80個db,看來實際用起來還是有一定差距。

最后還是打開system generator,更改你想存放IP的文件夾,然后點gengerate。就生成了該低通濾波器的IP。

至於如何在vivado中導入IP,網上也是有很多教程,這里就不細說了。

 

 

 

 

 

 

 

                                                                                              

 

 

 

 

  


免責聲明!

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



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