《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 通用音頻解碼器驗證系統(tǒng)設(shè)計與實現(xiàn)
通用音頻解碼器驗證系統(tǒng)設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第6期
全浩軍, 郭繼昌, 張 濤
(天津大學(xué) 電子信息工程學(xué)院, 天津 300072)
摘要: 設(shè)計并實現(xiàn)了一個基于FPGA的音頻解碼器驗證系統(tǒng)。同傳統(tǒng)的驗證系統(tǒng)相比,系統(tǒng)不僅具有很強(qiáng)的通用性,還具有良好的可擴(kuò)展性和強(qiáng)大的圖形化顯示功能,可以很方便地對各種音頻解碼器進(jìn)行片上驗證。該系統(tǒng)的實現(xiàn)縮短了音頻解碼器的片上驗證周期,有助于研究人員提高工作效率,具有很大的實用價值。
中圖分類號: TN47
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)06-084-03
Design and implementation of generic verification system for audio decoder
Quan Haojun, Guo Jichang, Zhang Tao
School of Electronic and Information Engineering, Tianjin University, Tianjin 300072, China
Abstract: In this paper, an FPGA-based generic verification system for audio decoders is designed and implemented. Compared with traditional verification system, the system has good generality, scalability, and powerful function of graphic display. It is easy to carry out on-chip verification for variety of audio decoders. The system can shorten the verification cycle and help researchers to improve the work efficiency. So it is much more valuable in practice.
Key words : FPGA; audio decoder; verification system


    近年來,數(shù)字多媒體技術(shù)得到了前所未有的發(fā)展。數(shù)字音頻技術(shù)已經(jīng)同CD、DVD和MP3等娛樂產(chǎn)品一起進(jìn)入到人們的日常生活中,對人們的生活產(chǎn)生了巨大影響[1]。而隨著個人數(shù)字娛樂產(chǎn)品的普及,音頻專用解碼芯片以其低成本和高性能而得到了廣泛的應(yīng)用[2-3]。
       在音頻解碼芯片設(shè)計過程中,研究人員往往需要對解碼器的功能進(jìn)行反復(fù)驗證[4]。傳統(tǒng)的驗證方法一般是利用FPGA搭建專用的測試平臺并使用ChipScope等在線邏輯分析儀進(jìn)行輔助分析。這種方法可以有針對性地獲取用戶所需數(shù)據(jù),從而在一定程度上達(dá)到驗證的目的,但存在一些缺陷。首先,測試平臺通用性差,無法兼容多個音頻解碼器。即使對于同一個解碼器,一旦接口或內(nèi)部測試模塊改變,測試平臺就需要做相應(yīng)的修改。其次,受限于在線邏輯分析儀的功能,測試結(jié)果的顯示不直觀,如無法根據(jù)用戶的需求實現(xiàn)可配置的圖形化顯示功能。為此,本文設(shè)計并實現(xiàn)了一個通用的音頻解碼器測試系統(tǒng),其功能強(qiáng)大,并具有良好的可擴(kuò)展性,可以幫助研究人員提高工作效率,具有很大的實用價值。
1 系統(tǒng)結(jié)構(gòu)與工作原理
    系統(tǒng)總體結(jié)構(gòu)如圖1所示。在FPGA內(nèi)部,該驗證系統(tǒng)主要由系統(tǒng)控制、碼流輸入、輸入緩沖、音頻解碼器、輸出緩沖、音頻輸出、信息提取和信息顯示共八個模塊組成。

    系統(tǒng)復(fù)位完成后,如果用戶在一定時間內(nèi)沒有改變系統(tǒng)參數(shù),則系統(tǒng)會根據(jù)默認(rèn)設(shè)置運(yùn)行。首先,碼流輸入模塊接收系統(tǒng)控制模塊的指令,指定接口芯片在存儲介質(zhì)的特定位置讀取數(shù)據(jù)并將其寫入輸入緩沖區(qū)中。當(dāng)輸入緩沖區(qū)中的有效數(shù)據(jù)量到達(dá)預(yù)先設(shè)定的解碼最小值時,音頻解碼器便開始從輸入緩沖區(qū)中讀取編碼數(shù)據(jù)并進(jìn)行解碼,之后將解碼得到的PCM樣本寫入到輸出緩沖區(qū)中。同樣,在輸出緩沖區(qū)中的有效數(shù)據(jù)量達(dá)到預(yù)先設(shè)定的播放最小值時,音頻輸出模塊開始根據(jù)獲得的音頻信息以給定的速率從輸出緩沖區(qū)中讀取PCM樣本,并按照特定的格式輸出到AC’97編解碼芯片中,從而驅(qū)動揚(yáng)聲器發(fā)出聲音。在系統(tǒng)運(yùn)行過程中,系統(tǒng)控制模塊實時響應(yīng)用戶輸入、改變系統(tǒng)工作狀態(tài)。而信息顯示模塊則將信息提取模塊獲得的數(shù)據(jù)通過VGA顯示器或LED實時顯示出來。
