FIR 濾波器(VHDL)

邏輯主頁

程式碼下載

FIR 濾波器(頂層檔案):fir_filter.vhd (3.3 KB)

資料類型(也必須包含在專案中):types.vhd (1.8 KB)

特點

  • FIR 濾波器組件的 VHDL 原始碼
  • 可配置資料輸入大小
  • 可配置係數輸入大小
  • 可配置分接頭數量

介紹

本文詳細介紹了一個用 VHDL 編寫的用於 FPGA 的 FIR 濾波器電路。此元件透過平行介面從使用者邏輯讀取數據流和濾波系數,並輸出濾波結果。此電路使用 Quartus Prime 17.0.0 版本設計。資源需求取決於具體實現。圖 1 展示了整合到系統中的 FIR 濾波器的典型範例。

圖 1. 範例實現

背景

有限脈衝回應(Finite Impulse Response,FIR)濾波器的脈衝回應在有限週期內穩定為零。它們本質上是穩定的,不需要回授。

離散-時間數位化實現的輸出是最近輸入取樣的加權總和。因此,它由卷積計算(Convolution Calculation)定義:

工作原理

FIR 濾波器使用圖 2 所示的架構來計算上述卷積函數。它會查看當前輸入值(顯示在資料連接埠上)和 N 個先前值(總共 N +1 個分接頭)。這些值在每個系統時脈週期內移入,隨後透過數據管線進行移位。

FIR 濾波器也會同步輸入並儲存系數連接埠陣列上顯示的系數。這些值定義了濾波器賦予資料樣本的相對權重。

每個系數與相應的數據取樣相乘。然後,濾波器將所得乘積相加,以得出最終輸出結果。

圖 2. 架構

配置 FIR 濾波器

FIR 濾波器的配置是透過設定 types.vhd 檔案中的常數參數來實現的。表 1 描述了這些參數。這些常數用於定義構成連接埠、內部管線和內部數組的數據類型。

表 1. 常數說明

連接埠描述

表 2 描述了 FIR 濾波器的連接埠。

表 2. 連接埠描述

重置

reset_n 輸入連接埠必須為邏輯高電平,FIR 濾波器組件才能運作。此連接埠上的邏輯低電平會非同步重置元件。重置期間,元件會清除其內部暫存器和輸出結果連接埠。所有輸入連接埠都將被忽略,直到 reset_n 連接埠再次變為高電位。重置解除後,FIR 濾波器立即恢復工作。由於內部數據管線已被清除,因此初始輸出不會包含所有 FIR 濾波器項,直到有足夠的輸入取樣移入以填充管線。

結論

此 FIR 濾波器是一個可編程邏輯元件,可執行離散卷積運算。輸入數據的大小、系數的大小、濾波器的分接頭數量均可配置。