文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)06-084-03
近年來,數(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ì)過程中,研究人員往往需要對解碼器的功能進(jìn)行反復(fù)驗(yàn)證[4],。傳統(tǒng)的驗(yàn)證方法一般是利用FPGA搭建專用的測試平臺并使用ChipScope等在線邏輯分析儀進(jìn)行輔助分析,。這種方法可以有針對性地獲取用戶所需數(shù)據(jù),從而在一定程度上達(dá)到驗(yàn)證的目的,,但存在一些缺陷,。首先,測試平臺通用性差,,無法兼容多個音頻解碼器,。即使對于同一個解碼器,一旦接口或內(nèi)部測試模塊改變,,測試平臺就需要做相應(yīng)的修改,。其次,受限于在線邏輯分析儀的功能,,測試結(jié)果的顯示不直觀,,如無法根據(jù)用戶的需求實(shí)現(xiàn)可配置的圖形化顯示功能。為此,本文設(shè)計(jì)并實(shí)現(xiàn)了一個通用的音頻解碼器測試系統(tǒng),,其功能強(qiáng)大,,并具有良好的可擴(kuò)展性,可以幫助研究人員提高工作效率,,具有很大的實(shí)用價(jià)值,。
1 系統(tǒng)結(jié)構(gòu)與工作原理
系統(tǒng)總體結(jié)構(gòu)如圖1所示。在FPGA內(nèi)部,,該驗(yàn)證系統(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)控制模塊實(shí)時響應(yīng)用戶輸入,、改變系統(tǒng)工作狀態(tài)。而信息顯示模塊則將信息提取模塊獲得的數(shù)據(jù)通過VGA顯示器或LED實(shí)時顯示出來,。
1.1 系統(tǒng)控制和信息提取
系統(tǒng)控制模塊一方面響應(yīng)用戶輸入從而對系統(tǒng)進(jìn)行控制,,另一方面協(xié)調(diào)各模塊工作,防止緩沖區(qū)溢出,。對于用戶輸入,,系統(tǒng)控制模塊采用了延時查詢與循環(huán)驗(yà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 音頻解碼模塊
音頻解碼模塊即待驗(yàn)證的音頻解碼器,。該模塊的接口分為兩部分:一是與輸入輸出緩沖區(qū)的接口,,在默認(rèn)狀態(tài)下,該部分接口均為單比特串行模式,,但系統(tǒng)預(yù)留了串并轉(zhuǎn)換和并串轉(zhuǎn)換模塊,,因此用戶可以選擇使用并行輸入或并行輸出。此外,,基于異步FIFO的設(shè)計(jì)允許用戶在解碼器輸入輸出端使用不同的時鐘,;二是與系統(tǒng)控制模塊和信息提取模塊的接口,為了減少接口數(shù)量,,系統(tǒng)控制模塊只提供了解碼起始信號和解碼結(jié)束反饋信號,。而信息提取模塊除提供了必須的解碼信息傳遞接口外,還提供了兩組信息提取接口,,一個用于時序波形的顯示,,另一個用于直接的數(shù)值顯示。除使用系統(tǒng)默認(rèn)的接口外,,用戶也可根據(jù)自己的需要對接口進(jìn)行定制或擴(kuò)展,。可見,,對于一般的音頻解碼器,,用戶無需改變接口便可將其直接嵌入到驗(yàn)證系統(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)的特定位置,,實(shí)現(xiàn)音樂的播放,。
可見,只要將音頻輸出控制子模塊稍作修改,,便可將SDATA_IN子模塊獲得的PCM數(shù)據(jù)寫入到緩沖區(qū)中,,這為音頻編碼器的驗(yàn)證提供了支持。
1.5信息顯示模塊
由圖4可見,,信息顯示模塊提供了多種數(shù)據(jù)顯示方式,,即字符顯示、圖形顯示和字符與圖形混合的顯示方式,。對于字符顯示,,默認(rèn)的每個字符大小為8×8個像素點(diǎn),像素點(diǎn)數(shù)值由字符庫產(chǎn)生,。在字符庫中,,用戶除使用基本的ASCII碼字符外,也可自行定制字符點(diǎn)陣從而實(shí)現(xiàn)一些特殊字符或圖形(如公司LOGO)的顯示,。因此對于較小的或可以由多個字符構(gòu)成的圖形,,可通過字符庫直接產(chǎn)生。
而對于較復(fù)雜的圖形,,則由圖形生成子模塊通過逐點(diǎn)繪制的方式實(shí)現(xiàn),。圖形和字符數(shù)據(jù)經(jīng)過合成和配色后同行場同步信號一起送入到VGA顯示模塊中。
在信息顯示模塊中,,顯示控制子模塊一方面控制行場同步信號及消隱信號的產(chǎn)生,、保證圖像數(shù)據(jù)的同步輸出,另一方面獲取數(shù)據(jù)處理子模塊的輸出數(shù)據(jù),,控制圖像的生成,。而數(shù)據(jù)處理子模塊則根據(jù)系統(tǒng)控制模塊指定的顯示方式對原始數(shù)據(jù)進(jìn)行計(jì)算或排序處理。例如,,當(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)特點(diǎn)
由以上分析可知,,同現(xiàn)有的音頻解碼器驗(yàn)證系統(tǒng)相比,,該系統(tǒng)的優(yōu)勢主要體現(xiàn)在以下幾個方面:
(1)兼容各種音頻解碼器,具有很好的通用性,。
(2)支持用戶自定義的顯示和分析功能,,且只需稍加改動便可用于音頻編碼器的驗(yàn)證,具有良好的可擴(kuò)展性。
(3)基于物理地址的底層數(shù)據(jù)讀取方式使用戶可根據(jù)需要在存儲介質(zhì)的任意位置進(jìn)行非連續(xù)的數(shù)據(jù)讀取,,既降低了系統(tǒng)復(fù)雜度,減少了資源開銷,,又增加了數(shù)據(jù)讀取的靈活性,。
(4)基于FPGA的純硬件驗(yàn)證方式,驗(yàn)證結(jié)果更接近流片結(jié)果,。
(5)既是一個通用的音頻解碼器驗(yàn)證平臺,,也是一個功能完備且數(shù)據(jù)顯示直觀的播放器和演示系統(tǒng)。
2 系統(tǒng)實(shí)現(xiàn)及驗(yàn)證實(shí)例
整個系統(tǒng)在Xilinx公司的VirtexII pro開發(fā)板上實(shí)現(xiàn),,其硬件連接結(jié)構(gòu)如圖5所示,。其中FPGA內(nèi)部各模塊使用VHDL和Verilog HDL語言混合編程實(shí)現(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)行實(shí)時播放,。在播放的過程中,,系統(tǒng)通過FMS3818將解碼的信息顯示到VGA顯示器上,同時通過LED顯示當(dāng)前系統(tǒng)的工作狀態(tài),。
由系統(tǒng)資源開銷情況(表1)和MP3解碼器的資源開銷情況(表2)可見,,在忽略解碼器資源開銷的情況下,整個測試系統(tǒng)的各項(xiàng)資源開銷均不到系統(tǒng)資源的60%,。此外,實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)的最高時鐘頻率為106.95 MHz,,且輸入輸出模塊均具有很強(qiáng)的實(shí)時性,可以保證數(shù)據(jù)的實(shí)時讀取與聲音的流暢播放,。
音頻解碼芯片的研究人員往往需要對解碼器的功能進(jìn)行反復(fù)驗(yàn)證,傳統(tǒng)的驗(yàn)證方法存在諸多缺陷,,降低了研究人員的工作效率。而本文設(shè)計(jì)的音頻解碼器驗(yàn)證系統(tǒng)通用性強(qiáng),、數(shù)據(jù)顯示直觀,、功能強(qiáng)大,縮短了音頻解碼器的片上驗(yàn)證周期,。實(shí)驗(yàn)結(jié)果表明,,該系統(tǒng)資源開銷低、實(shí)時性強(qiáng),具有很大的實(shí)用價(jià)值,。
參考文獻(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è)計(jì)研究[D]. 成都:電子科技大學(xué),,2005.
[4] 周建,劉鵬,,陳科明,等. 基于FPGA平臺的媒體系統(tǒng)芯片驗(yàn)證框架[J]. 微電子學(xué),2006,36(3):284-287.
[5] 肖看,,朱光喜,劉文予,等. FPGA按鍵模式的研究與設(shè)計(jì)[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.