判断仿真结束的方法及计算设备与流程

未命名 10-20 阅读:66 评论:0


1.本发明涉及芯片验证技术领域,具体涉及一种判断仿真结束的方法及计算设备。


背景技术:

2.现有的芯片验证仿真平台,验证环境复杂,难以用其中一个组件的工作状态去判断整个验证环境的仿真是否完成。如何判断结束仿真的时机,成为了需要面临的一个难题。在当前广泛使用的超时机制验证方法中存在一定的局限性。如果使用这种机制去进行不同测例的仿真,可能会出现一些测例在很短的仿真时间内就陷入死循环或无限等待,却仍然要等待很长时间才会结束的情况。这种情况的发生会造成仿真时间和存储空间的严重浪费。
3.为此,需要一种技术方案,能够降低仿真时间及存储空间的浪费。


技术实现要素:

4.本技术旨在提供用于判断仿真结束的方法及计算设备,能够更加完善仿真判断机制,减少仿真时间,降低仿真所需的存储空间。
5.根据本技术的一方面,提供一种判断仿真结束的方法,应用于芯片验证仿真平台,所述芯片验证仿真平台包括验证环境中的组件,根据一些实施例,所述方法包括:仿真开始后,各所述组件开始并行工作,同时,并行执行用于判断仿真结束的第一流程、第二流程和第三流程;其中,所述第一流程基于第一机制判断是否仿真结束,判断结束即整体仿真结束,所述第一机制为超时机制;所述第二流程基于第二机制判断是否仿真结束,判断结束即整体仿真结束;所述第三流程进行事件监控,如果有预定事件发生,则重置所述第一流程的计时,从而把对整个仿真的超时监控转变为对等待预定事件的超时监控。
6.根据一些实施例,所述第一流程预设仿真超时阈值,当所述第一流程的仿真计时超出所述仿真超时阈值时,确定仿真报错从而结束仿真。
7.根据一些实施例,各所述组件设置工作完成状态;所述第二流程基于投票判断机制,其中所述第二流程查询统计各所述组件的工作完成状态,当所有组件处于停止工作状态时,确定仿真结束。
8.根据一些实施例,各所述组件设置工作完成状态,包括:各所述组件在开始工作前置起反对票;各所述组件在停止工作后放下反对票。
9.根据一些实施例,所述预定事件为至少两个事件的组合,所述第三流程监控到所述组合中任意一个事件发生时均重置所述第一流程的计时。
10.根据一些实施例,所述至少两个事件彼此独立。
11.根据一些实施例,所述预定事件包括第一预定事件;所述第三流程进行事件监控,包括:在监控所述第一预定事件发生时进行延时等待。
12.根据一些实施例,所述预定事件包括第一预定事件;所述第三流程进行事件监控,包括:在所述第一预定事件发生后,设置第一延时并开始持续计时;如果在所述第一延时期间所述第一预定事件再次发生,则再次自增设置第一延时。如果计时时长大于累积第一延时时长,则重置所述第一流程。
13.根据一些实施例,所述仿真超时阈值与所述预设事件的发生频率负相关。
14.根据一些实施例,所述预定事件按照如下条件选择:选择在相同环境所仿真的不同测例之间发生频率相差小于设定阈值的事件作为预定事件;和/或选择环境陷入死循环或者无限等待的情形下发生频率低于预定发生频率阈值的事件作为所述预定事件。
15.根据本技术的另一方面,提供一种计算设备,包括:处理器;以及存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
16.根据本技术的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
17.根据示例实施例,通过三个流程配合,可以大幅减小超时阈值的设置值,使其不必符合等待仿真时间长的测例的标准,大幅缩短了仿真时间短的测例在出错后到仿真停止所需要等待的时间。通过事件监控机制,把相对于整个测例运行时间的超时阈值转变为相对于预定事件的超时阈值,大大缩短了仿真超时阈值的设置值。通过本发明的技术方案,可以在单测例仿真时能够更快得到所需的仿真相关信息。在多测例同时仿真、回归仿真时可大幅减少总仿真运行时间,提高工程效率,减少了测例陷入死循环或无限等待时无用的波形输出,节省了服务器的储存空间。本发明的技术方案灵活性高,可以被应用于各种验证场景中。
18.根据一些实施例,预定事件的选择和超时阈值的设置较为灵活,预定事件和超时阈值的设置可以视场景灵活选择,可以在各种验证场景下被验证人员进行应用。
19.本发明方法中的第一流程基于的超时机制与普遍运用的超时机制存在实质意义上的不同。普遍运用的超时是相对于整个测例的运行时间而言的,而本发明方法的超时是相对于第三流程的预定事件而言的。
20.根据一些实施例,在选择预定事件进行监控时,可以选择不止一个事件(即,辅以额外的事件进行配合,每一个事件是独立进程),或者辅以相应的补充额外机制(例如在等待预定事件时加入延时,或者进行延时累积补偿)。多事件选择可防止单个预定事件频率过低而等不到相应预定事件。延时等待可防止找不到频率合适的喂狗事件,所以选择一个发生频率高的事件再加上延时等待,使之频率合适。延时累积补偿可防止万一仿真卡死的时候预定事件意外地频繁发生使超时机制失效。
21.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。
附图说明
22.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
23.图1示出根据示例实施例的仿真结束判断的方法流程图。
24.图2示出根据示例实施例的第二流程统计各组件工作状态的方法流程图。
25.图3示出根据示例实施例的第三流程的事件监控过程的方法流程图。
26.图4示出根据示例实施例的仿真结束判断的流程示意图。
27.图5示出根据示例实施例的仿真结束判断的流程示意图。
28.图6示出根据示例性实施例的计算设备的框图。
具体实施方式
29.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本技术将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
30.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
31.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
32.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
33.应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本技术概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
34.本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
35.本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本技术所必须的,因此不能用于限制本技术的保护范围。
36.uvm(universal verification methodology:通用验证方法学)是当前芯片验证中最流行的验证方法学。uvm是一种使用system verilog进行功能验证的方法,并提供了使用system verilog代码实现的支持库。uvm指导验证工程从dut(design under test:待测设计)的功能规范(specification)出发,制定验证计划,分解测试点,创建测试用例,定义验收(sign-off)方式和标准,实现流程自动化和报告自动化等。在uvm的框架里面,各类环境组件相互独立、各司其职。
37.在芯片验证仿真中,由于验证环境的复杂性,验证工程师难以用其中一个组件的工作状态去判断整个验证环境的仿真是否完成。例如,在序列发生器(sequencer)将所有激励数据发送完成而停止工作后,后续的驱动器(driver)、监控器(monitor)等组件仍需要时间去处理数据。后续任何一个组件停止工作的同时,前序组件也有可能仍在处理数据。于是如何判断结束仿真的时机成为验证工作中所面临的一个难题。
38.在当前广泛使用的验证方法中,通常用投票判断机制与设置的延时结合,并在此基础上加入了超时机制。当仿真长时间未完成(即超时)时,环境也会将结束仿真进程。超时机制主要用于防止环境的运行陷入死循环或无限等待中,永远无法结束直到导致磁盘空间爆满、服务器崩溃。然而,这种仿真结束机制虽然能满足大多数场景下的仿真结束需要,但也存在一定的局限性。
39.例如,当仿真超时阈值过小时,可能会导致环境中有组件仍在工作时仿真提前结束,所以一般要确保超时阈值大于整个测例的仿真时间。
40.另外,在验证工作中,不同的测例仿真时间差别可能很大。若要保证仿真不会提前结束,超时(timeout)要设置的比所有测例时间长。例如,a测例中待测芯片需要处理50条输入数据,而b测例中待测芯片只需处理1条输入数据。那么一套验证环境如果要承担仿真a测例和b测例的功能,其环境的超时阈值就要以a测例为参考,至少需要大于常规情况下50条输入数据的处理时间。
41.这样,如果仅使用这种机制去进行不同测例的仿真,可能会出现一些测例在很短的仿真时间内就陷入死循环或无限等待,却仍然要等待很长时间才会结束的情况。例如,上述举例中的b测例,如果出现待测芯片在处理唯一的1条输入数据过程中卡死的情况,由于超时阈值的设置是以a测例为参考,需要等待50倍的时长,才会触发超时机制停止仿真。这种情况的发生会造成仿真时间和存储空间的严重浪费,在多测例同时运行的情况下更甚。
42.为此,本技术提出一种判断仿真结束的方法,结合了投票机制、超时机制和事件监控机制,能够解决仿真提前结束、仿真陷入死循环或无限等待时仿真不会自动结束以及仿真超时阈值设置不灵活的问题。通过加入预定事件机制,来达到降低仿真时间及存储空间浪费的目的,灵活性高,可以减小超时阈值的设置值,可大幅缩短了仿真时间短的测例在出错后到仿真停止所需要等待的时间。
43.下面结合附图对本技术的示例实施例进行说明。
44.图1示出根据示例实施例的仿真结束判断的方法流程图。
45.图1所示的方法可应用于芯片验证仿真平台,所述芯片验证仿真平台包括验证环境中的组件和待测芯片的寄存器传输级(rtl)代码。
46.参见图1,在s101,仿真开始后,各所述组件开始并行工作。
47.根据一些实施例,芯片验证仿真平台通常可包括验证环境组件和待测芯片的rtl
代码。常见的验证环境组件主要可包括序列发生器(sequencer)、驱动器(driver)、监控器(monitor)、参考模型(reference model:rm)和计分器(scoreboard)等。其中,sequencer产生需要发送给待测芯片的激励事务(transaction),并将其发送给driver;driver将sequencer产生的激励发送给待测芯片;monitor采集待测芯片输入接口处收到的激励数据transaction并将其发送至rm,以及采集待测芯片输出接口处发送的输出数据transaction并将其发送至scoreboard;rm从monitor接收在待测芯片输入接口处采集的激励数据transaction,并对激励数据进行符合芯片预期功能的处理,将处理后的预期输出transaction发送至scoreboard;scoreboard将来自monitor的芯片的实际输出和来自rm的预期输出进行比较,以判断芯片的输出数据是否正确。
48.由于验证环境的复杂性,验证工程师难以用其中一个组件的工作状态去判断整个验证环境的仿真是否完成。
49.根据示例实施例,开始各组件并行工作的同时,仿真平台执行用于判断仿真结束的第一流程、第二流程和第三流程。
50.根据一些实施例,各个组件工作于并行线程中,第一流程、第二流程和第三流程工作于并行线程中。
51.在s103,执行第一流程判断仿真是否结束,判断结束即整体仿真结束。
52.根据一些实施例,所述第一流程基于第一机制,例如超时机制,在第一流程开始前预设仿真超时阈值,当第一流程的仿真计时超出所述仿真超时阈值时,确定仿真报错并结束仿真。
53.根据一些实施例,所述仿真超时阈值与第三流程的预设事件的发生频率负相关。当预设事件的频率较高时,超时阈值可以较小。
54.根据一些实施例,超时机制主要用于防止环境的运行陷入死循环或无限等待中,永远无法结束直到致使磁盘空间爆满、服务器崩溃的情况。如果仿真超时阈值过小时,可能会导致环境中有组件仍在工作时仿真提前结束,所以一般要确保超时阈值大于整个测例的仿真时间。
55.在s105,执行第二流程判断仿真是否结束,判断结束即整体仿真结束。
56.根据一些实施例,所述第二流程基于第二机制,第二机制为投票判断机制。
57.根据一些实施例,各组件在工作前后基于投票机制设置工作完成状态,例如,各所述组件在开始工作前置起反对票,各所述组件在停止工作后放下反对票。第二流程查询统计各所述组件的工作完成状态,当所有组件处于停止工作状态时,确定仿真结束。
58.在s107,执行第三流程进行预定事件监控。
59.监控的预定事件通常是验证环境的常规运行中会发生的事件,以此标志着环境中仍有组件尚处于正常运转之中。预定事件的选择可以有很多,包括但不限于本技术中所列举的。例如,常见的预定事件有:接口(interface)上数据的有效标识位为高、monitor采集到transaction、scoreboard收到transaction。由于这些例举的事件有概率不满足上述的事件选择标准,故应视具体情况而决定。在特殊情况下,如环境模拟下游长反压时,scoreboard也有可能长时间接收不到transaction。因此,在选择预定事件时,也可以不止选择一个事件,而是辅以额外的预定事件进行配合(每一个预定事件是独立进程),或相应地补充额外机制(例如加入延时)或进行延时累积补偿。
60.根据一些实施例,选择在相同环境所仿真的不同测例之间发生频率相差不大(例如,相差小于设定阈值)的事件作为预定事件。否则,假设a测例中预定事件发生的频率高,而b测例中预定事件发生的频率很低,那么超时阈值需要以b测例的预定事件频率为参考,在a测例中没有等到期待的预定事件后,仿真仍需要进行很长时间才能被判定为超时。
61.根据另一些实施例,选择环境陷入死循环或者无限等待的情形下发生频率低于预定发生频率阈值的事件作为所述预定事件。在环境陷入死循环或者无限等待时,如果预定事件发生的频率高,则会出现仿真需要被判定为超时而结束时,因为预定事件的频繁发生使计时不断重置,而导致仿真迟迟不能结束。这种情况下,虽然事件监控机制仍在工作,但超时机制却失效了。
62.根据一些实施例,预定事件可为两个或两个以上的预定事件进行组合。根据一些实施例,各个预定事件彼此独立。根据一些实施例,多个事件组合时,任意一个事件发生时均重置第一流程的计时。根据一些实施例,所述预定事件包括第一预定事件,在监控所述第一预定事件发生时进行延时等待,例如延迟预定时间。根据一些实施例,在预定事件频繁发生时,在累计计时满足累计延时条件后进行第一流程的重置。
63.在s109,判断预定事件是否发生。
64.根据一些实施例,若预定事件发生,则重置第一流程,从而把对整个仿真的超时监控转变为对等待预定事件的超时监控。否则,继续进行事件监控。
65.根据一些实施例,第三流程监控到所述预定事件发生后,重置所述第一流程的计时。可以看出,本发明方法中的第一流程基于的超时机制与普遍运用的超时机制存在实质意义上的不同。普遍运用的超时是相对于整个测例的运行时间而言的,而本发明方法的超时是相对于第三流程的预定事件而言的。
66.第一流程的仿真超时阈值设置与第三流程监控的预定事件发生的频率相关。当预定事件的频率较高时,仿真超时阈值可以较小。例如,可以把仿真超时阈值设置为从driver发送一笔transaction到scoreboard完成该笔transaction相关结果的时间,从而本方案具有一定的场景通用性。
67.在s111,仿真结束。
68.根据一些实施例,第一流程判断仿真结束即整体仿真结束,第二流程判断仿真结束即整体仿真结束。
69.根据一些实施例,通过三个流程配合,可以大幅减小超时阈值的设置值,使其不必符合等待仿真时间长的测例的标准,大幅缩短了仿真时间短的测例在出错后到仿真停止所需要等待的时间。
70.根据一些实施例,本发明方法的灵活性高,可以被应用于各种验证场景中。预定事件的选择和超时阈值的设置较为灵活,可以在各种验证场景下被验证人员进行应用。
71.根据一些实施例,通过本发明的技术方案,可以在单测例仿真时能够更快得到所需的仿真相关信息。在多测例同时仿真、回归仿真时可大幅减少总仿真运行时间,提高工程效率,减少了测例陷入死循环或无限等待时无用的波形输出,节省了服务器的储存空间。
72.图2示出根据示例实施例的第二流程统计各组件工作状态的方法流程图。
73.参见图2,在s201,查询统计各组件的工作状态。
74.根据一些实施例,基于投票判断机制(objection),环境中的各组件可以在开始工
作前调用raise_objection()(置起反对票),停止工作后调用drop_objection()(放下反对票)。
75.在s203,判断是否所有组件处于停止工作状态。
76.根据一些实施例,当环境中的各组件没有objection(反对票)处于置起状态时,即说明所有组件都处于停止工作状态。
77.由于环境内各组件在不同并行线程下工作,而并行线程的执行顺序是不确定的,可能导致竞争冒险现象的出现。例如,sequencer将激励发送完后drop_objection(),在driver即将raise_objection()之前,验证环境中没有objection处于置起状态,若以此作为仿真的结束条件,必然会导致仿真的提前结束。因此,在应用中,投票判断机制常常与set_drain_time()方法设置的延时结合。当所有组件的objection放下后,验证环境延迟一段时间后再结束仿真。如果延迟期间又有新的objection被置起,则仿真继续。在本文中,所有组件处于停止工作状态均指代加入了延时的投票判断机制角度的仿真完成。
78.在s205,确定仿真结束。
79.根据示例实施例,在所有组件都处于停止工作状态时,即可确定仿真结束。
80.图3示出根据示例实施例的第三流程的事件监控过程的方法流程图。
81.图3所示方法基于前述延时累积补偿,在预定事件频繁发生时,在累计计时满足累计延时条件后进行第一流程的重置。
82.参见图3,在s301,初始化第一延时。
83.根据一些实施例,在仿真开始前设置第三流程中的第一延时,例如第一延时td=0。
84.在s303,第三流程进行事件监控。
85.根据设定的预定事件,第三流程监控相应预定事件的发生。
86.在s305,判断第一预定事件是否发生。如果根据一些实施例,第一预定事件可能是高于预定发生频率阈值的事件。如果第一事件未发生,则继续监控该第一事件是否发生。如果第一事件发生,则执行s307。
87.在s307,自增设置第一延时。
88.例如,根据一些实施例,第一延时td+=t0,即对第一延时进行自增累加。
89.设置第一延时后,开始计时,同时继续监控该第一事件是否发生。
90.在s309,持续进行计时。
91.根据一些实施例,即使预定事件再次发生,仍然持续进行累计计时。
92.在s311,判断累计计时时长是否大于累计延时时长。
93.根据一些实施例,第一事件发生后产生累计计时,当累计计时的时长未超过累计的第一延时时长时,继续持续计时。若累计计时的时长超过累计的第一延时时长,执行s313。
94.在s313,重置第一流程。
95.根据一些实施例,第一事件发生后产生累计计时,当累计计时的时长超过累计的第一延时时长时,重置第一流程,使得第一流程重新开始计时。另外,第一延时也可重置为初始化值。
96.根据该实施例,通过采用延迟累积补偿机制,在某种意外情况导致预定事件频繁发生时(虽然正常情况下,根据预定事件的选择条件,这种情况不会发生),在累计计时满足
累计延时条件后进行第一流程的重置,从而可以避免由于第一流程被频繁重置而导致超时机制失效。
97.图4示出根据示例实施例的仿真结束判断的流程示意图。
98.参见图4,仿真开始后,验证环境中各组件在各自的并行线程中开始工作,并启动仿真结束判断机制,进入仿真结束判断流程。
99.根据一些实施例,第一流程开始工作并计算等待预定事件发生时间,判断等待时间是否超出阈值。若判断仿真超时,此时环境大概率陷入死循环或无限等待,在超时机制的作用下,仿真以报错结束;未超时则继续等待。
100.根据一些实施例,第二流程开始工作并等待环境中所有组件完成工作,判断各组件工作完成则结束仿真,未工作完成则继续判断。
101.根据一些实施例,第三流程开始工作并等待预定事件发生,判断有预定事件发生,则重置第一流程的计时;未发生预定事件则继续等待预定事件的发生。
102.系统结束仿真,验证人员可获得验证环境提供的仿真信息。
103.根据一些实施例,本发明方法中的第一流程基于的超时机制与普遍运用的超时机制存在意义上的不同。普遍运用的超时是相对于整个测例的运行时间而言的,而本发明方法的超时是相对于第三流程的预定事件而言的。
104.根据一些实施例,基于现有的较健全的仿真结束机制进行改进,保留了现有机制的优点,也更能与之兼容。投票判断机制的优点在于不仅仅通过单一组件来判断仿真是否仍未结束,而是结合所有组件的工作状态进行全局判断。超时机制解决了测例陷入死循环或无限等待时仿真不会自动结束的问题。本发明在投票判断机制和超时机制的基础上加入了预定事件机制,实质上改变了超时机制的意义,能保证现有机制的优点不被丢失,同时在现有机制被广泛使用的前提下,采用本机制的兼容性好,成本低。
105.图5示出根据示例实施例的仿真结束判断的流程示意图。
106.参见图5,该实施例与图4所示实施例基本相同,故相同部分不再赘述。该实施例与图4所示实施例的区别仅在于在第三流程基于事件监控机制判断发生预定事件后,可如第二流程检查各组件是否工作完成,工作完成则仿真结束,若未完成则重置第一流程重新开始判断。该实施例可减少一个循环等待时间,加快仿真结束判断。
107.图6示出根据示例性实施例的计算设备的框图。
108.如图6所示,计算设备30包括处理器12和存储器14。计算设备30还可以包括总线22、网络接口16以及i/o接口18。处理器12、存储器14、网络接口16以及i/o接口18可以通过总线22相互通信。
109.处理器12可以包括一个或多个通用cpu(central processing unit,处理器)、微处理器、或专用集成电路等,用于执行相关程序指令。根据一些实施例,计算设备30还可包括为处理器12进行加速的高性能显示适配器(gpu)20。
110.存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(ram)、只读存储器(rom)和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。处理器12可读取存储在存储器14中的指令以执行上述根据本技术实施例的方法。
111.计算设备30也可以通过网络接口16与一个或者多个网络通信。该网络接口16可以
是无线网络接口。
112.总线22可以为包括地址总线、数据总线、控制总线等。总线22提供了各组件之间交换信息的通路。
113.需要说明的是,在具体实施过程中,计算设备30还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
114.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、dvd、cd-rom、微型驱动器以及磁光盘、rom、ram、eprom、eeprom、dram、vram、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
115.本技术实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种方法的部分或全部步骤。
116.本领域的技术人员可以清楚地了解到本技术的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
117.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
118.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
119.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
120.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
121.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
122.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出
来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。
123.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
124.以上具体地展示和描述了本技术的示例性实施例。应可理解的是,本技术不限于这里描述的详细结构、设置方式或实现方法;相反,本技术意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。

