應用於語音與音效處理之數位訊號處理器

A Digital Signal Processor for Audio and Speech Applications 

IC 編號:u18-93B-10a

 

指導教授:林進燈     交通大學電機與控制工程系所教授

電話:03-5712121 ext.54315              E-mail:ctlin@fnn.cn.nctu.edu.tw

 

            設計者:郭慧貞     碩士班研究生

              電話:03-5712121 ext.54426              E-mail:kitty0831@hotmail.com

 


一、中文摘要(及關鍵字)

本研究計劃主要目的是為了產生環場音效以及空間迴響的效果,來增加聆聽者聽覺的臨場感。為了達到這樣的目標,以目前的研究規劃,主要重於在特定空間的音訊響應的模擬和訊號處理器硬體實現。空間的音訊響應模擬所使用的演算法是利用不同的空間有不同脈衝響應,輸入不同空間的特定參數,即可造成空間上的聆聽效果,且適合於雙聲道的撥放系統。

為了達到即時音訊效果處理的目標,本研究計劃提出一個全新的音訊處理器,使用軟體與硬體雙重設計的方式使處理器在硬體架構上與指令集的執行上的搭配能達到最佳化,以達到即時處理的目標。在所提出的音訊處理器中,使用了五級的管線式架構以便在處理器速度與晶片面積之間的取捨達到最佳化。此外,還安排了兩個向量處理用的記憶體、四層迴圈、大範圍的記憶體資料暫存區、24bits精確的浮點運算單元、整數運算單元、提供很大動態運算範圍8bits的指數處理單元以及具平行處理能力的指令。在指令長度固定為24bits下,此處理器提供6種定址模式與三元運算。

此晶片以Cell-Based方式設計完成,使用UMC 0.18um製程之標準元件庫,預估能工作於100MHz,整個晶片面積約為2.55 ´ 2.55 mm2

 

 

Abstract

   The main goal of this research project is to generate surrounding audio effect and audio room effect for improvement of listening experience. For this purpose, we now focus on simulation of impulse response of specific audio space and implementation of audio processor according to research schedule. The algorithm used in simulation of impulse response of audio space is based on the phenomenon that different audio space has its own impulse response. With particular parameter, the artificial reverberator can synthetize specific audio room effect and it is also suitable for stereo sound system.

In order to achieve the objective of real-time processing, a whole new audio processor in which the architecture and instruction set are optimized by software and hardware co-design methodology is proposed in this project. The processor uses a five-stage pipeline to balance performance and core area. It has two memory banks for vector operation, four-level recurrent loops, multi-layer stacks, 24-bit floating point unit for precision, 8-bit exponent unit for large dynamic range operation and special instructions for parallel operation. Each instruction length is fixed as 24 bits. The processor provides six special addressing modes and 3-operand operations.

The chip is realized by using a UMC 0.18um 1P6M mix-signal technology and synthesis by COMPASS cell library. The silicon area required for the core is approximately 2.55 ´ 2.55 mm2。The maximum clock frequency is about 100MHz.

 

Keyword: floating-point、DSP processor、audio room effect、stereo.

 

二、計劃緣由與目的

在軟體模擬上完成audio room effect 的模型與架構的建立之後,經過分析其運算機制與運算量後發現,主要影響處理速度的因素在於乘加運算。由於本研究的目的是為了實現一個低成本且能即使處理的音訊處理系統,在考量市場上高性能DSP價格昂貴的情況下,決定發展一個低成本處理語音訊號的專用處理器[2],負責音訊處理的運算。利用自行研發的DSP來建立本研究的語音處理系統,由於具有較一般DSP成本為低,且使得系統設計具有較高的彈性以及較好的處理效能等優點,得以讓本研究極具商業價值與競爭力。

本研究計劃中自行研發提出的音訊專用處理器,擁有雙記憶體區塊與乘加平行處理能力,能有效率的地執行音訊處理所需的向量運算,減少計算時間,加強音訊處理系統在實際應用上的效能。

 

三、研究方法與成果

3.1 設計原理與方法

1為一個人工迴響器。依據Moorer所提出的演算法所構成的人工迴響器,需要反向梳狀濾波器、梳狀濾波器以及全通濾波器。此迴響器的架構是利用一個512階的反向梳狀濾波器、四個並聯的梳狀濾波以及兩個串聯的全通濾波器加以組合而成,這樣的組合可以空間脈衝響應中的三各主要成分:(1)直接訊號(Direct Signal) (2)早期反射訊號(Early reflection) (3)指數衰減響應訊號(Fused reverberation)。最後再經過低通濾波器來增加聆聽的距離感。

由以上對人工迴響器的描述可以發現,要完成這樣一個語音處立系統需要龐大的硬體架構組合以及運算能力。為了讓整個架構具有彈性能適合各種可能的或更新的演算法,本計劃採用了軟體與硬體互相搭配的方式,將運算量最大的乘加運算利用硬體完成,而整個演算法的主體則是利用軟體方式執行完成。

 

