1. 程式人生 > >【 FPGA 】FIR濾波器的取樣速率與系統時鐘速率不同時的資源消耗分析

【 FPGA 】FIR濾波器的取樣速率與系統時鐘速率不同時的資源消耗分析

目錄

 

MATLAB操作

Vivado操作



MATLAB操作

在matlab中命令視窗中輸入:filterDesigner,設計如下引數的帶通濾波器;

在左側第三個功能設定:Set quantization parameters,選擇Filter arithmetic為Fixed-point,由於只是測試,引數保持預設即可。

在選單欄中選擇targets,展開選擇生成Xilinx的coe檔案:(自己選擇路徑,命名)



Vivado操作

需要設計的FIR的係數檔案搞定了,下面進入Vivado進行IP核設計:

簡單的建立一個Vivado工程,這些都無關緊要,隨便建立一個工程,然後按照下圖的方式建立一個IP核:

雙擊FIR compiler,進入初始頁面如下:

在濾波器係數(Filter Coefficients)下面選擇(select sources)為COE File,然後新增你的coe檔案,也就是上面用matlab生成的係數檔案,載入進去:

之後,其他基本不需要改,當然到具體的設計中,可以根據需求自己改,這裡改下采樣速率以及時鐘頻率等:

然後我們看下消耗的資源情況:(輸入時鐘為10MHz,時鐘週期為300MHz的情況)

改變下時鐘速率為100MHz,取樣速率不變的情況:

可見,消耗的資源:dsp slice竟然多了!

再試:這次改為取樣速率不變,時鐘速率為10MHz,和取樣速率一致,結果如下:

可見,消耗的資源更多了。

這裡我們可以得出初步的結論了,那就是如果系統時鐘速率降低,那麼消耗的資源就越多,反之,時鐘速率增高,那麼消耗的資源就越少。


我們在這裡在提出一個問題,為什麼消耗的資源是DSP slice資源?

由於使用的SMAC架構:

查詢資料手冊有如下這句話:

該體系結構直接由DSP片支援,從而實現了區域高效和高效能的過濾器實現。該結構還擴充套件到利用係數對稱,從而進一步節省資源。

原文如下:

也可以見我的博文:【 FPGA 】FIR 濾波器的架構

暫時記錄到這裡,下篇博文分析下SMAC結構到底是怎麼工作的?