文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)06-084-03
近年來,,數(shù)字多媒體技術(shù)得到了前所未有的發(fā)展。數(shù)字音頻技術(shù)已經(jīng)同CD,、DVD和MP3等娛樂產(chǎn)品一起進(jìn)入到人們的日常生活中,,對(duì)人們的生活產(chǎn)生了巨大影響[1]。而隨著個(gè)人數(shù)字娛樂產(chǎn)品的普及,音頻專用解碼芯片以其低成本和高性能而得到了廣泛的應(yīng)用[2-3],。
在音頻解碼芯片設(shè)計(jì)過程中,,研究人員往往需要對(duì)解碼器的功能進(jìn)行反復(fù)驗(yàn)證[4]。傳統(tǒng)的驗(yàn)證方法一般是利用FPGA搭建專用的測(cè)試平臺(tái)并使用ChipScope等在線邏輯分析儀進(jìn)行輔助分析,。這種方法可以有針對(duì)性地獲取用戶所需數(shù)據(jù),,從而在一定程度上達(dá)到驗(yàn)證的目的,但存在一些缺陷,。首先,,測(cè)試平臺(tái)通用性差,無法兼容多個(gè)音頻解碼器,。即使對(duì)于同一個(gè)解碼器,,一旦接口或內(nèi)部測(cè)試模塊改變,測(cè)試平臺(tái)就需要做相應(yīng)的修改,。其次,,受限于在線邏輯分析儀的功能,測(cè)試結(jié)果的顯示不直觀,,如無法根據(jù)用戶的需求實(shí)現(xiàn)可配置的圖形化顯示功能,。為此,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)通用的音頻解碼器測(cè)試系統(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)控制,、碼流輸入,、輸入緩沖、音頻解碼器,、輸出緩沖,、音頻輸出、信息提取和信息顯示共八個(gè)模塊組成,。
系統(tǒng)復(fù)位完成后,,如果用戶在一定時(shí)間內(nèi)沒有改變系統(tǒng)參數(shù),則系統(tǒng)會(huì)根據(jù)默認(rèn)設(shè)置運(yùn)行,。首先,,碼流輸入模塊接收系統(tǒng)控制模塊的指令,指定接口芯片在存儲(chǔ)介質(zhì)的特定位置讀取數(shù)據(jù)并將其寫入輸入緩沖區(qū)中,。當(dāng)輸入緩沖區(qū)中的有效數(shù)據(jù)量到達(dá)預(yù)先設(shè)定的解碼最小值時(shí),,音頻解碼器便開始從輸入緩沖區(qū)中讀取編碼數(shù)據(jù)并進(jìn)行解碼,,之后將解碼得到的PCM樣本寫入到輸出緩沖區(qū)中。同樣,,在輸出緩沖區(qū)中的有效數(shù)據(jù)量達(dá)到預(yù)先設(shè)定的播放最小值時(shí),,音頻輸出模塊開始根據(jù)獲得的音頻信息以給定的速率從輸出緩沖區(qū)中讀取PCM樣本,并按照特定的格式輸出到AC’97編解碼芯片中,,從而驅(qū)動(dòng)揚(yáng)聲器發(fā)出聲音,。在系統(tǒng)運(yùn)行過程中,系統(tǒng)控制模塊實(shí)時(shí)響應(yīng)用戶輸入,、改變系統(tǒng)工作狀態(tài),。而信息顯示模塊則將信息提取模塊獲得的數(shù)據(jù)通過VGA顯示器或LED實(shí)時(shí)顯示出來。
1.1 系統(tǒng)控制和信息提取
系統(tǒng)控制模塊一方面響應(yīng)用戶輸入從而對(duì)系統(tǒng)進(jìn)行控制,,另一方面協(xié)調(diào)各模塊工作,,防止緩沖區(qū)溢出。對(duì)于用戶輸入,,系統(tǒng)控制模塊采用了延時(shí)查詢與循環(huán)驗(yàn)證的處理方式,,這樣提高了系統(tǒng)判斷的準(zhǔn)確性,減少了誤觸發(fā)率[5],。而對(duì)于各模塊工作的協(xié)調(diào)則由系統(tǒng)控制模塊與信息提取模塊共同完成的,。例如在音樂第一幀解碼過程中,系統(tǒng)控制模塊會(huì)通過信息提取模塊獲取音樂的基本信息(聲道信息,、采樣率等),,之后將該信息傳遞給音頻輸出模塊,從而決定輸出緩沖區(qū)中PCM樣本與聲道的對(duì)應(yīng)關(guān)系以及音樂的播放速率等,。同樣,,輸入輸出緩沖區(qū)中的有效數(shù)據(jù)量和剩余空間等信息也通過信息提取模塊反饋到系統(tǒng)控制模塊中,作為控制音頻解碼器是否繼續(xù)解碼的依據(jù),。此外,,信息提取模塊還對(duì)獲取的數(shù)據(jù)進(jìn)行整合和篩選,并將處理結(jié)果送入到信息顯示模塊中,。
1.2 碼流輸入模塊
碼流輸入模塊通過接口芯片從存儲(chǔ)介質(zhì)中讀取數(shù)據(jù)并將其存入到輸入緩沖區(qū)中,其結(jié)構(gòu)如圖2所示,。系統(tǒng)控制模塊在命令碼流輸入模塊讀取數(shù)據(jù)的同時(shí),,將起始地址(邏輯地址)和要讀取的數(shù)據(jù)量傳遞給該模塊。其中邏輯地址首先通過地址映射子模塊轉(zhuǎn)換為硬件物理地址,,再送到數(shù)據(jù)讀取控制子模塊中,。數(shù)據(jù)讀取控制子模塊確認(rèn)來自系統(tǒng)控制模塊的指令和數(shù)據(jù)合法后,啟動(dòng)進(jìn)度控制狀態(tài)機(jī),,進(jìn)而通過讀寫時(shí)序產(chǎn)生子模塊將指令寫入接口芯片內(nèi)的命令寄存器中,,之后等待接口芯片的反饋信息并讀取數(shù)據(jù),。在數(shù)據(jù)讀取過程中,接口芯片的工作狀態(tài)會(huì)寫入到狀態(tài)寄存器中,,供數(shù)據(jù)讀取控制子模塊使用,。
1.3 音頻解碼模塊
音頻解碼模塊即待驗(yàn)證的音頻解碼器。該模塊的接口分為兩部分:一是與輸入輸出緩沖區(qū)的接口,,在默認(rèn)狀態(tài)下,,該部分接口均為單比特串行模式,但系統(tǒng)預(yù)留了串并轉(zhuǎn)換和并串轉(zhuǎn)換模塊,,因此用戶可以選擇使用并行輸入或并行輸出,。此外,基于異步FIFO的設(shè)計(jì)允許用戶在解碼器輸入輸出端使用不同的時(shí)鐘,;二是與系統(tǒng)控制模塊和信息提取模塊的接口,,為了減少接口數(shù)量,系統(tǒng)控制模塊只提供了解碼起始信號(hào)和解碼結(jié)束反饋信號(hào),。而信息提取模塊除提供了必須的解碼信息傳遞接口外,,還提供了兩組信息提取接口,一個(gè)用于時(shí)序波形的顯示,,另一個(gè)用于直接的數(shù)值顯示,。除使用系統(tǒng)默認(rèn)的接口外,用戶也可根據(jù)自己的需要對(duì)接口進(jìn)行定制或擴(kuò)展,??梢姡瑢?duì)于一般的音頻解碼器,,用戶無需改變接口便可將其直接嵌入到驗(yàn)證系統(tǒng)中,,增強(qiáng)了系統(tǒng)的通用性。
1.4 音頻輸出模塊
音頻輸出模塊是一個(gè)整合PCM輸出控制和AC’97輸入輸出控制的音頻輸出接口,。由圖3可見,,由比特時(shí)鐘生成的同步信號(hào)同時(shí)送入AC’97 編解碼器、SDATA_IN子模塊和SDATA_OUT子模塊中,。其中SDATA_OUT子模塊將指令和PCM數(shù)據(jù)串行輸出到AC’97 編解碼器中,,而SDATA_IN子模塊從傳輸?shù)拇行盘?hào)中解出PCM樣本和編解碼器狀態(tài)信息,并將其送到音頻輸出控制子模塊中,。音頻輸出控制子模塊一方面將輸出緩沖區(qū)中的PCM數(shù)據(jù)送到SDATA_OUT模塊中,,另一方面根據(jù)獲得的編解碼器狀態(tài)信息采取相應(yīng)的操作。例如,,在改變音量時(shí),,可以先通過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ù)顯示方式,,即字符顯示,、圖形顯示和字符與圖形混合的顯示方式。對(duì)于字符顯示,,默認(rèn)的每個(gè)字符大小為8×8個(gè)像素點(diǎn),,像素點(diǎn)數(shù)值由字符庫產(chǎn)生。在字符庫中,,用戶除使用基本的ASCII碼字符外,,也可自行定制字符點(diǎn)陣從而實(shí)現(xiàn)一些特殊字符或圖形(如公司LOGO)的顯示。因此對(duì)于較小的或可以由多個(gè)字符構(gòu)成的圖形,,可通過字符庫直接產(chǎn)生,。
而對(duì)于較復(fù)雜的圖形,則由圖形生成子模塊通過逐點(diǎn)繪制的方式實(shí)現(xiàn),。圖形和字符數(shù)據(jù)經(jīng)過合成和配色后同行場同步信號(hào)一起送入到VGA顯示模塊中,。
在信息顯示模塊中,顯示控制子模塊一方面控制行場同步信號(hào)及消隱信號(hào)的產(chǎn)生,、保證圖像數(shù)據(jù)的同步輸出,,另一方面獲取數(shù)據(jù)處理子模塊的輸出數(shù)據(jù),控制圖像的生成,。而數(shù)據(jù)處理子模塊則根據(jù)系統(tǒng)控制模塊指定的顯示方式對(duì)原始數(shù)據(jù)進(jìn)行計(jì)算或排序處理,。例如,當(dāng)需要在屏幕的322~578行顯示PCM波形時(shí),,由于16位PCM數(shù)據(jù)的動(dòng)態(tài)范圍為-32 768~32 767,,因此對(duì)這些數(shù)據(jù)進(jìn)行加法和移位運(yùn)算從而將其映射到指定范圍,。
1.6 系統(tǒng)特點(diǎn)
由以上分析可知,,同現(xiàn)有的音頻解碼器驗(yàn)證系統(tǒng)相比,,該系統(tǒng)的優(yōu)勢(shì)主要體現(xiàn)在以下幾個(gè)方面:
(1)兼容各種音頻解碼器,具有很好的通用性,。
(2)支持用戶自定義的顯示和分析功能,,且只需稍加改動(dòng)便可用于音頻編碼器的驗(yàn)證,具有良好的可擴(kuò)展性。
(3)基于物理地址的底層數(shù)據(jù)讀取方式使用戶可根據(jù)需要在存儲(chǔ)介質(zhì)的任意位置進(jìn)行非連續(xù)的數(shù)據(jù)讀取,,既降低了系統(tǒng)復(fù)雜度,,減少了資源開銷,又增加了數(shù)據(jù)讀取的靈活性,。
(4)基于FPGA的純硬件驗(yàn)證方式,,驗(yàn)證結(jié)果更接近流片結(jié)果。
(5)既是一個(gè)通用的音頻解碼器驗(yàn)證平臺(tái),,也是一個(gè)功能完備且數(shù)據(jù)顯示直觀的播放器和演示系統(tǒng),。
2 系統(tǒng)實(shí)現(xiàn)及驗(yàn)證實(shí)例
整個(gè)系統(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)行時(shí),F(xiàn)PGA通過System ACE從CF卡中讀取MP3編碼數(shù)據(jù)后,,在FPGA內(nèi)部進(jìn)行解碼,,之后通過LM4550進(jìn)行實(shí)時(shí)播放。在播放的過程中,,系統(tǒng)通過FMS3818將解碼的信息顯示到VGA顯示器上,,同時(shí)通過LED顯示當(dāng)前系統(tǒng)的工作狀態(tài)。
由系統(tǒng)資源開銷情況(表1)和MP3解碼器的資源開銷情況(表2)可見,,在忽略解碼器資源開銷的情況下,,整個(gè)測(cè)試系統(tǒng)的各項(xiàng)資源開銷均不到系統(tǒng)資源的60%。此外,實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)的最高時(shí)鐘頻率為106.95 MHz,,且輸入輸出模塊均具有很強(qiáng)的實(shí)時(shí)性,,可以保證數(shù)據(jù)的實(shí)時(shí)讀取與聲音的流暢播放。
音頻解碼芯片的研究人員往往需要對(duì)解碼器的功能進(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í)時(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ái)的媒體系統(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.