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

[10-10 20:42:03]   来源:http://www.88dzw.com  电子制作   阅读:8947

文章摘要:使用计数器的目的是为了产生加载数据的标志信号(在这里设为32)。当有效数据计数器中的数目小于等于32时,产生加载信号,而当计数器中的数目大于32时,撤除加载信号。在这里加载数据的标志位可以是范围为16~32的整数,范围的制定决定于:加载标志的下限要满足一次取数的最大长度,上限要保证除有效数据外的剩余空间足够下一次的数据加载长度。3.2 初始化控制状态机的设计移位寄存器在电路复位时须加载上有效数据,以保证第一次的取数的正确进行。而此时加载标志不能由有效数据计数器产生,因为有效数据计数器在初始化的状态下为64不可能产生加载标志,所以加载标志需由复位信号间接产生。且由于移位寄存器的长度(64位)是存

AAC音频解码中位数可选且自动加载移位寄存器设计,标签:电子小制作,http://www.88dzw.com

  使用计数器的目的是为了产生加载数据的标志信号(在这里设为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。状态机产生的上述两个输出信号控制产生移位寄存器在初始化时的两次加载信号。状态转换图如下:

www.88dzw.com

                          

 
                          图3 移位寄存器初始化状态转移图

3.3 移位寄存器的设计

  之所以选择64位的移位寄存器,是因为若选择一倍于存储器宽度的移位寄存器长度(32位),移位后剩余的有效数据的位数可能不够下一次的移位长度,为满足移位长度的要求,需要在加载后再次移位,因此移位最多要花费三个时钟周期的时间;若选择三倍于存储器宽度的移位寄存器的长度或更长(>=96位)时,当设定加载数据的标志为有效数据不大于32时,需要加载两次数据,当设定加载数据的标志为有效数据不大于64时,此时移位寄存器中的有效数据相对于需要移位的最长数据偏长且没有必要。所以,将移位寄存器的长度选择为2倍于存储器的宽度(64位)在时间和空间上都达到了最优。

  初始化过程:初始化状态机产生的输出信号init_0和init_1为两次加载的控制信号,这两个信号控制移位寄存器在初始化的两个时钟周期内,从存储器中取出数据并将其分别加载到高32位和低32位。

  移位过程:当取数信号发出取数要求时,输入的取数位数作为多路选择器的数据选择端,当前移位寄存器的值和0作为多路选择器的数据端,通过数据选择决定移位寄存器下个周期从高位到低位的值。

  加载过程:当加载信号发出时,剩余有效数据作为多路选择器的数据选择端,当前移位寄存器的值、FIFO输出的值和0作为多路选择器的数据端,通过数据选择决定移位寄存器下个周期从高位到低位的值。

  移位和加载同时发生的过程:当移位和加载信号同时产生时,移位寄存器中剩余的有效数据的位数和输入的取数位数共同作为多路选择器的数据选择端,当前移位寄存器的值、FIFO输出的值和0作为多路选择器的数据端,通过数据选择决定移位寄存器下个周期从高位到低位的值。

4、实验结果

  为完成解码实时性的要求,本设计对典型的移位寄存器在速度上进行改进,但控制逻辑变得复杂,从而消耗了更多资源。因此,我们选择速度、面积作为性能指标对两种设计进行比较。在基于FPGA的硬件设计中,面积指标通常用查找表数和寄存器数来表示,速度指标我们选择最大时钟频率及解码时平均每帧消耗的周期数来表示。

  我们采用altera公司FPGA开发工具QuartusII分别对两块电路进行综合和时序分析,从综合报告中获得查找表和寄存器的数目,从时序报告中获得最大时钟频率。并将两个设计分别同AAC音频解码电路一起整体下载到stratix II EP2S180 的FPGA开发板,以AAC音频压缩文件中随机抽取的10帧数据为测试矢量,使用一计数器记录下移位寄存器消耗的周期数,将其写入片内ram,并将观测到的数据通过计算得平均每帧消耗的周期数。实验结果如下表所示:

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《AAC音频解码中位数可选且自动加载移位寄存器设计》相关文章