基于PLB总线的H.264整数变换量化软核的设计
时间:03-20
来源:互联网
点击:
整数变换量化模块的硬件结构如图4。寄存器组包含9个32bit的寄存器,0、1、2、3为输入的4×4参差数据寄存器;5、6、7、8为输出数据寄存器;4为控制寄存器,包括go、done、reset、intra、DCT、ZSCAN、QP、datacount,分别对应启动、完成、复位、帧内/帧间、DCT/Hadamard变换、Z扫描输出、量化级数、数据输出计数器。第二个模块对寄存器组中数据进行4×4整数变换,使用1级流水线。第三个模块对输入的整数变换结果按QP进行量化,量化模块中的MF、f、qbits使用FPGA中的查找表保存。数据输出模块受ZSCAN位控制,当ZSCAN=1时,输出数据寄存器中的数据按Z扫描排列;ZSCAN=0时,按矩阵排列。
3.2 软核的测试
首先使用IBM的CoreConnect工具和Modelsim6.0a来仿真设计的软核并使用虚拟平台进行测试,仿真的目的是保证PLB总线接口能被处理器正确访问。仿真测试平台结构如图5所示。通过虚拟处理器将虚拟内存中的数据写入待测软核,然后读取待测软核中的数据并判断是否正确。
仿真通过以后,再将软核集成到系统中,以便验证软核在实际系统中的工作是否符合要求。验证平台系统结构如图6,软核验证使用PC机和目标板相结合的方法,目标板使用Xilinx公司XUP Virtex-II PRO开发板,内部含有两个PowerPC内核。
验证流程如图7。首先通过USB口下载目标板程序,程序开始运行以后通过RS232从上位机下载待编码的图像参差数据,下载的数据保存在目标板上的256MB DDRSDRAM中。数据下载完毕后,程序将待编码数据依次写入软核并启动转换,并将计算完的数据写入DDRSDRAM,待全部数据编码完毕,PowerPC将处理结果一起发送给上位机。上位机将结果与本机C代码执行结果相比较,最终确认软核是否正确工作。
4 综合结果分析
本设计中的整数变化量化模块在Xilinx的XC2VP30 FPGA中进行综合。XC2P30含有13 696个Slices和136个18×18乘法器。综合工具使用Xilinx的ISE9.1。
整数变换模块综合结果如表1。
对量化器在速度和硬件资源上分别做了优化,表2给出了两种优化的综合结果。
表3给出本设计整数变换量化模块与文献[1]的比较结果。对照发现速度优化软核编码性能远远高于文献[1]的设计,资源优化的软核性能也略高于文献[1]的设计。
软核综合结果如表4。目前该软核中的PLB接口部分资源占用较大,后续工作对这部分进一步优化。
本文将H.264中的整数变换量化与微处理器系统相结合,针对不同的应用场合实现了两个基于PLB总线的H.264 整数变换量化软核,并在Xilinx XUP Virtex-IIPRO开发板中做了验证。实验结果表明,两个软核均能在系统中稳定工作,并能满足不同分辨率的实时应用。
FPGA 仿真 电路 总线 ARM Xilinx USB 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)