1.1 系統(tǒng)控制和信息提取
  系統(tǒng)控制模塊一方面響應(yīng)用戶輸入從而對系統(tǒng)進(jìn)行控制,另一方面協(xié)調(diào)各模塊工作,防止緩沖區(qū)溢出。對于用戶輸入,系統(tǒng)控制模塊采用了延時查詢與循環(huán)驗證的處理方式,這樣提高了系統(tǒng)判斷的準(zhǔn)確性,減少了誤觸發(fā)率[5]。而對于各模塊工作的協(xié)調(diào)則由系統(tǒng)控制模塊與信息提取模塊共同完成的。例如在音樂第一幀解碼過程中,系統(tǒng)控制模塊會通過信息提取模塊獲取音樂的基本信息(聲道信息、采樣率等),之后將該信息傳遞給音頻輸出模塊,從而決定輸出緩沖區(qū)中PCM樣本與聲道的對應(yīng)關(guān)系以及音樂的播放速率等。同樣,輸入輸出緩沖區(qū)中的有效數(shù)據(jù)量和剩余空間等信息也通過信息提取模塊反饋到系統(tǒng)控制模塊中,作為控制音頻解碼器是否繼續(xù)解碼的依據(jù)。此外,信息提取模塊還對獲取的數(shù)據(jù)進(jìn)行整合和篩選,并將處理結(jié)果送入到信息顯示模塊中。
1.2 碼流輸入模塊
    碼流輸入模塊通過接口芯片從存儲介質(zhì)中讀取數(shù)據(jù)并將其存入到輸入緩沖區(qū)中,其結(jié)構(gòu)如圖2所示。系統(tǒng)控制模塊在命令碼流輸入模塊讀取數(shù)據(jù)的同時,將起始地址(邏輯地址)和要讀取的數(shù)據(jù)量傳遞給該模塊。其中邏輯地址首先通過地址映射子模塊轉(zhuǎn)換為硬件物理地址,再送到數(shù)據(jù)讀取控制子模塊中。數(shù)據(jù)讀取控制子模塊確認(rèn)來自系統(tǒng)控制模塊的指令和數(shù)據(jù)合法后,啟動進(jìn)度控制狀態(tài)機(jī),進(jìn)而通過讀寫時序產(chǎn)生子模塊將指令寫入接口芯片內(nèi)的命令寄存器中,之后等待接口芯片的反饋信息并讀取數(shù)據(jù)。在數(shù)據(jù)讀取過程中,接口芯片的工作狀態(tài)會寫入到狀態(tài)寄存器中,供數(shù)據(jù)讀取控制子模塊使用。

 

 

1.3 音頻解碼模塊
    音頻解碼模塊即待驗證的音頻解碼器。該模塊的接口分為兩部分:一是與輸入輸出緩沖區(qū)的接口,在默認(rèn)狀態(tài)下,該部分接口均為單比特串行模式,但系統(tǒng)預(yù)留了串并轉(zhuǎn)換和并串轉(zhuǎn)換模塊,因此用戶可以選擇使用并行輸入或并行輸出。此外,基于異步FIFO的設(shè)計允許用戶在解碼器輸入輸出端使用不同的時鐘;二是與系統(tǒng)控制模塊和信息提取模塊的接口,為了減少接口數(shù)量,系統(tǒng)控制模塊只提供了解碼起始信號和解碼結(jié)束反饋信號。而信息提取模塊除提供了必須的解碼信息傳遞接口外,還提供了兩組信息提取接口,一個用于時序波形的顯示,另一個用于直接的數(shù)值顯示。除使用系統(tǒng)默認(rèn)的接口外,用戶也可根據(jù)自己的需要對接口進(jìn)行定制或擴(kuò)展。可見,對于一般的音頻解碼器,用戶無需改變接口便可將其直接嵌入到驗證系統(tǒng)中,增強(qiáng)了系統(tǒng)的通用性。
