新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 用FPGA實現音頻采樣率的轉換

        用FPGA實現音頻采樣率的轉換

        作者: 時間:2010-02-26 來源:網絡 收藏

        因為Synplify DSP中的折疊功能還支持多速率系統,所以與只有一種采樣頻率的系統相比,您可以進一步減少所需乘法器的數量。過采樣使用兩個FIR濾波器完成。這兩個濾波器以不同的采樣頻率運行。以較高采樣頻率運行的濾波器可以用您指定的折疊系數進行折疊。

        以較低采樣頻率運行的濾波器用相對較高的系數折疊。獲得此系數的方法是用兩個濾波器的采樣頻率之差乘以折疊系數。例如,如果一個濾波器的采樣頻率是另一濾波器的8倍,則較快的濾波器用系數 8折疊,而較慢的濾波器用系數6?折疊。

        這樣甚至可能生成以通常不能折疊的很高運行的空間優化電路。例如,如果系統以 200MHz運行并使用折疊系數2,那么系統頻率就可以提高到400MHz。

        您還可以將折疊系數定義為1。以最高運行的電路元件不折疊。但是,以較低采樣頻率運行的多速率系統的所有電路元件都可從折疊和空間優化實現中受益。您只需將系統作為整體為其定義折疊系數即可。然后,折疊會自動傳播到所有采樣頻率。

        可以把折疊功能與另一優化功能-重定時功能結合起來使用。如果系統不滿足目標頻率要求,可以增加流水線級數,直到獲得所需速率。這種做法對于使用高折疊系數的電路尤為重要,因為這類電路需要以相對較高的系統速度工作。

        您還可以為折疊很少或沒有折疊的電路使用重定時,除非已經達到的性能極限。可以通過增加流水線級數來減少兩個寄存器之間組合邏輯門的數量(邏輯級數),這樣可以提高系統時鐘速度。

        在生成RTL代碼時,Synplify DSP工具將進行時序分析,它會考慮所需的采樣頻率、折疊系數和的目標架構。例如,與在較慢的低成本Spartan-3A DSP 中實現的完全相同的電路相比,可以使用較少的流水線級數優化映射到快速Virtex-5 FPGA的電路。

        可以用 FPGA提供的大量寄存器進行這種優化。寄存器可以大量使用,不像乘法器或LUT(查找表)那樣很快會用光,這意味著可以使用寄存器輕而易舉的顯著提高系統時鐘速度。

        當然,增加流水線級數會增加系統延遲。例如,如果使用重定時系數8,計算結果就會遲8個系統時鐘周期(不是采樣頻率周期)出現在FPGA的輸出上。向系統中嵌入電路時必須考慮到這一點(圖6)。

        6.jpg
        圖6:可以使用重定時功能為電路定義允許的最大延遲。然后由Synplify DSP自動增加流水線級數,直到獲得所需頻率。

        特別重要的是,務必確保上述優化不會影響Simulink中描述的原始MATLAB模型。通過驗證可以對算法進行鑒定,并且對量化效應的影響予以表述。Synplify DSP軟件模塊集允許使用截斷(去除無關位)、四舍五入(在下溢情況下)或飽和(在上溢情況下)進行從浮點到定點的。一旦仿真顯示算法工作正常,即可生成RTL代碼。優化VHDL或Verilog代碼可能改變延遲,但不會改變電路的操作。

        本文小結

        Synplify DSP工具基于MathWorks公司推出的行業標準MATLAB/Simulink軟件。模塊集提供的標準元件庫可用于實現復雜算法。除了加法、增益和延遲等基本元件,該庫還包含FIR或IIR濾波器等許多復雜功能和CORDIC算法。所有功能(包括高度復雜的FFT或Viterbi解碼器)均可任意參數化。還可以創建用戶定義庫,或者將現有的VHDL或Verilog代碼集成到Simulink模型中。

        用Synplify DSP可以實現單速率和多速率系統。使用折疊、多通道化或重定時功能可以針對尺寸或速度優化代碼。生成的RTL代碼都是未加密的通用代碼,可以使用常用工具進行綜合。

        為了用FPGA取得最佳結果,Synplicity推薦使用Synplify Pro綜合工具。目前針對ASIC的開發環境也已經推出。


        上一頁 1 2 3 4 下一頁

        關鍵詞: FPGA 音頻 采樣率 轉換

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 德钦县| 开封县| 兰坪| 金阳县| 册亨县| 慈溪市| 罗城| 高淳县| 比如县| 东丰县| 甘谷县| 锡林郭勒盟| 遵化市| 浏阳市| 桂平市| 大邑县| 买车| 和静县| 日喀则市| 安顺市| 中牟县| 绥芬河市| 吉安县| 诸暨市| 剑川县| 江油市| 长乐市| 阜城县| 彝良县| 上杭县| 会宁县| 绥江县| 宿迁市| 拉萨市| 安仁县| 华阴市| 三都| 军事| 陈巴尔虎旗| 康定县| 安宁市|