定位验证错误的方法、电子设备和存储介质与流程

文档序号:32661762发布日期:2022-12-23 23:48阅读:39来源:国知局
定位验证错误的方法、电子设备和存储介质与流程

1.本技术实施例涉及芯片验证技术领域,尤其涉及一种在逻辑系统设计中定位错误的方法、电子设备及存储介质。


背景技术:

2.在集成电路的验证领域,为了验证逻辑系统设计是否正确,需要设计验证环境用于验证逻辑系统设计。验证环境在编译之后可以在计算机或硬件仿真设备上运行,以对逻辑系统设计的各种功能进行仿真测试,从而验证逻辑系统设计是否正确。
3.验证环境通过成千上万的接口与逻辑系统设计相连接。当验证环境对逻辑系统设计进行验证时,验证环境会对验证过程中发现的验证错误进行报告。但是由于验证环境与逻辑系统设计间的接口数量太过庞大,导致验证环境无法直接定位到验证错误的实际发生位置。实际操作过程中,通常由工程师(用户)经过经验和具体的检测来判定被报告的验证错误的实际发生位置(也称为根本原因(root cause))。但是由于验证错误的数量可能较多,如果每一次发现验证错误后都经由工程师(用户)判断再进行定位的话在时间上和人工成本上都过于浪费。并且在大量的错误报告中,还可能存在大量的相同或相似的验证错误。这些验证错误很可能是由于相同的根本原因造成。对这些错误的重复判定也增加了不必要的工作量,导致了对逻辑系统设计进行验证错误的过程中效率下降的问题。
4.因此,如何根据多个验证错误的报错来快速确定实际上出错的位置是一个亟待解决的问题。


技术实现要素:

