一种跨平台跨语言单芯片系统的验证方法

文档序号:6336788阅读:277来源:国知局
专利名称:一种跨平台跨语言单芯片系统的验证方法
技术领域
本发明涉及一种单芯片系统的验证方法,尤其涉及一种跨平台跨语言单芯片系统的验证方法,具体适用于采用json格式进行数据交流。
背景技术
当前单芯片系统的功能模块的验证方法主要有以下几种模式RTL模块代码+行为级描述代码;RTL模块代码+专用验证语言行为级描述代码;RTL模块代码+PLI调用C函数。但是以上的几个模式一般只在专用集成电路(ASIC)领域的验证方法上大量使用,而在单芯片系统(SOC)领域则有以下几个缺点首先,单芯片系统的功能模块一般通过软件驱动,驱动程序的复杂程度随着被测功能模块的复杂度大幅度提升,现有的行为级描述代码、专用验证语言行为级描述代码和 PLI调用在这个方面编程的效率都不高。其次,在以上的几个模式中,测例和验证环境高度耦合,测例必须运行在仿真环境下,必须使用单一语言编程,不利于测例的管理和回滚测试。再次,验证环境和测例程序接口没有标准化,不利于出错跟踪。

发明内容
本发明的目的是克服现有技术中存在的编程效率不高、不利于测例的管理和回滚测试、不利于出错跟踪的缺陷与问题,提供一种编程效率较高、有利于测例的管理和回滚测试、有利于出错跟踪的跨平台跨语言单芯片系统的验证方法。为实现以上目的,本发明的技术解决方案是一种跨平台跨语言单芯片系统的验证方法,该验证方法依次包括以下步骤第一步先针对被测对象构建一个验证模块,构建用的建模语言为systemc语言, 然后在验证模块中实现一个侦听指定端口的服务器线程,该指定端口与客户端之间通过 tcp/ip链接传递数据流,并在指定端口内设置一个用于解析数据流的循环体,该循环体采用json解析函数解析数据流;第二步先由客户端通过编程语言编写测例,然后把对验证模块的操作通过相应编程语言的json库打包,再通过tcp/ip链接发送至验证模块内的指定端口,然后由循环体采用json解析函数解析,再通过分支判断做出相应的反应,然后构建返回的json模式的数据包返回,重复上述步骤,直到链接中断退出仿真为止。所述第二步中客户端驱动的编程语言为c、c++、python、perl或java语言。与现有技术相比,本发明的有益效果为1、由于本发明一种跨平台跨语言单芯片系统的验证方法中在验证模块与客户端之间通过tcp/ip链接传递数据流,且该数据流的形式为json格式,同时在验证模块与客户端内均设置了打包的json库以及json解析函数,完全将json格式应用于数据交流中,通过创造性的使用json格式作为测例和验证环境的数据交换,解放了测例编写对于编程语言,平台的限制,提升了测例编写的效率,并可以通过现有的json库对数据结构序列化和反序列化,很容易的跟踪测试数据包的发送和反馈。因此本发明不仅编程的效率较高,而且有利于测例的管理和回滚测试、有利于出错跟踪。


图1是本发明的结构示意图。图2是本发明中采用的json格式的一种实施例的说明示意图。图3是本发明中采用的json格式的另一种实施例的说明示意图。图中被测对象1,验证模块2,指定端口 3,服务器线程4,客户端5,tcp/ip链接 6,循环体7。
具体实施例方式以下结合

