《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 通用音頻解碼器驗(yàn)證系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
通用音頻解碼器驗(yàn)證系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2011年第6期
全浩軍, 郭繼昌, 張 濤
(天津大學(xué) 電子信息工程學(xué)院, 天津 300072)
摘要: 設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于FPGA的音頻解碼器驗(yàn)證系統(tǒng)。同傳統(tǒng)的驗(yàn)證系統(tǒng)相比,系統(tǒng)不僅具有很強(qiáng)的通用性,還具有良好的可擴(kuò)展性和強(qiáng)大的圖形化顯示功能,可以很方便地對(duì)各種音頻解碼器進(jìn)行片上驗(yàn)證。該系統(tǒng)的實(shí)現(xiàn)縮短了音頻解碼器的片上驗(yàn)證周期,有助于研究人員提高工作效率,具有很大的實(shí)用價(jià)值。
中圖分類(lèi)號(hào): TN47
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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


    近年來(lái),數(shù)字多媒體技術(shù)得到了前所未有的發(fā)展。數(shù)字音頻技術(shù)已經(jīng)同CD、DVD和MP3等娛樂(lè)產(chǎn)品一起進(jìn)入到人們的日常生活中,對(duì)人們的生活產(chǎn)生了巨大影響[1]。而隨著個(gè)人數(shù)字娛樂(lè)產(chǎn)品的普及,音頻專(zhuān)用解碼芯片以其低成本和高性能而得到了廣泛的應(yīng)用[2-3]。
       在音頻解碼芯片設(shè)計(jì)過(guò)程中,研究人員往往需要對(duì)解碼器的功能進(jìn)行反復(fù)驗(yàn)證[4]。傳統(tǒng)的驗(yàn)證方法一般是利用FPGA搭建專(zhuān)用的測(cè)試平臺(tái)并使用ChipScope等在線(xiàn)邏輯分析儀進(jìn)行輔助分析。這種方法可以有針對(duì)性地獲取用戶(hù)所需數(shù)據(jù),從而在一定程度上達(dá)到驗(yàn)證的目的,但存在一些缺陷。首先,測(cè)試平臺(tái)通用性差,無(wú)法兼容多個(gè)音頻解碼器。即使對(duì)于同一個(gè)解碼器,一旦接口或內(nèi)部測(cè)試模塊改變,測(cè)試平臺(tái)就需要做相應(yīng)的修改。其次,受限于在線(xiàn)邏輯分析儀的功能,測(cè)試結(jié)果的顯示不直觀,如無(wú)法根據(jù)用戶(hù)的需求實(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ù)位完成后,如果用戶(hù)在一定時(shí)間內(nèi)沒(méi)有改變系統(tǒng)參數(shù),則系統(tǒng)會(huì)根據(jù)默認(rèn)設(shè)置運(yùn)行。首先,碼流輸入模塊接收系統(tǒng)控制模塊的指令,指定接口芯片在存儲(chǔ)介質(zhì)的特定位置讀取數(shù)據(jù)并將其寫(xiě)入輸入緩沖區(qū)中。當(dāng)輸入緩沖區(qū)中的有效數(shù)據(jù)量到達(dá)預(yù)先設(shè)定的解碼最小值時(shí),音頻解碼器便開(kāi)始從輸入緩沖區(qū)中讀取編碼數(shù)據(jù)并進(jìn)行解碼,之后將解碼得到的PCM樣本寫(xiě)入到輸出緩沖區(qū)中。同樣,在輸出緩沖區(qū)中的有效數(shù)據(jù)量達(dá)到預(yù)先設(shè)定的播放最小值時(shí),音頻輸出模塊開(kāi)始根據(jù)獲得的音頻信息以給定的速率從輸出緩沖區(qū)中讀取PCM樣本,并按照特定的格式輸出到AC’97編解碼芯片中,從而驅(qū)動(dòng)揚(yáng)聲器發(fā)出聲音。在系統(tǒng)運(yùn)行過(guò)程中,系統(tǒng)控制模塊實(shí)時(shí)響應(yīng)用戶(hù)輸入、改變系統(tǒng)工作狀態(tài)。而信息顯示模塊則將信息提取模塊獲得的數(shù)據(jù)通過(guò)VGA顯示器或LED實(shí)時(shí)顯示出來(lái)。
