新闻中心

EEPW首页 > 消费电子 > 设计应用 > AAC音频解码中位数可选且自动加载移位寄存器设计

AAC音频解码中位数可选且自动加载移位寄存器设计

作者:时间:2009-03-24来源:网络收藏

1、引言

本文引用地址:http://www.eepw.com.cn/article/167019.htm

  在对采样率为44.1kHz的进行时,一帧的时间须控制在23.22毫秒内。且中每一帧可包含1~48个声道的数据,若遇时序要求最严格的场合,即一帧包含48个声道数据,实时性则很难满足,因此速度便成为硬件的重要指标。所以在系统时,为完成的实时性要求,各模块应以速度为优化目标。

  在解码电路的中,需要一块电路连接比特流的存储电路和和取数解码电路,考虑到它须完成数据缓冲和的功能,我们选择用来实现,示意图如下。


图1 功能示意图

  典型的移位有两个特点:1)每个时钟周期移一位,2)的优先级别高于移位的优先级别,移位需等待的完成。而AAC音频数据采用变长编码技术,即压缩比特流中的数据部分为可变长的哈夫曼编码,所以每次解码完毕从移位寄存器中移出的位数不是固定值,若使用典型移位寄存器一位一位地移数据降低了工作效率;且每次移位须等待完毕进行,耗费了等待时间。所以,典型的移位寄存器在时序要求紧张的场合对速度提高起到了负面作用,导致整个系统不能完成实时性要求。因此本设计针对AAC音频解码这一特殊应用,对典型移位寄存器在速度方面进行改进设计,使之每一周期可移出任意位,且移位无须等待加载完成,从而加速了移位过程,使之满足实时性要求。

  论文结构如下:首先介绍本设计的工作原理,对其中一些参数进行配置;其次分模块进行电路设计;再次,将典型移位寄存器和本设计分别下载到FPGA开发板,从速度和面积两方面进行实验结果的比较;最后,对设计展望,提出可优化的方向。

2、工作原理

  考虑到本设计的特定使用场合,选择移位寄存器为64位,移位位数是1~16可变的整数,存储空间是位宽为32位的fifo。在其他场合下,可基于同样的设计方法通过改变参数来满足要求。

  移位寄存器功能示意如图1所示,此移位寄存器连接了两块电路单元:单元一、需要取数的AAC音频解码电路单元;单元二、数据的存储空间。当任意时刻单元一需取数时,可向移位寄存器发出取数信号,并给出要取的位数,移位寄存器就在一个周期内将所需长度的数据移出。当移位寄存器中的数据少于一定量时(在此设为32位),会从单元二中加载数据,且加载与移位同优先级别,所以无须等待时间。

3、位数可选、加载移位寄存器电路设计

  以主要寄存器的不同功能依据,将电路划分为如下图所示的虚线框内的三个模块。下面将分模块介绍电路的设计。


图2 位数可选、加载移位寄存器电路图

3.1 有效数据计数器的设计

  有效数据计数器是用来记录移位寄存器中剩余有效数据的位数。初始化时,存储器向移位寄存器加载64位有效数据,计数器为64;当外界从移位寄存器取数时,计数器在原有计数的基础上减掉所取的位数;当移位寄存器从存储器加载数据时,计数器在原有计数的基础上加上加载数据的位宽(32);当移位和加载同时进行时,计数器进行上述的减法和加法的混合运算。

  使用计数器的目的是为了产生加载数据的标志信号(在这里设为32)。当有效数据计数器中的数目小于等于32时,产生加载信号,而当计数器中的数目大于32时,撤除加载信号。在这里加载数据的标志位可以是范围为16~32的整数,范围的制定决定于:加载标志的下限要满足一次取数的最大长度,上限要保证除有效数据外的剩余空间足够下一次的数据加载长度。

3.2 初始化控制状态机的设计

  移位寄存器在电路复位时须加载上有效数据,以保证第一次的取数的正确进行。而此时加载标志不能由有效数据计数器产生,因为有效数据计数器在初始化的状态下为64不可能产生加载标志,所以加载标志需由复位信号间接产生。且由于移位寄存器的长度(64位)是存储器的宽度(32位)的2倍,所以需要加载两次。

  鉴于以上的功能要求,设计初始化状态机,其中包括三个状态: IDLE, INIT_0和 INIT_1。当复位产生时,复位信号的两级寄存信号(防止亚稳态)为触发信号,使状态由IDLE跳转到INIT_0;下一个时钟周期,状态机自动由INIT_0跳转到INIT_1,并产生输出信号init_0;再下个时钟周期,状态机自动由INIT_1跳转到IDLE,并产生输出信号init_1。状态机产生的上述两个输出信号控制产生移位寄存器在初始化时的两次加载信号。状态转换图如下:


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