用FPGA實(shí)現音頻采樣率的轉換

發(fā)布時(shí)間:2010-2-7 17:30    發(fā)布者:bakedham
關(guān)鍵詞: FPGA , 采樣 , 音頻
如今,即使低成本FPGA也能提供遠遠大于DSP的計算能力。目前的FPGA包含專(zhuān)用乘法器甚至DSP乘法/累加(MAC)模塊,能以550MHz以上的時(shí)鐘速度處理信號。

不過(guò),直到現在,音頻信號處理中還很少需要用到這些功能。串行實(shí)現千赫級音頻算法使用的資源與數百兆赫級信號處理所需的完全相同。

因此,像PLD和FPGA這類(lèi)可編程邏輯元件很少用來(lái)處理低頻信號。畢竟,與基于傳統DSP的實(shí)現相比,用硬件并行處理數??算無(wú)益可言;對于如此低的采樣率,大多數串行DSP實(shí)現都是綽綽有余。其實(shí),音頻應用所含乘法運算之多曾使其只能使用很大的FPGA實(shí)現。因此,用DSP實(shí)現低采樣率音頻應用曾經(jīng)比使用大型FPGA更有效――成本較低,而且有成熟的軟件支持。

Synplicity公司最近推出的Synplify DSP綜合工具可以將具有大量乘法運算和低采樣率的算法有效地映射到FPGA中的專(zhuān)用DSP模塊上。該工具基于MathWorks公司推出的十分普及的 MATLAB和Simulink工具。

算法先用專(zhuān)用模塊集或專(zhuān)有的“M”腳本語(yǔ)言描述定義,然后轉換成RTL硬件描述語(yǔ)言。該模塊集允許單速率和多速率實(shí)現。它不僅能生成VHDLVerilog代碼,還可以處理定點(diǎn)量化、流水線(xiàn)和環(huán)路展開(kāi)這類(lèi)任務(wù),并且能連接到 Simulink開(kāi)發(fā)環(huán)境中的模塊集進(jìn)行仿真(見(jiàn)圖1)。


圖1:在 MATLAB/Simulink中實(shí)現、量化并驗證模型。Synplify DSP工具可以將模型轉換成RTL代碼,并針對空間或速度對這些代碼進(jìn)行優(yōu)化。

應用示例:采樣率轉換

下面以音頻采樣率轉換器作為實(shí)例加以說(shuō)明。這種轉換器可以將信號從一種采樣率轉換成另一種采樣率,而對信號的影響極小。處理具有不同采樣率的信號時(shí)需要用到這種轉換器。

例如,光盤(pán)的采樣率是44.1kHz,而數字音頻磁帶的采樣率通常是48kHz。由于存在數據格式轉換,用新采樣率播放源數據就不夠了。以數字音頻磁帶使用的采樣率播放光盤(pán)資料會(huì )引起失真。因此,必須對采樣率加以轉換。

處理音頻信號時(shí)使用的采樣頻率有多種,常見(jiàn)的有 44.1kHz、48kHz、96kHz和192kHz。轉換過(guò)程必須慎重,務(wù)必保持0-20kHz可聞頻率信號的完整性。應保持信號所含信息的變化最小,以免音質(zhì)下降(圖2)。


圖2:用Synplify DSP模塊集和Simulink FDA工具提供的模塊實(shí)現采樣率轉換器。用Simulink模塊集元件進(jìn)行驗證。

顯然,用FPGA實(shí)現音頻頻率的采樣率轉換器存在以下問(wèn)題:

1. 算法問(wèn)題:

a. 可能的最高信噪比

b. 原始信號所載信息的可能最小變化

c. 算法的有效描述,因為FPGA中的資源消耗在很大程度上取決于描述的質(zhì)量

d. 量化

2. 實(shí)現問(wèn)題:

a. 邏輯正確的算法實(shí)現

b. FPGA資源限制

c. 速度優(yōu)化實(shí)現

d. 延遲

轉換需要較高的時(shí)鐘速度,因為具體實(shí)現取決于對轉換信號的足夠過(guò)采樣。FPGA系統時(shí)鐘頻率與待轉換信號的頻率差異必須相應較大。

FDA 工具可幫助生成和驗證各種FIR和IIR濾波器。該工具是Simulink信號處理工具箱的組成部分,Synplify DSP就是使用此工具箱實(shí)現濾波器結構

對于CD質(zhì)量的音頻信號,還要求信噪比不得低于100dB。專(zhuān)業(yè)應用甚至需要大于 120dB的音頻信號。就信號質(zhì)量而言,其他低頻信號(如控制電路算法)遠不如音頻信號那樣苛刻。

算法

多相FIR濾波器結構需要轉換采樣率(異步重采樣)。算法包括兩步,第一步是頻率過(guò)采樣,第二步是線(xiàn)性插值,這是從給定頻率生成不同頻率時(shí)需要的。這兩個(gè)頻率相互異步。

以單步方式進(jìn)行信號重采樣所需資源較多,因為濾波器會(huì )較復雜。這種實(shí)現需要數百萬(wàn)次乘法運算。這樣的描述效率很低的,應當加以避免。如果線(xiàn)性插值在第二步實(shí)現,那么結構就會(huì )簡(jiǎn)單得多(圖3)。


圖3:分兩步實(shí)現采樣率轉換器(一、過(guò)采樣;二、線(xiàn)性插值)以提高效率。

高效地描述過(guò)采樣(第一步)是讓 FPGA實(shí)現節省資源的唯一方法。如果用若干級聯(lián)級而非單一運算步驟來(lái)實(shí)現這部分電路,所需運算數量就會(huì )大大減少。

