一种面向GPU芯片主机接口单元功能仿真方法及平台与流程

文档序号:20486406发布日期:2020-04-21 21:42阅读:141来源:国知局
一种面向GPU芯片主机接口单元功能仿真方法及平台与流程

本发明属于计算机硬件验证技术领域,具体涉及一种面向gpu芯片主机接口单元功能仿真方法及平台。



背景技术:

随着图形化应用的不断增加,早期单靠cpu进行图形绘制的解决方案已经难以满足成绩和技术增长的图形处理需求,图形处理器(graphicprocessingunit,gpu)应运而生。从1999年nvidia发布第一款gpu产品至今,gpu技术的发展主要经历了固定功能流水线阶段、分离染色器架构阶段、统一染色器架构阶段,其图形处理能力不断提升,应用领域也从最初的图形绘制逐步扩展到通用计算领域。gpu流水线高速、并行的特征和灵活的可编程能力,为图形处理和通用并行计算提供了良好的运行平台。

对于类似于gpu这样的超大规模集成电路芯片的软/硬件架构、设计,如何完成从传统的规格说明书文档到硬件rtl电路实现的跨越,成为工程实践过程中一个重要的、急待解决的问题。为了缩短从系统架构文档到硬件rtl电路实现之间的巨大鸿沟,必须要在这两个阶段之间采用一种高级建模语言对整个电路系统的功能、架构进行描述,同时又不能陷入硬件电路繁杂的信号时序、门电路之中。

事务级模型(transactionlevelmodels,tlm)是比rtl级更高的抽象级别,在此级别可以根据系统的初始功能规范快速建立硬件的可执行规范、快速创建系统模型。通过在其中加入时序细节,可以评估系统的性能、探索系统的结构。

systemc是osci(opensystemcinitiative)组织制定和维护的一种基于c++的建模平台,它完全是用c++语言编写的,由经过精心设计的c++类库和仿真内核构成,支持门级、rtl级、系统级等各个抽象层次上硬件的建模和仿真,而且是开放源代码的。systemc支持硬件/软件协同设计,能够描述由硬件和软件组成的复杂系统的结构,支持在c++环境下对硬件、软件和接口的描述。用systemc可以实现功能模块、通信模块、软件模块和硬件模块在各种系统级层次上的抽象,其引进的端口和信号的数据类型描述、时钟和延时的概念,正是基于要把软硬件的描述统一到一种建模语言的思想。用systemc可以快速有效地建立软件算法的精确模型、硬件的体系结构、soc的接口和系统级的设计,并对设计进行仿真、验证和优化(用systemc建模,其仿真速度一般是用vhdl或verilog建模的10~100倍)。systemc最基本的结构单元是模块(module),模块可以包含其他模块或过程(process)和方法(method),过程如同c语言中的函数用以实现某一行为。模块通过接口(port)与其他模块通信,接口之间用信号(signal)相连。一个完整的系统由多个模块组成,每个模块包含一个或多个过程和方法,过程是平行工作的,它们之间通过信号来通信。时钟clock是一种特殊的信号在仿真时用以控制时序及使过程同步。

现有技术中不具有高效的gpu芯片主机接口单元功能仿真模块,及仿真方法且rtl仿真平台不易搭建,导致软件人员、硬件模块rtl开发人员和仿真验证人员之间的工作量加大。



技术实现要素:

基于背景技术中存在的问题,本发明提供的一种基于systemctlm虚拟原型的gpu功能仿真平台,能够借助gpu的tlm虚拟原型平台、以最小的开发代价迅速获得gpu的rtl模块级和系统级仿真平台,解决了gpu的模块级和系统级rtl仿真平台不易搭建的问题,可以快速地对gpu模块级和系统级进行rtl仿真。这样便于协调软件人员、硬件模块rtl开发人员和仿真验证人员之间的工作,减少不必要的迭代。

为了达到上述目的,本发明的具体技术方案为:

本发明提出一种面向gpu芯片主机接口单元功能仿真方法,所述方法包括以下步骤:

1)采用systemc语言和事务级建模tlm方法,针对面向gpu芯片主机接口单元搭建功能仿真平台;

2)功能仿真平台中的主机接口单元端口转化保留外部的事务级端口,同时将外部事务级端口转为为硬件信号级端口。将主机接口tlm单元和主机接口rtl单元嵌入到主机接口单元端口转化中;

