當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]如今,即使低成本FPGA也能提供遠(yuǎn)遠(yuǎn)大于DSP的計(jì)算能力。目前的FPGA包含專用乘法器甚至DSP乘法/累加(MAC)模塊,能以550MHz以上的時(shí)鐘速度處理信號(hào)。

如今,即使低成本FPGA也能提供遠(yuǎn)遠(yuǎn)大于DSP的計(jì)算能力。目前的FPGA包含專用乘法器甚至DSP乘法/累加(MAC)模塊,能以550MHz以上的時(shí)鐘速度處理信號(hào)。

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

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

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

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

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

應(yīng)用示例:采樣率轉(zhuǎn)換

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

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

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

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

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

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

a. 可能的最高信噪比

b. 原始信號(hào)所載信息的可能最小變化

c. 算法的有效描述,因?yàn)镕PGA中的資源消耗在很大程度上取決于描述的質(zhì)量

d. 量化

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

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

b. FPGA資源限制

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

d. 延遲

轉(zhuǎn)換需要較高的時(shí)鐘速度,因?yàn)榫唧w實(shí)現(xiàn)取決于對(duì)轉(zhuǎn)換信號(hào)的足夠過(guò)采樣。FPGA系統(tǒng)時(shí)鐘頻率與待轉(zhuǎn)換信號(hào)的頻率差異必須相應(yīng)較大。

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

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

算法

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

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

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

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

在算法實(shí)現(xiàn)時(shí),必須確定執(zhí)行運(yùn)算的目標(biāo)架構(gòu)(DSP或FPGA)。與具有固定架構(gòu)的數(shù)字信號(hào)處理器不同,F(xiàn)PGA可實(shí)現(xiàn)任何架構(gòu)。不過(guò),當(dāng)實(shí)現(xiàn)大量單獨(dú)的乘法運(yùn)算時(shí),F(xiàn)PGA最終會(huì)受到器件尺寸的限制。

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

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

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

設(shè)計(jì)實(shí)現(xiàn)

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

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

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

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

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

設(shè)計(jì)優(yōu)化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本文小結(jié)

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

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