AVS是我国具备自主知识产权的第二代信源编码标准,其编码效率比MPEG-2高2~3倍,与AVC相当,但技术方案简洁,芯片实现复杂度低,是一套包含系统、视频、音频和媒体版权管理在内的完整标准体系,为数字音视频产业提供了全面的解决方案。
从2012年11月1日起,AVS标准将被强制执行,届时,所有在中国内地上市的地面数字电视接收机(包括机顶盒、一体机)必须内置AVS解码功能,否则将无法销售。由此,在未来十年时间内,高清晰度/标准清晰度AVS解码芯片的国内需求量年均将达到4 000多万片。
在芯片设计中,验证所花费的时间约占整个设计周期的70%~80%。验证成为大规模集成电路设计的主要瓶颈。一方面,视频解码器需要对大量的一致性测试码流进行验证,在考虑时序信息以后,软件的仿真速度非常慢,因此,需要基于FPGA的硬件仿真平台来提高仿真和验证的速度。另一方面,门数百万级以上的芯片设计每次投片费用巨大,投片前进行基于FPGA的验证是保证投片成功的一个必不可少的环节。
当前关于视频解码芯片的FPGA验证平台的文献并不多。参考文献[2]用2块VirtexE系列的FPGA搭建了视频解码芯片的验证平台;参考文献[2]则采用Xilinx公司的两片FPGA和Altera公司的2片EP2C35 FPGA完成验证平台的设计。本文针对视频解码器芯片的仿真和验证要求,通过对验证平台框架的优化,提出基于1块Altera的FPGA芯片,设计实现视频解码器的硬件验证平台。
1 验证平台组成和设计
硬件验证平台应该具有可重用的特点。在芯片的设计阶段,硬件验证平台可以作为仿真验证平台,要求能够独立完成整个视频解码的过程。一方面可以将视频解码系统的硬件模块载入,以验证硬件模块的功能;另一方面可以载入视频解码系统的软件部分,让硬件模块和软件模块在一个平台下真正实现软硬件协同工作,以验证整个解码系统的功能,实现视频解码的全过程。
本验证平台以Altera公司的DE2多媒体开发平台为主体,在FPGA内嵌入Nios II软核处理器,结合Nios II可自定义CPU指令和用户外设的特点,配合PC机软件程序、VGA显示器以及自定义SDRM存储器端口控制模块,搭建出一个完整的视频解码芯片验证平台,如图1所示。
考虑到方便设计和占用资源少的原因,该验证平台仅用一块FPGA,故将其分为两部分来设计:视频解码部分和VGA显示部分。其中,视频解码部分可以独立完成视频码流解码过程,将输入的视频文件解码成YUV文件;同时,可将设计的AVS视频解码器的硬件模块载入,以验证硬件模块的功能,并且为分析所设计模块的性能参数提供可靠依据。VGA显示部分主要控制VGA显示器显示解码生成的YUV文件。这两部分构成了一个“视频解码—VGA显示”的完整的验证平台。
1.1 视频解码设计
该系统主要分为视频解码系统硬件设计和软件程序开发。
1.1.1 视频解码硬件设计
视频解码系统硬件设计框图如图2所示,采用一块Altera EP2C35F672C6 FPGA,它能提供丰富的内存资源和容量,以及新算法资源,增强时钟管理支持,其结构体系将使系统性能达到更高层次,扩大输入输出带宽,提高时钟频率、内存速度和数据处理速度。在FPGA上实现Nios II软核CPU、SDRAM、Flash、Timer、Epcs controller等模块相连。Nios II 软核CPU和其他IP模块之间通过Avalon片上总线相连,该总线规定了主部件和从部件之间进行连接的端口和通信的时序。该部分允许将设计的硬件模块或者AVS视频解码系统挂接到Avalon总线上,通过Nios II软核处理器的控制,与PC机中的软件解码程序协同工作,共同完成视频解码过程。同时还能够计算出其所占用资源以及加入硬件模块后所节省的时间,便于准确分析所验证硬件模块的性能参数。
根据系统的功能要求和Nios II软核处理器的高度可配置性,通过硬件开发工具SoPC Builder定制的硬件系统框图如图3所。Nios II系统用CFI-Flash存储输入的视频频码流文件,SDRAM用作运行程序的内存。同时加入了SD卡,预留存储以后需要解码的大容量视频文件,生成的解码文件暂存在PC机上,这样极大地减少了片上RAM的使用率。
|