论文部分内容阅读
随着嵌入式终端设备的发展,以及人们对于嵌入式终端设备3D图形高品质的要求,仅仅依靠嵌入式的CPU如(ARM, MIPS等)绘制复杂的三维图形很难达到图形的实时交互以及高分辨率的图形图像显示。因此,对于在嵌入式系统中加入专门的嵌入式图形处理器芯片或是利用具备图形加速引擎的SoC芯片来提高图形的绘制速度,将嵌入式CPU从繁重的渲染算法中解脱出来的需求越来越迫切。同时,嵌入式领域发展使得对于嵌入式GPU (Graphic Process Unit)芯片的需求量越来越多,具备了广阔的市场前景,在这种趋势下,研究和设计适合嵌入式系统的图形处理器具有十分重要的意义以及价值。当前来说嵌入式GPU有两种,一种是支持OpenGL ES 1.x固定渲染管线的嵌入式GPU,另一种是支持OpenGL ES 2.x的可编程的渲染管线的嵌入式GPU。本课题的目的是设计出一款完全支持OpenGL ES 1.0标准的嵌入式GPU的IP核,通过对GPU渲染流水线RTL (Register Transfer Logic)级代码编写,以及GPU驱动程序的编写,在FPGA进行验证,开发出一款适用于嵌入式系统的低功耗高性能的嵌入式图形处理器。在开发芯片开发整个流程中,通常是首先建立该芯片的软件模型,用以进行芯片功能的验证以及模拟,为后面的RTL (Register Transfer Logic)级代码提供一个功能性的软件模型,用以验证相应的算法。本论文的主要工作就是嵌入式GPU芯片开发流程中软件模型的设计以及实现。本工作实现了图形芯片中处理3D图形处理的过程,为后续的芯片开发提供了一个很好的参考。文章着重于嵌入式GPU图形管线算法的提取以及相应的C/C++的软件实现,为了能够更好的在嵌入式系统中模拟出嵌入式图形芯片,嵌入式软件GPU以库的形式运行在嵌入式的CPU上,用以图形处理器的功能的模拟。本论文中采用ARM处理器作为嵌入式的CPU,采用的操作系统是LINUX操作系统,因此论文中软件GPU模型的建立以及开发调试工作是运行在ARM-LINUX-GCC的开发环境中。从另一个角度上来说,嵌入式GPU是OpenGL ES 1.0的实现,因此设计开发相应的图形库是OpenGLES 1.0在ARM+LINUX平台的软件实现。论文首先回顾了PC机上图形处理器的发展历史以及现状,简单介绍了嵌入式处理器当前的国内外现状以及研究意义,同时详细介绍了本课题的目标。其次简单介绍了图形系统的构成,详细讨论了嵌入式GPU的关键技术,着重研究了OpenGL ES 1.0的标准并提出了在本论文中实现图形显示系统的解决方案。嵌入式GPU的关键技术是图形管线技术,也就是图形管线相关的算法,因此论文在正文部分对这些图形管线算法的原理进行了详细的探讨并提出了相应的设计实现。最后论文对生成的GPU的软件库进行了功能的验证,如平移、旋转变换,以及光照运算,剔除与裁剪,投影以及光栅化等功能进行验证,实现了图形芯片功能的模拟。