5.本技术的第一方面提供一种在逻辑系统设计中定位验证错误的方法,包括:接收所述逻辑系统设计在验证环境中产生的多个验证错误,所述多个验证错误包括多个第一验证错误和第二验证错误;在所述多个验证错误中,确定多个第一验证错误以及与所述多个第一验证错误对应的多个第一错误位置之间的映射关系;基于所述逻辑系统设计、所述验证环境以及所述映射关系生成所述错误定位模型;以及使用所述错误定位模型确定第二验证错误的第二错误位置。
6.本技术的第二方面提供一种电子设备。该电子设备包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子设备执行如第一方面所述的方法。
7.本技术的第三方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行如第一方面所述的方法。
附图说明
8.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术
描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
9.图1示出了根据本技术实施例的主机的示意图。
10.图2a示出了根据本技术实施例的仿真工具和调试工具的示意图。
11.图2b示出了根据本技术实施例的一种示例性验证系统的示意图。
12.图3a示出了根据本技术实施例的生成错误定位模型的示意图。
13.图3b示出了根据本技术实施例的使用错误定位模型确定错误位置的示意图。
14.图4示出了根据本技术实施例的一种在逻辑系统设计中定位验证错误的方法的流程图。
具体实施方式
15.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
16.需要说明的是,除非另外定义,本技术使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
17.仿真测试是在运行仿真测试系统的主机上对逻辑系统设计施加各种激励以检测逻辑系统设计是否可以实现预定的功能。
18.图1示出了根据本技术实施例的主机100的示意图。主机100可以是运行仿真系统的电子设备。如图1所示,主机100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在主机内部的通信连接。
19.处理器102可以是中央处理器(central processing unit,cpu)、图像处理器、神经网络处理器(npu)、微控制器(mcu)、可编程逻辑器件、数字信号处理器(dsp)、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路。处理器102可以用于执行与本技术描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器103a、103b和102c。
20.存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。在一些实施例中,用于仿真测试设计的仿真测试系统可以是存储器104中存储的计算机程序。如图1所示,存储器存储的数据可以包括程序指令(例如,用于实现本技术的定位错误的方法的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘、固态硬盘(ssd)、
闪存、存储棒等。
21.网络接口106可以配置为经由网络向主机100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、wifi、近场通信(nfc)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(nic)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
22.外围接口108可以配置为将主机100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
23.总线110可以被配置为在主机100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(usb端口、pci-e总线)等。
24.需要说明的是,尽管上述主机架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该主机架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述主机架构中也可以仅包含实现本技术实施例方案所必需的组件,而不必包含图中所示的全部组件。
25.图2a示出了根据本技术实施例的仿真工具202和调试工具200的示意图。仿真工具202和调试工具200可以是运行在主机100上的计算机程序。
26.在芯片设计领域,通常可以利用仿真工具对一个设计进行仿真。仿真工具例如可以是芯华章科技股份有限公司出品的galaxsim仿真工具。图2a示出的示例性仿真工具202可以包括编译器120和仿真器220。编译器120可以将设计(例如,验证系统210)编译为目标代码204,仿真器220可以根据目标代码204进行仿真,并将仿真结果206输出。例如,仿真工具304可以将仿真结果(例如,仿真波形图)经由图1的外围接口108输出到输出设备上(例如,显示在显示器上)。
27.调试工具200也可以读取仿真结果206。调试工具200例如可以是芯华章科技股份有限公司出品的fusion debug调试工具。例如,调试工具200可以读取以波形文件存储的仿真结果206,并且生成相应的仿真波形用于调试。调试工具200还可以读取验证系统210的描述(通常是systemverilog和verilog代码),并且显示给用户。调试工具200还可以生成各种图形化界面(例如:调试窗口)以方便用户的调试工作。用户可以向调试工具200发出调试命令(例如,运行验证系统210到某个时刻),调试工具200则将该调试命令施加到仿真工具202以相应地执行。调试工具200还可以读取日志文件。日志文件中可以包括仿真过程的各种信息,包括验证错误的信息、报错的行号、验证错误发生的时间等。
28.可以理解的是,除了与仿真工具202连接,调试工具200还可以与硬件仿真器(emulator)连接。
29.通过上述方式,本技术构建了用于验证逻辑系统设计的验证环境,通过验证环境对逻辑系统设计进行验证。在以往的验证过程中,当验证环境对逻辑系统设计进行验证时,将会产生大量的验证错误,工程师(用户)将会根据自己的技术以及经验对这些验证错误进行判断并确定其所发生的位置。但是,由于在对逻辑系统设计的验证过程中所产生的验证
错误的数量可能是非常庞大的,在此基础上经由人工(工程师)对其进行定位的话,将会极大地增加工程师(用户)的时间成本。
30.基于此,本技术在此基础上进一步提出了一种在逻辑系统设计中定位验证错误的方法。通过本技术所提供的方法可以在多个验证错误中,确定多个验证错误以及与多个验证错误对应的多个错误位置之间的映射关系,基于逻辑系统设计、验证环境以及映射关系生成错误定位模型,并通过此错误定位模型对验证得到的错误进行错误定位,找到错误的发生位置。在一些实施例中,本技术提供的错误定位模型还可以进行持续地更新,通过对错误定位模型的更新,可以更加精确地定位到错误的发生位置。
31.接下来,本技术将对如何设计此错误定位模型和如何对此错误定位模型进行更新做更进一步地说明讲解。
32.图2b示出了根据本技术实施例的一种示例性验证系统210的示意图。验证系统210可以包括逻辑系统设计和验证环境。验证环境可以是由verilog、systemverilog、systemc等编程语言写的,并且用于向待测设备(即,被测试的逻辑系统设计2102)提供激励信号以及接收待测设备的反馈以检测待测设备是否按设计预期运行。
33.在一些实施例中,如图2b所示,验证环境与逻辑系统设计2102间通过成千上万的接口相连接,并且通过这些接口上的信号传输对逻辑系统设计2102进行验证。可以理解的是,验证环境可以包括多个测试组件210a和210b。
34.当验证环境对逻辑系统设计2102进行验证后可以产生多个验证错误2104(如图中的a、b、c、d)。此时,验证环境会对这些多个验证错误2104进行汇总并生成报告。此报告是关于多个验证错误2104(如图中的a、b、c、d)的集合显示。可以理解的是,在实际的测试过程中可以产生大量的验证错误,本实施例中仅以多个第一验证错误a、b、c、d为例进行说明。
35.在一些实施例中,当验证环境通过对逻辑系统设计2102进行验证后产生并获取多个验证错误2104后,验证环境将对多个验证错误2104整合到日志文件中,其中,日志文件可以包括错误报告。利用多个验证错误以及验证环境和逻辑系统测试2102,调试工具200可以生成错误定位模型。接下来,本技术将对如何生成错误定位模型进行进一步地说明。
36.图3a示出了根据本技术实施例的生成错误定位模型的示意图。
37.在一些实施例中,调试工具200可以从验证系统210获取多个验证错误302。这些验证错误302可以从日志文件中提取。
38.用户可以在使用调试工具200的过程中确定验证错误302(例如,多个验证错误2104中的一个或多个验证错误)的错误位置304。在一些实施例中,错误位置304可以由用户输入到调试工具200。在另一些实施例中,错误位置304可以由调试工具200在用户的调试过程中自动检测到。例如,当用户选定或更改错误位置304时,调试工具200可以检测到该错误位置304。
39.调试工具200还可以获取逻辑系统设计308和验证环境306。可以理解,多个验证错误302是在验证环境306下由逻辑系统设计308运行多个测试用例得到的。
40.错误位置304可以是验证错误302在逻辑系统设计308内的位置,例如,一个verilog文件的某一行、一个设计范围(也称为模块)、或者一个错误实例。错误位置304也可以是位于逻辑系统设计308与验证环境306的边界的一个接口。该接口可以是逻辑系统设计308的一个接口。通过确定具体的接口,调试设备200可以进一步确定验证错误302在逻辑系
统设计308内的具体位置(例如,错误的实例)。
41.根据多个验证错误302、与多个验证错误302对应的从用户获取的错误位置304,调试工具200可以建立多个验证错误302和错误位置304的映射关系310。
42.在一些实施例中,调试工具200可以响应于用户的请求建立调试窗口。用户可以经由调试工具200将多个验证错误302和多个错误位置304输入至该调试窗口,从而利用该调试窗口建立映射关系310。
43.在映射关系310的基础上,调试工具200可以进一步根据映射关系310、逻辑系统设计308和验证环境306生成错误定位模型312。通过该错误定位模型312可以快速确定一个验证错误的错误位置。
44.错误定位模型312可以是一个机器学习模型。如上所述,该机器学习模型可以根据多个验证错误302、与多个验证错误302对应的从用户获取的错误位置304、逻辑系统设计308和验证环境306通过训练得到。可以理解,错误定位模型312可以选择任意适合的机器学习模型来构建,例如,神经网络模型、卷积神经网络模型,等等。在此不做具体限定。
45.图3b示出了根据本技术实施例的使用错误定位模型确定错误位置的示意图。
46.如图3b所示,调试工具200可以获取一个新的验证错误322。该验证错误322可以是多个验证错误2104中的一个。利用错误定位模型312,调试工具200可以根据验证错误322、逻辑系统设计308和验证环境306确定验证错误322的错误位置324。如上所述,错误位置324可以逻辑系统设计308内的位置,也可以是逻辑系统设计边界的位置(例如,与验证错误322对应的一个候选接口)。当错误位置324是一个候选接口时,调试工具200可以进一步根据错误位置324和逻辑系统设计308确定该逻辑系统设计308的错误实例作为错误位置。
47.在一些实施例中,调试工具200利用映射关系310确定的错误位置324可能与验证错误322的实际错误位置不同。用户可以在调试过程中向调试工具200提供修改的实际错误位置。这样,调试工具200还可以根据从用户处获取的实际错误位置来调整映射关系310,从而提高预测的精确度。例如,调试工具200可以接收修改错误位置324的指令。这样,根据修改的错误位置和原错误位置324可以调整并更新映射关系310,并相应地根据逻辑系统设计308、验证环境306和更新的映射关系310更新错误定位模型312。可以理解的是,利用用户修正的实际错误位置来调整错误定位模型312的流程类似于图3a的流程图,在此不再赘述。
48.图4示出了根据本技术实施例的一种在逻辑系统设计中定位验证错误的方法400的流程图。方法400可以由图1所示的主机100执行。更具体地,方法400可以由在主机100上运行的调试工具200执行。方法400可以包括如下步骤。
49.在步骤402,调试工具200可以接收所述逻辑系统设计(例如,图3a的逻辑系统设计308)在验证环境(例如,图3a的验证环境306)中产生的多个验证错误(例如,图2b的多个验证错误2104)。例如,调试工具200可以读取调试日志来获取所述多个验证错误。所述多个验证错误可以包括多个第一验证错误(例如,图3a的验证错误302)和第二验证错误(例如,图3b的验证错误322)。
50.在步骤404,在所述多个验证错误中,调试工具200可以确定多个第一验证错误(例如,图3a的验证错误302)以及与所述多个第一验证错误对应的多个第一错误位置(例如,图3a的错误位置304)之间的映射关系(例如,图3a的映射关系310)。例如,所述第一错误位置是所述逻辑系统设计中与所述第一验证错误对应的错误实例。第一错误位置还可以是所述
逻辑系统设计中与所述第一验证错误对应的接口。
51.在一些实施例中,为了确定多个第一验证错误以及与所述多个第一验证错误对应的多个第一错误位置之间的映射关系,调试工具200可以接收所述多个第一验证错误;由用户确定所述多个第一验证错误在所述逻辑系统设计中的第一错误位置;确定所述多个第一验证错误和所述多个第一错误位置之间的映射关系。
52.在一些实施例中,调试工具200还可以通过调试工具建立调试窗口;将所述多个第一验证错误和所述多个第一错误位置输入至所述调试窗口;以及通过所述调试窗口建立所述映射关系。
53.在步骤406,调试工具200可以基于所述逻辑系统设计、所述验证环境以及所述映射关系生成所述错误定位模型(例如,图3a的错误定位模型312)。生成所述错误定位模型的过程可以是利用机器模型进行训练的过程。
54.在步骤408,调试工具200可以使用所述错误定位模型确定第二验证错误的第二错误位置(例如,图3b的错误位置324)。在一些实施例中,如上所述,调试工具200可以使用所述错误定位模型确定所述第二验证错误的候选接口;以及根据所述候选接口和所述逻辑系统设计确定所述逻辑系统设计的错误实例作为第二错误位置。
55.在一些实施例中,第二错误位置可能不够准确。因此,调试工具200还可以接收用户修改所述第二错误位置的指令;根据所述第二验证错误和所述修改的第二错误位置更新所述映射关系;以及根据所述逻辑系统设计、所述验证环境以及所述更新的映射关系更新所述错误定位模型。
56.本技术实施例还提供一种电子设备。该电子设备可以是图1的主机100。该电子设备可以包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子设备执行方法400。
57.本技术实施例还提供一种非暂态计算机可读存储介质。所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行方法400。
58.上述对本技术的一些实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
59.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明它们没有在细节中提供。
60.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
61.本技术旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1