1.4 音頻輸出模塊
    音頻輸出模塊是一個整合PCM輸出控制和AC’97輸入輸出控制的音頻輸出接口。由圖3可見,由比特時鐘生成的同步信號同時送入AC’97 編解碼器、SDATA_IN子模塊和SDATA_OUT子模塊中。其中SDATA_OUT子模塊將指令和PCM數(shù)據(jù)串行輸出到AC’97 編解碼器中,而SDATA_IN子模塊從傳輸?shù)拇行盘栔薪獬鯬CM樣本和編解碼器狀態(tài)信息,并將其送到音頻輸出控制子模塊中。音頻輸出控制子模塊一方面將輸出緩沖區(qū)中的PCM數(shù)據(jù)送到SDATA_OUT模塊中,另一方面根據(jù)獲得的編解碼器狀態(tài)信息采取相應(yīng)的操作。例如,在改變音量時,可以先通過SDATA_IN子模塊讀取AC’97 編解碼器中音量寄存器中的數(shù)據(jù),再將數(shù)據(jù)進(jìn)行一定的運(yùn)算后發(fā)送到SDATA_OUT子模塊中,進(jìn)而通過串行輸出接口寫入AC’97 編解碼器的相應(yīng)寄存器中,從而完成音量的改變。

    在系統(tǒng)復(fù)位完成后,音頻輸出控制子模塊首先通過SDATA_IN子模塊獲得的狀態(tài)信息判斷AC’97 編解碼器的工作狀態(tài),待可以接收指令后,再通過指令控制信息命令SDATA_OUT子模塊將指令ROM中的數(shù)據(jù)依次寫入AC’97 編解碼器中,從而完成初始化操作。在接收到播放指令后,音頻輸出控制子模塊開始從輸出緩沖區(qū)中讀取PCM樣本并經(jīng)由SDATA_OUT子模塊將其填入AC’97幀結(jié)構(gòu)的特定位置,實現(xiàn)音樂的播放。
    可見,只要將音頻輸出控制子模塊稍作修改,便可將SDATA_IN子模塊獲得的PCM數(shù)據(jù)寫入到緩沖區(qū)中,這為音頻編碼器的驗證提供了支持。
1.5信息顯示模塊
    由圖4可見,信息顯示模塊提供了多種數(shù)據(jù)顯示方式,即字符顯示、圖形顯示和字符與圖形混合的顯示方式。對于字符顯示,默認(rèn)的每個字符大小為8×8個像素點,像素點數(shù)值由字符庫產(chǎn)生。在字符庫中,用戶除使用基本的ASCII碼字符外,也可自行定制字符點陣從而實現(xiàn)一些特殊字符或圖形(如公司LOGO)的顯示。因此對于較小的或可以由多個字符構(gòu)成的圖形,可通過字符庫直接產(chǎn)生。

    而對于較復(fù)雜的圖形,則由圖形生成子模塊通過逐點繪制的方式實現(xiàn)。圖形和字符數(shù)據(jù)經(jīng)過合成和配色后同行場同步信號一起送入到VGA顯示模塊中。
    在信息顯示模塊中,顯示控制子模塊一方面控制行場同步信號及消隱信號的產(chǎn)生、保證圖像數(shù)據(jù)的同步輸出,另一方面獲取數(shù)據(jù)處理子模塊的輸出數(shù)據(jù),控制圖像的生成。而數(shù)據(jù)處理子模塊則根據(jù)系統(tǒng)控制模塊指定的顯示方式對原始數(shù)據(jù)進(jìn)行計算或排序處理。例如,當(dāng)需要在屏幕的322~578行顯示PCM波形時,由于16位PCM數(shù)據(jù)的動態(tài)范圍為-32 768~32 767,因此對這些數(shù)據(jù)進(jìn)行加法和移位運(yùn)算從而將其映射到指定范圍。
