<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

1、引言

本文引用地址:http://dyxdggzs.com/article/167019.htm

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

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


圖1 功能示意圖

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

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

2、工作原理

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

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

3、位數可選、加載移位寄存器電路設計

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


圖2 位數可選、加載移位寄存器電路圖

3.1 有效數據計數器的設計

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

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

3.2 初始化控制狀態(tài)機的設計

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

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>