基于FPGA實現(xiàn)的MELP混合線性碼激勵的系統(tǒng)框架介紹
利用語音編碼技術(shù)可有效降低信息存儲量、提高信道利用率。混合激勵線性預測(MELP)語音編碼算法能在較低碼率下提供較高的語音質(zhì)量、自然度和清晰度,已成為美國國防部新的2.4 Kb/s的語音編碼標準。語音編碼技術(shù)在當今數(shù)字通信尤其在無線系統(tǒng)中發(fā)揮著越來越重要的作用。
Nios II處理器是Intel公司為Altera公司推出的32位精簡指令處理器軟核。在Altera公司推出的軟件SOPC中加載Nios II軟核和相應的外圍接口以及與定義相應的自定義指令,對設計進行綜合,下載到FPGA中就可以方便地實現(xiàn)一個具有高速DSP功能的嵌入式處理器[1]。
由硬件實現(xiàn)復雜的算法通常比軟件實現(xiàn)更高效。利用Altera公司的Nios II嵌入式處理器的定制指令,可以把用戶自定義的功能直接添加到Nios II CPU的算術(shù)邏輯單元(ALU)中,以加快專項任務的執(zhí)行速度。自定義指令的優(yōu)勢就在于可以將程序代碼中的瓶頸部分改用硬件指令支持,用自定義的指令使程序得到加速。
1 MELP的構(gòu)成
MELP聲碼器的采樣率為8 kHz,每個樣點值用16 bit量化,每180個樣點為1幀,幀長22.5 ms,每幀量化bit數(shù)為54 bit,總的速率為2.4 Kb/s。
MELP聲碼器是建立在傳統(tǒng)的二元激勵LPC模型基礎上,采用了混合激勵、非周期脈沖、自適應譜增強、脈沖整形濾波和傅氏級數(shù)幅度值等5項新技術(shù),使得合成語音能更好地擬合自然語音。圖1所示為MELP編解碼原理框圖[2]。
2 Nios II可嵌入軟核的特點
Nios嵌入式處理器是用戶可配置的通用RISC嵌入式處理器,是一個非常靈活、強大的處理器,因此已成為世界上最流行的嵌入式處理器[3];采用改進的哈佛存儲器結(jié)構(gòu),CPU帶有分離的數(shù)據(jù)和程序存儲器總線控制。SOPC Builder系統(tǒng)開發(fā)工具允許用戶容易地指定系統(tǒng)中Avalon控制器和從屬設備之間的連接,這些從屬設備可以是存儲器或外圍設備。
Nios指令總線為16位,用于從存儲器中讀取指令。Nios數(shù)據(jù)總線寬度為16位或32位,分別用于Nios CPU的16位或32位配置。
2.1 指令系統(tǒng)
Nios指令系統(tǒng)支持C和C++程序編譯,包括算術(shù)和邏輯運算、位操作、字節(jié)讀、數(shù)據(jù)傳送、流程控制和條件轉(zhuǎn)移等指令。指令系統(tǒng)包含豐富的尋址方式以減少代碼長度和提高處理器性能。
2.2 寄存器組
Nios CPU有1個大容量的窗口化的通用寄存器組、8個控制寄存器、1個程序計數(shù)器和1個用于指令前綴的K寄存器。通用寄存器在16位Nios CPU中是16位,在32位Nios CPU中是32位。寄存器組可配置為包含128、256或512個寄存器。軟件可以通過包含32個寄存器的滑動窗口存取這些寄存器,滑動窗口的移動間隔是16個寄存器,且允許快速地進行寄存器切換,加速子程序的調(diào)用和返回。
2.3 高速緩存
可配置的Nios CPU可以有選擇地包含指令和數(shù)據(jù)高速緩存。高速緩存通常通過提供局部存儲系統(tǒng)提高CPU的性能,這個局部存儲系統(tǒng)可以快速地響應CPU產(chǎn)生的總線事件。Nios高速緩存的實現(xiàn)是采用簡單的直接映射的連續(xù)寫入結(jié)構(gòu),這種結(jié)構(gòu)設計能夠用最少的器件資源獲得最大的性能[4]。
2.4 中斷處理
Nios處理器允許多達64個矢量中斷。中斷源有三類:外部硬件中斷、內(nèi)部中斷和軟件中斷。Nios中斷處理模式能夠準確地處理所有內(nèi)部中斷。
用戶可以有選擇地禁止TRAP指令軟件中斷、硬件中斷和內(nèi)部中斷。這項選擇能夠減少Nios系統(tǒng)的大小,但只用于處理器不運行復雜軟件的系統(tǒng)。
2.5 硬件加速
Nios指令系統(tǒng)可以利用硬件提高系統(tǒng)性能。特殊的周期密集型軟件操作可以用硬件顯著地提高系統(tǒng)性能,這種特性通過修改指令系統(tǒng)提供[5]。
Nios處理器有2種指令系統(tǒng)修改方法:自定義指令和標準CPU選項[6]。
評論