<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > AAC音頻解碼中位數(shù)可選且自動(dòng)加載移位寄存器設(shè)計(jì)

          AAC音頻解碼中位數(shù)可選且自動(dòng)加載移位寄存器設(shè)計(jì)

          作者: 時(shí)間:2009-03-24 來源:網(wǎng)絡(luò) 收藏

          1、引言

          本文引用地址:http://www.ex-cimer.com/article/167019.htm

            在對(duì)采樣率為44.1kHz的進(jìn)行時(shí),一幀的時(shí)間須控制在23.22毫秒內(nèi)。且中每一幀可包含1~48個(gè)聲道的數(shù)據(jù),若遇時(shí)序要求最嚴(yán)格的場(chǎng)合,即一幀包含48個(gè)聲道數(shù)據(jù),實(shí)時(shí)性則很難滿足,因此速度便成為硬件的重要指標(biāo)。所以在系統(tǒng)時(shí),為完成的實(shí)時(shí)性要求,各模塊應(yīng)以速度為優(yōu)化目標(biāo)。

            在解碼電路的中,需要一塊電路連接比特流的存儲(chǔ)電路和和取數(shù)解碼電路,考慮到它須完成數(shù)據(jù)緩沖和的功能,我們選擇用來實(shí)現(xiàn),示意圖如下。


          圖1 功能示意圖

            典型的移位有兩個(gè)特點(diǎn):1)每個(gè)時(shí)鐘周期移一位,2)的優(yōu)先級(jí)別高于移位的優(yōu)先級(jí)別,移位需等待的完成。而AAC音頻數(shù)據(jù)采用變長編碼技術(shù),即壓縮比特流中的數(shù)據(jù)部分為可變長的哈夫曼編碼,所以每次解碼完畢從移位寄存器中移出的位數(shù)不是固定值,若使用典型移位寄存器一位一位地移數(shù)據(jù)降低了工作效率;且每次移位須等待完畢進(jìn)行,耗費(fèi)了等待時(shí)間。所以,典型的移位寄存器在時(shí)序要求緊張的場(chǎng)合對(duì)速度提高起到了負(fù)面作用,導(dǎo)致整個(gè)系統(tǒng)不能完成實(shí)時(shí)性要求。因此本設(shè)計(jì)針對(duì)AAC音頻解碼這一特殊應(yīng)用,對(duì)典型移位寄存器在速度方面進(jìn)行改進(jìn)設(shè)計(jì),使之每一周期可移出任意位,且移位無須等待加載完成,從而加速了移位過程,使之滿足實(shí)時(shí)性要求。

            論文結(jié)構(gòu)如下:首先介紹本設(shè)計(jì)的工作原理,對(duì)其中一些參數(shù)進(jìn)行配置;其次分模塊進(jìn)行電路設(shè)計(jì);再次,將典型移位寄存器和本設(shè)計(jì)分別下載到FPGA開發(fā)板,從速度和面積兩方面進(jìn)行實(shí)驗(yàn)結(jié)果的比較;最后,對(duì)設(shè)計(jì)展望,提出可優(yōu)化的方向。

          2、工作原理

            考慮到本設(shè)計(jì)的特定使用場(chǎng)合,選擇移位寄存器為64位,移位位數(shù)是1~16可變的整數(shù),存儲(chǔ)空間是位寬為32位的fifo。在其他場(chǎng)合下,可基于同樣的設(shè)計(jì)方法通過改變參數(shù)來滿足要求。

            移位寄存器功能示意如圖1所示,此移位寄存器連接了兩塊電路單元:?jiǎn)卧?、需要取?shù)的AAC音頻解碼電路單元;單元二、數(shù)據(jù)的存儲(chǔ)空間。當(dāng)任意時(shí)刻單元一需取數(shù)時(shí),可向移位寄存器發(fā)出取數(shù)信號(hào),并給出要取的位數(shù),移位寄存器就在一個(gè)周期內(nèi)將所需長度的數(shù)據(jù)移出。當(dāng)移位寄存器中的數(shù)據(jù)少于一定量時(shí)(在此設(shè)為32位),會(huì)從單元二中加載數(shù)據(jù),且加載與移位同優(yōu)先級(jí)別,所以無須等待時(shí)間。

          3、位數(shù)可選、加載移位寄存器電路設(shè)計(jì)

            以主要寄存器的不同功能依據(jù),將電路劃分為如下圖所示的虛線框內(nèi)的三個(gè)模塊。下面將分模塊介紹電路的設(shè)計(jì)。


          圖2 位數(shù)可選、加載移位寄存器電路圖

          3.1 有效數(shù)據(jù)計(jì)數(shù)器的設(shè)計(jì)

            有效數(shù)據(jù)計(jì)數(shù)器是用來記錄移位寄存器中剩余有效數(shù)據(jù)的位數(shù)。初始化時(shí),存儲(chǔ)器向移位寄存器加載64位有效數(shù)據(jù),計(jì)數(shù)器為64;當(dāng)外界從移位寄存器取數(shù)時(shí),計(jì)數(shù)器在原有計(jì)數(shù)的基礎(chǔ)上減掉所取的位數(shù);當(dāng)移位寄存器從存儲(chǔ)器加載數(shù)據(jù)時(shí),計(jì)數(shù)器在原有計(jì)數(shù)的基礎(chǔ)上加上加載數(shù)據(jù)的位寬(32);當(dāng)移位和加載同時(shí)進(jìn)行時(shí),計(jì)數(shù)器進(jìn)行上述的減法和加法的混合運(yùn)算。

            使用計(jì)數(shù)器的目的是為了產(chǎn)生加載數(shù)據(jù)的標(biāo)志信號(hào)(在這里設(shè)為32)。當(dāng)有效數(shù)據(jù)計(jì)數(shù)器中的數(shù)目小于等于32時(shí),產(chǎn)生加載信號(hào),而當(dāng)計(jì)數(shù)器中的數(shù)目大于32時(shí),撤除加載信號(hào)。在這里加載數(shù)據(jù)的標(biāo)志位可以是范圍為16~32的整數(shù),范圍的制定決定于:加載標(biāo)志的下限要滿足一次取數(shù)的最大長度,上限要保證除有效數(shù)據(jù)外的剩余空間足夠下一次的數(shù)據(jù)加載長度。

          3.2 初始化控制狀態(tài)機(jī)的設(shè)計(jì)

            移位寄存器在電路復(fù)位時(shí)須加載上有效數(shù)據(jù),以保證第一次的取數(shù)的正確進(jìn)行。而此時(shí)加載標(biāo)志不能由有效數(shù)據(jù)計(jì)數(shù)器產(chǎn)生,因?yàn)橛行?shù)據(jù)計(jì)數(shù)器在初始化的狀態(tài)下為64不可能產(chǎn)生加載標(biāo)志,所以加載標(biāo)志需由復(fù)位信號(hào)間接產(chǎn)生。且由于移位寄存器的長度(64位)是存儲(chǔ)器的寬度(32位)的2倍,所以需要加載兩次。

            鑒于以上的功能要求,設(shè)計(jì)初始化狀態(tài)機(jī),其中包括三個(gè)狀態(tài): IDLE, INIT_0和 INIT_1。當(dāng)復(fù)位產(chǎn)生時(shí),復(fù)位信號(hào)的兩級(jí)寄存信號(hào)(防止亞穩(wěn)態(tài))為觸發(fā)信號(hào),使?fàn)顟B(tài)由IDLE跳轉(zhuǎn)到INIT_0;下一個(gè)時(shí)鐘周期,狀態(tài)機(jī)自動(dòng)由INIT_0跳轉(zhuǎn)到INIT_1,并產(chǎn)生輸出信號(hào)init_0;再下個(gè)時(shí)鐘周期,狀態(tài)機(jī)自動(dòng)由INIT_1跳轉(zhuǎn)到IDLE,并產(chǎn)生輸出信號(hào)init_1。狀態(tài)機(jī)產(chǎn)生的上述兩個(gè)輸出信號(hào)控制產(chǎn)生移位寄存器在初始化時(shí)的兩次加載信號(hào)。狀態(tài)轉(zhuǎn)換圖如下:


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();