當(dāng)前位置:首頁(yè) > 模擬 > 模擬
[導(dǎo)讀]提出一種采用現(xiàn)場(chǎng)可編程門陣列器件FPGA實(shí)現(xiàn)音頻處理芯片的方案。首先對(duì)FIR濾波器的算法進(jìn)行了改良,然后采用VHDL語(yǔ)言對(duì)音頻處理芯片的每個(gè)模塊分別設(shè)計(jì)。最后通過計(jì)算機(jī)軟件對(duì)該芯片進(jìn)行仿真,給出仿真波形和仿真結(jié)果,證明本芯片的設(shè)計(jì)達(dá)到了預(yù)期要求。

1 引言

隨著數(shù)字技術(shù)日益廣泛的應(yīng)用,以現(xiàn)場(chǎng)可編程門陣列FPGA(Field Programmable Gate Array)[1]為代表的ASIC[2]器件得到了迅速的普及和發(fā)展,器件的集成度和速度都在高速增長(zhǎng)。FPGA既具有門陣列的高邏輯密度和高可靠性,又具有可編程邏輯器件的用戶可編程性,可以減少系統(tǒng)的設(shè)計(jì)和維護(hù)的風(fēng)險(xiǎn),降低產(chǎn)品成本,縮短設(shè)計(jì)周期。

目前,信號(hào)處理技術(shù)、通信技術(shù)和多媒體技術(shù)的迅猛發(fā)展都得益于DSP[3]技術(shù)的廣泛應(yīng)用。但是對(duì)于便攜式和家用的語(yǔ)音系統(tǒng)而言,基于一般的DSP芯片的設(shè)計(jì)方案并不理想。首先DSP的芯片成本以及開發(fā)成本在現(xiàn)階段仍然是比較高的,尤其是芯片成本,遠(yuǎn)遠(yuǎn)不及大批量ASIC芯片成本之低。其次便攜式的設(shè)備對(duì)體積要求十分苛刻,限制了一部分DSP芯片的使用,而體積正是ASIC芯片的優(yōu)點(diǎn)之一。

本文提出了一種基于FPGA音頻處理芯片的硬件電路實(shí)現(xiàn)方案。由于對(duì)FIR濾波器的算法進(jìn)行了改良,所以很大程度上減小了芯片的體積和降低了芯片的功耗。

2 算法研究與改良

2.1 普通FIR濾波算法

   N階FIR濾波器可以用下面的線性卷積表示:[4]

 

x(n)是輸入的音頻序列,而y(n)是經(jīng)過濾波后輸出的音頻序列,h(k)是N階濾波器的系數(shù)。

簡(jiǎn)單的實(shí)現(xiàn)這個(gè)算法,需要N+1次的乘法和N次的加法。所以至少需要一個(gè)硬件乘法器和一個(gè)定點(diǎn)或者浮點(diǎn)加法器來實(shí)現(xiàn)這個(gè)功能。由于音頻處理芯片只需要做線性卷積,所以我們不需要采用乘法器的結(jié)構(gòu)。一般來說,由于乘法器龐大的結(jié)構(gòu),占用了芯片上的大部分面積,消耗用了大部分功率。而不使用乘法器的結(jié)構(gòu)將會(huì)節(jié)約可觀的芯片面積和功耗。為了實(shí)現(xiàn)這種結(jié)構(gòu),我們需要改良FIR濾波算法。

2.2 改良濾波算法

首先,將濾波的系數(shù)h(k)用二進(jìn)制表示法(POT,Power of Two)表示:

例如:h(k)=0.1172=2-3-2-7-2-16

我們給出7階濾波器的一組系數(shù),使用POT表示(精度小于104):

h(0) = 0.3761 = 2-1-2-3+2-10+2-13-2-15

h(1) = 0.3083 = 2-2+2-4-2-8-2-12

h(2) = -0.9424*10-1 = -2-3+2-5-2-11

h(3) = 0.6439*10-1 = 2-4+2-9-2-14

