1. 程式人生 > >VIVADO FIR濾波器設計與仿真(二)

VIVADO FIR濾波器設計與仿真(二)

put tps ilo 用法 ilog ril [ ] 技術 仿真

VIVADO FIR濾波器設計與仿真(二)

在VIVADO FIR濾波器設計與仿真(一)中產生了兩路正弦信號,頻率分別為4MHz和5MHz,今天要進行FIR濾波器設計,在進行濾波器設計之前,需要對濾波器的參數進行設置,需要借助MATLAB軟件或者Filter Solutions軟件,這次使用Filter Solutions來進行參數設定。
關於Filter Solutions軟件的使用,這裏有一篇博客比較詳細的介紹了它的用法,可以作為參考:
Filter Solutions之濾波器設計

濾波器參數

產生的兩路正弦信號分別為4MHz和5MHz,混頻之後產生的信號頻率為1MHz和9MHz,首先進行低通濾波設計,我們要把1MHz的信號濾除掉,Filter Solutions軟件參數設置如圖所示:
技術分享圖片


參數設定之後生成頻響圖:
技術分享圖片
查看相關參數並復制參數:
技術分享圖片
技術分享圖片
我們把復制的參數粘貼出來可以看到是下面的格式:
技術分享圖片
[ ]中的數組即為我們需要的參數。

FPGA實現濾波器設計

我們在之前的BD程序中,新建一個fir_compiler IP核
技術分享圖片
雙擊打開進行相關參數設定:
我們把在Filter Solutions軟件中得到的參數復制到圖中紅色框中,在左側Freq.Response中就可以看到頻率響應圖
技術分享圖片
設置好參數之後就可以進行連線操作了,我們將混頻之後的信號送給FIR濾波器,連接好時鐘和tvalid線
技術分享圖片
選中FIR的M_AXIS_DATA引腳,右鍵make external連接管腳,也可以將兩路正弦信號連接出來進行觀察,連接好之後,valid design沒有錯誤就OK了
返回到source界面,右鍵菜單中選中generate output products,更新頂層文件。
技術分享圖片


更新之後就可以看到頂層文件中多了一路信號
技術分享圖片

Modelsim仿真

我們將新增的一路濾波信號添加到仿真文件中即可進行仿真

module tb_top(
    );
    reg aclk_0  ;
    wire [31:0]S_0;
    wire[39:0]  M_AXIS_DATA_0_tdata;
    initial 
      begin
         aclk_0 =   1;
      end 
    always  #5  aclk_0  =   ~aclk_0 ;
    
    DSP_TEST_wrapper DSP_TEST_wrapper_i
       (.M_AXIS_DATA_0_tdata(M_AXIS_DATA_0_tdata),
        .aclk_0(aclk_0),
        .S_0(S_0));
endmodule

仿真後添加仿真波形進行查看:
技術分享圖片
可以看到在仿真結果中,低頻信號被濾除了

VIVADO FIR濾波器設計與仿真(二)