用FPGA實現FIR濾波器(08-100)
——
接下來要做的事是決定使用多少個乘法器。對于最快的速度,乘法器的數目等于FIR濾波器中抽頭的數目。這種類型的濾波器完全用并行形式來實現。然而在許多情況下,并不需要性能的級別,允許乘法器時間共享。一種快速計算揭示了使用的乘法器的數目。首先做一個簡化,以采樣率除速度,你認為適中的復雜設計可以運行于所選的FPGA,然后對這個數進行四舍五入至最接近的整數。通過這個計算因子,可以減少乘法器的數目。作為一個例子,假設要在LatticeECP2 FPGA中實現12個抽頭,75MSPS,12位的濾波器。用這個器件,300MHz的濾波器比較容易實現,減少因子為4,需要3個乘法器。
本文引用地址:http://www.czjhyjcfj.com/article/91694.htm在做出最后決定之前,要考慮最終的實現。例如,使用Lattice提供的FIR產生器,這個工具用sysDSP塊內的加法樹實現FIR濾波器。因為這個加法樹的范圍是4個乘法器,沒有有效的資源與指定的3個乘法器聯系在一起。此外,如果指定了4個乘法器,設計要求的工作速度會略有降低。
表2 最大采樣率對比用于12個抽頭濾波器的乘法器
現在有了系數,乘法器實現的方法,以及知道需要多少個乘法器。許多供應商,包括Lattice提供自動產生FIR的工具。最后一步是把系數輸入工具,指定乘法器的數目。產生濾波器之后要進行時序分析,確定是否假設的速度是正確的。在使用的例子中,工具報告了350MHz的最大速度,高于假設的300MHz。如果速度非常接近,你應該進行調整并再試。
評論