3)通过功能仿真,比较主机接口tlm单元和主机接口rtl单元的输出结果,达到主机接口单元功能仿真验证的目的。

优选的,所述实现转化为硬件信号级端口的方法为:主机接口单元端口转化监控采样外部主机的输入事务,根据事务的读写属性将事务内容转化为以时钟周期为单位的硬件信号高低电平驱动。

优选的,所述实现主机接口rtl单元嵌入到主机接口单元端口转化的方法为:通过信号对接将主机接口rtl单元嵌入到主机接口单元端口转换。

优选的,实现对主机接口rtl单元进行功能仿真的方式为:

主机将opengl命令下发给gpu芯片主机接口单元端口转换,主机接口单元端口转换将接收到的命令同时发送给主机接口tlm单元和主机接口rtl单元;同时主机接口单元端口转换监控主机接口tlm单元和主机接口rtl单元的输出,将两者输出进行比较,从而达到验证主机接口单元是否正确解析opengl命令的功能。

本发明还提出一种面向gpu芯片主机接口单元功能仿真平台,所述仿真平台包括,主机接口单元端口转换、主机接口rtl单元、主机接口tlm单元、图形管线单元、帧cache单元、纹理cache单元、显示控制单元、axi总线交叉开关、第一ddr控制器和第二ddr控制器;

所述主机接口单元端口转换接收主机发送的opengl函数命令,将其通过信号级端口传递给主机接口rtl单元;

所述主机接口单元端口转换接收主机发送的opengl函数命令,将其通过事务级端口传递给主机接口tlm单元;

所述主机接口单元端口转换接收主机接口rtl单元和主机接口tlm单元的输出,对结果进行比较。如果结果一致,就将结果传递给图形管线单元;如果结果不一致,就终止仿真;

所述主机接口rtl单元接收来自主机接口单元端口转换的opengl函数命令,进行硬件寄存器传输级运算,并将结果输出给主机接口单元端口转换;

所述主机接口tlm单元接收来自主机接口单元端口转换的opengl函数命令,进行硬件事务级运算,并将结果输出给主机接口单元端口转换;

所述图形管线单元接收来自主机接口单元端口转换的数据,进行图形管线渲染,将帧渲染结果传递给帧cache单元;

所述图形管线单元接收来自主机接口单元端口转换的数据,进行图形管线渲染,将纹理渲染结果传递给纹理cache单元;

所述帧cache单元内部存储着访问gpu外部ddr0和ddr1的帧缓冲区数据镜像;

所述纹理cache单元内部存储着访问gpu外部ddr0和ddr1的纹理缓冲区数据镜像。

所述显示控制单元通过访问所述axi总线交叉开关,获取屏幕待显示的数据,并对所述数据进行显示;

所述axi总线交叉开关将来自所述显示控制单元、所述主机接口单元端口转换和所述主机接口单元端口转换的axi总线访问,转化为对所述第一ddr控制器、所述第二ddr控制器的寄存器配置和数据通道访问;

所述第一ddr控制器和第二ddr控制器将来自所述axi总线交叉开关的所述寄存器配置和数据通道访问,转化为ddr存储器的接口读写访问。

优选的,所述仿真平台包括主机接口单元端口转换、主机接口rtl单元、主机接口tlm单元、图形管线单元、帧cache单元、纹理cache单元、显示控制单元、axi总线交叉开关、第一ddr控制器和第二ddr控制器。

所述主机接口单元端口转换包括了hostexport端口,该端口与host的hostport端口进行相连,端口之间通过hostif接口进行通信;

所述主机接口单元端口转换包括了cmd2sgugraphport端口,该端口与所述图形管线单元的cmd2sgugraphexport端口进行相连,端口之间通过cmd2sgugraphif接口进行通信;

所述图形管线单元包括了cmd2sgugraphexport端口,该端口与主机接口单元端口转换的cmd2sgugraphport端口相连,端口之间通过cmd2sgugraphif接口进行通信;

所述图形管线单元包括了framecacheport端口,该端口与帧cache单元的framecacheexport端口相连,端口之间通过framecacheif接口进行通信;

所述图形管线单元包括了texcacheport端口,该端口与纹理cache单元的texcacheexport端口相连,端口之间通过texturecacheif接口进行通信。

