基于SystemVerilog对TTCN-3进行编译的方法及系统的制作方法

文档序号:6509732阅读:268来源:国知局
基于System Verilog对TTCN-3进行编译的方法及系统的制作方法
【专利摘要】本发明提供一种基于System?Verilog对TTCN-3进行编译的方法及系统,其中方法包括:通过TTCN2SV翻译器,将TTCN-3测试平台上的TTCN-3的数据类型和函数映射到System?Verilog测试平台上,生成System?Verilog测试平台上对应的TTCN-3的数据类型和函数;在System?Verilog测试平台上利用System?Verilog编译测试例,其中,System?Verilog通过DPI接口调用System?Verilog测试平台上对应的TTCN-3的函数,建立System?Verilog和TTCN-3的数据类型映射表,将System?Verilog测试平台上对应的TTCN-3的数据类型映射生成System?Verilog的数据类型,并生成测试例的可执行文件。利用本发明,能够解决目前传统方法对TTCN-3进行编解码时无法克服TTCN-3面对复杂SUT时所暴露的性能、容量和可靠性等问题。
【专利说明】 基于System Ver i log对TTCN-3进行编译的方法及系统
【技术领域】
[0001]本发明涉及计算机程序编译【技术领域】,更为具体地,涉及一种基于SystemVerilog对TTCN-3进行编译的方法及系统。
【背景技术】
[0002]TTCN (Testing and Test Control Notation,测试和测试控制表不法)是一个由ETSI (European Telecommunications Standards Institute,欧洲电信标准化协会)维护的全球适用的标准测试语言。TTCN-3是被批准的第三代标准且灵活的语言,用于通过广泛的接口描述许多类型的系统测试。
[0003]TTCN-3给出了一种灵活和强有力的测试方法,它用于描述在多种通信端口上的各种响应系统测试。如果要在被测系统上运行TTCN-3测试例,需要使用专用编译器对TTCN-3代码编译生成可执行码,随后在对应的运行环境下运行。当与不同的系统交互时,TTCN-3会使用一个特殊的实体建立起它和不同系统进行对话的桥梁,这个实体为CD模块。TTCN-3测试系统需要CD模块将TTCN-3类型值转化为位串发送给被测系统,将从被测系统收到的数据转化成合适的TTCN-3值。
[0004]现有的使用VC等第三方工具对TTCN-3进行编译的方法,可以归类为通过构建TTCN-3的数据类型语法分析树来提取信息。其构建过程依赖TTCN-3语法分析器,构建中需要对TTCN-3语法分析器做较大修改。语法分析器在大多数情况下并不显示构建地语法分析树,而编码需要的是TTCN-3元以内代码中特定数据定义语句的语法分析树,因此这种方法在提取TTCN-3数据类型定义信息时,需要以整个TTCN-3语法树作为查找基数来多次查找并匹配出有效的TTCN-3数据类型定义信息,整个过程是比较复杂的,需要大量的程序员手动操作,耗时长,出错率也随之增高。
[0005]对一个TTCN-3上行端口数据结构的定义,端口名为G_L2_DATAMESSAGE_IND。
[0006]在22#定义中,G_L2_DATAMESSAGE_IND联合体中包含7个元素,每个元素分别在Layer3层中定义,若想解码G_L2_DATAMESSAGE_IND数据,必须先行对Layer3层进行解码。
[0007]如第一个元素G_L2_UNITDATA_IND定义为record (记录)类型,其中又包含7个子元素,在使用C语言进行解码时,由于C语言中不存在record类型,需要将TTCN-3中的record数据类型转化成C语言中的struct类型。TTCN-3的record数据中可以将元素标记为optional,表示在测试过程中该元素有可能出现也有可能不出现,此类元素在C语言解码时需要为其设置相应的mask (标志),以此指示其出现与否,如31#定义中的subchannel元素。
[0008]G_L2_UNITDATA_IND中的celld子元素为integer类型,等同于C语言中的int类型,在解码过程中此元素可以直接写入G_L2_UNITDATA_IND结构体中。而像MEASUREMENTREP0RT类型的元素,由于其还包含下层子元素,所以需要先于G_L2_UNITDATA_IND 对MEASUREMENTREP0RT 类型数据进行解码,MEASUREMENTREP0RT 的定义如 47#所示,可见其中仍包含C语言未知的数据类型,需要进一步解码。[0009]以此类推,G_L2_DATAMESSAGE_IND需要至少8层的解码才能将上行的位串转化成TTCN-3的结构数据。G_L2_DATAMESSAGE_IND数据的定义为庞大的树状结构,每一层较上一层都增加大量的分支,全部解码G_L2_DATAMESSAGE_IND数据需要近万行的代码量,是一个十分耗时耗力的工作。
[0010]目前,用以克服TTCN-3上述缺点的一种方法是设计一种能够将TTCN-3测试套编译成C/C++等语言的测试系统,使用例如VC —类的编译器,获得可执行的测试套(ETS)、动态配置系统适配器、编解码器和平台适配器。然而,尽管将TTCN-3转化成C/C++语言,该系统依然无法完全消除上述瓶颈问题。

