RAM读写时序限制解决方案

时间:2011-10-28来源:网络
1.3 寄存器组复用

  在逆块扫描顺序中,一些后续的系数可能需要在一开始时就准备好,而一些在前面次序的系数则可能在后续的时间使用,所以只有一个块的所有数据都存储完成后,才能进行后续的反变换,故至少要对一个块的变换系数进行存储。为了提高处理速度,后续的反变换模块中将采用并行流水线输入,因此存储模块此时不能采用有时序限制的RAM,本文采用了寄存器组实现。同时为了消除块数据的准备延时,还采用了乒乓结构,即在设计中用了两个寄存器组,这样就可在处理当前一个块系数的同时,用另一个寄存器组来存储下一个块反量化后的数据。

  在反变换中也需要用到转置存储。为了节省资源,本设计采用了寄存器复用技术,即反变换中用到的转置矩阵与逆扫描后用于存储变换系数的矩阵复用,具体复用方法如图3所示。

  

  以上为一个寄存器组,包含64个13 bit的寄存器。最后一列为反变换模块输入,即当一个块变换系数根据逆扫描顺序存储完后,连续8个时钟周期读取寄存器组最后一列,在每个时钟周期向反变换模块并行输入8个13 bit的数据。第一列为转置数据输入端。考虑到反变换流水线及复用的问题,在连续2个时钟周期读取寄存器组最后一列输入到反变换模块后,转置数据开始从第一列输入,这样可以满足反变换内部的流水线问题,也可以达到寄存器复用的目的。第一行为转置数据的输出,最后一行在转置数据输出时赋值为零,这样可以使转置输出和寄存器赋零同时进行,从而可以减少不必要的时钟周期和资源。

  2 仿真结果及分析

  根据上述思想,采用Verilog HDL语言对算法进行了RTL级电路描述,并采用Altera公司的软件Quartus II 8.0 对此算法进行了实现和仿真验证,并将仿真结果与rm52j软件的输出结果进行了比较。Quartus II仿真结果如图4所示,波形图给出了一个块的反量化和反变换输出结果。rm52j的输出结果如图5所示,比较可见输出结果相同。

  

  

  本设计采用的是自顶向下和自下而上的混合设计方法,逆扫描、反量化和反变换过程是AVS系统中的一个模块,局部的测试很难判断出该模块是否可以应用到整个解码系统中去,所以此模块亦在自己搭建的基于SoPC的AVS验证平台上进行了验证。加入此模块前,软件处理一帧码流时间与用此硬件模块代替软件模块后的解码时间如图6所示,通过计算可知解码速度提高约15%。

  

1 2 3

关键词: 解决方案 限制 时序 读写 RAM

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版