1.1 系統(tǒng)控制和信息提取
  系統(tǒng)控制模塊一方面響應(yīng)用戶(hù)輸入從而對(duì)系統(tǒng)進(jìn)行控制,另一方面協(xié)調(diào)各模塊工作,防止緩沖區(qū)溢出。對(duì)于用戶(hù)輸入,系統(tǒng)控制模塊采用了延時(shí)查詢(xún)與循環(huán)驗(yàn)證的處理方式,這樣提高了系統(tǒng)判斷的準(zhǔn)確性,減少了誤觸發(fā)率[5]。而對(duì)于各模塊工作的協(xié)調(diào)則由系統(tǒng)控制模塊與信息提取模塊共同完成的。例如在音樂(lè)第一幀解碼過(guò)程中,系統(tǒng)控制模塊會(huì)通過(guò)信息提取模塊獲取音樂(lè)的基本信息(聲道信息、采樣率等),之后將該信息傳遞給音頻輸出模塊,從而決定輸出緩沖區(qū)中PCM樣本與聲道的對(duì)應(yīng)關(guān)系以及音樂(lè)的播放速率等。同樣,輸入輸出緩沖區(qū)中的有效數(shù)據(jù)量和剩余空間等信息也通過(guò)信息提取模塊反饋到系統(tǒng)控制模塊中,作為控制音頻解碼器是否繼續(xù)解碼的依據(jù)。此外,信息提取模塊還對(duì)獲取的數(shù)據(jù)進(jìn)行整合和篩選,并將處理結(jié)果送入到信息顯示模塊中。
1.2 碼流輸入模塊
    碼流輸入模塊通過(guò)接口芯片從存儲(chǔ)介質(zhì)中讀取數(shù)據(jù)并將其存入到輸入緩沖區(qū)中,其結(jié)構(gòu)如圖2所示。系統(tǒng)控制模塊在命令碼流輸入模塊讀取數(shù)據(jù)的同時(shí),將起始地址(邏輯地址)和要讀取的數(shù)據(jù)量傳遞給該模塊。其中邏輯地址首先通過(guò)地址映射子模塊轉(zhuǎn)換為硬件物理地址,再送到數(shù)據(jù)讀取控制子模塊中。數(shù)據(jù)讀取控制子模塊確認(rèn)來(lái)自系統(tǒng)控制模塊的指令和數(shù)據(jù)合法后,啟動(dòng)進(jìn)度控制狀態(tài)機(jī),進(jìn)而通過(guò)讀寫(xiě)時(shí)序產(chǎn)生子模塊將指令寫(xiě)入接口芯片內(nèi)的命令寄存器中,之后等待接口芯片的反饋信息并讀取數(shù)據(jù)。在數(shù)據(jù)讀取過(guò)程中,接口芯片的工作狀態(tài)會(huì)寫(xiě)入到狀態(tài)寄存器中,供數(shù)據(jù)讀取控制子模塊使用。

 

 

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

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

    而對(duì)于較復(fù)雜的圖形,則由圖形生成子模塊通過(guò)逐點(diǎn)繪制的方式實(shí)現(xiàn)。圖形和字符數(shù)據(jù)經(jīng)過(guò)合成和配色后同行場(chǎng)同步信號(hào)一起送入到VGA顯示模塊中。
    在信息顯示模塊中,顯示控制子模塊一方面控制行場(chǎng)同步信號(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)支持用戶(hù)自定義的顯示和分析功能,且只需稍加改動(dòng)便可用于音頻編碼器的驗(yàn)證,具有良好的可擴(kuò)展性。
    (3)基于物理地址的底層數(shù)據(jù)讀取方式使用戶(hù)可根據(jù)需要在存儲(chǔ)介質(zhì)的任意位置進(jìn)行非連續(xù)的數(shù)據(jù)讀取,既降低了系統(tǒng)復(fù)雜度,減少了資源開(kāi)銷(xiāo),又增加了數(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開(kāi)發(fā)板上實(shí)現(xiàn),其硬件連接結(jié)構(gòu)如圖5所示。其中FPGA內(nèi)部各模塊使用VHDL和Verilog HDL語(yǔ)言混合編程實(shí)現(xiàn),音頻解碼器為MP3解碼器[6]。在系統(tǒng)運(yùn)行時(shí),F(xiàn)PGA通過(guò)System ACE從CF卡中讀取MP3編碼數(shù)據(jù)后,在FPGA內(nèi)部進(jìn)行解碼,之后通過(guò)LM4550進(jìn)行實(shí)時(shí)播放。在播放的過(guò)程中,系統(tǒng)通過(guò)FMS3818將解碼的信息顯示到VGA顯示器上,同時(shí)通過(guò)LED顯示當(dāng)前系統(tǒng)的工作狀態(tài)。

    由系統(tǒng)資源開(kāi)銷(xiāo)情況(表1)和MP3解碼器的資源開(kāi)銷(xiāo)情況(表2)可見(jiàn),在忽略解碼器資源開(kāi)銷(xiāo)的情況下,整個(gè)測(cè)試系統(tǒng)的各項(xiàng)資源開(kāi)銷(xiāo)均不到系統(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)資源開(kāi)銷(xiāo)低、實(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.

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