在算法實(shí)現時(shí),必須確定執行運算的目標架構(DSP或FPGA)。與具有固定架構的數字信號處理器不同,FPGA可實(shí)現任何架構。不過(guò),當實(shí)現大量單獨的乘法運算時(shí),FPGA最終會(huì )受到器件尺寸的限制。

所需乘法器的數量將隨著(zhù)濾波器抽頭的增加而增加。每個(gè)抽頭都需要使用一個(gè)DSP模塊或乘法器。當級聯(lián)重采樣電路時(shí),各濾波器必須執行復雜程度很低的功能。從理論上講,單獨的級越多,濾波器的實(shí)現就越好。

減少運算次數之方法的數學(xué)推導在技術(shù)文獻中已有廣泛論述。實(shí)踐結果表明,盡管有必要級聯(lián)濾波器電路,但必須對級聯(lián)的數數加以限制。如果使用級聯(lián)級數過(guò)多,就可能超過(guò)實(shí)現設計的可用資源。如果用FPGA作為目標架構,實(shí)踐證明兩級電路最好。

整個(gè)電路由用于過(guò)采樣的兩個(gè)相對簡(jiǎn)單的濾波器和一個(gè)簡(jiǎn)單的線(xiàn)性插值器組成。這種結構可以有效地映射到FPGA。

設計實(shí)現

可以在Simulink中用Synplify DSP模塊集和Simulink的濾波器設計與分析(FDA)工具實(shí)現該電路。FDA工具可幫助生成和驗證各種FIR和IIR濾波器。該工具是Simulink信號處理工具箱的組成部分,Synplify DSP就是使用此工具箱實(shí)現濾波器結構。

Synplify DSP模塊集或FDA工具提供的所有電路元件在PortIN和PortOUT描述之間都有定義,它們能夠生成VHDL或Verilog代碼。 Simulink模塊集中的FFT和SCOPE元件對動(dòng)態(tài)響應進(jìn)行頻譜分析和驗證。這些模塊專(zhuān)門(mén)用于功能驗證,包括浮點(diǎn)到定點(diǎn)轉換功能(量化)。這些模塊都不用硬件實(shí)現。

算法實(shí)現的第一部分包括兩個(gè)FIR濾波器:第一個(gè)濾波器有512個(gè)抽頭,第二個(gè)濾波器有6?個(gè)抽頭。因此,由過(guò)采樣生成的RTL代碼共含有576個(gè)乘法運算,這正是使用FPGA顯得并不具有商業(yè)可行性的原因。這么大的FPGA會(huì )受到成本制約,因為需要用到有 6?0個(gè)DSP48模塊的特大型Xilinx Virtex-5 XC5VSX95T器件。

未映射到專(zhuān)用硬件結構(DSP模塊)的所有乘法運算都必須用通用邏輯資源(LUT或寄存器)構建。這樣會(huì )導致資源要求上升而最高時(shí)鐘速度下降。與通用邏輯單元相比,專(zhuān)用的DSP48模塊作為乘法器會(huì )有效得多(圖4)。


圖4:用Simulink的濾波器設計與分析(FDA)工具實(shí)現濾波器。

設計優(yōu)化

Synplify DSP的折疊選項可用來(lái)盡量減少所用乘法器的數量。在低采樣頻率下工作的電路尤其可從這一優(yōu)化中受益。

其原理很簡(jiǎn)單。通常,每個(gè)乘法運算使用一個(gè)硬件乘法器,即使對于千赫級采樣頻率也是如此。然而,FPGA能以數百兆赫級的時(shí)鐘速度工作。如果硬件乘法器在FPGA的系統頻率下工作,就可以用時(shí)間多路復用過(guò)程按時(shí)序處理乘法運算。

假設電路的采樣頻率是3MHz,而FPGA最高可以在120MHz頻率下運行。如果以系統頻率運行乘法器,則每個(gè)硬件乘法器可以執行40次運算。此時(shí)所需硬件可以減少40倍。也就是說(shuō)可以將上述采樣率轉換器(或使用低采樣頻率的任何其他電路)“折疊”到僅需要很少硬件乘法器的程度。所以,也可以在現有最小的低成本FPGA中實(shí)現這種轉換器,從而真正取代DSP。

當然,還可能將計算量特別大的算法從DSP卸載到FPGA,從而減輕處理器的負荷。如果您的DSP應用已經(jīng)超過(guò)性能極限,而且您已經(jīng)為針對特定DSP架構的應用源代碼作出大量投入,那么這種方法尤其有用(圖5)。


圖5:可以用折疊功能顯著(zhù)減少所需的FPGA資源。

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

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

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

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

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

您還可以為折疊很少或沒(méi)有折疊的電路使用重定時(shí),除非已經(jīng)達到FPGA的性能極限?梢酝ㄟ^(guò)增加流水線(xiàn)級數來(lái)減少兩個(gè)寄存器之間組合邏輯門(mén)的數量(邏輯級數),這樣可以提高系統時(shí)鐘速度。

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

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

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


圖6:可以使用重定時(shí)功能為電路定義允許的最大延遲。然后由Synplify DSP自動(dòng)增加流水線(xiàn)級數,直到獲得所需頻率。

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

本文小結

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

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

為了用FPGA取得最佳結果,Synplicity推薦使用Synplify Pro綜合工具。目前針對ASIC的開(kāi)發(fā)環(huán)境也已經(jīng)推出。

作者:Synplicity Deutschland GmbH公司 應用工程師 Philipp Jacobsohn,賽靈思公司 DSP營(yíng)銷(xiāo)經(jīng)理 Derek Palmer
本文地址:http://selenalain.com/thread-8242-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页