具体实施方式
对本发明作进一步详细的说明参见图1至图3,一种跨平台跨语言单芯片系统的验证方法,该验证方法依次包括以下步骤第一步先针对被测对象1构建一个验证模块2,构建用的建模语言为system c语言,然后在验证模块2中实现一个侦听指定端口 3的服务器线程4,该指定端口 3与客户端 5之间通过tcp/ip链接6传递数据流,并在指定端口 3内设置一个用于解析数据流的循环体7,该循环体7采用json解析函数解析数据流;第二步先由客户端5通过编程语言编写测例,然后把对验证模块2的操作通过相应编程语言的json库打包,再通过tcp/ip链接6发送至验证模块2内的指定端口 3,然后由循环体7采用json解析函数解析,再通过分支判断做出相应的反应,然后构建返回的 json模式的数据包返回,重复上述步骤,直到链接中断退出仿真为止。所述第二步中客户端5驱动的编程语言为c、c++、python、perl或java语言。本发明的原理说明如下本发明的目的在于提供一种单芯片系统验证方法,它不但能跨平台,跨编程语言开发测例,而且能大大节约测例开发时间。本发明的目的是这样实现的使用system c构建一个验证模块2,该模块中实现一个服务器线程4,服务器线程4侦听一个指定端口 3,建立一个tcp/ip链接6服务,通过一个循环体7解析该指定端口 3的数据流,使用标准的json解析函数得到客户端5发送过来的数据结构,通过分支判断做出相应的反应,构建返回的json数据包返回,重复上述步骤, 直到链接中断退出仿真为止。在客户端5可以自由选择编程语言,编写测例,把要对验证模块2的操作通过相应语言的json库打包,通过tcp/ip链接6发送过去,起到控制被测的验证模块2的流程的功能,客户端5驱动的常见的编程语言可以是c、c++、python、perl或java。参见图1,本发明的验证环境使用systemc模块来构建tcp/ip服务器,服务器把收来的数据流发送到json解析器,由解析器恢复得到发送方发送的数据结构。参见图2和图3,详细说明json数据格式。
json即Javakript Object Natation,它是一种轻量级的数据交换格式,通常的用法是服务器与Jav必cript、Actior^cript语言交互,具备跨平台特性,在本发明中用于验证环境和测例语言的交互,下列将详细介绍json格式及其分别在客户端和服务器进行 json格式数据的处理。和XML —样,json也是基于纯文本的数据格式。由于它天生是为JavMcript等一写脚本语言准备的,因此其数据的格式非常简单,你可以用JSON传输一个简单的字符串、 数字、布尔值、数组,或者一个复杂的Object对象。String,Number和Boolean用JSON表示非常简单。例如,用json表示一个简单的Mring “abc”,其格式为“abc”。json还可以表示一个数组对象,使用[]包含所有元素,每个元素用逗号分隔,元素可以是任意类型, 如,以下数据包含了一个 String, Number, Boolean 和一个 Object [” abc",123,false, null]Object对象在json中是用{}包含一系列无序的Key-Value键值对表示的,实际上此处的Object相当于Java中的Map<String,0bject>,而不是Java的Class。注意Key 只能用String表示。json格式的实施例1:参见图2,一个Address对象包含如下的key-Value city ShangHai street :YiJiang Road postcode :202014用json表示如下{〃 city" “ ShangHai“ , “ street" “ YiJiang Road" , “ postcode" 202014}其中Value也可以是另一个Object或数组,因此复杂的Object可以嵌套表示,json格式的实施例2:参见图3,一个Person对象包含name和address,可以表示如下{〃 name" ‘‘ Samson",‘‘ address"{〃 city" “ ShangHai“ , “ street" “ YiJiang Road" , “ postcode" 202014}}通过创造性的使用json格式作为测例和验证环境的数据交换,解放了测例编写对于编程语言,平台的限制,提升了测例编写的效率,并可以通过现有的json库对数据结构序列化和反序列化,很容易的跟踪测试数据包的发送和反馈。由上可见,本发明不仅编程的效率较高,而且有利于测例的管理和回滚测试、有利
牟昔足艮S宗。以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。
权利要求
1.一种跨平台跨语言单芯片系统的验证方法,其特征在于该验证方法依次包括以下步骤第一步先针对被测对象(1)构建一个验证模块O),构建用的建模语言为system c语言,然后在验证模块O)中实现一个侦听指定端口(3)的服务器线程G),该指定端口(3) 与客户端( 之间通过tcp/ip链接(6)传递数据流,并在指定端口( 内设置一个用于解析数据流的循环体(7),该循环体(7)采用json解析函数解析数据流;第二步先由客户端( 通过编程语言编写测例,然后把对验证模块O)的操作通过相应编程语言的json库打包,再通过tcp/ip链接(6)发送至验证模块O)内的指定端口 (3),然后由循环体(7)采用json解析函数解析,再通过分支判断做出相应的反应,然后构建返回的json模式的数据包返回,重复上述步骤,直到链接中断退出仿真为止。
2.根据权利要求1所述的一种跨平台跨语言单芯片系统的验证方法,其特征在于所述第二步中客户端( 驱动的编程语言为c、c++、python、perl或java语言。
全文摘要
一种跨平台跨语言单芯片系统的验证方法,先使用system c构建一个验证模块,其中实现一个服务器线程以侦听指定端口,建立tcp/ip链接服务,通过循环体解析该端口的数据流,使用标准的json解析函数得到客户端发送过来的数据结构,通过分支判断做出相应的反应,构建返回的json数据包,重复上述步骤,直到链接中断退出仿真;在客户端可自由选择编程语言编写测例,即把要对验证模块的操作通过相应语言的json库打包,通过tcp/ip链接发送过去以控制被测的验证模块的流程。本发明不仅编程的效率较高,而且有利于测例的管理和回滚测试、有利于出错跟踪。
文档编号G06F11/26GK102479130SQ201010559520
公开日2012年5月30日 申请日期2010年11月25日 优先权日2010年11月25日
发明者伍骏, 徐碧霞, 郭昆亚, 马肇阳 申请人:上海宇芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1