所述帧cache单元包括了pcache2axiport端口,该端口与axi总线交叉开关的pcache2axiexport端口进行相连,上述端口之间通过aximasterif接口进行通信。

所述纹理cache单元包括了tcache2axiport端口,该端口与axi总线交叉开关的tcache2axiexport端口进行相连,端口之间通过aximasterif接口进行通信。

所述显示控制单元包括了dc2axiport端口,该端口与axi总线交叉开关的dc2axiexport端口相连,端口之间通过aximasterif接口进行通信;

所述显示控制单元包括了displayport端口,该端口与display的displayexport端口相连,端口之间通过displayif接口进行通信。

所述第一ddr控制器包括了axislaveexport端口,该端口与axi总线交叉开关的axislaveport[0]端口相连,端口之间通过axislaveif接口进行通信;

所述第一ddr控制器包括了ddrport端口,该端口与ddr0的ddrexport端口相连,端口之间通过ddraccessif接口进行通信。

所述第二ddr控制器包括了axislaveexport端口,该端口与axi总线交叉开关的axislaveport[1]端口相连,端口之间通过axislaveif接口进行通信;

所述第二ddr控制器包括了ddrport端口,该端口与ddr1的ddrexport。

综上所述,本发明能够带来的有益效果为:

1、采用systemc按照模块划分对gpu的功能进行tlm建模,可以将gpu内部任何规模、任何层次的tlm模块替换成rtl代码,从而使gpu的rtl模块仿真平台可以复用gpu虚拟原型平台;

2、采用systemc按照模块划分对gpu的功能进行tlm建模,可以将gpu的tlm模型整个替换成rtl代码,从而使gpu的rtl系统仿真平台复用gpu虚拟原型平台。

3、本发明的方法和平台便于协调软件人员、硬件模块rtl开发人员和仿真验证人员之间的工作,减少不必要的迭代。

附图说明

图1是本发明gpu芯片主机接口单元功能仿真平台。

其中:1、主机接口单元端口转换;1-1、主机接口rtl单元;1-2、主机接口tlm单元;2、图形管线单元;3、帧cache单元;4、纹理cache单元;5、显示控制单元;6、axi总线交叉开关;7、第一ddr控制器;8、第二ddr控制器。

具体实施方式

现结合说明书附图对本发明作出详细说明。

在本发明的一个实施例中提出一种面向gpu芯片主机接口单元功能仿真方法,包括以下步骤:

1)采用systemc语言和事务级建模tlm方法,针对面向gpu芯片主机接口单元搭建功能仿真平台;

2)功能仿真平台中的主机接口单元端口转化保留外部的事务级端口,同时将外部事务级端口转为为硬件信号级端口。将主机接口tlm单元和主机接口rtl单元嵌入到主机接口单元端口转化中;

3)通过功能仿真,比较主机接口tlm单元和主机接口rtl单元的输出结果,达到主机接口单元功能仿真验证的目的。

在一个实施例中,所述实现转化为硬件信号级端口的方法为:主机接口单元端口转化监控采样外部主机的输入事务,根据事务的读写属性将事务内容转化为以时钟周期为单位的硬件信号高低电平驱动。

在一个实施例中,所述实现主机接口rtl单元嵌入到主机接口单元端口转化的方法为:通过信号对接将主机接口rtl单元嵌入到主机接口单元端口转换。

在一个实施例中,实现对主机接口rtl单元进行功能仿真的方式为:

主机将opengl命令下发给gpu芯片主机接口单元端口转换,主机接口单元端口转换将接收到的命令同时发送给主机接口tlm单元和主机接口rtl单元;同时主机接口单元端口转换监控主机接口tlm单元和主机接口rtl单元的输出,将两者输出进行比较,从而达到验证主机接口单元是否正确解析opengl命令的功能。

在本发明的一个实施例中还提出一种面向gpu芯片主机接口单元功能仿真平台,所述仿真平台包括,主机接口单元端口转换1、主机接口rtl单元1-1、主机接口tlm单元1-2、图形管线单元2、帧cache单元3、纹理cache单元4、显示控制单元5、axi总线交叉开关6、第一ddr控制器7和第二ddr控制器8,所述方法还包括:

所述主机接口单元端口转换1接收主机发送的opengl函数命令,将其通过信号级端口传递给主机接口rtl单元1-1;