h(4) = -0.3308*10-1 = -2-5-2-9+2-13

h(5) = 0.1663*10-1 = 2-6+2-10+2-15

h(6) = -0.4135*10-2 = -2-8-2-12+2-16

h(7) = 0.1877*10-2 = 2-9-2-14-2-16

n=7時(shí)濾波器的輸出值y如下:

y = (2-1-2-3+2-10+2-13-2-15) * x(7)

+(2-2+2-4-2-8-2-12) * x(6)

+(-2-3+2-5-2-11) * x(5)

+(2-4+2-9-2-14) * x(4)

+(-2-5-2-9+2-13) * x(3)

+(2-6+2-10+2-15) * x(2)

+(-2-8-2-12+2-16) * x(1)

+(2-9-2-14-2-16) * x(0)

很明顯,x(n)的系數(shù)全部都是2的負(fù)k次冪,所以我們可以把具有相同系數(shù)的x(n)合并起來。

y(n)=2-1(...2-1(2-1(2-1u1+u2)+u3)+...)+u16)

uj=xj(1)+ xj(2)+……+ xj(rj)

其中1≤j≤16, xj(i)∈{x(n-k)}, 1≤i≤rj

由前面的系數(shù),可以得到:

U1 = x(n-6)-x(n-7); U2 = -x(n)+x(n-5);

U3 = -x(n-3)-x(n-7); U4 = x(n)+x(n-4);

U5 = -x(n-1)-x(n-6); U6 = -x(n-2);

U7 = x(n)+x(n-5); U8 = x(n-3)-x(n-4)+x(n-7);

U5 = -x(n-1)-x(n-6); U10 = 0;

U11 = x(n-5); U12 = x(n-2)-x(n-4);

U13 = x(n-1)+x(n-3); U14 = -x(n)-x(n-2);

U15 = x(n-1); U16 = x(n);

按照這個(gè)算法,先求U1的值,然后將結(jié)果右移一位,再將結(jié)果與U2的值相加,依此類推,即可得到y(tǒng)(n)。我們使用若干次加法和16次移位操作即可完成FIR濾波,算法的復(fù)雜度和功耗都大大地降低。

3 音頻處理芯片的設(shè)計(jì)

3.1 結(jié)構(gòu)概述

在整個(gè)音頻處理芯片的結(jié)構(gòu)中,我們沒有采用任何乘法器,取而代之的是一個(gè)加法器和移位器。加法器的結(jié)果輸出到移位器,移位器的輸出再反饋到加法器的輸入端,循環(huán)運(yùn)算實(shí)現(xiàn)濾波器的功能。

考慮7階的FIR濾波器,需要對(duì)x進(jìn)行8次采樣,所以輸入的數(shù)據(jù)都應(yīng)該保存在一個(gè)8*16的DataRAM之中(16bit的采樣精度)。系數(shù)RAM(ProgramRAM)的大小取決于操作的個(gè)數(shù),在上面提到的算法中,一共有28個(gè)操作,所以ProgramRAM的大小不能小于28,在這里我們使用了一個(gè)32*6的ProgramRAM,以滿足算法需要。

考慮到音頻處理芯片的可擴(kuò)展性,我們?cè)谝纛l處理芯片外設(shè)置一個(gè)EEPROM用來存放系數(shù),當(dāng)芯片啟動(dòng)的時(shí)候,從EEPROM中將數(shù)據(jù)轉(zhuǎn)存到ProgramRAM中,以適應(yīng)不同F(xiàn)IR濾波器的系數(shù),極大地增強(qiáng)了音頻處理芯片的可編程性。

音頻處理芯片的模塊主要包括EEPROM, ProgramRAM, DataRAM,串并轉(zhuǎn)換模塊,并串轉(zhuǎn)換模塊,地址生成模塊,主控制器模塊。

3.2 尋址方式描述