3.2 電路架構

Audio音訊專用處理器是一顆24 bits浮點運算處理器。內部匯流排的結構與特殊設計的數位訊號處理指令、向量運算指令,使其具有快速浮點和整數的運算能力,我們利用軟體—硬體雙重設計的方式,將複雜的Audio音訊演算法作為一顆Audio晶片,配合C語言以及Assembler、Emulator的設計模擬,完成本處理器的晶片實現。圖2為本處理器的系統架構。

 

3.3模擬結果

首先我們先用C語言來模擬整個硬體設計的演算法是否正確,之後再撰寫verilog HDL,確定模擬的結果和C語言所產生的結果是一致的。圖3為Gate Level Simulation的模擬結果。在worst case的情況下,critical path delay大約 為9.1ns。所輸入的test pattern 為一FIR filter的軟體程式碼的其中一段。所得到的結果與C語言模擬的結果相同,正確無誤。圖4Post Layout Simulation的模擬結果,利用Fire & Ice 作RC Extraction。考量wire delay 與gate delay 作simulation。在typical case的情況下,critical path delay大約為9.5ns。

 

3.4佈局

HDL code撰寫完成後,利用Synopsys合成電路並進行gate level simulation,確定合成後的硬體時序和所操作的頻率無誤以及gate count,之後再用Soc-Encounter進行P&R。P&R完成後 Calibre做電路設計法則檢驗DRC(Design Rule Check)、和電路佈局與電路檢驗LVS(Layout Versus Schematic)。所有的驗證皆通過後,並完成Post layout simulation,確定結果無誤便tape out。

   

如圖8所示,此晶片為Pad-Limit,中間部分為所設計的電路,兩個1024´24bits的靜態隨機存取記憶體 (RAM0及RAM1)分別被放在左上與左下角的位置,核心電路外圍Power ring和內部Stripe的寬度分別為20μm。使用核心電路的電壓為1.8 V, I/O部分為3.3 V我們試過各種的擺設,最後發現以這種方式所繞出的晶片面積為最小

 

 

3.5測試

    使用IMS100的測試機台和144 pins QFP的socket card做晶片測試。所需的input pattern來自gate level simulation。圖5為測試條件、環境之設定。圖6為Tester執行結果,圖7為相對的timing wave form。

    根據規劃,此Audio晶片將外接一個Extension RAM,其作用為Audio Room Effect演算法所需的常數、並提供資料暫存的空間,當執行與外部Extension RAM相關的指令時,Audio晶片便會對它作寫入、讀取的動作。而利用測試機台進行測試時,測試機台所扮演的角色便是在模擬Extension RAM被讀取的情況,也就是測試機台負責在正確的時間將資料送出,供Audio晶片讀取至晶片內部作處理。經由gate level simulation可得知晶片在何時會去讀取Extension RAM的資料,將其紀錄下來輸入至測試機台的pattern control window並經過適當的設定,模擬出Extension RAM被讀取的情況,以完成晶片的測試。

 

四、預計規格與實測結果

1.    預計規格

Maximum Frequency:100MHz

Minimum Clock Period:10ns

2.    實測結果

Maximum Frequency:50MHz

Minimum Clock Period:20ns

 

五、結論與討論

       圖3、圖4為音訊處理過程中FIR filter某一段程式, 程式內容包含了暫存器對外部記憶體的寫出動作指令,以及暫存器對暫存器的運算指令,和記憶體對暫存器的一些Load、Store指令,還有分支的跳躍判斷指令,還有參數值的給定指令,再加上一些簡單的加減乘除運算,算術邏輯運算的指令的模擬結果,程式指令可分為三大類:(1)Load and store Instruction (2) Program Control Instruction (3)Arithmetic Instruction以及處理器包含的六種定址模式,分別為暫存器定址模式 (Register addressing)、直接定址模式 (Direct addressing)、間接定址模式 (Indirect addressing)、向量定址模式 (Vector addressing)、立即定址模式 (Immediate addressing)和程序控制模式 (Control mode)。利用Assembler Complier將一FIR filter某一段組語程式轉成machine code,利用Synopsys合成電路並進行gate level simulation,僅能看到圖3 模擬波形,利用開檔的方式使用下面的波形訊號,即可產生測試輸入。    

 

EX:

integer file;

file=fopen(cpu.dat);

always @(posedge clk)