技术特征:
1.一种判断仿真结束的方法,应用于芯片验证仿真平台,所述芯片验证仿真平台包括验证环境中的组件,其特征在于,所述方法包括:仿真开始后,各所述组件开始并行工作,同时,并行执行用于判断仿真结束的第一流程、第二流程和第三流程;其中,所述第一流程基于第一机制判断是否仿真结束,判断结束即整体仿真结束,所述第一机制为超时机制;所述第二流程基于第二机制判断是否仿真结束,判断结束即整体仿真结束;所述第三流程进行事件监控,如果有预定事件发生,则重置所述第一流程的计时,从而把对整个仿真的超时监控转变为对等待预定事件的超时监控。2.根据权利要求1所述的方法,其特征在于,所述第一流程预设仿真超时阈值,当所述第一流程的仿真计时超出所述仿真超时阈值时,确定仿真报错从而结束仿真。3.根据权利要求1所述的方法,其特征在于,各所述组件设置工作完成状态;所述第二流程基于投票判断机制,其中所述第二流程查询统计各所述组件的工作完成状态,当所有组件处于停止工作状态时,确定仿真结束。4.根据权利要求3所述的方法,其特征在于,各所述组件设置工作完成状态,包括:各所述组件在开始工作前置起反对票;各所述组件在停止工作后放下反对票。5.根据权利要求1所述的方法,其特征在于,所述预定事件为至少两个事件的组合,所述第三流程监控到所述组合中任意一个事件发生时均重置所述第一流程的计时。6.根据权利要求5所述的方法,其特征在于,所述至少两个事件彼此独立。7.根据权利要求1所述的方法,其特征在于,所述预定事件包括第一预定事件;所述第三流程进行事件监控,包括:在监控所述第一预定事件发生时进行延时等待。8.根据权利要求1所述的方法,其特征在于,所述预定事件包括第一预定事件;所述第三流程进行事件监控,包括:在所述第一预定事件发生后,设置第一延时并开始持续计时;如果在所述第一延时期间所述第一预定事件再次发生,则再次自增设置第一延时;如果计时时长大于累积第一延时时长,则重置所述第一流程。9.根据权利要求1所述的方法,其特征在于,所述仿真超时阈值与所述预设事件的发生频率负相关。10.根据权利要求1所述的方法,其特征在于,所述预定事件按照如下条件选择:选择在相同环境所仿真的不同测例之间发生频率相差小于设定阈值的事件作为预定事件;且/或选择环境陷入死循环或者无限等待的情形下发生频率低于预定发生频率阈值的事件作为所述预定事件。
11.一种计算设备,其特征在于,包括:处理器;以及存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-10中任一项所述的方法。

技术总结
本申请提供一种判断仿真结束的方法及计算设备。所述方法应用于芯片验证仿真平台,所述芯片验证仿真平台包括验证环境中的组件和待测芯片的寄存器传输级代码,所述方法包括:仿真开始后,各所述组件开始并行工作,同时,并行执行用于判断仿真结束的第一流程、第二流程和第三流程;其中,所述第一流程基于第一机制判断是否仿真结束,判断结束即整体仿真结束,第一机制为超时机制;所述第二流程基于第二机制判断是否仿真结束,判断结束即整体仿真结束;所述第三流程进行事件监控,如果有预定事件发生,则重置所述第一流程的计时。根据本申请的技术方案能够降低仿真时间及存储空间的浪费。浪费。浪费。


技术研发人员:蔡权雄 牛昕宇
受保护的技术使用者:深圳鲲云信息科技有限公司
技术研发日:2023.09.07
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