一种芯片仿真测试方法、装置、可读介质及电子设备与流程

文档序号:31789053发布日期:2022-10-12 15:33阅读:60来源:国知局
一种芯片仿真测试方法、装置、可读介质及电子设备与流程

1.本发明涉及集成电路技术领域,尤其涉及一种芯片仿真测试方法、装置、可读介质及电子设备。


背景技术:

2.在芯片的设计和制造过程中,需要对芯片进行asic(即application specific integrated circuit,专用集成电路)测试验证。而asic测试可在仿真环境下进行,例如在uvm(即universal verification methodology,通用验证方法)仿真平台上进行。遂这一仿真环境下进行的测试验证,也称为芯片的仿真测试。
3.在仿真测试中,需要将测试向量编译到仿真平台当中,进而通过运行测试向量完成特定的测试过程。不过测试向量的编写并非一次成型,而是需要进行反复的修改和调试。对于现有的仿真平台,测试向量的任何修改,都必须伴随着仿真平台的重新编译和重启。因此测试向量的编写和调试往往占用了绝大部分的测试周期。
4.可见现有技术的缺陷在于,在测试向量的调试过程中,需要对仿真平台进行反复的重新编译和重启,消耗了大量的时间,极大的影响了仿真测试的效率。


技术实现要素:

5.本发明提供一种芯片仿真测试方法、装置、可读介质及电子设备,提高了芯片仿真测试的效率。
6.第一方面,本发明提供了一种芯片仿真测试方法,包括:
7.预先建立程序库,所述程序库中包括多个测试程序;
8.当仿真平台进入待测试状态,所述仿真平台基于socket通信监听所述请求方的连接请求;
9.当通过所述监听接收到所述请求方的连接请求,且所述请求方满足预设条件,所述仿真平台与所述请求方建立通信连接;
10.所述仿真平台接收所述请求方的测试配置信息;
11.所述仿真平台根据所述测试配置信息,向所述程序库调用相应的测试程序,并根据所述测试程序确定测试向量;
12.所述仿真平台利用所述测试向量执行待测芯片的仿真测试。
13.优选的,还包括:
14.将配置模块编译至所述仿真平台,并对所述仿真平台进行初始化设置,以使所述仿真平台进入所述待测试状态。
15.优选的,所述仿真平台根据所述测试配置信息,向程序库调用相应的测试程序包括:
16.所述仿真平台解析所述测试配置信息,以确定所述配置信息中的程序标识;
17.所述仿真平台根据所述测试配置信息中的程序标识,向所述程序库调用相应的测
试程序。
18.优选的,所述根据所述测试程序确定测试向量包括:
19.所述仿真平台确定所述配置信息中的配置参数和执行顺序;
20.所述仿真平台利用所述配置参数,对被调用的测试程序进行参数配置;
21.所述仿真平台利用所述参数配置后的测试程序和所述执行顺序,确定所述测试向量。
22.优选的,还包括:
23.确定所述待测芯片的仿真测试的测试结果,并根据所述测试结果调整所述测试配置信息。
24.第二方面,本发明提供了一种芯片仿真测试装置,包括:
25.监听模块,用于在仿真平台进入待测试状态时,所述仿真平台基于socket通信监听所述请求方的连接请求;
26.通信模块,用于在通过所述监听接收到所述请求方的连接请求,且所述请求方满足预设条件时,所述仿真平台与所述请求方建立通信连接;
27.配置信息接收模块,用于接收所述请求方的测试配置信息;
28.程序库模块,用于预先建立程序库,所述程序库中包括多个测试程序;
29.测试向量确定模块,用于根据所述测试配置信息,向程序库调用相应的测试程序,并根据所述测试程序确定测试向量;
30.测试模块,用于利用所述测试向量执行待测芯片的仿真测试。
31.优选的,所述测试向量确定模块包括:
32.解析单元,用于解析所述测试配置信息,以确定所述配置信息中的程序标识、配置参数和执行顺序;
33.调用单元,用于根据所述测试配置信息中的程序标识,向所述程序库调用相应的测试程序;
34.参数配置单元,用于利用所述配置参数,对被调用的测试程序进行参数配置;
35.测试向量建立单元,用于利用所述参数配置后的测试程序和所述执行顺序,确定所述测试向量。
36.优选的,还包括:
37.调整模块,用于确定所述待测芯片的仿真测试的测试结果,并根据所述测试结果调整所述测试配置信息。
38.第三方面,本发明提供了一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如第一方面中任一所述的方法。
39.第四方面,本发明提供了一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如第一方面中任一所述的方法。
40.本发明提供了一种芯片仿真测试方法、装置、可读介质及电子设备,仿真平台自身编译了配置模块,用于解析测试配置信息;而并未编译具体的测试向量;使得仿真平台能够通过解析测试配置信息和外部调用测试程序建立测试向量;当测试配置信息发生变化时,仿真平台无需进行重新编译和重启,亦可对其进行解析,并建立新的测试向量;由此避免了
反复重新编译和重启,节约了仿真测试的时间,提高了测试效率;同时避免了对于人力资源的大量占用。
41.上述的非惯用的优选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
42.为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
43.图1为本发明一实施例提供的一种芯片仿真测试方法的流程示意图;
44.图2为本发明一实施例提供的一种芯片仿真测试方法中的结构关系示意图;
45.图3为本发明一实施例提供的一种芯片仿真测试装置的结构示意图;
46.图4为本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
47.为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.在仿真测试中,测试向量中包括了测试所需的函数、参数、指令以及其执行顺序。也就是说,测试向量代表了测试的整体流程。对于现有的仿真平台来说,需要将测试向量编译到仿真平台当中。进而运行测试向量,便可执行特定的测试流程。换言之,编译之后的仿真平台往往只执行被编译的测试向量。
49.不过,测试向量的编写并非一次成型,而是需要进行反复的修改和调试。这意味着,测试向量的任何修改,都必须伴随着仿真平台的重新编译和重启。如此仿真平台方可执行新的测试向量。由于仿真平台反复的重新编译和重启,测试向量的编写和调试占用了绝大部分的测试周期。而且该重新编译和重启过程较为复杂繁琐,必须有专业的工作人员操作,所以测试向量的编写和调试还会进一步的占用大量人力资源。
50.可见现有技术的缺陷在于,在测试向量的调试过程中,需要对仿真平台进行反复的重新编译和重启,消耗了大量的时间,极大的影响了仿真测试的效率。而且该过程严重的依赖于专业工作人员的操作,非专业的工作人员难以完成。因此芯片的客户方通常无法自行进行仿真测试,必须由芯片的制造方提供技术支持。从而进一步的提高了芯片的研发成本,降低了芯片的产品竞争力。
51.有鉴于此,本发明提供一种芯片仿真测试方法。参见图1所示,为本发明提供的芯片仿真测试方法的具体实施例。本实施例中,所述方法的执行主体为仿真平台,具体包括:
52.步骤101、预先建立程序库,所述程序库中包括多个测试程序。
53.本实施例中需要预先建立一个程序库,程序库中包括多个测试程序。每个测试程序可以完成仿真测试中的一项具体测试环节。
54.步骤102、当仿真平台进入待测试状态,所述仿真平台基于socket通信监听所述请求方的连接请求。
55.步骤103、当通过所述监听接收到所述请求方的连接请求,且所述请求方满足预设条件,所述仿真平台与所述请求方建立通信连接。
56.仿真平台,即执行芯片asic测试的仿真环境。本实施例中,仿真平台具体可以是uvm仿真平台。而本实施例中的请求方,用于对仿真测试中的测试向量进行编写、配置以及调整,从而确定相应的测试配置信息;并进一步的向仿真平台发送测试配置信息。请求方可以根据程序语言脚本构建,具体可以基于python语言或者c语言。从实践角度来讲,采用python语言能够具有更高的编译效率。所以本实施例中,优选的将采用python语言。
57.本实施例中的仿真平台不同于现有技术在于,仿真平台不再将测试向量编译到自身当中。而是选择将一个预设的配置模块编译至仿真平台自身。配置模块是一个编制了特定配置功能的功能模块。编译了配置模块之后,仿真平台便具有了解析该测试配置信息的功能。解析测试配置信息之后,仿真平台将通过外部调动测试程序的方式配置确定测试向量。因此,测试向量无需编译到仿真平台自身,仿真平台亦可以实现对于测试向量的执行。
58.由于本实施例中已经预先建立一个程序库,并且程序库中包括多个测试程序,每个测试程序可以完成仿真测试中的一项具体测试环节。而测试配置信息中,具体可以包括测试程序的程序标识、配置参数和执行顺序。仿真平台解析测试配置信息后,即可利用程序标识、配置参数和执行顺序向程序库调用测试程序,并利用被调用的测试程序建立测试向量。本实施例中,仿真平台、请求方、程序库之间的结构关系如图2所示。
59.此外,在将配置模块编译至仿真平台后,还应当对仿真平台进行初始化设置,以使仿真平台进入所述待测试状态。仿真平台进入所述待测试状态后需要与请求方建立通信连接,并且通过该通信连接接收测试配置信息。具体的,请求方和仿真平台可以基于socket通信建立通信连接。也就是,仿真平台基于socket通信监听请求方是否发送了连接请求。当仿真平台通过监听接收到请求方的连接请求,进一步的判断该连接请求的合法性,即是否满足预设条件。如果连接请求合法,即为满足预设条件,此时仿真平台与请求方可以基于socket通信建立通信连接。socket通信为本领域中公知的通信技术,在此无需赘述。
60.步骤104、接收请求方的测试配置信息。
61.工作人员可在请求方中确定测试配置信息,即确定测试向量中的程序标识、配置参数和执行顺序,也就是建立测试向量所需要的主要要素。然后通过socket通信连接将该测试配置信息发送至仿真平台,使仿真平台接收。编译了配置模块的仿真平台能够对测试配置信息进行解析,从而获悉其中的程序标识、配置参数和执行顺序,为建立测试向量提供了前提条件。
62.步骤105、根据测试配置信息,向程序库调用相应的测试程序,并根据测试程序确定测试向量。
63.仿真平台解析测试配置信息后,可以确定配置信息中的程序标识。程序标识可以是程序库中的测试程序的唯一标识,例如测试程序的名称或id。通过程序标识,仿真平台可以得知需要向程序库调用具体哪些测试程序。遂仿真平台根据测试配置信息中的程序标识,向程序库调用相应的测试程序。
64.仿真平台解析测试配置信息后,还可以确定配置信息中的配置参数和执行顺序。
利用配置参数,可对被调用的测试程序进行进一步的参数配置,使之能够完成本次仿真测试的具体测试功能。然后根据执行顺序将参数配置后的测试程序逐一进行组合,便建立了测试向量。该测试向量中包括了测试配置信息中所设计的仿真测试所需的函数、参数、指令以及其执行顺序。运行该测试向量,即可执行测试配置信息中设计的仿真测试。
65.步骤106、利用测试向量执行待测芯片的仿真测试。
66.在建立测试向量之后,仿真平台执行该测试向量,便可对待测芯片进行仿真测试,并得到相应的测试结果。另外根据该测试结果,工作人员还可通过请求方调整测试配置信息,从而实现对于测试向量的反复的修改和调试。得到新的测试配置信息后,只需重复上述步骤,即可进行反复的仿真测试。
67.需要说明的是,本实施例中仿真平台自身编译了配置模块,用于解析测试配置信息;而并未编译具体的测试向量。因此仿真平台具有了解析任意测试配置信息的能力;能够通过解析测试配置信息和外部调用测试程序建立测试向量,并执行测试向量。而仿真平台自身,与测试向量不再“一体化”。
68.因此,当测试配置信息发生变化时,仿真平台无需进行重新编译,并且也不需要重新启动,亦可对其进行解析,并建立新的测试向量。由此本实施例中避免了现有技术需要反复重新编译和重启仿真平台的过程。
69.通过以上技术方案可知,本实施例存在的有益效果是:仿真平台自身编译了配置模块,用于解析测试配置信息;而并未编译具体的测试向量;使得仿真平台能够通过解析测试配置信息和外部调用测试程序建立测试向量;当测试配置信息发生变化时,仿真平台无需进行重新编译和重新启动,亦可对其进行解析,并建立新的测试向量;由此避免了反复重新编译和重启,节约了仿真测试的时间,提高了测试效率;同时避免了对于人力资源的大量占用。
70.如图3所示,为本发明所述一种芯片仿真测试装置的一个具体实施例。本实施例所述装置,即用于执行图1~2所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。本实施例中所述装置包括:
71.监听模块301,用于在仿真平台进入待测试状态时,所述仿真平台基于socket通信监听所述请求方的连接请求。
72.通信模块302,用于在通过所述监听接收到所述请求方的连接请求,且所述请求方满足预设条件时,所述仿真平台与所述请求方建立通信连接。
73.配置信息接收模块303,用于接收所述请求方的测试配置信息。
74.程序库模块304,用于预先建立程序库,所述程序库中包括多个测试程序。
75.测试向量确定模块305,用于根据所述测试配置信息,向程序库调用相应的测试程序,并根据所述测试程序确定测试向量。
76.测试模块306,用于利用所述测试向量执行待测芯片的仿真测试。
77.优选的,所述测试向量确定模块305包括:
78.解析单元351,用于解析所述测试配置信息,以确定所述配置信息中的程序标识、配置参数和执行顺序。
79.调用单元352,用于根据所述测试配置信息中的程序标识,向所述程序库调用相应的测试程序。
80.参数配置单元353,用于利用所述配置参数,对被调用的测试程序进行参数配置。
81.测试向量建立单元354,用于利用所述参数配置后的测试程序和所述执行顺序,确定所述测试向量。
82.优选的,还包括:
83.调整模块307,用于确定所述待测芯片的仿真测试的测试结果,并根据所述测试结果调整所述测试配置信息。
84.图4是本发明实施例提供的一种电子设备的结构示意图。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
85.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
86.存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。
87.在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成芯片仿真测试装置。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本发明任一实施例中提供的芯片仿真测试方法。
88.上述如本发明图3所示实施例提供的芯片仿真测试装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
89.结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
90.本发明实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的
执行指令被电子设备的处理器执行时,能够使该电子设备执行本发明任一实施例中提供的芯片仿真测试方法,并具体用于执行如图1所示的方法。
91.前述各个实施例中所述的电子设备可以为计算机。
92.本领域内的技术人员应明白,本发明的实施例可提供为方法或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。
93.本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
94.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
95.以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1