基于FPGA實現的MELP混合線性碼激勵的系統框架介紹
2.5.1 自定義指令
開發者可以通過向Nios處理器指令系統中添加自定義指令加快時間要求嚴格的軟件算法,也可以用自定義指令在單周期和多周期操作中執行復雜的處理任務。另外,用戶添加的自定義指令邏輯電路可以訪問Nios系統外的存儲器和邏輯電路。
復雜的操作序列可以在硬件中簡化為單指令的執行。這種特性允許開發者為數字信號處理(DSP)、分組標題處理和計算密集操作優化自己的軟件。
Altera公司的SOPC Builder軟件提供了一個圖形用戶界面(GUI),開發者利用GUI可以向Nios嵌入式處理器中添加多達5個自定義指令。
2.5.2 標準CPU選項
Altera公司提供單獨的預定義指令來提高軟件性能。MUL和MSTEP指令就是與其他硬件一起實現的預定義指令。當用戶在SOPC Builder中選擇這些CPU選項時,相關邏輯被增加到算術邏輯運算單元(ALU)。例如,如果用戶選擇執行MUL指令,整數乘法器被自動地添加到CPU的ALU中,并在2個時鐘周期內完成16位與16位的乘法操作(相同的操作若用循環的軟件程序實現需要80個時鐘周期)。
3 MELP語音編碼的硬件構成
硬件電路板由Altera公司的FPGA芯片EP2C8作為主控芯片,此外還包括:8 MB容量的SDRAM、2 MB容量的Flash、WM8731音頻芯片,自帶音頻D/A、A/D,為方便調試,另帶有串口。MELP語音編碼硬件構成如圖2所示。

為便于程序的調試,擴充了RS-232串口,可與計算機串口直接互聯。8 MB容量的SDRAM可為Nios II軟核處理器運行嵌入式操作系統提供所需的存儲空間,2 MB容量的Flash也可為MELP的軟件編制提供存儲空間。WM8731音頻芯片提供快速的音頻編解碼數據碼流,并向揚聲器傳輸解碼后的數據流。
WM8731是一個低功耗的立體聲Codec芯片,內部集成了耳機放大功能,因此,WN8731也可以應用于MD、DAT等設備[7];內建了24 bit(multi-bit)Σ-Δ三角模數轉換和數模轉換,ADC和DAC都使用了超采樣數字插值技術;支持數字音頻的位數可以是16 bit~32 bit,采樣率從8 kHz~96 kHz;立體聲音頻輸出帶有數據緩存和數字音量調節,WM8731通過2~3根的串行接口進行控制,可工作于主從模式。在3.3 V信號電壓時ADC可以達到90 dB的信噪比,1. 8 V信號電壓時ADC可以達到85 dB的信噪比。3.3 V信號電壓時的DAC信噪比可以達到100 dB,1.8 V信號電壓時DAC信噪比也有95 dB。ADC和DAC的頻率響應都在8 kHz~96 kHz之間,可以有選擇地使用ADC的高通濾波。一般情況下,WM8731都是在專業聲卡領域中使用。
各芯片之間的互聯通過引線連接到FPGA的IO腳。Nios II處理器的內部總線通過定義引腳連到IO,這樣需要連接到Avavon總線的芯片可通過IO腳連到總線上。圖3所示為WM8731CODEC芯片與主芯片FPGA的連接。
串口方面,SDRAM及Flash使用Nios II自帶的基于Avalon總線的軟IP。
本文討論了MELP混合線性碼激勵的FPGA實現的硬件構成,介紹了硬件主要組成芯片及MELP編解碼的主要框架,可以用于下一步軟件程序的編制。
評論