begin  <==    $fdisplay(file," %b %b %b %b %x %x %x %x %x %x %x %b %b %x %x %x %x %x %x",

           SysBus_Data_Out( SysBus_Data_Out),

                    .SysBus_Add( SysBus_Add),

               .SysBus_InOut_Cnt( SysBus_InOut_Cnt),

                    .SysBus_EN( SysBus_EN),

                    .SysBus_RW(SysBus_RW),

                    .SysBus_OE(SysBus_OE),

                     .OE(nOE),

                    .Add_inst(Address),

                    .mem_out(mem_out),

                    .SysBus_Data_In(SysBus_Data_In),

                    .Chip_En(Chip_En),   

                     .Rst(Rst),

                     .Clk(Clk),

                     .TEST_MODE(1'b0),

                     .TEST_VALID(TEST_VALID_w),

                     .TEST_ERR(TEST_ERR_w)

end

 

        而在圖5的環境設定下,在測試的過程中必須不斷去設定input delay,和 output delay即可產生圖6的測試結果,可以發現實際輸出值和預期的輸出值模擬結果相同。我們可以發現程式中的DATA_OUT為一個雙向腳位,它的值為EFFFFE,並非電路有所問題,那是因為DATA_OUT空接所以讀入的值皆固定,在測試機台中無法測試雙向腳位,必須利用板子的方式連接MEMORY來量測DATA_OUT,或由Logic Analyzer觀測。所以此顆晶片是可以正常work的。

        另外要提出說明的是,整個Audio Room Effect程式處理特定3-D音訊空間迴響器的演算法,44.1KHz的雙聲道取樣頻率,共187443 週期的指令碼被執行,由於測試這麼多clock cycle所需的資料量過於龐大,因此測試過程中只測試了FIR filter某一段程式,程式中包含了處理器指令集的三大模式,和六種定址模式,而所得之測試結果均與模擬相同,正確無誤。

        而關於未來音訊晶片的發展,我們將朝 : (1)目前critical path的問題,一方面也對ALU的data path做最佳化;(2)改用multi-thread 的方式或利用平行運算單元的方式處理更多複雜的向量乘加運算;(3)當DSP速度增加,記憶體頻寬在成本考量下會是一個障礙。利用指令暫存器與資料暫存器的方式可以解決記憶體頻寬不足的問題,但是控制複雜度增加是必須衡量的因素使晶片效能能夠有所提昇。

 

六、參考文獻

[1] R. Suddle, A.M. Kondoz, and B.G. Evans. “DSP implementation of low bit rate CELP based speech coders,” Proc. of Sirth Int. Conf. on Processing of Signals in Communi- cations, pp. 309-314, University of Loughborough, UK, September 1991.

[2] Nurmi, J., et al. “A DSP core for speech coding application,” Proc. ICASSP, vol.2, pp. 429-432, 1994.

[3] Federal Information Processing Standards Publication (Draft), “Analog to Digital Conversion of Voice by 2,400 Bit/Second Mixed Excitation Linear Prediction (MELP),” June 12, 1997

[4] J.D. Markel and A.H. Gray, “Linear Prediction of Speech,” New York: Spring Verlag, 1976.

[5] L. Rabiner, “On the use of autocorrelation analysis for pitch detection,” IEEE Trans. On ASSP, February pp.24-33, 1977.

[6] Kalavade, A., Lee, E.A., “A hardware-software codesign methodology for DSP applica- tion,” IEEE Design & Test of Computers, vol. 10, pp.16-28, Sept. 1993.

[7] IEEE, “IEEE standard for binary floating-point arithmetic,” SIGPLAN Notices, 1985.

[9] Spaderna, D.,et al. “An integrated floating point vector processor for DSP and scientific computing,” Computer Design: VLSI in Computers and Processors, 1989. ICCD ’89. Proceedings., 1989 IEEE International Conference, pp.8-13, Oct. 1989.

[10] Donald E. Thomas and Philip Moorby, “The Verilog Hardware Description Language,” Kluwer Acadmic Publishers, 1994.

七、圖表

1 Moorer Reverberator

 

 

2 音訊處理器架構圖

 

 

 

 


3 Gate Level模擬結果

 

 

 

 

4 Post Layout Simulation模擬結果

 

 

 

5 Operating Conditions

 

 

6 Pattern Control

 

 

 

 

 

 

 

 

 

7 Timing Diagram

 

 


***  Chip Features                                                               CAD Tools  ***

 

CKT name                       :CHIP                                   ncverilog

Technology                     : 0.18um 1P6M Mixed Signal CMOS                            Synopsys

Package                           : 144 CQFP (包裝種類)                               SOC Encounter

Chip Size                        : 2.556 x 2.55 mm2 (晶片面積;mm2)            Calibre

Transistor/Gate Count     : 430K/209K  (電晶體/邏輯閘數)                 NanoSim

Power Dissipation        : ~50mW (功率消耗;mW)                           

Max. Frequency              : 50MHz (最高工作頻率,MHz)                          

Testing Results               : function work □partial work □ fail                             

 

 

8佈 局 平 面 圖