片上系统的仿真验证方法及装置的制作方法

文档序号:6357949阅读:168来源:国知局
专利名称:片上系统的仿真验证方法及装置的制作方法
技术领域
本发明涉及数字IC设计技术领域,具体而言,涉及一种片上系统的仿真验证方法及装置。
背景技术
在片上系统(System On Chip,简称为S0C)系统的仿真验证中,经常采用软硬件协同进行仿真验证,从而可以提前进行系统的软件及硬件调试,不需要等到硬件设计完成后才开始软件的调试,从而可以大大缩短开发的周期。目前,采用软硬件协同进行仿真验证的实现方式中,在设计完成后,在仿真验证过程中,硬件RTL(Register Transfer Level)模块在运行过程中没有设置供外部控制的输入输出接口,因此,硬件RTL模块的仿真运行不接受外部的干预,仿真验证的可控性较低。例如,不能在仿真运行过程中更新被测设备(Design Under Test,简称为DUT)的参数配置,而只能在仿真开始前,在设计时完成。如果根据当前DUT参数配置,仿真运行中发现有某个参数配置错误,也不能在此次仿真中修正参数,而只能采取重新仿真的方式。从而降低了仿真验证的效率,增加反复运行的时间,尤其在网表验证中重新仿真会浪费大量时间。并且,在仿真过程中也不能实现仿真信息的打印等功能,从而降低了仿真的直观性针对相关技术中由于没有设置供外部控制的输入输出接口而导致仿真验证的可控性较低的问题,目前尚未提出有效的解决方案。

