基于MELP混合線(xiàn)性碼激勵的FPGA實(shí)現的系統框架介紹
利用語(yǔ)音編碼技術(shù)可有效降低信息存儲量、提高信道利用率?;旌?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/激勵">激勵線(xiàn)性預測(MELP)語(yǔ)音編碼算法能在較低碼率下提供較高的語(yǔ)音質(zhì)量、自然度和清晰度,已成為美國國防部新的2.4 Kb/s的語(yǔ)音編碼標準。語(yǔ)音編碼技術(shù)在當今數字通信尤其在無(wú)線(xiàn)系統中發(fā)揮著(zhù)越來(lái)越重要的作用。
本文引用地址:http://dyxdggzs.com/article/193015.htmNios II處理器是Intel公司為Altera公司推出的32位精簡(jiǎn)指令處理器軟核。在A(yíng)ltera公司推出的軟件SOPC中加載Nios II軟核和相應的外圍接口以及與定義相應的自定義指令,對設計進(jìn)行綜合,下載到FPGA中就可以方便地實(shí)現一個(gè)具有高速DSP功能的嵌入式處理器[1]。
由硬件實(shí)現復雜的算法通常比軟件實(shí)現更高效。利用Altera公司的Nios II嵌入式處理器的定制指令,可以把用戶(hù)自定義的功能直接添加到Nios II CPU的算術(shù)邏輯單元(ALU)中,以加快專(zhuān)項任務(wù)的執行速度。自定義指令的優(yōu)勢就在于可以將程序代碼中的瓶頸部分改用硬件指令支持,用自定義的指令使程序得到加速。
1 MELP的構成
MELP聲碼器的采樣率為8 kHz,每個(gè)樣點(diǎn)值用16 bit量化,每180個(gè)樣點(diǎn)為1幀,幀長(cháng)22.5 ms,每幀量化bit數為54 bit,總的速率為2.4 Kb/s。
MELP聲碼器是建立在傳統的二元激勵LPC模型基礎上,采用了混合激勵、非周期脈沖、自適應譜增強、脈沖整形濾波和傅氏級數幅度值等5項新技術(shù),使得合成語(yǔ)音能更好地擬合自然語(yǔ)音。圖1所示為MELP編解碼原理框圖[2]。

2 Nios II可嵌入軟核的特點(diǎn)
Nios嵌入式處理器是用戶(hù)可配置的通用RISC嵌入式處理器,是一個(gè)非常靈活、強大的處理器,因此已成為世界上最流行的嵌入式處理器[3];采用改進(jìn)的哈佛存儲器結構,CPU帶有分離的數據和程序存儲器總線(xiàn)控制。SOPC Builder系統開(kāi)發(fā)工具允許用戶(hù)容易地指定系統中Avalon控制器和從屬設備之間的連接,這些從屬設備可以是存儲器或外圍設備。
Nios指令總線(xiàn)為16位,用于從存儲器中讀取指令。Nios數據總線(xiàn)寬度為16位或32位,分別用于Nios CPU的16位或32位配置。
2.1 指令系統
Nios指令系統支持C和C++程序編譯,包括算術(shù)和邏輯運算、位操作、字節讀、數據傳送、流程控制和條件轉移等指令。指令系統包含豐富的尋址方式以減少代碼長(cháng)度和提高處理器性能。
2.2 寄存器組
Nios CPU有1個(gè)大容量的窗口化的通用寄存器組、8個(gè)控制寄存器、1個(gè)程序計數器和1個(gè)用于指令前綴的K寄存器。通用寄存器在16位Nios CPU中是16位,在32位Nios CPU中是32位。寄存器組可配置為包含128、256或512個(gè)寄存器。軟件可以通過(guò)包含32個(gè)寄存器的滑動(dòng)窗口存取這些寄存器,滑動(dòng)窗口的移動(dòng)間隔是16個(gè)寄存器,且允許快速地進(jìn)行寄存器切換,加速子程序的調用和返回。
2.3 高速緩存
可配置的Nios CPU可以有選擇地包含指令和數據高速緩存。高速緩存通常通過(guò)提供局部存儲系統提高CPU的性能,這個(gè)局部存儲系統可以快速地響應CPU產(chǎn)生的總線(xiàn)事件。Nios高速緩存的實(shí)現是采用簡(jiǎn)單的直接映射的連續寫(xiě)入結構,這種結構設計能夠用最少的器件資源獲得最大的性能[4]。
2.4 中斷處理
Nios處理器允許多達64個(gè)矢量中斷。中斷源有三類(lèi):外部硬件中斷、內部中斷和軟件中斷。Nios中斷處理模式能夠準確地處理所有內部中斷。
用戶(hù)可以有選擇地禁止TRAP指令軟件中斷、硬件中斷和內部中斷。這項選擇能夠減少Nios系統的大小,但只用于處理器不運行復雜軟件的系統。
2.5 硬件加速
Nios指令系統可以利用硬件提高系統性能。特殊的周期密集型軟件操作可以用硬件顯著(zhù)地提高系統性能,這種特性通過(guò)修改指令系統提供[5]。
Nios處理器有2種指令系統修改方法:自定義指令和標準CPU選項[6]。
2.5.1 自定義指令
開(kāi)發(fā)者可以通過(guò)向Nios處理器指令系統中添加自定義指令加快時(shí)間要求嚴格的軟件算法,也可以用自定義指令在單周期和多周期操作中執行復雜的處理任務(wù)。另外,用戶(hù)添加的自定義指令邏輯電路可以訪(fǎng)問(wèn)Nios系統外的存儲器和邏輯電路。
復雜的操作序列可以在硬件中簡(jiǎn)化為單指令的執行。這種特性允許開(kāi)發(fā)者為數字信號處理(DSP)、分組標題處理和計算密集操作優(yōu)化自己的軟件。
Altera公司的SOPC Builder軟件提供了一個(gè)圖形用戶(hù)界面(GUI),開(kāi)發(fā)者利用GUI可以向Nios嵌入式處理器中添加多達5個(gè)自定義指令。
2.5.2 標準CPU選項
Altera公司提供單獨的預定義指令來(lái)提高軟件性能。MUL和MSTEP指令就是與其他硬件一起實(shí)現的預定義指令。當用戶(hù)在SOPC Builder中選擇這些CPU選項時(shí),相關(guān)邏輯被增加到算術(shù)邏輯運算單元(ALU)。例如,如果用戶(hù)選擇執行MUL指令,整數乘法器被自動(dòng)地添加到CPU的ALU中,并在2個(gè)時(shí)鐘周期內完成16位與16位的乘法操作(相同的操作若用循環(huán)的軟件程序實(shí)現需要80個(gè)時(shí)鐘周期)。
3 MELP語(yǔ)音編碼的硬件構成
硬件電路板由Altera公司的FPGA芯片EP2C8作為主控芯片,此外還包括:8 MB容量的SDRAM、2 MB容量的Flash、WM8731音頻芯片,自帶音頻D/A、A/D,為方便調試,另帶有串口。MELP語(yǔ)音編碼硬件構成如圖2所示。

評論