图形处理器电路设计仿真与测试技术研究*
2021-10-09贺志容
贺志容 张 祥
(武汉数字工程研究所 武汉 430205)
1 引言
1.1 GPU功能结构
图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器[1]。
本文研究的某型号图形处理器采用CMOS 130nm工艺制造,集成度约为1000万门;显示接口为VGA/数字接口;支持8位、16位和32位色多种色彩模式,图形模式下支持640×480、800×600、1024×768分辨率,最大分辨率1280×1024;支持ZOOM VIDEO视频接口;支持双通道双屏显示;支持色彩空间转换(YUV-RGB);支持VGA/VESA标准;支持标准PCI协议读写;视频数据采集存储;支持2D图形加速:BitBLT,ROP,256 3-0p;可以用作PCI显卡的主处理芯片,完成操作系统界面显示和基本图形绘制及显示,视频采集回放等功能。其功结构如图1所示[2~3]。
图1 GPU功能图
1.2 工作机制
主机总线接口模块受到来自PCI总显得读写操作,包括对寄存器的读写操作和对显示存储的读写操作,包括对寄存器的读写操作和对显示存储的读写操作,完成对寄存器的初始化后,基本图形模式能够正常输出显示。打开视频采集寄存器后能够实时采集显示视屏图像窗口[4]。
2 GPU电路设计及测试技术
正向设计GPU芯片,首先根据技术指标和功能说明进行RTL设计编写,前端设计结束后分别进行模块级和系统级仿真验证,保证设计的准确性;然后进行FPGA原型验证,后端设计、后仿真等。芯片测试则可以基于仿真过程文件,产生的测试向量覆盖率高,功能针对性强,测试的可靠性和可控性高。基于仿真文件的芯片测试,也是芯片生产通用的测试方法[5]。
2.1 GPU关键模块电路设计要求
1)主机总线接口模块
主机总线接口模块要求主机可以通过PCI总线对GPU进行读写操作,读写时序满足PCI协议要求。仿真时先对某些地址进行总线写操作,再对这些地址进行总线读操作,比对读写数据,结果一致,主机总线接口功能正确[6]。整体电路仿真,功能覆盖率达能到90%。
2)VGA寄存器模块
VGA寄存器模块按照地址列表来操作,结果能够正常读写和显示初始化。
3)视屏采集模块
视频采集模块要求实现视屏实时采集回放功能,采用多硬件图层设计。方针是模拟视频输入数据作为激励,读取显示输出数据并与理想显示输出数据进行自动比对,结果一致,视屏实时采集回放功能正确[7~8]。
4)显示输出模块
显示输出模块要求实现VGA和LVDS双屏显示,且通过寄存器可配置成拷贝模式和扩展模式。显示分辨率要求支持到1280*1024,色彩模式支持16位色。方针是通过寄存器配置显示模式,采集VGA接口和LVDS接口的数据和行场同步信号进行分析,与VESA标准的波形一致,显示输出功能正确[9~10]。
2.2 基于93000测试系统的测试图形及时序生成
93000 集成电路测试系统是业界领先的测试系统,该系统提供了强大的测试能力,支持数字、模拟、混合信号和SOC测试应用。支持各类仿真设计文件到系统所能识别的图形、时序文件转化,是完成GPU测试的有效平台[11]。
基于GPU正向设计得到的仿真文件,能够充分针对GPU的内部功能实现测试,从仿真文件(*.vcd)生成包括时序文件(tim),向量文件(binl)等V93000测试系统规定格式文件。如图2所示为仿真图形转换示意图[12]。
图2 仿真图形转换示意图
利用VCDTO93K工具完成测试图形生成。文件转化需要的过程文件有:
1)管脚定义文件(pin configure):用于给出芯片单pin或pin组的定义文件;
2)方向配置文件(direction configure):给出管脚或组的方向描述信息,包括I/O/IO;
3)控制配置文件(control configure):用于描述输入输出方向控制信号与被控制信号的一一对应关系;
4)延时配置文件(delay configure):用于给出管脚或信号组的延迟信息,以周期的百分比形式给出。
基于仿真文件,以及上述四个相关文件(*.pin、*.dir、*.ctrl、*.delay)利用系统自带命令,完成仿真文件到93000系统可用时序(timing)和图形(pattern)文件的转换。
通过仿真文件得到的图形、时序文件,与芯片的实际时序存在延时造成的差异,需要通过后期调整适配,得到真实的芯片时序和图形。
2.3 基于93000的GPU测试程序开发
GPU的测试是基于93000测试系统开发的。测试程序的主要组成文件如表1。
表1 测试程序文件组成
3 GPU电路仿真验证与测试结果
3.1 GPU功能仿真验证结果
利用仿真平台,各关键电路模块的仿真验证结果如图3~7所示[13]。
图3 主机总线写时序图
图4 主机总线读时序图
对GPU类芯片,显示输出模块的像素时钟信号(PXL_CLK)、行同步信号(HSYNC)、场同步信号(VSYNC)是重要的显示性能参数。行同步信号的作用是选择出显示面板上有效行信号区间,场同步信号的作用是选择出显示面板上有效场信号区间,行场同步信号的共同作用,可选择出显示面板的有效视频区间。像素时钟频率与显示器的工作模式有关,分辨率越高,像素时钟信号的频率也越高;数字信号在像素时钟信号的作用下,按照一定的顺序,传输到显示面板中,使各电路按照一定的节拍协调地工作;且都是在像素时钟的下降沿或上升沿到来时才对数字信号进行读取,以确保读取数据的正确性[14~15]。
图5 VGA寄存器模块仿真图
图6 视频采集模块仿真图
图7 显示输出模块仿真图
3.2 GPU功能测试结果
利用得到的仿真文件,在93000上完成转换后,得到对应的时序和的图形文件,编制测试项目进行测试,测试波形图如图8~12所示。
图8 PCI总线状态测试时序图(1)
除了常规参数,如输入电平(VILVIH),输出电平(VOLVOH),漏电流(IILIIH)、电源电流(ICC),建立保持时间、传输延迟时间等,对GPU类芯片,数据手册中对显示输出模块的像素时钟信号(PXL_CLK)、行同步信号(HSYNC)、场同步信号(VSYNC)信号规范值和实际测量值如表2所示,利用仿真文件转换后的图形文件,在93000测试系统下实际测到显示输出模块信号结果也如表2所示。
表2 像素时钟信号、行同步信号、场同步信号规范值与实测值
图9 PCI总线状态测试时序图(2)
图10 显示输出模块像素时钟测试波形图
图11 显示输出模块行、场同步信号测试波形图(1)
图12 显示输出模块行、场同步信号测试波形图(2)
可以看出,GPU芯片在基于仿真文件的测试系统图形控制下,正常运转,满足了正常工作的所有条件,给出了理想的输出。
4 结语
通过电路仿真,结合测试机台的时序、图形转换方法,实现GPU芯片功能测试,能够很好地复现芯片的功能,提高芯片的测试质量。