【发明内容】

[0011]鉴于上述问题,本发明的目的是提供一种基于System Verilog对TTCN-3进行编译的方法及系统,以解决目前利用C/C++或者java等语言对TTCN-3进行编译时无法克服TTCN-3面对复杂SUT (System Under Test,被测系统)时所暴露的性能、容量和可靠性等问题。
[0012]本发明提供一种基于System Verilog对TTCN-3进行编译的方法,包括:
[0013]通过TTCN2SV翻译器,将TTCN-3测试平台上的TTCN-3的数据类型和函数映射到System Verilog测试平台上,生成System Verilog测试平台上对应的TTCN-3的数据类型和函数;
[0014]在System Verilog测试平台上利用System Verilog编译测试例;其中,
[0015]System Verilog通过DPI接口调用System Verilog测试平台上对应的TTCN-3的函数,建立System Verilog和TTCN-3的数据类型映射表,将System Verilog测试平台上对应的TTCN-3的数据类型映射生成System Verilog的数据类型,根据System Verilog的数据类型,生成测试例的可执行文件。
[0016]此外,优选的方案是,在System Verilog通过DPI接口调用System Verilog测试平台上对应的TTCN-3的函数的过程中,
[0017]在System Verilog中采用第一关键字,定义导入方法;
[0018]System Verilog利用所定义的导入方法调用System Verilog测试平台上对应的TTCN-3的函数,将System Verilog测试平台上对应的TTCN-3的数据类型映射生成SystemVerilog的数据类型;
[0019]在System Verilog中调用所述System Verilog的数据类型。
[0020]此外,优选的方案是,在生成测试例的可执行文件之后,还包括:
[0021]将可执行文件导出System Verilog测试平台;其中,
[0022]导出的方法在System Verilog中采用第二关键字定义。
[0023]此外,优选的方案是,TTCN-3的数据类型和System Verilog的数据类型皆为树形数据类型。
[0024]此外,优选的方案是,可执行文件通过系统适配器和时钟控制器与被测系统进行连接和适配。
[0025]本发明提供一种基于System Verilog对TTCN-3进行编译的系统,包括:
[0026]TTCN2SV翻译器映射单元,用于将TTCN-3测试平台上的TTCN-3的数据类型和函数映射到System Verilog测试平台上,生成System Verilog测试平台上对应的TTCN-3的数据类型和函数;
[0027]System Verilog编译单元,用于在System Verilog测试平台上利用SystemVerilog编译测试例;其中,在System Verilog测试平台上,System Verilog通过DPI接口调用System Verilog测试平台上对应的TTCN-3的函数,建立System
的数据类型映射表,将System Verilog测试平台上对应的TTCN-3的数据类型映射生成System Verilog的数据类型,根据System Verilog的数据类型,生成测试例的可执行文件。
[0028]此外,优选的方案是,System Verilog编译单元包括:
[0029]导入定义单元,用于在System Verilog中采用第一关键字,定义导入方法;
[0030]System Verilog利用导入定义单元定义的导入方法调用System Verilog测试平台上对应的TTCN-3的函数。
[0031]此外,优选的方案是,System Verilog编译单元包括:
[0032]导出定义单元,用于在System Verilog中采用第二关键字,定义导入方法;
[0033]导出单元,用于将可执行文件导出System Verilog测试平台。此外,优选的方案是,基于System Verilog对TTCN-3进行编译的系统还包括:System Verilog测试单元,用于通过系统适配器和时钟控制器将可执行文件与被测系统进行连接和适配。
[0034]从上面的技术方案可知,利用本发明的基于System Verilog对TTCN-3进行编译的方法及系统,能够得到以下有益效果:
[0035]I)使用System Verilog与TTCN-3语言数据结构相似的测试语言,对TTCN-3测试例进行编译,生成可执行文件,编译过程充分保持了树状的数据类型结构,较以往使用传统的层层编解码的方法能够提高编译效率。
[0036]2)使用System Verilog对TTCN-3进行编译的方法能够有效克服TTCN-3面对复杂SUT时所暴露的性能、容量和可靠性等问题。
[0037]为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
【专利附图】