发明内容
本发明的主要目的在于提供一种SOC的仿真验证方法及装置,以至少解决上述问题。根据本发明的一个方面,提供了一种片上系统的仿真验证方法,包括在仿真过程中,被测设备(DUT)通过直接编程接口(DPI)利用软件模块中预设的图形化函数生成需要的图形化可控界面;通过所述图形化可控界面,接收外部设备的输入信息和/或输出仿真
fn息ο优选地,所述图形化可控界面包括一个或多个视窗。优选地,在所述图形化可控界面包括多个视窗的情况下,所述DUT通过DPI利用软件模块中预设的图形化函数生成需要的图形化可控界面包括所述DUT通过所述DPI导入所述图形化函数,其中,所述图形化函数用于建立与所述多个视窗数量相同的视窗;所述 DUT调用所述图形化函数,建立所述多个视窗。优选地,所述方法还可以包括所述软件模块创建多个进程,每个进程对应于所述多个视窗中的一个视窗,在建立所述多个视窗后,各个所述视窗等待事件触发的各个事件循环在各自对应的进程中循环。优选地,在所述图形化可控界面包括多个视窗的情况下,所述DUT通过DPI利用软件模块中预设的图形化函数生成需要的图形化可控界面包括所述DUT通过所述DPI导入
4所述图形化函数,其中,所述图形化函数用于建立单视窗;所述DUT调用η次所述图形化函数,分别建立所述多个视窗,其中,η为所述多个视窗的数量。 优选地,在建立所述多个视窗之后,所述方法还可以包括所述DUT通过所述DPI 从所述软件模块中导入多个操作函数,其中,每个操作函数用于对所述视窗执行一种操作; 所述DUT调用所述操作函数,对所述视窗执行相应的操作;所述DUT将执行的操作生成任务或功能导出到所述软件模块。优选地,所述多个视窗可以包括用于显示打印信息的视窗、用于显示仿真中的图像信息的视窗以及用于接收外部设备的输入信息的视窗。优选地,所述外部设备的输入信息可以包括DUT参数;在接收到所述外部设备的输入信息之后,所述方法还可以包括所述DUT将接收到的所述DUT参数通过所述DPI导出到所述软件模块中,所述软件模块利用所述DUT参数对所述DUT进行配置更新。根据本发明的另一方面,提供了一种片上系统的仿真验证装置,包括被测设备, 用于在仿真过程中通过DPI利用软件模块中的预设的图形化函数生成需要的图形化可控界面,通过所述图形化可控界面,接收外部设备的输入信息和/或输出仿真信息;所述软件模块,用于通过所述DPI提供所述图形化函数。优选地,所述被测设备采用Verilog描述。通过本发明,被测设备通过直接编程接口(Direct Programming hterface,简称为DPI)利用软件模块中的图形化函数生成图形化可控界面,从而可以在仿真过程中接收外部的控制,解决了相关技术中由于没有设置供外部控制的输入输出接口而导致仿真验证的可控性较低的问题,进而提高了 SOC验证的可控性。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的SOC的仿真验证装置的结构示意图;图2是根据本发明优选实施例的SOC的仿真验证装置的结构示意图;图3是根据本发明实施例的SOC的仿真验证方法的流程图;图4是根据本发明优选实施例的多视窗创建的流程图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图1是根据本发明实施例的SOC的仿真验证装置的结构示意图,如图1所示,该装置主要包括被测设备(DUT) 10,用于在仿真过程中通过DPI利用软件模块20中的预设的图形化函数生成需要的图形化可控界面,通过所述图形化可控界面,接收外部设备的输入信息和/或输出仿真信息;软件模块20,通过DPI与被测设备10通信,用于通过所述DPI提供所述图形化函数。通过本发明实施例的上述装置,被测设备10在仿真过程中可以通过DPI利用软件模块20中的图形化函数生成图形化可控界面,从而使得外部可以通过图形化函数对仿真过程进行控制,进而提高了验证的可控性。 在本发明实施例的一个优选实施方式中,被测设备10可以由Verilog描述,例如, 被测设备10可以为用Verilog描述硬件寄存器传输级(Register Transfer Level,简称为 RTL)模块。在本发明实施例的另一个优选实施方式中,如图2所示,软件模块20可以是C语言实现,提供所述图形化函数。在本发明实施例的一个优选实施方式中,C语言实现的图形化函数可以调用Xlib 库,利用Xlib库提供的基本函式来编写基于X Server的应用函数。将编写的应用函数进行一系列灵活的封装,变成例如创建窗口、创建颜色系、创建字体及等待事件输入等基本的操作函数以供灵活应用。其中,X Window系统是UNIX世界中标准的图形操作接口,采取的是Server/Client的模式运作,Server指的是X Server,是一个完整的图形桌面装置, Client指的是在此Display中执行的所有X Window应用程序,屏幕绘图、接收鼠标及键盘输入等,都必须向X Server发出请求,由X Server代为完成。Server/Client的沟通管道是X Window底层函式库Xlib。Xlib库给程序提供对X服务器底层的访问,同时为C语言提供的库,因此可以在C软件中调用Xlib库的函数使用。如图2所示,C中封装好的函数再利用DPI接口导入到Verilog实现的硬件验证环境(包含DUT 10)中,这样可以在Verilog中直接利用C中封装起来的支持X Server的图形化函数,建立起通用的模块夹具。将模块灵活的例化到软硬件协同仿真的验证平台中,就可以在仿真的过程中实现期望的图形化可控界面,实时输出仿真图像等信息,随时更改DUT 配置参数等,使整个仿真过程的可控性和直观性得到大幅度的提高。同时模块可以根据具体的需要灵活进行创建和维护,令使用更方便,仿真过程更具可维护性。根据本发明实施例,还提供了一种SOC的仿真验证方法,该方法可以通过图1或图 2所示的装置实现。图3是根据本发明实施例的SOC的仿真验证方法的流程图,如图3所示,该方法主要包括以下步骤步骤S302,在仿真过程中,DUT通过DPI利用软件模块中预设的图形化函数生成需要的图形化可控界面;其中,图形化可控界面可以包括一个或多个视窗,每个视窗可以用于响应不同的输入,其中,建立单视窗相对简单,建立多个视窗在实际应用中会更加方便和直观一些。例如,可以建立三个视窗一个视窗用于显示打印信息、一个视窗用于显示仿真中的图像信息,另一个视窗用于接收键盘或鼠标等外部设备的输入信息(包括DUT参数以及绘图等)。在具体实施过程,对于包括多个视窗的图形化可控界面的建立,包括但不限于以下两种方案第一种方案在软件模块中编写一个用于创建多个视窗的模块(即图形化函数), 通过DPI将该模块导入到DUT中,DUT调用该模块,将模块例化进仿真的平台直接创建多个视窗,每个视窗分别循环等待各自的事件触发;第二种方案在软件模块中编写一个通用的单视窗的模块(即图形化函数),通过 DPI将该模块导入到DUT中,然后根据需要,DUT多次调用该模块,在平台中例化多个这样的模块,创建不同的视窗口,每个视窗单循环等待自己的事件触发。
在实际使用中第一种方案更加方便,第二种方案更加灵活,可以根据不同的需求选择采用的方式。步骤S304,通过所述图形化可控界面,接收外部设备的输入信息和/或输出仿真
fn息ο其中,外部设备的输入信息包括DUT参数,在接收到所述外部设备的输入信息之后,所述DUT将接收到的所述DUT参数通过所述DPI导出到所述软件模块中,所述软件模块利用所述DUT参数对所述DUT进行配置更新,从而使得后续的仿真实现运行在新的DUT配置之上,而无需重新运行仿真,进而提高整个验证过程的效率。下面以图2所示的装置为例,对本发明优选实施例中建立多视窗的流程进行说明。实例 1在本实例中,采用上述第二种方案创建多个视窗的方式,如图4所示,在本实例中,首先需要与Xlib库进行链接,编译基于Xlib的软件,例如,可以使用XOpenDisplayO 函式得到一个连接到此服务器的display指针,可以封装成连接函数,并得到一个返回值。 连接到X服务器后即可以利用Xlib提供的函数创建和初始化一个窗口,创建窗口后可以根据窗口的具体功能来设定窗口的属性。例如,加载字体、颜色,然后设置前景背景色、窗口标题等,这些均可以根据Xlib手册中提供的函式进行灵活的编写和封装然后在窗口使用。下一步是设定窗口的预接收种类,例如,窗口为接收键盘或鼠标的某种操作的响应等。一个视窗设定好之后,整个程序就在其事件循环eVent_l00p中等待相应的事件触发,如果事件得到触发就按照设计去处理这个事件,处理后判断是否仍需要继续等待事件,需要则返回 event_l00p继续循环等待,不需要则退出并结束,其中,eVent_l00p可以根据需要进行编写。在本发明实施例的一个优选实施方式中,上述创建视窗的过程可以将每个步骤单独封装成函数,分别import到verilog硬件中依次调用。在另一个优选实施方式中,可以整体封装成创建视窗模块的函数,然后通过DPI导入到硬件环境中使用,均可以实现所需视窗功能。在本发明实施例中,建立一个通用的单窗口模块的桌面视窗后,可以根据具体需要灵活的例化几个在软硬件协同仿真平台中,这样创建了多个视窗模块,每个模块单独工作在其事件循环中,可以分别响应各自的事件触发。实例2对于采用第一种方案创建多个视窗的方式,如果采用单进程创建多视窗模块的方式,在视窗上绘图的刷新效率会比较低,时间上有一定的延迟,从而可能导致一些事件的触发没有得到实时处理,刷新的效果不够好。例如,如果采用单进程创建三个视窗模块,三个c_task中都存在eVent_l00p循环,三个循环都要利用DPI接口来实时刷新,会出现一个循环抢占了 DPI接口导致其它循环的事件在触发时还需要等待DPI接口响应的情况,这样刷新效率比较低,如果一个循环占用DPI接口时其它的循环如果当前处于导出(expose)的状态,则其事件触发将得不到响应,就会丢掉一些事件的处理,并且刷新的效果不好。在本实例中采用在软件模块中创建多进程编程解决,实现三个视窗等待事件触发的三个event_l00p在各自的进程中循环,三个进程互不影响,不再抢占同一个DPI接口,可以避免丢掉事件的情况,并且提高了刷新的效果。在本发明实施例的优选实施方式中,建立多个视窗响应不同的输入以及各种输出时均可以采用这种多进程的方式实现,可以在RTL硬件环境中例化一个导入(import)进来的软件实现的多视窗模块,仿真中在接收到键盘输入的DUT参数时,对DUT进行配置更新, 使得后续的仿真实现运行在新的DUT配置之上,而无需重新运行仿真,提高整个验证过程的效率。在上述实例1和实例2中,在仿真验证结束并结束掉所有调用后,需要关闭与X krver服务器的连接,例如,可以调用Xlib的^(CloseDisplay (display)函式。这样建立的桌面视窗模块根据具体验证的需要进行例化使用,可以实现软硬件协同验证过程的DUT配置可控,并增加输出打印控制信息等直观手段。从以上的描述中,可以看出,本发明实施例提供一种利用灵活建立图形桌面视窗模块提高验证过程可控性的装置及方法,它具有在软硬件协同验证的过程中可以随时改变仿真DUT参数,实时输出仿真信息,输出仿真图像,更改模块配置等作用,改变仿真验证过程中不可控的缺陷。在硬件中实现图形桌面装置,将此模块作为一个夹具灵活的加入软硬件协同仿真验证平台,可以为验证灵活提供可控的图形桌面视窗,增加验证的可控性和直观性。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种片上系统SOC的仿真验证方法,其特征在于,包括在仿真过程中,被测设备DUT通过直接编程接口 DPI利用软件模块中预设的图形化函数生成需要的图形化可控界面;通过所述图形化可控界面,接收外部设备的输入信息和/或输出仿真信息。
2.根据权利要求1所述的方法,其特征在于,所述图形化可控界面包括一个或多个视窗。
3.根据权利要求2所述的方法,其特征在于,在所述图形化可控界面包括多个视窗的情况下,所述DUT通过DPI利用软件模块中预设的图形化函数生成需要的图形化可控界面包括所述DUT通过所述DPI导入所述图形化函数,其中,所述图形化函数用于建立与所述多个视窗数量相同的视窗;所述DUT调用所述图形化函数,建立所述多个视窗。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括所述软件模块创建多个进程,每个进程对应于所述多个视窗中的一个视窗,在建立所述多个视窗后,各个所述视窗等待事件触发的各个事件循环在各自对应的进程中循环。
5.根据权利要求2所述的方法,其特征在于,在所述图形化可控界面包括多个视窗的情况下,所述DUT通过DPI利用软件模块中预设的图形化函数生成需要的图形化可控界面包括所述DUT通过所述DPI导入所述图形化函数,其中,所述图形化函数用于建立单视窗; 所述DUT调用η次所述图形化函数,分别建立所述多个视窗,其中,η为所述多个视窗的数量。
6.根据权利要求5所述的方法,其特征在于,在建立所述多个视窗之后,所述方法还包括所述DUT通过所述DPI从所述软件模块中导入多个操作函数,其中,每个操作函数用于对所述视窗执行一种操作;所述DUT调用所述操作函数,对所述视窗执行相应的操作; 所述DUT将执行的操作生成任务或功能导出到所述软件模块。
7.根据权利要求3至6中任一项所述的方法,其特征在于,所述多个视窗包括用于显示打印信息的视窗、用于显示仿真中的图像信息的视窗以及用于接收外部设备的输入信息的视窗。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述外部设备的输入信息包括DUT参数;在接收到所述外部设备的输入信息之后,所述方法还包括所述DUT将接收到的所述DUT参数通过所述DPI导出到所述软件模块中,所述软件模块利用所述DUT参数对所述DUT进行配置更新。
9.一种片上系统SOC的仿真验证装置,其特征在于,包括被测设备,用于在仿真过程中通过DPI利用软件模块中的预设的图形化函数生成需要的图形化可控界面,通过所述图形化可控界面,接收外部设备的输入信息和/或输出仿真 fn息;所述软件模块,用于通过所述DPI提供所述图形化函数。
10.根据权利要求9所述的装置,其特征在于,所述被测设备采用Verilog描述。
全文摘要
本发明公开了一种片上系统的仿真验证方法及装置。其中,该方法包括在仿真过程中,被测设备(DUT)通过直接编程接口(DPI)利用软件模块中预设的图形化函数生成需要的图形化可控界面;通过所述图形化可控界面,接收外部设备的输入信息和/或输出仿真信息。通过本发明,可以在DUT的仿真验证过程中输入或输出控制命令,从而提高了仿真验证的可控性。
文档编号G06F11/26GK102184131SQ201110092119
公开日2011年9月14日 申请日期2011年4月13日 优先权日2011年4月13日
发明者曹丽娜 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1