在系統(tǒng)啟動(dòng)時(shí),附加的EEPROM儲(chǔ)存的系統(tǒng)參數(shù)值,包括輸入信號(hào)在DataRAM中的地址值和相應(yīng)的標(biāo)志位(32*6bit) ,依次讀入ProgramRAM中去。

其中,Zero,Sign,Shift分別為操作控制

Zero表示不加任何操作數(shù)

Sign表示加上負(fù)的操作數(shù)

Shift表示移位操作

而Virtual Address表示操作數(shù)的虛擬地址。

NO

 

Zero

Sign

Shift

Virtual Address

1

x(n-6)

0

0

0

001

2

-x(n-7)

0

1

1

000

3

-x(n)

0

1

0

111

4

x(n-5)

0

0

1

010

5

-x(n-3)

0

1

0

100

6

-x(n-7)

0

1

1

000

7

x(n)

0

0

0

111

8

x(n-4)

0

0

1

011

9

-x(n-1)

0

1

0

110

10

-x(n-6)

0

1

1

001

11

-x(n-2)

0

1

1

101

12

x(n)

0

0

0

111

13

x(n-5)

0

0

1

010

14

x(n-3)

0

0

0

100

15

-x(n-4)

0

1

0

011

16

x(n-7)

0

0

1

000

17

-x(n-1)

0

1

0

110

18

-x(n-6)

0

1

1

001

19

0

1

0

1

000

20

x(n-5)

0

0

1

010

21

x(n-2)

0

0

0

101

22

-x(n-4)

0

1

1

011

23

x(n-1)

0

0

0

110

24

x(n-3)

0

0

1

100

25

-x(n)

0

1

0

111

26

-x(n-2)

0

1

1

101

27

x(n-1)

0

0

1

110

28

x(n)

0

0

1

111

 

Base Address總是指向DataRAM中最早寫入的值所在的地址,也就是x(n-7)的地址,而Virtual Address其他值相對(duì)于x(n-7)的地址,所以可以得出操作數(shù)在DataRAM中實(shí)際的地址:

Physical Address=BaseAddress+VirtualAddress

y(n)=2-1(...2-1(2-1(2-1u1+u2)+u3)+...)+u16)中的u1為例

U1 = x(n-6) - x(n-7);

參數(shù)設(shè)置:C1= x(n-6)=000001

C2=-x(n-7)=011000

※最低的三位表示存儲(chǔ)地址

※第4位表示移位標(biāo)志,C2(4)為1表示計(jì)算出U1以后要右移得到2-1* U1

※第5位表示符號(hào)位,控制加減運(yùn)算。C1(5)為0表示加, C2(5)為1表示減

※最高位,也就是第6位在Un=0時(shí)為1,這里只有C19(6)1

3.3 端口描述

信號(hào)/端口

類型

寬度

功能

Clk

輸入

1

系統(tǒng)時(shí)鐘,16MHz

Reset

輸入

1

系統(tǒng)重置,異步低有效。

Load

輸入

1

系統(tǒng)啟動(dòng)時(shí),將數(shù)據(jù)從EPROM中轉(zhuǎn)存到ProgramRam

Data_Clk

輸入

1

數(shù)據(jù)時(shí)鐘, ADC送入

Data_in

輸入

1

采樣信號(hào)的串行輸入

FrameSync

輸入

1

Date_in信號(hào)的幀控制信號(hào)

Data_out

輸出

1

數(shù)據(jù)串行輸出

CoeffData

輸入

6

來自EEPROM的并行數(shù)據(jù)

CoeffAddress

輸出

5

EEPROM地址信號(hào)

CoeffEnable

輸出

1

EEPROM使能信號(hào)

3.4 模塊設(shè)計(jì)

3.4.1 EEPROM [5]

·EEPROM用來存儲(chǔ)系統(tǒng)參數(shù)

·EEPROM是32*6bit的存儲(chǔ)陣列

·EEPROM的輸入是Enable,Address(4 downto 0)

·EEPROM的輸出是CoeffData(5 downto 0)