【附图说明】
[0038]通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
[0039]图1为根据本发明实施例的基于System Verilog对TTCN-3进行编译的方法示意图;
[0040]图2为根据本发明实施例的基于System Verilog测试台运行TTCN-3测试例对SUT进行测试的示意图;
[0041]图3为根据本发明实施例的基于System Verilog对TTCN-3进行编译的系统框图。
[0042]在所有附图中相同的标号指示相似或相应的特征或功能。【具体实施方式】
[0043]在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。
[0044]TTCN-3适用于应用和测试等多种领域,例如电信协议、实时检测、软件测试、汽车、负载测试、金融等,然而对于复杂的被测系统SUT (System Under Test,被测系统),目前的TTCN-3编译器/调试器存在性能、容量和可靠性等瓶颈问题。
[0045]针对上述问题,本发明利用TTCN-3语言数据树状结构的特点,采用SystemVerilog对其进行编译,生成可执行文件,以大幅度降低工作量,同时有效改进TTCN-3面对复杂SUT时所暴露的性能、容量和可靠性等问题。
[0046]以下将结合附图对本发明的具体实施例进行详细描述。
[0047]图1示出了根据本发明实施例的基于System Verilog对TTCN-3进行编译的方法。
[0048]如图1所示,本发明提供的基于System Verilog对TTCN-3进行编译的方法,包括如下步骤:
[0049]SllO:通过TTCN2SV翻译器,将TTCN-3测试平台上的TTCN-3的数据类型和函数映射到System Verilog测试平台上,生成System Verilog测试平台上对应的TTCN-3的数据类型和函数。
[0050]S120:在System Verilog测试平台上利用System Verilog编译测试例;其中,
[0051]System Verilog通过DPI接口调用System Verilog测试平台上对应的TTCN-3的函数,建立System Verilog和TTCN-3的数据类型映射表,将System Verilog测试平台上对应的TTCN-3的数据类型映射生成System Verilog的数据类型,根据System Verilog的数据类型,生成测试例的可执行文件。
[0052]上述步骤SllO是在System Verilog测试平台中对TTCN-3进行编译所做的准备工作,由于在System Verilog测试平台上不能直接识别TTCN-3的数据类型和函数,因此通过TTCN2SV翻译器,将TTCN-3的数据类型和函数转化成在System Verilog测试平台上可以直接识别TTCN-3的数据类型和函数。
[0053]System Verilog简称为SV语言,它结合了来自Verilog、VHDL、C++的概念,还有验证平台语言和断言语言,也就是说,它将硬件描述语言(HDL)与现代的高层级验证语言(HVL)结合了起来。使其对于进行当今高度复杂的设计验证的验证工程师具有相当大的吸引力。
[0054]System Verilog是一种硬件描述和验证语言(HDVL),它基于IEEE 1364-2001Verilog硬件描述语言(HDL), Verilog主要采用树形的语法结构,System Verilog对其进行了扩展,包括扩充了 C语言数据类型、结构、压缩和非压缩数组、接口、断言等等,这些都使得System Verilog在一个更高的抽象层次上提高了设计建模的能力。这个统一的语言使得工程师可以建模大型复杂的设计并且验证这些设计的功能是否正确。
[0055]其中,System Verilog具有以下优点:
[0056]1、同时支持设计和验证的标准语言;
[0057]2、支持约束随机的产生;
[0058]3、支持覆盖率统计分析;[0059]4、支持断言验证;
[0060]5、面向对象的编程结构,有助于采用事务交易级的验证和提高验证的重用性。
[0061]此外,System Verilog中包含一个强大的外部语言接口-DPI (Direct
Programming Interface,直接编程接口)。目前,DPI 只描述了 System Verilog 和 C 语言接口的一些语法结构。通过DPI, System Verilog的任务和函数可以调用C语言函数,在C语言中也可以调用System Verilog中的函数。在System Verilog中调用一个C语言函数,就像调用一个System Verilog的任务或函数一样简单;同样在C语言中调用SystemVerilog的任务和函数,和调用C语言的函数没有太多区别。从理论上说,DPI不仅是SystemVerilog和C语言的接口方式,它也是System Verilog和其他编程语言的一个可选接口。
[0062]System Verilog语言的数据结构使其更适合成为对TTCN-3进行编解码的目标语言,因此,本发明中使用基于System Verilog的工具对TTCN-3进行编译、调试和执行。
[0063]在本发明中,在DPI接口中增加System Verilog对TTCN-3函数的导入导出方法,使得TTCN-3测试例可以通过DPI接口在System Verilog测试平台上方便地编译、调试和运行。
[0064]在上述步骤S120中,System Verilog通过DPI接口调用System Verilog测试平台的对应的TTCN-3的函数,其过程如下:
[0065]在System Verilog 中采用关键字 import 定义导入方法(imported method)。
[0066]System Verilog根据所定义的导入方法通过DPI接口调用对应的TTCN-3的函数,将System Verilog测试平台上对应的TTCN-3的数据类型映射生成System Verilog的数据类型。
[0067]然后,就可以在System Verilog中调用TTCN-3的函数的输出结果(SystemVerilog的数据类型),进而对测试例进行编译,生成该测试例的可执行文件。
[0068]最后,就可以利用所定义的导出方法将上述可执行文件导出System Verilog测试平台。其中,导出方法可以在System Verilog中采用关键字export定义。
[0069]在上述过程中,在DPI接口中增加System Verilog对TTCN-3的函数的导入和导出方法,其导入和导出的关键在于System Verilog数据类型和TTCN-3数据类型之间的映射。
[0070]其具体的实现方法:建立System Verilog和TTCN-3的数据类型映射表,在SystemVerilog测试平台中,将TTCN-3的树形的数据类型结构映射到System Verilog所提供的System Verilog的树形的数据类型结构中。
[0071]在实现导入和导出的过程中,使用DPI接口具体流程需要参考仿真器的实现方式和推荐的代码风格。
[0072]在本发明一个具体实施例中,TTCN-3中常见的record类型是一个树形的数据类型结构体。在System Verilog语言中,一个record的名字可以映射为约束类中指令类的集合名,把record元素类型的名字映射为约束类中参数类的集合名,将record中optional元素的控制参数映射为System Verilog语言描述的场景实现指令类的触发条件,由此便可实现由TTCN-3树形的数据类型结构到System Verilog语言描述的树形的数据类型结构的映射。
[0073]在System Verilog中编译测试例生成可执行文件,然后将生成的可执行文件通过系统适配器和时钟控制器与被测系统SUT进行连接和适配。
[0074]综上所述,利用System Verilog对TTCN-3进行编译的过程为:将TTCN-3测试语言映射到System Verilog测试平台,运行System Verilog测试平台和TTCN-3测试语言。图2示出了根据本发明实施例的基于System Verilog测试台运行TTCN-3测试例对SUT进行测试过程,其具体过程如下:
[0075]首先,TTCN-3测试平台的文件通过TTCN2SV翻译器,将TTCN-3测试平台的文件中的TTCN-3测试平台的文件的数据类型和函数映射到System Verilog测试平台,生成System Verilog测试平台上的对应的TTCN-3的数据类型和函数。
[0076]然后,在System Verilog中编译测试例,在System Verilog测试平台上利用System Verilog编译测试例;其中,System Verilog通过DPI 接 口调用 System Verilog测试平台上对应的TTCN-3的函数,将System Verilog测试平台的对应的TTCN-3的数据类型映射生成System Verilog的数据类型。
[0077]最后,通过编解码器Codec,根据生成System Verilog的数据类型,生成可执行文件SIMV,可执行文件SIMV通过系统适配器(System Adapter,简称SA)和时钟控制器(TimerControl)与被测系统(System Under Test,简称SUT)进行连接和适配。
[0078]上述利用System Verilog对TTCN-3进行编译测试的过程,是建立在TTCN-3和System Verilog有着相似的验证方法和相似的数据类型的基础上的。基于TTCN-3和System Verilog的数据类型相似性,这种新的基于TTCN-3的System Verilog编译器/调试器令使用者可以使用System Verilog的编译器和调试器对TTCN-3进行编译和调试。因此,本发明提供的对TTCN-3进行编译的方法具有卓越的性能、容量和可靠性,适用于广泛的应用和类型。
[0079]上述为本发明的基于System Verilog对TTCN-3进行编译的方法,与上述方法相对应,本发明还提供一种基于System Verilog对TTCN-3进行编译的系统。
[0080]图3为根据本发明实施例的基于System Verilog对TTCN-3进行编译的系统框图。
[0081]如图3所示,基于System Verilog对TTCN-3进行编译的系统300包括:TTCN2SV翻译器映射单兀310、System Verilog编译单兀320和System Verilog测试单兀330。其中,System Verilog编译单元320进一步包括导入定义单元321、导出定义单元322和导出单元323。
[0082]其中,TTCN2SV翻译器映射单元310,用于将TTCN-3测试平台上的TTCN-3的数据类型和函数映射到System Verilog测试平台上,生成System Verilog测试平台上对应的TTCN-3的数据类型和函数。
[0083]System Verilog编译单元320,用于在System Verilog测试平台上利用SystemVerilog编译测试例;其中,在System Verilog测试平台上,System Verilog通过DPI接口调用System Verilog测试平台上对应的TTCN-3的函数,建立System Verilog和TTCN-3的数据类型映射表,将System Verilog测试平台上对应的TTCN-3的数据类型映射生成System Verilog的数据类型,根据System Verilog的数据类型,生成测试例的可执行文件。
[0084]导入定义单元321,用于在System Verilog中采用第一关键字,定义导入方法;System Verilog利用导入定义单元定义的导入方法调用System Verilog测试平台上对应的TTCN-3的函数。
[0085]导出定义单元322,用于在System Verilog中采用第二关键字,定义导入方法;
[0086]导出单元323,用于将可执行文件导出System Verilog测试平台。
[0087]System Verilog测试单元330,用于通过系统适配器和时钟控制器将可执行文件与被测系统进行连接和适配。
[0088]通过上述实施方式可以看出,本发明提供的基于System Verilog对TTCN-3进行编译的方法及系统,基于TTCN-3和System Verilog有着相似的验证方法和相似的数据类型,System Verilog利用相似的数据类型结构,对TTCN-3进行编译和调试生成可执行文件,大幅度降低工作量,同时能够有效改进TTCN-3面对复杂SUT时所暴露的性能、容量和可靠性等问题。
[0089]如上参照附图以示例的方式描述了根据本发明提出的基于System Verilog对TTCN-3进行编译的方法及系统。但是,本领域技术人员应当理解,对于上述本发明所提出的基于System Verilog对TTCN-3进行编译的方法及系统,还可以在不脱离本
【发明内容】
的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
【权利要求】
1.一种基于System Verilog对TTCN-3进行编译的方法,包括: 通过TTCN2SV翻译器,将TTCN-3测试平台上的TTCN-3的数据类型和函数映射到System Verilog测试平台上,生成System Verilog测试平台上对应的TTCN-3的数据类型和函数; 在所述System Verilog测试平台上利用System Verilog编译测试例;其中, 所述System Verilog通过DPI接口调用所述System Verilog测试平台上对应的TTCN-3的函数,建立所述System Verilog和所述TTCN-3的数据类型映射表,将所述SystemVerilog测试平台上对应的TTCN-3的数据类型映射生成所述System Verilog的数据类型,根据所述System Verilog的数据类型,生成所述测试例的可执行文件。
2.如权利要求1所述的基于SystemVerilog对TTCN-3进行编译的方法,其中,在所述System Verilog通过DPI接口调用所述System Verilog测试平台上对应的TTCN-3的函数的过程中, 在所述System Verilog中采用第一关键字,定义导入方法; 所述System Verilog利用所定义的导入方法调用所述System Verilog测试平台上对应的TTCN-3的函数,将所述System Verilog测试平台上对应的TTCN-3的数据类型映射生成System Verilog的数据类型; 在所述System Verilog中调用所述System Verilog的数据类型。
3.如权利要求1所述的基于SystemVerilog对TTCN-3进行编译的方法,其中,在生成所述测试例的可执行文件之后,还包括:. 将所述可执行文件导出所述System Verilog测试平台;其中, 所述导出的方法在所述System Verilog中采用第二关键字定义。
4.如权利要求1所述的基于SystemVerilog对TTCN-3进行编译的方法,其中,所述TTCN-3的数据类型和所述System Verilog的数据类型皆为树形数据类型。
5.如权利要求1所述的基于SystemVerilog对TTCN-3进行编译的方法,其中,所述可执行文件通过系统适配器和时钟控制器与被测系统进行连接和适配。
6.一种基于System Verilog对TTCN-3进行编译的系统,包括: TTCN2SV翻译器映射单元,用于将TTCN-3测试平台上的TTCN-3的数据类型和函数映射到System Verilog测试平台上,生成System Verilog测试平台上对应的TTCN-3的数据类型和函数; System Verilog编译单元,用于在所述System Verilog测试平台上利用SystemVerilog编译测试例;其中,所述System Verilog通过DPI接口调用所述System Verilog测试平台上对应的TTCN-3的函数,建立所述System Verilog和所述TTCN-3的数据类型映射表,将所述System Verilog测试平台上对应的TTCN-3的数据类型映射生成所述SystemVerilog的数据类型,根据所述System Verilog的数据类型,生成所述测试例的可执行文件。
7.如权利要求6所述的基于SystemVerilog对TTCN-3进行编译的系统,其中,所述System Verilog编译单元包括: 导入定义单元,用于在所述System Verilog中采用第一关键字,定义导入方法; 所述System Verilog利用所述导入定义单元定义的导入方法调用所述SystemVerilog测试平台上对应的TTCN-3的函数。
8. 如权利要求6所述的基于SystemVerilog对TTCN-3进行编译的系统,其中,所述System Verilog编译单元包括: 导出定义单元,用于在所述System Verilog中采用第二关键字,定义导入方法; 导出单元,用于将所述可执行文件导出所述System Verilog测试平台。
9.如权利要求6所述的基于SystemVerilog对TTCN-3进行编译的系统,还包括: System Verilog测试单元,用于通过系统适配器和时钟控制器将所述可执行文件与被测系统进行连接和适配。
【文档编号】G06F9/45GK103473109SQ201310390222
【公开日】2013年12月25日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】徐慧, 李春林 申请人:北京中创信测科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1