CN102722382B - 仿真过程中加载表项的方法及仿真设备 - Google Patents

仿真过程中加载表项的方法及仿真设备 Download PDF

Info

Publication number
CN102722382B
CN102722382B CN201210157792.4A CN201210157792A CN102722382B CN 102722382 B CN102722382 B CN 102722382B CN 201210157792 A CN201210157792 A CN 201210157792A CN 102722382 B CN102722382 B CN 102722382B
Authority
CN
China
Prior art keywords
list item
simulated environment
file
test case
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210157792.4A
Other languages
English (en)
Other versions
CN102722382A (zh
Inventor
杨天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meng Deling
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210157792.4A priority Critical patent/CN102722382B/zh
Publication of CN102722382A publication Critical patent/CN102722382A/zh
Application granted granted Critical
Publication of CN102722382B publication Critical patent/CN102722382B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种仿真过程中加载表项的方法及仿真设备。其中,方法包括:从测试用例中获取测试用例使用的每个表项在仿真环境中的存储路径,表项以表项文件的方式进行存储;从测试用例中获取每个表项在仿真环境中的加载路径,加载路径为将表项加载到仿真环境中的存储空间中所需的路径信息;在执行测试用例时,分别将每个表项在仿真环境中的存储路径和加载路径作为输入参数,调用仿真环境中的系统函数,以使系统函数将每个表项写入仿真环境中的存储空间中。本发明技术方案通过调用系统函数以文件映射方式直接将表项写入仿真环境的存储空间中,提高了在仿真环境中加载表项的速度,提高了仿真效率,进而加速了项目进度。

Description

仿真过程中加载表项的方法及仿真设备
技术领域
本发明涉及电子技术,尤其涉及一种仿真过程中加载表项的方法及仿真设备。
背景技术
逻辑验证技术是利用仿真、等效模型、方法学等一系列的技术手段,使用各种电子设计自动化(ElectronicDesignAutomatic,EDA)工具,在产品发布前证明逻辑设计符合项目需求的过程。逻辑验证的目的就是采用最有效的方式,尽快、尽可能多的发现逻辑设计上的缺陷,并为修改这些缺陷提供方便。尽快的发现设计上的缺陷意味着修正缺陷的成本就降低了。
现场可编程门阵列(FieldProgrammableGateArray,FPGA)在系统中所处的位置决定了其在很多应用场景中都是担当协处理器的角色。中央处理单元(CentralProcessingUnit,CPU)通常需要将参数和表项通过物理接口配置给FPGA。其中,根据表项存储的位置,CPU可以将表项放在FPGA的内部(RandomAccessMemory,RAM)或外部扩展的存储器中。随着逻辑实现功能的逐步增强,逻辑所使用的表项变得越来越大,表项数量也越来越多,配置也越来越复杂。
对FPGA的逻辑验证过程主要是根据业务的实际环境,通过多个测试用例对FPGA进行逻辑仿真的过程。在仿真过程中,每个测试用例都需要先将所有表项配置一遍,这样逻辑才能正常工作,才能开始正式的仿真。配置表项的过程就是将每条表项逐一写入FPGA的内部RAM或外部扩展的存储器中的过程。配置的总时间是每条表项的配置时间与表项数量的乘积。当表项数量很多时,配置表项的时间总和会变得很长,这样大量时间就会花费在重复而机械的数据读写上。由于仿真时消耗的时间要比FPGA实际运行的时间高出很多,因此将大量时间花费在表项的配置上将严重影响仿真效率并最终影响项目进度。
发明内容
本发明提供一种仿真过程中加载表项的方法及仿真设备,用以提高仿真效率,加速项目进度。
本发明实施例提供一种仿真过程中加载表项的方法,包括:
从测试用例中获取所述测试用例使用的每个表项在仿真环境中的存储路径,所述表项以表项文件的方式进行存储;
从所述测试用例中获取每个所述表项在所述仿真环境中的加载路径,所述加载路径为将所述表项加载到所述仿真环境中的存储空间中所需的路径信息;
在执行所述测试用例时,分别将每个所述表项在所述仿真环境中的存储路径和加载路径作为输入参数,调用所述仿真环境中的系统函数,以使所述系统函数将每个所述表项写入所述仿真环境中的存储空间中。
本发明实施例提供一种仿真设备,包括:
第一获取模块,用于从测试用例中获取所述测试用例使用的每个表项在仿真环境中的存储路径,所述表项以表项文件的方式进行存储;
第二获取模块,用于从所述测试用例中获取每个所述表项在所述仿真环境中的加载路径,所述加载路径为将所述表项加载到所述仿真环境中的存储空间中所需的路径信息;
写入模块,用于在执行所述测试用例时,分别将每个所述表项在所述仿真环境中的存储路径和加载路径作为输入参数,调用所述仿真环境中的系统函数,以使所述系统函数将每个所述表项写入所述仿真环境中的存储空间中。
本发明实施例提供的仿真过程中加载表项的方法及仿真设备,是将测试用例使用的表项以表项文件的方式进行存储,通过获取表项在仿真环境中的存储路径和加载路径,然后以此为输入参数调用仿真环境中的系统函数,使用系统函数将表项一次性写入加载路径对应的仿真环境中的存储空间中。与现有技术中通过逻辑器件上的物理接口将表项逐一配置到逻辑器件的存储空间中的方案相比,本发明实施例的方案通过调用仿真环境的系统函数采用文件映射方式直接将表项写入仿真环境的存储空间中,不涉及逻辑器件加载通道上的任何节点,也不涉及具体逻辑时序,因此提高了在仿真环境中加载表项的速度,提高了仿真效率,进而加速了项目进度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的仿真过程中加载表项的方法的流程图;
图2为本发明另一实施例提供的仿真过程中加载表项的方法的流程图;
图3为本发明又一实施例提供的仿真过程中加载表项的方法的流程图;
图4为本发明一实施例提供的系统函数加载表项和现有技术加载表项的通道对比示意图;
图5为本发明一实施例提供的仿真设备的结构示意图;
图6为本发明另一实施例提供的仿真设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的仿真过程中加载表项的方法的流程图。如图1所示,本实施例的方法包括:
步骤101、从测试用例中获取测试用例使用的每个表项在仿真环境中的存储路径,表项以表项文件的方式进行存储。
其中,测试用例主要用于对逻辑器件进行仿真,以验证逻辑器件的逻辑设计是否正确,主要是测试代码。测试用例通常由测试人员或程序人员编写,并存储到仿真设备上。测试用例使用的表项通常包括初始化表项、动态更新表项和异常测试表项等。
其中,表项文件是一个存储有表项中的数据的文件,可以采用仿真设备认可的任何一种文件格式,例如文本格式(.txt)或文件格式(.hex或.bin)等。
本发明各实施例的执行主体为仿真设备,该仿真设备可以是计算机,但不限于此。本发明各实施例中的仿真设备主要用于根据测试用例提供的信息将测试使用的各种表项加载到仿真环境中的存储空间中,实现对实际表项加载过程的仿真,并且还要执行测试用例完成对逻辑设计的仿真。
在此说明,本发明各实施例的仿真环境主要包括测试用例、根据测试用例进行相应处理并执行测试用例的仿真设备和待仿真的逻辑器件等。其中,待仿真的逻辑器件是虚拟的逻辑器件,主要通过代码等模拟逻辑器件的功能,而不是硬件上的逻辑器件。其中,逻辑器件也具有片内RAM和/或外部扩展(片外或外挂)的存储器。本发明各实施例所述的仿真环境的存储空间主要是指逻辑器件的片内RAM或片外存储器。可选的,仿真环境可以是FPGA验证环境,相应的逻辑器件可以是FPGA,但不限于此。
具体的,在步骤101之前需要预先根据测试用例使用的表项生成表项文件,并将该表项文件进行存储。其中,该表项文件需要存储在仿真环境中,例如仿真设备上,即将测试用例使用的表项以文件形式存储到仿真环境中。这样,如果想要从仿真环境中获取表项,就需要该表项在仿真环境中的存储路径。基于此,将该测试用例使用的每个表项在仿真环境中的存储路径添加到测试用例中,即生成包括该测试用例使用的每个表项在仿真环境中的存储路径的测试用例。其中,每个表项在仿真环境中的存储路径与每个表项所在表项文件的存储路径有关。
基于上述,仿真设备可以从测试用例中获取该测试用例使用的每个表项在仿真环境中的存储路径。
步骤102、从测试用例中获取每个表项在仿真环境中的加载路径。
在仿真过程中,每个测试用例都需要先将所有表项配置一遍,这样仿真环境中的逻辑器件才能正常工作,才能开始正式的仿真。配置表项的过程就是将每条表项逐一写入仿真环境的存储空间(也就是仿真环境中的逻辑器件的片内RAM或片外存储器)中的过程。因此,在测试用例中,除了需要包括每个表项在仿真环境中的存储路径外,还需要包括每个表项在仿真环境的加载路径。其中,每个表项在仿真环境中的加载路径为将每个表项加载到仿真环境中的存储空间中所需的路径信息。也就是说,仿真设备根据该加载路径可以知道需要将表项加载到仿真环境中的哪个位置。
基于此,仿真设备除了从测试用例中获取每个表项在仿真环境中的存储路径之外,还需要从测试用例中获取每个表项仿真环境中的加载路径。
可选的,每个表项在仿真环境中的加载路径可以是每个表项在仿真环境中的例化路径。每个表项在仿真环境中的例化路径对应于每个表项需要被加载到的仿真环境的存储空间中的具体位置的首地址。
可选的,每个表项在仿真环境中的加载路径还可以是每个表项对应的宏名。其中,宏名是使用宏定义的,每个表项的宏名与每个表项在仿真环境中的例化路径相关联。通过宏定义将每个表项的例化路径与每个表项对应的宏名做关联,可以提高代码编写的便利性。
步骤103、在执行测试用例时,分别将每个表项在仿真环境中的存储路径和加载路径作为输入参数,调用仿真环境中的系统函数,以使系统函数将每个表项写入仿真环境中的存储空间中。
在逻辑仿真中,仿真环境使用的硬件描述语言(如verilogHDL)通常支持以文件的方式对仿真环境的存储空间中的数据进行读写操作。以verilogHDL语言为例,verilogHDL语言提供以文件形式进行数据读写的系统函数,并支持从文件中某一起点上连续读写,直到文件结束。其中,以文件形式进行读写操作是一种直接映射的方式,不涉及逻辑器件加载通道上的任何节点,也不涉及具体逻辑时序,其读写速度很快。
正是基于此,本实施例通过将测试用例使用的各表项存储在表项文件中,即以文件格式进行存储,为通过系统函数以文件形式进行读写打下了基础。其中,调用系统函数以文件形式进行读写时都需要有读写操作所需的地址信息。对于调用系统函数进行写入操作时,需要使用的地址信息主要包括待写入的文件的存储地址和将要写入的存储空间的地址信息。基于此,本实施例的仿真设备首先从测试用例中获取各表项在仿真环境中的存储路径和各表项在仿真环境中的加载路径。
然后,仿真设备分别将每个表项在仿真环境中的存储路径和在仿真环境中的加载路径作为输入参数,调用仿真环境中的系统函数,通过系统函数建立表项与仿真环境的存储空间之间的交互通道,进而通过系统函数将表项直接写入(或者说直接映射到)仿真环境的存储空间中。
在此说明,仿真环境的存储空间主要是指待仿真的逻辑器件的片内RAM或片外存储器(例如DDR模型)。通常,片内RAM或片外存储器所支持的数据格式都是memory类型的。
在此说明,本发明各实施例的系统函数可以支持两种语法格式,一种是二进制格式,一种是十六进制格式。举例说明,$readmemb(filename,memory)表示以二进制方式交互;$readmemh(filename,memory)表示以十六进制方式交互。其中,系统函数$readmemb的输入参数是文件句柄(即filename)和存储空间首地址(即memory)。在本实施例中,表项在仿真环境中的存储路径可以作为系统函数的输入参数中的文件句柄,表项在仿真环境中的加载路径可以作为系统函数的输入参数中的存储空间的首地址。
具体的,在执行测试用例时,仿真设备可以将表项在仿真环境中的存储路径和表项在仿真环境中的加载路径作为输入参数,以二进制方式或十六进制方式调用系统函数,通过系统函数逐一将表项直接写入仿真环境的存储空间中。
在本实施例中,通过将表项以文件形式进行存储,在获取表项在仿真环境中的存储路径和在仿真环境中的加载路径后,调用系统函数以文件形式直接将表项映射到仿真环境中的存储空间中,由于不涉及逻辑器件加载通道上的任何节点,也不涉及逻辑时序,因此这个过程是非常快的,在测试用例执行时并不占用仿真时间,对于高速运行的仿真设备来说这个时间几乎可以忽略不计,提高了仿真效率,有利于加速整个项目的进程。
图2为本发明另一实施例提供的仿真过程中加载表项的方法的流程图。如图2所示,本实施例的方法包括:
步骤201、从测试用例中获取每个表项文件的存储路径,将每个表项文件的存储路径作为每个表项文件中的表项在仿真环境中的存储路径。
其中,测试用例主要用于对逻辑器件进行仿真,以验证逻辑器件的逻辑设计是否正确,主要是测试代码。测试用例使用的表项通常包括初始化表项、动态更新表项和异常测试表项等。其中,表项以表项文件的格式进行存储。表项文件可以采用仿真设备认可的任何一种文件格式,例如.txt、.hex或.bin等格式。
在本实施例中,在步骤201之前,需要预先将测试用例使用的每个表项分别以文件形式进行单独存储,生成表项文件。在该实施方式中,将每个表项单独以文件形式存储,从而生成与每个表项对应的表项文件,即在本实施例中每个表项文件仅包括该测试用例使用的一个表项。表项文件的数量与表项的数量相同。
可选的,考虑到测试用例使用的表项的格式与仿真环境中的存储空间所支持的数据格式可能不同,需要先对表项的格式进行转换,使表项的格式符合仿真环境中的存储空间所支持的格式后,再将表项写入仿真环境中的存储空间中。
基于此,将测试用例使用的每个表项分别以文件形式进行单独存储,生成表项文件的过程包括:对测试用例使用的每个表项进行格式转换,使每个表项的格式均符合仿真环境中的存储空间所支持的格式;然后再将格式转换后的每个表项分别以文件形式进行单独存储,生成表项文件。
其中,可以通过手工编辑的方式对测试用例使用的每个表项进行格式转换,还可以通过编写可执行的小程序或脚本交由仿真设备或其他设备(例如计算机)完成对测试用例使用的每个表项的格式转换。
由于每个表项文件仅包括一个表项,所以找到表项文件也就找到了该表项文件中的表项。因此,本实施例中的测试用例只需要提供每个表项文件的存储路径即可。基于此,仿真设备从测试用例中获取每个表项在仿真环境中的存储路径的过程具体为:仿真设备从测试用例中获取每个表项文件的存储路径,然后将每个表项文件的存储路径作为每个表项文件中的表项在仿真环境中的存储路径。在本实施例中,通过将每个表项存储成一个表项文件,表项文件的存储路径即为表项的存储路径,有利于降低获取表项的存储路径的工作量,效率较高。
步骤202、从测试用例中获取每个表项在仿真环境中的加载路径。
该步骤202可参见步骤102的描述,在此不再赘述。
步骤203、在执行测试用例时,分别将每个表项在仿真环境中的存储路径和在仿真环境中的加载路径作为输入参数,调用仿真环境中的系统函数,以使系统函数将每个表项写入仿真环境中的存储空间中。
在本实施例中,仿真设备具体以表项文件的存储路径和表项文件中的表项在仿真环境中的加载路径(例如例化路径或宏名)为输入参数,调用系统函数,通过系统函数以文件形式直接将表项文件中的表项写入仿真环境中的存储空间中。
具体的,仿真设备在执行测试用例时,先通过调用系统函数逐个将表项文件中的表项写入仿真环境中的存储空间中,然后再继续执行测试用例,从而完成仿真。
关于步骤203的其他描述可参见步骤103,在此不再赘述。
在本实施例中,通过将表项以文件形式进行存储,在获取表项在仿真环境中的存储路径和在仿真环境中的加载路径后,调用系统函数以文件形式直接将表项映射到仿真环境中的存储空间中,由于不涉及逻辑器件加载通道上的任何节点,也不涉及逻辑时序,因此这个过程是非常快的,在测试用例执行时并不占用仿真时间,对于高速运行的仿真设备来说这个时间几乎可以忽略不计,提高了仿真效率,有利于加速整个项目的进程。
图3为本发明又一实施例提供的仿真过程中加载表项的方法的流程图。如图3所示,本实施例的方法包括:
步骤301、从测试用例中获取表项文件的存储路径和测试用例使用的每个表项在表项文件中的相对位置。
步骤302、将表项文件的存储路径和每个表项的相对位置相加,作为每个表项在仿真环境中的存储路径。
其中,测试用例主要用于对逻辑器件进行仿真,以验证逻辑器件的逻辑设计是否正确,主要是测试代码。测试用例使用的表项通常包括初始化表项、动态更新表项和异常测试表项等。其中,表项以表项文件的方式进行存储。表项文件可以采用仿真设备认可的任何一种文件格式,例如.txt、.bin或.hex等格式。
在本实施例中,在步骤301之前,需要预先将测试用例使用的所有表项一起以文件形式进行存储,生成表项文件。在该实施方式中,将该测试用例使用的所有表项作为一个整体以文件形式存储,从而生成包括所有表项的一个表项文件,即本实施例的表项文件包括该测试用例使用的所有表项。这种方式可以减少生成的表项文件的数量,有利于降低生成表项文件的工作量。
可选的,考虑到测试用例使用的表项的格式与逻辑器件的存储空间所支持的数据格式可能不同,需要先对表项的格式进行转换,使表项的格式符合仿真环境中的存储空间所支持的格式后,再将表项写入仿真环境中的存储空间中。
基于此,将测试用例使用的所有表项一起以文件形式进行存储,生成表项文件的过程包括:对测试用例使用的每个表项进行格式转换,使每个表项的格式均符合仿真环境中的存储空间所支持的格式;然后再将格式转换后的所有表项一起以文件形式进行存储,生成表项文件。
其中,可以通过手工编辑的方式对测试用例使用的每个表项进行格式转换,还可以通过编写可执行的小程序或脚本交由仿真设备或其他设备(例如计算机)完成对测试用例使用的每个表项的格式转换。
由于本实施例的表项文件包括测试用例使用的所有表项,所以要找到每个表项需要先找到表项文件,然后再根据每个表项在表项文件中的相对位置从表项文件中找到该表项。其中,要找到表项文件需要表项文件的存储路径。因此,本实施例中的测试用例需要同时提供表项文件的存储路径和每个表项在表项文件中的相对位置。基于此,仿真设备从测试用例中获取每个表项在仿真环境中的存储路径的过程具体为:仿真设备从测试用例中获取表项文件的存储路径和每个表项在表项文件中的相对位置;然后将表项文件的存储路径和每个表项在表项文件中的相对位置相加,作为每个表项在仿真环境中的存储路径。
步骤303、从测试用例中获取每个表项在仿真环境中的加载路径。
该步骤303可参见步骤102的描述,在此不再赘述。
步骤304、在执行测试用例时,分别将每个表项在仿真环境中的存储路径和在仿真环境中的加载路径作为输入参数,调用仿真环境中的系统函数,以使系统函数将每个表项写入仿真环境中的存储空间中。
在本实施例中,仿真设备具体以表项文件的存储路径加某个表项在表项文件中的相对位置得到的表项在仿真环境中的存储路径和该表项在仿真环境中的加载路径(例如例化路径或宏名)为输入参数,调用系统函数,通过系统函数以文件形式直接将表项文件中的该表项写入仿真环境中的存储空间中。
具体的,仿真设备在执行测试用例时,先通过调用系统函数将表项文件中的表项写入仿真环境中的存储空间中,然后再继续执行测试用例,从而完成仿真。
关于步骤203的其他描述可参见步骤103,在此不再赘述。
在本实施例中,通过将表项以文件形式进行存储,在获取表项在仿真环境中的存储路径和在仿真环境中的加载路径后,调用系统函数以文件形式直接将表项映射到仿真环境中的存储空间中,由于不涉及逻辑器件加载通道上的任何节点,也不涉及逻辑时序,因此这个过程是非常快的,在测试用例执行时并不占用仿真时间,对于高速运行的仿真设备来说这个时间几乎可以忽略不计,提高了仿真效率,有利于加速整个项目的进程。
如图4所示,待仿真的逻辑器件为FPGA,带箭头的实线部分表示仿真过程中的数据流向;带箭头的点线部分表示采用现有技术加载表项到FPGA的内部RAM或片外存储器中的过程,该过程必须经过FPGA的物理通道,例如外设组件互联扩展标准(PCIExpress,PCIE);带箭头的虚线部分表示使用本发明各实施例的直接映射的方法将表项加载到FPGA的内部RAM或片外存储器中的过程。本实施例的加载过程不需要经过FPGA的加载通道,具有加载速度快的优势。进一步,当需要将表项加载到FPGA的片外存储器中时,现有技术的方案需要通过FPGA的片外存储器的控制器间接完成,因此配置FPGA片外表项比配置片内RAM时更加费时;而在本实施例中,无论是将表项加载到片内RAM还是片外存储器中都是直接映射的方式,因此所用时间无差别。
下面结合具体仿真应用来说明本发明实施例的有益效果:
举例说明,假设某逻辑项目共含有65个表项,每次系统启动都需要先对FPGA的所有表项进行寄存器间接配置才能正常工作。而每次的配置过程都要至少通过PCIE接口对FPGA进行4次写操作,即:配置控制寄存器——配置数据寄存器——配置地址寄存器——配置控制寄存器。全部表项一共需要配置591,312次,如果加上校验就要再读这么多次,每次读写操作都需要消耗仿真时间。如此庞大的数据量,每个测试用例仅初始化表项配置一遍就要仿真设备不间断的运行3至4天时间。其中,表1所示为该逻辑项目的各表项的信息和统计的配置次数信息。
表1
现有技术中加载表项的过程是:通过PCIE接口将表项内容依次写进FPGA的片内RAM,或者写入FPGA后再通过片外存储器的控制器接口写进片外的存储器中。如果采用现有技术的方案,要将该逻辑项目的204个测试用例(假设该逻辑项目共有204个测试用例)执行一遍在测试用例没有任何问题的情况下,就要有600至800天的时间消耗在不产生实际价值的表项加载上,这在项目进度和仿真设备资源占用上都是不能接受的。
如果采用本发明各实施例的直接以文件映射的方式来加载表项,那么只需要先将各表项做格式转换(如果表项的格式与存储空间支持的格式相同可以不做格式转换),然后将表项生成表项文件,再把每个表项在仿真环境中的例化路径与对应的表项文件做关联,在每个测试用例开始执行时调用一下系统函数,表项就会直接被写入到FPGA中的片内RAM或片外的存储器中,并且对片内RAM和片外的存储器无容量限制,而各表项只是在仿真环境中的映射路径不同而已。
再举例说明,在数据库热升级测试或主备倒换测试场景中,逻辑的知识库或表项内容随着市场发展和客户需求的变化需要更新,为保证现网业务的持续不间断开展,这些数据库需要在不下电的情况下进行在线升级。为解决在线升级的问题,常用的解决方案是设置两个数据库,一个是正在使用的数据库(已经加载),另一个是备用的数据库。为了实现在线升级需要将需要升级的数据更新至备用的数据库,在该过程中需要瞬间将备用的数据库切换为业务使用的数据库,同时将业务使用的数据库变成备用数据库。
在仿真上述功能的过程中,一个测试用例至少需要两次表项加载。如果表项很多,以表1所示为例一次加载就需要3至4天,两次加载就是6至8天时间,那么执行测试用例的过程是非常漫长的,效率极低。而采用本发明各实施例直接以文件映射的方式,只需先将两个数据库的数据存储成文件,在功能仿真的时候通过调用系统函数即可直接映射进去,然后在执行测试用例的过程中再由测试用例发出倒换命令,当时就可以给出主备倒换是否成功等结果,仿真速度极快,效率极高。
在此说明,本发明各实施例的方法具有普适性,无论用什么仿真方法学,无论用什么EDA工具,也无论什么样的存储器模型,只要支持硬件描述语言标准的语法,最终能找到表项在仿真环境中的加载路径,就能用这种方法映射和加载表项。例如,除了常规的功能验证以外,对具有动态加载和数据库热升级需求的项目,以及项目表项改写、加扰、错误检查和纠正校验码(ErrorCorrectingCode,ECC)等的测试场景也可以使用本发明各实施例的方法,并且会产生直接的有益效果。再者,本发明各实施例的思路不仅适用于在仿真环境中进行扩展,在实际应用中也可以采用本发明各实施例的思路。例如,在系统架构设计时,也能采用本发明各实施例的思路,例如给FPGA(此处的FPGA是硬件电路上的实际器件)外挂一个Flash,存储一些初始化表项,或者备份数据,当系统出现异常复位或断电,而难以通过外部接口重新配置数据时(比如移动终端或在恶劣条件下工作的设备),可以让FPGA在再次上电复位后,通过直接读取片外Flash自动将表项数据读入,完成系统初始化,确保业务的正常开展。
进一步说明,本发明各实施例不依赖于特定仿真环境和仿真方法学,也不受限于指定的逻辑器件供应商,因为所使用的系统函数是仿真环境所使用的硬件描述语言标准的语法,遵循IEEE标准。
本发明各实施例中的表项内容可以自行定义,且可以被多次加载,有利于进行表项动态更新测试和表项变化等异常测试。
在本发明各实施例中,可以保留有正常的物理通道(例如PCIE),不影响逻辑正常功能运行,不影响正常通道的一切功能验证。
综上所述,本发明各实施例解决了现有技术在逻辑验证中大量表项加载耗时过长的问题,由于通过使用系统函数直接以文件映射的方式,巧妙的绕过了在数据读写中逻辑时序的模拟过程,使表项由逐字节按时序写入逻辑变为数据块直接映射搬移,因而在仿真时可以将每次的表项加载时间由数天降至几秒中,极大的提升了仿真效率,为逻辑问题的快速解决,逻辑缺陷的快速收敛,达到产品研发进度要求等提供了有力保证。
图5为本发明一实施例提供的仿真设备的结构示意图。如图5所示,本实施例的设备包括:第一获取模块51、第二获取模块52和写入模块53。
其中,第一获取模块51,用于从测试用例中获取该测试用例使用的每个表项在仿真环境中的存储路径。其中,表项以表项文件的方式进行存储。文件表项是一个存储有表项中的数据的文件,可以采用仿真设备认可的任何一种文件格式,例如.txt、.hex或.bin等。
其中,测试用例主要用于对逻辑器件进行仿真,以验证逻辑器件的逻辑设计是否正确,主要是测试代码。测试用例通常由测试人员或程序人员编写,并存储到仿真设备上。测试用例使用的表项通常包括初始化表项、动态更新表项和异常测试表项等。
其中,仿真环境主要包括测试用例、根据测试用例进行相应处理并执行测试用例的仿真设备和待仿真的逻辑器件等。其中,待仿真的逻辑器件是虚拟的逻辑器件,主要通过代码等模拟逻辑器件的功能,而不是硬件上的逻辑器件。其中,逻辑器件也具有片内RAM和/或外部扩展(片外或外挂)的存储器。其中,仿真环境的存储空间可以是待仿真的逻辑器件的片内RAM或片外存储器。例如,仿真环境可以是FPGA验证环境,相应的逻辑器件可以是FPGA,但不限于此。
第二获取模块52,用于从测试用例中获取每个表项在仿真环境中的加载路径。其中,加载路径为将表项加载到仿真环境中的存储空间中所需的路径信息。
可选的,每个表项在仿真环境中的加载路径为每个表项在仿真环境中的例化路径。
可选的,每个表项在仿真环境中的加载路径为每个表项对应的宏名,所述宏名是使用宏定义的,与每个表项在仿真环境中的例化路径相关联。
写入模块53,用于在执行测试用例时,分别将第一获取模块51获取的每个表项在仿真环境中的存储路径和第二获取模块52获取的每个表项在仿真环境中的加载路径作为输入参数,调用仿真环境中的系统函数,以使系统函数将每个表项写入仿真环境中的存储空间中。
本实施例的仿真设备的各功能模块可用于执行图1所示仿真过程中加载表项的方法流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的仿真设备,在表项以文件格式进行存储的基础上,从测试用例中获取以文件形式存储的表项在仿真环境中的存储路径和加载路径,并以此为输入参数调用仿真环境中的系统函数,以文件形式直接将表项映射到仿真环境中的存储空间中,由于不涉及逻辑器件加载通道上的任何节点,也不涉及逻辑时序,因此这个过程是非常快的,在测试用例执行时并不占用仿真时间,对于高速运行的仿真设备来说这个时间几乎可以忽略不计,提高了仿真效率,有利于加速整个项目的进程。
图6为本发明另一实施例提供的仿真设备的结构示意图。本实施例基于图5所示实施例实现。如图6所示,本实施例的仿真设备还包括:第一生成模块54。
第一生成模块54,用于将每个表项分别以文件形式进行单独存储,生成表项文件。
更为具体的,第一生成模块54可用于对每个表项进行格式转换,使每个表项的格式符合仿真环境中的存储空间支持的格式,将格式转换后的每个表项分别以文件格式进行单独存储,生成表项文件。
基于此,第二获取模块52具体可用于从测试用例中获取每个表项文件的存储路径,将每个表项文件的存储路径作为每个表项文件中的表项在仿真环境中的存储路径。
对写入模块53来说,需要通过调用仿真环境中的系统函数将表项文件中的表项写入仿真环境中的存储空间中。可选的,第一生成模块54与写入模块53连接。
上述第一生成模块54、第二获取模块52以及写入模块53可用于执行图2所示仿真过程中加载表项的方法的流程,具体工作原理不再赘述,详见方法实施例的描述。
进一步,本实施例的仿真设备还包括:第二生成模块55。
第二生成模块55,用于将所有表项一起以文件格式进行存储,生成表项文件。
具体的,第二生成模块55可用于对每个表项进行格式转换,使每个表项的格式符合仿真环境中的存储空间支持的格式,将格式转换后的所有表项一起以文件格式进行存储,生成表项文件。
基于此,第二获取模块52具体可用于从测试用例中获取表项文件的存储路径和每个表项在表项文件中的相对位置,将表项文件的存储路径和每个表项的相对位置相加,作为每个表项在仿真环境中的存储路径。
对写入模块53来说,需要通过调用仿真环境中的系统函数将表项文件中的表项写入仿真环境中的存储空间中。可选的,第二生成模块55与写入模块53连接。
上述第二生成模块55、第二获取模块52以及写入模块53可用于执行图3所示仿真过程中加载表项的方法的流程,具体工作原理不再赘述,详见方法实施例的描述。
本实施例的仿真设备以文件形式对表项进行存储,并基于此调用仿真环境中的系统函数直接将表项写入或映射到仿真环境中的存储空间中,由于不涉及逻辑器件加载通道上的任何节点,也不涉及逻辑时序,因此这个过程是非常快的,在测试用例执行时并不占用仿真时间,对于高速运行的仿真设备来说这个时间几乎可以忽略不计,提高了仿真效率,有利于加速整个项目的进程。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (18)

1.一种仿真过程中加载表项的方法,其特征在于,包括:
从测试用例中获取所述测试用例使用的每个表项在仿真环境中的存储路径,所述表项以表项文件的方式进行存储;
从所述测试用例中获取每个所述表项在所述仿真环境中的加载路径,所述加载路径为将所述表项加载到所述仿真环境中的存储空间中所需的路径信息;
在执行所述测试用例时,分别将每个所述表项在所述仿真环境中的存储路径和加载路径作为输入参数,调用所述仿真环境中的系统函数,以使所述系统函数将每个所述表项写入所述仿真环境中的存储空间中。
2.根据权利要求1所述的仿真过程中加载表项的方法,其特征在于,所述从测试用例中获取所述测试用例使用的每个表项在所述仿真环境中的存储路径之前包括:
将每个表项分别以文件形式进行单独存储,生成所述表项文件。
3.根据权利要求2所述的仿真过程中加载表项的方法,其特征在于,所述将每个表项分别以文件形式进行单独存储,生成所述表项文件包括:
对每个表项进行格式转换,使每个表项的格式符合所述仿真环境中的存储空间支持的格式;
将格式转换后的每个表项分别以文件格式进行单独存储,生成所述表项文件。
4.根据权利要求2或3所述的仿真过程中加载表项的方法,其特征在于,所述从测试用例中获取所述测试用例使用的每个表项在仿真环境中的存储路径包括:
从所述测试用例中获取每个表项文件的存储路径,将每个表项文件的存储路径作为每个表项文件中的表项在所述仿真环境中的存储路径。
5.根据权利要求1所述的仿真过程中加载表项的方法,其特征在于,所述从测试用例中获取所述测试用例使用的每个表项在所述仿真环境中的存储路径之前包括:
将所有表项一起以文件格式进行存储,生成所述表项文件。
6.根据权利要求5所述的仿真过程中加载表项的方法,其特征在于,所述将所有表项一起以文件格式进行存储,生成所述表项文件包括:
对每个表项进行格式转换,使每个表项的格式符合所述仿真环境中的存储空间支持的格式;
将格式转换后的所有表项一起以文件格式进行存储,生成所述表项文件。
7.根据权利要求5或6所述的仿真过程中加载表项的方法,其特征在于,所述从测试用例中获取所述测试用例使用的每个表项在仿真环境中的存储路径包括:
从所述测试用例中获取所述表项文件的存储路径和每个表项在所述表项文件中的相对位置;
将所述表项文件的存储路径和每个表项的相对位置相加,作为每个表项在所述仿真环境中的存储路径。
8.根据权利要求1或2或3或5或6所述的仿真过程中加载表项的方法,其特征在于,每个表项在所述仿真环境中的加载路径为每个表项对应的宏名,所述宏名是使用宏定义的,与每个表项在所述仿真环境中的例化路径相关联。
9.根据权利要求1或2或3或5或6所述的仿真过程中加载表项的方法,其特征在于,所述仿真环境中的存储空间为所述仿真环境中待仿真的逻辑器件的片内随机存储器RAM或片外存储器。
10.一种仿真设备,其特征在于,包括:
第一获取模块,用于从测试用例中获取所述测试用例使用的每个表项在仿真环境中的存储路径,所述表项以表项文件的方式进行存储;
第二获取模块,用于从所述测试用例中获取每个所述表项在所述仿真环境中的加载路径,所述加载路径为将所述表项加载到所述仿真环境中的存储空间中所需的路径信息;
写入模块,用于在执行所述测试用例时,分别将每个所述表项在所述仿真环境中的存储路径和加载路径作为输入参数,调用所述仿真环境中的系统函数,以使所述系统函数将每个所述表项写入所述仿真环境中的存储空间中。
11.根据权利要求10所述的仿真设备,其特征在于,还包括:
第一生成模块,用于将每个表项分别以文件形式进行单独存储,生成所述表项文件。
12.根据权利要求11所述的仿真设备,其特征在于,所述第一生成模块具体用于对每个表项进行格式转换,使每个表项的格式符合所述仿真环境中的存储空间支持的格式,将格式转换后的每个表项分别以文件格式进行单独存储,生成所述表项文件。
13.根据权利要求11或12所述的仿真设备,其特征在于,所述第二获取模块具体用于从所述测试用例中获取每个表项文件的存储路径,将每个表项文件的存储路径作为每个表项文件中的表项在所述仿真环境中的存储路径。
14.根据权利要求10所述的仿真设备,其特征在于,还包括:
第二生成模块,用于将所有表项一起以文件格式进行存储,生成所述表项文件。
15.根据权利要求14所述的仿真设备,其特征在于,所述第二生成模块具体用于对每个表项进行格式转换,使每个表项的格式符合所述仿真环境中的存储空间支持的格式,将格式转换后的所有表项一起以文件格式进行存储,生成所述表项文件。
16.根据权利要求14或15所述的仿真设备,其特征在于,所述第二获取模块具体用于从所述测试用例中获取所述表项文件的存储路径和每个表项在所述表项文件中的相对位置,将所述表项文件的存储路径和每个表项的相对位置相加,作为每个表项在所述仿真环境中的存储路径。
17.根据权利要求10或11或12或14或15所述的仿真设备,其特征在于,每个表项在所述仿真环境中的加载路径为每个表项在所述仿真环境中的例化路径;或者
每个表项在所述仿真环境中的加载路径为每个表项对应的宏名,所述宏名是使用宏定义的,与每个表项在所述仿真环境中的例化路径相关联。
18.根据权利要求10或11或12或14或15所述的仿真设备,其特征在于,所述仿真环境中的存储空间为所述仿真环境中待仿真的逻辑器件的片内随机存储器RAM或片外存储器。
CN201210157792.4A 2012-05-21 2012-05-21 仿真过程中加载表项的方法及仿真设备 Expired - Fee Related CN102722382B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210157792.4A CN102722382B (zh) 2012-05-21 2012-05-21 仿真过程中加载表项的方法及仿真设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210157792.4A CN102722382B (zh) 2012-05-21 2012-05-21 仿真过程中加载表项的方法及仿真设备

Publications (2)

Publication Number Publication Date
CN102722382A CN102722382A (zh) 2012-10-10
CN102722382B true CN102722382B (zh) 2015-11-25

Family

ID=46948161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210157792.4A Expired - Fee Related CN102722382B (zh) 2012-05-21 2012-05-21 仿真过程中加载表项的方法及仿真设备

Country Status (1)

Country Link
CN (1) CN102722382B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461965B (zh) * 2014-12-19 2018-05-01 浪潮集团有限公司 一种低开销配置长表项的方法
CN110413464B (zh) * 2019-07-12 2023-10-27 杭州迪普科技股份有限公司 一种配置表项测试方法、系统
CN112989752B (zh) * 2019-12-18 2024-05-03 深圳云天励飞技术有限公司 一种电源方案的仿真方法、仿真装置、终端设备及介质
CN111104348B (zh) * 2019-12-24 2021-10-26 江苏芯盛智能科技有限公司 PCIe初始化流程的仿真方法、装置及相关设备
CN112989740B (zh) * 2021-04-23 2022-02-01 北京欣博电子科技有限公司 一种仿真方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862563B1 (en) * 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
CN101158919A (zh) * 2007-11-07 2008-04-09 中兴通讯股份有限公司 一种数据驱动的单元测试方法
CN102147743A (zh) * 2011-03-28 2011-08-10 博视联(苏州)信息科技有限公司 加快嵌入式系统应用程序启动速度的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862563B1 (en) * 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
CN101158919A (zh) * 2007-11-07 2008-04-09 中兴通讯股份有限公司 一种数据驱动的单元测试方法
CN102147743A (zh) * 2011-03-28 2011-08-10 博视联(苏州)信息科技有限公司 加快嵌入式系统应用程序启动速度的方法

Also Published As

Publication number Publication date
CN102722382A (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
CN102722382B (zh) 仿真过程中加载表项的方法及仿真设备
US8214192B2 (en) Resource remapping in a hardware emulation environment
US10422828B2 (en) Method and system for utilizing stand-alone controller in multiplexed handler test cell for indexless tandem semiconductor test
CN105138774A (zh) 一种基于集成电路层次化设计的时序后仿真方法
CN115146568B (zh) 一种基于uvm的芯片验证系统及验证方法
US11520968B2 (en) Verification platform for system on chip and verification method thereof
US8150670B2 (en) Simulator and simulation method
Eisenhardt et al. Spatial and temporal data path remapping for fault-tolerant coarse-grained reconfigurable architectures
US11709984B2 (en) Automatic sequential retry on compilation failure
CN108205596B (zh) 实现核电厂严重事故分析计算程序仿真功能的方法
US8990624B2 (en) Emulator verification system, emulator verification method
CN115758967A (zh) 一种验证网表寄存器功能的方法、系统、设备和存储介质
CN115185638A (zh) 一种仿真运行应用程序时获取调用栈的方法及计算设备
CN112885403B (zh) 一种Flash控制器的功能测试方法、装置及设备
JP7101709B2 (ja) シミュレータを実現するための方法、装置、デバイス及び媒体
CN111123084B (zh) 一种基于tcl语言的数字电路快速测试方法
CN113779918A (zh) SoC仿真方法、装置、计算设备和计算机存储介质
CN113805848A (zh) 目标机控制软件集成方法和系统
JP5935319B2 (ja) 回路エミュレーション装置、回路エミュレーション方法及び回路エミュレーションプログラム
Lee et al. Toward Heterogeneous Virtual Platforms For Early SW Development
CN114691412A (zh) 一种数据校验方法及其相关设备
CN117112447B (zh) 一种数据传输方法、装置、电子设备及可读存储介质
CN107391223A (zh) 一种文件处理方法及装置
US20210173989A1 (en) Simulation signal viewing method and system for digital product
US11151294B1 (en) Emulated register access in hybrid emulation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170601

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

TR01 Transfer of patent right
CB03 Change of inventor or designer information

Inventor after: Meng Deling

Inventor before: Yang Tian

CB03 Change of inventor or designer information
TR01 Transfer of patent right

Effective date of registration: 20170911

Address after: 063000 Hebei province Tangshan City Tanghai County Tanghai New District No. 154 west off

Patentee after: Meng Deling

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: 541199 Lingui County, Guilin, Lingui County, Lingui Town, Xinglin Road, No. 1, unit 202, Room 202

Patentee after: Meng Deling

Address before: 063000 Hebei province Tangshan City Tanghai County Tanghai New District No. 154 west off

Patentee before: Meng Deling

CP02 Change in the address of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151125

Termination date: 20180521

CF01 Termination of patent right due to non-payment of annual fee