所述主机接口单元端口转换1接收主机发送的opengl函数命令,将其通过事务级端口传递给主机接口tlm单元1-2;

所述主机接口单元端口转换1接收主机接口rtl单元1-1和主机接口tlm单元1-2的输出,对结果进行比较。如果结果一致,就将结果传递给图形管线单元2;如果结果不一致,就终止仿真;

所述主机接口rtl单元1-1接收来自主机接口单元端口转换1的opengl函数命令,进行硬件寄存器传输级运算,并将结果输出给主机接口单元端口转换1;

所述主机接口tlm单元1-2接收来自主机接口单元端口转换1的opengl函数命令,进行硬件事务级运算,并将结果输出给主机接口单元端口转换1;

所述图形管线单元2接收来自主机接口单元端口转换1的数据,进行图形管线渲染,将帧渲染结果传递给帧cache单元3;

所述图形管线单元2接收来自主机接口单元端口转换1的数据,进行图形管线渲染,将纹理渲染结果传递给纹理cache单元4;

所述帧cache单元3内部存储着访问gpu外部ddr0和ddr1的帧缓冲区数据镜像;

所述纹理cache单元4内部存储着访问gpu外部ddr0和ddr1的纹理缓冲区数据镜像。

所述显示控制单元5通过访问所述axi总线交叉开关6,获取屏幕待显示的数据,并对所述数据进行显示;

所述axi总线交叉开关6将来自所述显示控制单元5、所述主机接口单元端口转换1和所述主机接口单元端口转换2的axi总线访问,转化为对所述第一ddr控制器7、所述第二ddr控制器8的寄存器配置和数据通道访问;

所述第一ddr控制器7和第二ddr控制器8将来自所述axi总线交叉开关6的所述寄存器配置和数据通道访问,转化为ddr存储器的接口读写访问。

在一个实施例中,所述仿真平台包括主机接口单元端口转换1、主机接口rtl单元1-1、主机接口tlm单元1-2、图形管线单元2、帧cache单元3、纹理cache单元4、显示控制单元5、axi总线交叉开关6、第一ddr控制器7和第二ddr控制器8。

所述主机接口单元端口转换1包括了hostexport端口,该端口与host的hostport端口进行相连,端口之间通过hostif接口进行通信;

所述主机接口单元端口转换1包括了cmd2sgugraphport端口,该端口与所述图形管线单元2的cmd2sgugraphexport端口进行相连,端口之间通过cmd2sgugraphif接口进行通信;

所述图形管线单元2包括了cmd2sgugraphexport端口,该端口与主机接口单元端口转换1的cmd2sgugraphport端口相连,端口之间通过cmd2sgugraphif接口进行通信;

所述图形管线单元2包括了framecacheport端口,该端口与帧cache单元3的framecacheexport端口相连,端口之间通过framecacheif接口进行通信;

所述图形管线单元2包括了texcacheport端口,该端口与纹理cache单元4的texcacheexport端口相连,端口之间通过texturecacheif接口进行通信。

所述帧cache单元3包括了pcache2axiport端口,该端口与axi总线交叉开关6的pcache2axiexport端口进行相连,上述端口之间通过aximasterif接口进行通信。

所述纹理cache单元4包括了tcache2axiport端口,该端口与axi总线交叉开关6的tcache2axiexport端口进行相连,端口之间通过aximasterif接口进行通信。

所述显示控制单元5包括了dc2axiport端口,该端口与axi总线交叉开关6的dc2axiexport端口相连,端口之间通过aximasterif接口进行通信;

所述显示控制单元5包括了displayport端口,该端口与display的displayexport端口相连,端口之间通过displayif接口进行通信。

所述第一ddr控制器7包括了axislaveexport端口,该端口与axi总线交叉开关6的axislaveport[0]端口相连,端口之间通过axislaveif接口进行通信;

所述第一ddr控制器7包括了ddrport端口,该端口与ddr0的ddrexport端口相连,端口之间通过ddraccessif接口进行通信。

所述第二ddr控制器8包括了axislaveexport端口,该端口与axi总线交叉开关6的axislaveport[1]端口相连,端口之间通过axislaveif接口进行通信;

所述第二ddr控制器8包括了ddrport端口,该端口与ddr1的ddrexport。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1