·EEPROM的首單元存放了操作的個(gè)數(shù);例如,首單元存放"011100"表示一共有28個(gè)操作。

3.4.2 ProgramRAM [6]

·ProgramRAM接收EEPROM中的系統(tǒng)參數(shù)

·ProgramRAM是32*6bit的存儲(chǔ)陣列

·ProgramRAM的輸入是Write,Read,DataIn(5 downto 0),Address(4 downto 0)

·ProgramRAM的輸出是Zero,Sign,Shift,DataAddr(2 downto 0)

3.4.3串并轉(zhuǎn)換模塊[7] (Serial2Parallel)

·Serial2Parallel接收來自ADC的串行數(shù)據(jù)、數(shù)據(jù)時(shí)鐘和幀同步信號(hào)

·Serial2Parallel將串行輸入信號(hào)轉(zhuǎn)化為16bit的并行信號(hào)

·Serial2Parallel的輸入是DataClk,DataIn,F(xiàn)rameSync

·Serial2Parallel的輸出是DataOut(15 downto 0),DataOutSync

3.4.4并串轉(zhuǎn)換輸出模塊[7] (Parallel2Serial)

Parallel2Serial將并行信號(hào)轉(zhuǎn)化為串行信號(hào)

Parallel2Serial的輸入是DataIn(15 downto 0),DataClk,F(xiàn)rameSync

Parallel2Serial的輸出是DataOut

3.4.5主控制器模塊(Main Controller)

·主控制器模塊是整個(gè)設(shè)計(jì)的核心,它協(xié)調(diào)控制著其他各個(gè)模塊的工作

·主控制器模塊是根據(jù)操作流程圖設(shè)計(jì)的一個(gè)狀態(tài)機(jī)

3.4.6 地址生成模塊(AddressGen)

·PhysicalAddress實(shí)際上是一個(gè)加法器,將VirtualAddress與BaseAddress相加產(chǎn)生讀地址

·BaseAddress實(shí)際上是一個(gè)計(jì)數(shù)器,IncreaseBase信號(hào)控制加1,產(chǎn)生寫地址

·MUX選擇讀地址或者是寫地址到DataRAM

4 音頻處理芯片的仿真

4.1 仿真波形

4.2 仿真結(jié)果

通過程序,對(duì)一組輸入序列進(jìn)行了仿真結(jié)果比較,所獲得的結(jié)果如表1所示。

1:仿真結(jié)果比較

輸入

期望值

仿真結(jié)果

01d7

00b1

00B1

01ef

014B

014B

02AF

016e

016E

024f

01a1

01A1

0093

00bc

00BD

00e7

0070

0070

0029

005e

005E

ff55

ffb6

FFB6

fe99

ff52

FF52

fec9

ff28

FF28

0025

ffc7

FFC7

00f7

0074

0074

通過表1可以看出音頻處理芯片達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),效果良好。

可以看到,期望值和仿真結(jié)果在最后一位會(huì)有±1的誤差,這是由于我們采用的移位算法將最后一位移出時(shí)不進(jìn)行四舍五入造成的。經(jīng)過計(jì)算,這種誤差不會(huì)影響FIR的精度。

5 結(jié)束語(yǔ)

本文設(shè)計(jì)的音頻處理芯片主要實(shí)現(xiàn)FIR濾波器功能,可以滿足較為簡(jiǎn)單的語(yǔ)音信號(hào)處理的需要。用POT系數(shù)表示方法來表示系統(tǒng)參數(shù),用一個(gè)加法器和一個(gè)移位寄存器實(shí)現(xiàn)乘法器的功能,這樣在面積功耗上就有相當(dāng)大的優(yōu)勢(shì)。設(shè)計(jì)過程是采用自頂向下的設(shè)計(jì)方法。最終的仿真結(jié)果符合預(yù)期的要求

本站聲明: 本文章由作者或相關(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日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

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

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

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

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(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ì)開幕式在貴陽(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)閉