逻辑仿真测试系统和方法技术方案

技术编号:2867940 阅读:189 留言:0更新日期:2012-04-11 18:40
本发明专利技术的逻辑仿真测试系统,通过用户的主脚本文件来完成包含在仿真器模块中的待测试逻辑的测试,其中,该系统包含有:控制模块,用来解释执行该主脚本文件和控制下述的各个模块;报文数据库模块,用来实现报文数据的存储和读取、检索和显示、保存到文件和从文件中加载;CPU配置模块,用来实现数据的读写和中断;若干个激励模块,用来构造激励报文;仿真器模块,用来对输入的激励报文完成仿真处理测试,并输出测试后的报文;若干个分析模块,用来分析测试后的报文,并将分析结果输出。本发明专利技术用户编写的测试代码比较简单并且代码量少,测试代码采用TCL脚本编写,不需要编译,搭建仿真系统投入的时间大大减少。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及设备测试领域,具体来说是涉及一种模块化的。
技术介绍
如今大量的通讯类大规模逻辑得到了广泛的使用,在投入使用前要对该种通讯类大规模逻辑的功能进行仿真测试,测试时大量的工作是编写由激励产生功能和结果分析功能组成的测试代码,然后进行测试。现有的测试方法主要是首先由测试人员编写测试代码,然后将该测试代码输入非模块化的逻辑验证系统来完成测试。如图1所示为目前应用非常广泛的Zaiq公司采用的逻辑验证系统的结构框图,其包括有三部分C测试代码部分、接口层部分、通用的HDL(Hardware Design Language硬件设计语言)仿真部分。C测试代码部分包括用户实现测试目的测试用例代码、实现数据传递交换的接口函数(包括TX测试函数、RX测试函数、CPU测试函数)、环境控制、报文记录库。测试用例代码调用数据交换接口函数,实现数据的收发,调用TX测试函数发送激励数据,将产生的激励数据传递给被测试逻辑;调用RX测试函数实现数据接收,接收被测试逻辑传递过来的数据,完成接收数据分析;调用CPU测试函数实现CPU接口的数据读写和中断。数据交换接口函数,是用户根据特定激励数据格式的要求,调用接口层提供的编程接口,编码而成。报文记录库用于记录激励报文的相关信息,比如收发端口、收发时间、报文构造数据,报文序列号等。环境控制部分,实现模块之间的消息传递和同步,仿真器控制,消息记录等。接口层部分,实现上述的C测试代码部分的数据和下述的HDL仿真部分数据的交换,存在于该逻辑验证系统的内核,对于用户来说是一些编程接口。HDL仿真部分,包含TX数据交换接口、RX数据交换接口、CPU数据交换接口、被仿真测试的逻辑。其中TX数据交换接口、RX数据交换接口、CPU数据交换接口是用户用HDL语言编写实现的,用于将数据转换成时序信号传递给被仿真测试的逻辑,或者从被测试逻辑接收时序信号转换成数据。HDL仿真部分的模块也是用HDL语言编码实现,在通用仿真器软件环境中运行,仿真硬件的行为。该逻辑验证系统提供了许多底层函数,比如报文数据结构定义、报文构造函数、同步机制函数等,测试人员使用这些函数编写C测试代码。虽然上述现有技术在一定程度上达到了测试代码共享,提高了测试效率,但是其仍然存在许多不足。首先由于为一个通讯类大规模逻辑项目编写一套测试代码,现有技术没有形成模块化组件,只是提供了编程的底层函数,测试人员不得不熟悉很多函数;而测试代码和被仿真的逻辑相关,测试代码重用度很低、可重复性很差;另外,各功能模块没有明确的编程指导或接口规范,只是提出大概的分工,实现的功能主要由用户根据具体的项目要求进行设计,因此编程工作量很大。其次对逻辑测试人员的编程技术要求很高,可是通常逻辑测试人员是硬件工程师,对软件编程不是很擅长,这更增加了逻辑仿真测试工作的难度和不便,造成测试效率低下。
技术实现思路
本专利技术的主要目的是提供一种测试人员只需编写和待测试逻辑相关的少量代码的主脚本文件,以解决现有技术存在的测试代码重用度低、可重复性差、编程工作量大和测试效率低下等问题,就能自动完成仿真逻辑的测试和分析的模块化的。为实现上述目的,本专利技术的解决方案是一种逻辑仿真测试系统,通过用户的主脚本文件来完成包含在仿真器模块中的待测试逻辑的测试,其中,该系统包含有控制模块,用来解释执行该主脚本文件和控制下述的各个模块;报文数据库模块,用来实现报文数据的存储和读取、检索和显示、保存到文件和从文件中加载;CPU配置模块,用来实现数据的读写和中断;若干个激励模块,用来构造激励报文;仿真器模块,用来对输入的激励报文完成仿真处理测试,并输出测试后的报文;若干个分析模块,用来分析测试后的报文,并将分析结果输出;所述的仿真器模块中的HDL代码模块向控制模块发出测试激励请求,该控制模块转发该测试激励请求至相应的激励模块,该激励模块构造激励报文,将报文数据信息存储至所述的报文数据库模块,且将该激励报文发送至所述的仿真器模块,由在仿真器模块中运行的HDL代码模块读取并处理输入报文,并输出处理后的报文至相应的分析模块,该分析模块分析被测试逻辑处理后的报文,将分析结果在所述的CPU配置模块的控制下保存到报文数据库模块。其中,所述的激励模块包含有相应的含有TCL脚本的报文构造器。该激励模块通过调度内部数据流,得到被选中的数据流的参数,再调用该报文构造器,即产生所述的激励报文。该系统还进一步包括用于进一步验证待测试逻辑对激励报文的处理的用户验证模块,所述的激励模块将激励报文传递给用户验证模块,得到该报文的预期处理结果,激励模块将预期处理结果保存到报文数据库;所述的分析模块将原始的激励报文和测试后的报文传递至该用户验证模块,该用户验证模块完成待测试逻辑对激励报文处理的进一步验证,并将验证结果返回给所述的分析模块。所述的分析模块根据报文库中报文的记录数据,自动完成对报文的一些行为的分析。所述的控制模块和所述的激励模块、分析模块、CPU配置模块之间的连接是通过基类模块来进行的。而所述的用户验证模块和所述的激励模块、分析模块之间的连接是通过基类模块来进行的。另外,本专利技术的一种逻辑仿真测试方法,通过用户的主脚本文件来完成包含在仿真器模块中的待测试逻辑的测试,其中,该方法包含如下步骤a、解释执行主脚本文件,然后根据主脚本文件建立激励模块对象和分析模块对象,并按照其中的参数对该激励模块对象和分析模块对象进行配置;b、仿真器模块发出测试服务请求,且送至该激励模块对象;c、该激励模块对象根据该测试服务请求构造激励报文,将该激励报文送至仿真器模块;d、仿真器模块对输入的该激励报文根据HDL代码描述的硬件行为完成仿真处理,将处理后的报文送至相应的分析激励模块对象;e、该分析模块对象分析该处理后的报文,并将分析结果输出。其中所述步骤a中的建立激励模块对象和分析模块对象是指建立若干个相应的激励模块对象和分析模块对象。所述步骤c中的构造激励报文是通过调度各激励模块对象内的激励数据流,再调用相应的TCL脚本进行报文构造,来产生所述的激励报文。所述步骤e中的分析该测试后的报文更具体包括e1、对该测试后的报文进行协议符合性分析,如果为切片报文,则进行报文重组,得到完整的报文;e2、对该完整的报文进行解析,提取出插入标签,获得报文净荷;e3、验证该报文净荷,得到分析结果。其中,所述步骤e的步骤e1中更进一步包括如果该测试后的报文是待测试逻辑自动插入的报文,则由用户辅助验证;否则继续。本专利技术建立在对被测试对象的充分调研和充分分析上,提取出被测试对象的共性以及验证策略的共性,从而设计出固定的模块组件,并制订了模块间接口标准,使得系统模块化,并且可以后期添加(或开发)新的模块补充进来,而不需要对平台原来的模块重新编译。激励模块和分析模块在激励产生和报文分析方面,容易在逻辑项目之间共享。用户编写的测试代码比较简单并且代码量少,测试代码采用TCL脚本编写,不需要编译。使用本专利技术设计的系统,搭建仿真系统投入的时间大大减少,使得测试人员可以将大部分精力主要投入到测试条目的设计上。下面结合附图和具体实施例来详细描述本专利技术。附图说明图1为现有的逻辑验证系统的结构框图;图2是本专利技术所述的逻辑仿真测试系统的结构框图;图3是本专利技术所述的逻辑仿真测试方法的本文档来自技高网
...

【技术保护点】
一种逻辑仿真测试系统,通过用户的主脚本文件来完成包含在仿真器模块中的待测试逻辑的测试,其特征在于,该系统包含有:控制模块,用来解释执行该主脚本文件和控制下述的各个模块;报文数据库模块,用来实现报文数据的存储和读取、检索和显示 、保存到文件和从文件中加载;CPU配置模块,用来实现数据的读写和中断;若干个激励模块,用来构造激励报文;仿真器模块,用来对输入的激励报文完成仿真处理测试,并输出测试后的报文;若干个分析模块,用来分析测试后的报 文,并将分析结果输出;所述的仿真器模块中的HDL代码模块向控制模块发出测试激励请求,该控制模块转发该测试激励请求至相应的激励模块,该激励模块构造激励报文,将报文数据信息存储至所述的报文数据库模块,且将该激励报文发送至所述的仿真器模块 ,由在仿真器模块中运行的HDL代码模块读取并处理输入报文,并输出处理后的报文至相应的分析模块,该分析模块分析被测试逻辑处理后的报文,将分析结果在所述的CPU配置模块的控制下保存到报文数据库模块。

【技术特征摘要】

【专利技术属性】
技术研发人员:王进成
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利