1.6 系統(tǒng)特點
    由以上分析可知,同現(xiàn)有的音頻解碼器驗證系統(tǒng)相比,該系統(tǒng)的優(yōu)勢主要體現(xiàn)在以下幾個方面:
    (1)兼容各種音頻解碼器,具有很好的通用性。
    (2)支持用戶自定義的顯示和分析功能,且只需稍加改動便可用于音頻編碼器的驗證,具有良好的可擴(kuò)展性。
    (3)基于物理地址的底層數(shù)據(jù)讀取方式使用戶可根據(jù)需要在存儲介質(zhì)的任意位置進(jìn)行非連續(xù)的數(shù)據(jù)讀取,既降低了系統(tǒng)復(fù)雜度,減少了資源開銷,又增加了數(shù)據(jù)讀取的靈活性。
    (4)基于FPGA的純硬件驗證方式,驗證結(jié)果更接近流片結(jié)果。
    (5)既是一個通用的音頻解碼器驗證平臺,也是一個功能完備且數(shù)據(jù)顯示直觀的播放器和演示系統(tǒng)。
2 系統(tǒng)實現(xiàn)及驗證實例
    整個系統(tǒng)在Xilinx公司的VirtexII pro開發(fā)板上實現(xiàn),其硬件連接結(jié)構(gòu)如圖5所示。其中FPGA內(nèi)部各模塊使用VHDL和Verilog HDL語言混合編程實現(xiàn),音頻解碼器為MP3解碼器[6]。在系統(tǒng)運(yùn)行時,F(xiàn)PGA通過System ACE從CF卡中讀取MP3編碼數(shù)據(jù)后,在FPGA內(nèi)部進(jìn)行解碼,之后通過LM4550進(jìn)行實時播放。在播放的過程中,系統(tǒng)通過FMS3818將解碼的信息顯示到VGA顯示器上,同時通過LED顯示當(dāng)前系統(tǒng)的工作狀態(tài)。

    由系統(tǒng)資源開銷情況(表1)和MP3解碼器的資源開銷情況(表2)可見,在忽略解碼器資源開銷的情況下,整個測試系統(tǒng)的各項資源開銷均不到系統(tǒng)資源的60%。此外,實驗結(jié)果表明,該系統(tǒng)的最高時鐘頻率為106.95 MHz,且輸入輸出模塊均具有很強(qiáng)的實時性,可以保證數(shù)據(jù)的實時讀取與聲音的流暢播放。
    音頻解碼芯片的研究人員往往需要對解碼器的功能進(jìn)行反復(fù)驗證,傳統(tǒng)的驗證方法存在諸多缺陷,降低了研究人員的工作效率。而本文設(shè)計的音頻解碼器驗證系統(tǒng)通用性強(qiáng)、數(shù)據(jù)顯示直觀、功能強(qiáng)大,縮短了音頻解碼器的片上驗證周期。實驗結(jié)果表明,該系統(tǒng)資源開銷低、實時性強(qiáng),具有很大的實用價值。
參考文獻(xiàn)
[1] Hu Ruimin, Zhang Yong, Ai Haojun. Digital audio compression technology and AVS audio standard research[C]. proceedings of ISPACS 2005, Hong Kong, China, December, 2005:757-759.
[2] Zhang Hongsheng, Lu Mingying, Wang Guoyu. An ASIC  implementation of MPEG audio decoders[C].ASICON′  07.7th International Conference on.Guilin,China,October, 2007:754-757.
[3] 宋奇剛.MP3數(shù)字音頻解碼芯片VLSI設(shè)計研究[D]. 成都:電子科技大學(xué),2005.
[4] 周建,劉鵬,陳科明,等. 基于FPGA平臺的媒體系統(tǒng)芯片驗證框架[J]. 微電子學(xué),2006,36(3):284-287.
[5] 肖看,朱光喜,劉文予,等. FPGA按鍵模式的研究與設(shè)計[J].電子技術(shù)應(yīng)用,2008,34(10):45-47.
[6] FALTMAN I, HAST M, LUNDGREN A, et al. A hardware  implementation of an MP3 decoder.DIGITAL IC-PROJECT, LTH, Sweden.2003.5.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。