CN114564903A - 一种芯片仿真设计验证方法、装置、设备及介质 - Google Patents
一种芯片仿真设计验证方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114564903A CN114564903A CN202210181576.7A CN202210181576A CN114564903A CN 114564903 A CN114564903 A CN 114564903A CN 202210181576 A CN202210181576 A CN 202210181576A CN 114564903 A CN114564903 A CN 114564903A
- Authority
- CN
- China
- Prior art keywords
- verified
- code
- target
- code segment
- simulation
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本申请公开了一种芯片仿真设计验证方法,包括:确定出包含待验证场景类型的验证需求,从预设断言库中获取与待验证场景类型对应的目标断言语句,根据待验证场景类型确定出相应的待验证代码类型,并筛选出与待验证代码类型对应的仿真设计代码片段作为待验证代码片段,仿真设计代码片段为预先基于不同的代码类型对目标仿真芯片的仿真设计代码进行划分后得到的,将目标断言语句插入待验证代码片段,以便利用目标断言语句监测待验证代码片段是否为异常代码片段,并在监测到异常代码片段后确定出异常位置。通过本申请的上述技术方案,在芯片的复杂度提升的情况下,能够提高验证效率,基于断言验证有效增加定位错误的速度,并提高仿真结果的准确性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种芯片仿真设计验证方法、装置、设备及介质。
背景技术
随着电路的集成度越来越高,给芯片验证工作带来了很多困难和挑战,芯片设计过程中,仿真验证占据过半以上工作量。传统的验证方法是利用激励生成器根据特定的约束产生随机化或定向激励,然后通过验证环境将生成的激励施加给待验设计,在仿真完成后,通过自动比对或手工方式查看结果文件和波形,确保仿真结果与预期结果一致。但是随着电路的集成度和复杂度的提升,定位错误的能力越来越低,从而导致消耗大量的仿真验证时间。
综上可见,如何增加定位错误的速度,增加验证效率并提高仿真结果的准确性是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种芯片仿真设计验证方法、装置、设备及介质,能够增加定位错误的速度,增加验证效率并提高仿真结果的准确性。其具体方案如下:
第一方面,本申请公开了一种芯片仿真设计验证方法,包括:
确定出包含待验证场景类型的验证需求;
从预设断言库中获取与所述待验证场景类型对应的目标断言语句;
根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段;
将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。
可选的,所述确定出包含待验证场景类型的验证需求之前,还包括:
获取所述目标仿真芯片的仿真设计代码,并确定所述仿真设计代码所能实现的不同场景类型下对应的不同代码功能;
基于不同的所述代码功能确定不同的代码类型,并建立所述场景类型与所述代码类型之间的映射关系;
基于不同的所述代码类型对所述仿真设计代码进行划分,以得到所述目标仿真芯片的所有仿真设计代码片段。
可选的,所述确定出包含待验证场景类型的验证需求,包括:
从所述仿真设计代码所能实现的不同场景类型中确定出待验证场景类型,并基于所述待验证场景类型构建相应的验证需求;所述待验证场景类型包括对所述目标仿真芯片的电路功能进行验证的场景、对所述目标仿真芯片的接口功能进行验证的场景以及对所+述目标仿真芯片的应用程序功能验证的场景中的任意一种或几种的组合。
可选的,所述将所述目标断言语句插入所述待验证代码片段,包括:
将所述待验证代码片段中的目标位置作为待插入位置;
根据所述待插入位置将所述目标断言语句插入至所述待验证代码片段中的相应位置。
可选的,所述将所述待验证代码片段中的目标位置作为待插入位置,包括:
利用预设位置输入接口获取所述待验证代码片段中的目标位置,并将所述目标位置确定为待插入位置;
或,通过随机方式从所述待验证代码片段中随机确定出目标位置,并将所述目标位置确定为待插入位置;
或,根据所述待验证代码片段对应的代码类型,从所述待验证代码片段的所有代码语句中确定出目标代码语句,并将所述目标代码语句在所述待验证代码片段中的位置确定为待插入位置。
可选的,所述在监测到所述异常代码片段后确定出相应的异常位置,包括:
在监测到所述异常代码片段后,确定出所述异常代码片段对应的所述目标断言语句;
基于所述异常代码片段对应的所述目标断言语句的插入位置确定出所述异常代码片段的异常位置。
可选的,所述从预设断言库中获取与所述待验证场景类型对应的目标断言语句之前,还包括:
获取开放式验证库,并按照不同的场景类型对所述开放式验证库中的各断言语句进行分类;
对所述开放式验证库进行标注,以为所述开放式验证库中的各断言语句标注相应的所述场景类型;
相应的,所述从预设断言库中获取与所述待验证场景类型对应的目标断言语句,包括:
利用所述待验证场景类型对经过+标注后的所述开放式验证库进行查询,以得到与所述待验证场景类型对应的目标断言语句。
第二方面,本申请公开了一种芯片仿真设计验证装置,包括:
需求确定模块,用于确定出包含待验证场景类型的验证需求;
语句获取模块,用于从预设断言库中获取与所述待验证场景类型对应的目标断言语句;
代码片段确定模块,用于根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段;
仿真验证模块,用于将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的芯片仿真设计验证方法。
第四方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的芯片仿真设计验证方法的步骤。
本申请先确定出包含待验证场景类型的验证需求,从预设断言库中获取与所述待验证场景类型对应的目标断言语句,根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段,将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否为异常代码片段,并在监测到所述异常代码片段后确定出相应的异常位置。这样一来,本发明通过确定与验证需求中的待验证场景对应的代码类型,接着确定相应的待验证代码片段,将从预设+断言库中获取的目标断言语句插入至代码片段中以实现利用预设断言库进行芯片仿真设计中的断言验证的过程,此基于断言验证库的验证方法学能够有效解决传统验证方法定位错误位置不准确与效率低下的问题,增加验证的可观察性,能够在芯片设计周期中更早的发现设计缺陷,更准确的定位错误位置,提升芯片验证的效率,更高效的完成芯片仿真验证环节。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种芯片仿真设计验证方法流程图;
图2本申请提供的一种断言结构图;
图3为本申请提供的一种具体的芯片仿真设计验证方法流程图;
图4为本申请提供的一种具体的芯片仿真设计验证装置结构示意图;
图5为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在当前背景下,现有的验证方法是利用激励生成器根据特定的约束产生随机化或定向激励,然后通过验证环境将生成的激励施加给待验设计,在仿真完成后,通过自动比对或手工方式查看结果文件和波形,确保仿真结果与预期结果一致,缺少仿真验证的准确性。由上可见,在芯片仿真设计验证的过程中,如何避免出现定位错误的能力变低,从而导致验证效率和准确性降低的情况是本领域有待解决的问题。
参见图1所示,本发明实施例公+开了一种芯片仿真设计验证方法,具体可以包括:
步骤S11:确定出包含待验证场景类型的验证需求。
本实施例中,在确定出包含待验证场景类型的验证需求之前,还包括:获取所述目标仿真芯片的仿真设计代码,并确定所述仿真设计代码所能实现的不同场景类型下对应的不同代码功能;基于不同的所述代码功能确定不同的代码类型,并建立所述场景类型与所述代码类型之间的映射关系;基于不同的所述代码类型对所述仿真设计代码进行划分,以得到所述目标仿真芯片的所有仿真设计代码片段。
本实施例中,上述确定出包含待验证场景类型的验证需求,可以包括:从所述仿真设计代码所能实现的不同场景类型中确定出待验证场景类型,并基于所述待验证场景类型构建相应的验证需求;所述待验证场景类型包括对所述目标仿真芯片的电路功能进行验证的场景、对所述目标仿真芯片的接口功能进行验证的场景以及对所述目标仿真芯片的应用程序功能验证的场景中的任意一种或几种的组合。例如,如图2所示断言按照应用类型可划分为三种:结构断言、接口断言和应用断言,对所述目标仿真芯片的电路功能进行验证的场景一般用于检查内部电路设计的某些功能点,比如FIFO(First Input First Output,即先进先出队列)的溢出或空读情况的断言检查;对所述目标仿真芯片的接口功能进行验证的场景主要用于监视模块之间的接口行为,如CPU(Central Processing Unit,即中央处理器)接口不能同时出现读写非法状况;对所述目标仿真芯片的应用程序功能验证的场景一般用于证明某些功能结构中的死锁情况,例如当发出一个请求,必须有一个应答信号。
步骤S12:从预设断言库中获取与所述待验证场景类型对应的目标断言语句。
本实施例中,在从预设断言库中获取与所述待验证场景类型对应的目标断言语句之前,还包括:获取开放式验证库(Open Verification Library,即OVL),并按照不同的场景类型对所述开放式验证库中的各断言语句进行分类;对所述开放式验证库进行标注,以为所述开放式验证库中的各断言语句标注相应的所述场景类型。
相应的,所述从预设断言库中获+取与所述待验证场景类型对应的目标断言语句,包括:利用所述待验证场景类型对经过标注后的所述开放式验证库进行查询,以得到与所述待验证场景类型对应的目标断言语句。
例如,在获取开放式验证库之后,将开放式验证库中的功能结构的断言语句划分在一起,将总线协议的断言语句划分在一起,将FIFO的断言语句划分在一起,然后对开放式验证库中的断言语句进行标注,标明各断言语句的场景类型为功能结构或总线协议或FIFO,然后利用待验证场景类型,例如功能结构,从上述标注后的开放式验证库中查询关于功能结构的断言语句,并将查询到的断言语句确定为目标断言语句。
由此可见,按照不同的场景类型对所述开放式验证库中的各断言语句进行分类并对所述开放式验证库进行标注,能够有效提高验证效率,增加验证的可观察性,并通过断言库获取到对应的断言语句,有效减少断言调试时间,增加验证的准确性。
步骤S13:根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段。
本实施例中,在从预设断言库中获取与所述待验证场景类型对应的目标断言语句之后,需要根据所述待验证场景类型确定出相应的待验证代码类型,然后从目标仿真芯片的所有基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段。由此可见,通过在所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段,能够有效增加仿真设计验证的准确度,并提高芯片验证效率。
步骤S14:将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。
本步骤中完成的是根据断言语句的执行进行异常代码片段确定的过程,具体操作时可以表现为:将目标断言语句插入至所述待验证代码片段中,并执行所述目标断言语句,以得到相关+程序的执行结果,若执行结果与预期正确结果一致,则表明该验证需求对应的芯片功能无异常;若执行结果与预期正确结果不一致或出现报错或停止等异常现象,则表明该验证需求所对应的相芯片功能出现异常,则此时利用所述出现运行异常的目标断言语句的插入位置,确定出异常代码片段,再确定出代码异常片段中的异常位置。可以理解的是,由于代码中真正导致运行异常的错误位置不一定与目标断言语句插入位置一致,所以不能直接将目标断言语句的插入位置确定为异常位置。
本实施例中,在根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段之后,将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。由此可见,通过将目标断言语句插入待验证代码片段中,并利用目标断言语句监测所述待验证代码片段,有利于增加芯片验证效率,并能有效提高验证的准确性。
本实施例中,在获取所述目标仿真芯片的仿真设计代码之后,确定所述仿真设计代码所能实现的不同场景类型下对应的不同代码功能,基于不同的所述代码功能确定不同的代码类型,并建立所述场景类型与所述代码类型之间的映射关系,基于不同的所述代码类型对所述仿真设计代码进行划分,以得到所述目标仿真芯片的所有仿真设计代码片段,并从预设断言库中获取与所述待验证场景类型对应的目标断言语句,根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段,将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。可见,通过获取仿真设计代码确定不同场景下的不同代码功能,并根据代码功能确定出代码类型,形成场景类型与代码类型的映射关系,从而获取所有仿真设计代码片段,并确定出包含待验证场景类型的验证需求,能够有效提高芯片验证效率,通过断言库获取到对应的断言语句,有效减少断+言调试时间,将目标断言语句插入待验证代码片段中,利用目标断言语句监测所述待验证代码片段,能够有效增加芯片验证效率,并提高验证的准确性。
参见图3所示,本发明实施例公开了一种芯片仿真设计验证方法,具体可以包括:
步骤S21:确定出包含待验证场景类型的验证需求。
步骤S22:从预设断言库中获取与所述待验证场景类型对应的目标断言语句。
步骤S23:根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段。
步骤S24:将所述待验证代码片段中的目标位置作为待插入位置,并根据所述待插入位置将所述目标断言语句插入至所述待验证代码片段中的相应位置。
本实施例中,在根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段之后,需要将所述待验证代码片段中的目标位置作为待插入位置,并根据所述待插入位置将所述目标断言语句插入至所述待验证代码片段中的相应位置。由此也就说明了,当代码片段出现异常情况时,可以准确找到相应的目标断言语句。
在第一种具体实施方式中,可以通过利用预设位置输入接口获取所述待验证代码片段中的目标位置,然后将所述目标位置确定为待插入位置,并根据所述待插入位置将所述目标断言语句插入至所述待验证代码片段中的相应位置。由此可见,通过上述方法可以直接确定出待插入位置,有效提高验证效率,减少芯片仿真验证的时间。
在第二种具体实施方式中,可以+通过随机方式从所述待验证代码片段中随机确定出目标位置,并将所述目标位置确定为待插入位置;在这种实施方式中,可以由后台直接随机确定所述待验证代码段中的目标位置,提升了目标位置的确认速度,进而提升了验证的效率。
在本实施例的第三种具体的实施方式中,可以根据所述待验证代码片段对应的代码类型,从所述待验证代码片段的所有代码语句中确定出目标代码语句,并将所述目标代码语句在所述待验证代码片段中的位置确定目标位置,并将所述目标位置确定为待插入位置。在这种实施方式中,有一种可能的表现形式为:若验证需求为在目标仿真芯片的应用程序功能的场景下确定某一参数A是否成功创建,则基于此验证需求确定出所述代码类型为参数创建的代码类型,进而确定出参数A创建所对应的待验证代码片段,从预设断言库中选择出具备相应标注的目标断言语句,由于验证需求为确认此参数是否成功创建,则第一种可实施的验证方法可以通过以参数A的特定功能为切入点,从预设断言库中选择出具备参数A的特定功能的标注的目标断言语句,此时可以根据参数A的特定功能的功能特点将目标位置确定在合适的位置,例如:可以根据参数A的调用过程验证参数A是否调用成功的方法来验证参数A是否成功创建,则将参数A调用行确定为目标代码语句,将目标插入位置确定为代码中参数A调用行的后一行,若参数A的对应功能可以实现,则表示参数A成功创建;第二种可实施的验证方法可以通过验证创建参数A的相应语句是否成功实现的方法进行验证,从预设断言库中选择出标注为测试参数是否存在的目标断言语句,将代码中参数A的创建行确定为目标代码语句,并将代码中参数A的创建行之后的一行确定为待验证代码片段中的目标位置,并将所述目标断言语句插入至创建参数A的语句之后的某个位置,若所述目标断言语句的执行结果为参数A存在,则表示参数A成功创建。可以理解的是,所述根据目标代码语句的位置确定目标位置的方法有多种,包括但不限于所述将目标代码语句的后一行作为目标位置的方法。
步骤S25:利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后,确定出所述异常代码片段对应的所述目标断言语句。
可以理解的是,在进行目标断言语句的插入操作时,可能若只针对某一验证需求插入一条目标断言语句,此+时若监测结果为异常,则可以很快定位异常代码片段与异常位置;进一步的,在进行目标断言语句的插入操作时也可能会出现同时插入多条语句进行异常代码片段监测的情况,在这种情况下,若想准确定位代码中的错误源位置,则要先确定导致此次异常验证的异常问题是在哪些异常片段中出现的,以及确定出异常片段中出现异常问题的目标断言语句,进而结合验证需求、场景类型与代码功能确定出现异常的原因。
步骤S26:基于所述异常代码片段对应的所述目标断言语句的插入位置确定出所述异常代码片段的异常位置。
本实施例中,在通过确定出包含待验证场景类型的验证需求之后,从预设断言库中获取与所述待验证场景类型对应的目标断言语句,然后根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段,利用预设位置输入接口获取所述待验证代码片段中的目标位置,并将所述目标位置确定为待插入位置,或通过随机方式从所述待验证代码片段中随机确定出目标位置,并将所述目标位置确定为待插入位置,或根据所述待验证代码片段对应的代码类型,从所述待验证代码片段的所有代码语句中确定出目标代码语句,并将所述目标代码语句在所述待验证代码片段中的位置确定为待插入位置,利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后,确定出所述异常代码片段对应的所述目标断言语句,基于所述异常代码片段对应的所述目标断言语句的插入位置确定出所述异常代码片段的异常位置。由此可见,通过从预设断言库中获取与所述待验证场景类型对应的目标断言语句,能够增加验证的可观察性并有效减少断言调试时间,从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段,能够有效提高验证效率,利用预设位置输入接口或随机方式或根据所述待验证代码片段对应的代码类型,从所述待验证代码片段的所有代码语句中确定出目标代码语句,并将所述目标代码语句在所述待验证代码片段中的位置确定为待插入位置,能增加验证的准确性并增加验证效率。
参见图4所示,本申请实施例公+开了一种芯片仿真设计验证装置,具体可以包括:
需求确定模块11,用于确定出包含待验证场景类型的验证需求;
语句获取模块12,用于从预设断言库中获取与所述待验证场景类型对应的目标断言语句;
代码片段确定模块13,用于根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段;
仿真验证模块14,用于将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。
本实施例中,在确定出包含待验证场景类型的验证需求之后,从预设断言库中获取与所述待验证场景类型对应的目标断言语句,根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段,将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。由此可见,利用从预设断言库中获取与所述待验证场景类型对应的目标断言语句,从而有效增加验证的可观察性,减少断言调试时间,通过将所述目标断言语句插入所述待验证代码片段,能够有效增加验证的准确性,利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,能够快速定位异常并提高验证效率。
在一些具体实施例中,所述需求确定模块11,具体可以包括:
代码功能确定模块,用于获取所述目标仿真芯片的仿真设计代码,并确定所述仿真设计代码所能实现的不同场景类型下对应的不同代码功能;
代码类型确定模块,用于基于不同的所述代码功能确定不同的代码类型,并建立所述场景类型与所述代码类型+之间的映射关系;
代码片段确定模块,用于基于不同的所述代码类型对所述仿真设计代码进行划分,以得到所述目标仿真芯片的所有仿真设计代码片段。
在一些具体实施例中,所述需求确定模块11,具体可以包括:
场景类型确定模块,用于从所述仿真设计代码所能实现的不同场景类型中确定出待验证场景类型,并基于所述待验证场景类型构建相应的验证需求;所述待验证场景类型包括对所述目标仿真芯片的电路功能进行验证的场景、对所述目标仿真芯片的接口功能进行验证的场景以及对所述目标仿真芯片的应用程序功能验证的场景中的任意一种或几种的组合。
在一些具体实施例中,所述仿真验证模块14,具体可以包括:
插入位置确定模块,用于将所述待验证代码片段中的目标位置作为待插入位置,并根据所述待插入位置将所述目标断言语句插入至所述待验证代码片段中的相应位置;
在一些具体实施例中,所述仿真验证模块14,具体可以包括:
第一位置确定单元,用于利用预设位置输入接口获取所述待验证代码片段中的目标位置,并将所述目标位置确定为待插入位置;
第二位置确定单元,用于通过随机方式从所述待验证代码片段中随机确定出目标位置,并将所述目标位置确定为待插入位置;
第三位置确定单元,用于根据所述待验证代码片段对应的代码类型,从所述待验证代码片段的所有代码语句中确定出目标代码语句,并将所述目标代码语句在所述待验证代码片段中的位置确定为待插入位置。
在一些具体实施例中,所述仿真验证模块14,具体可以包括:
异常语句确定模块,用于在监测到所述异常代码片段后,确定出所述异常代码片段对应的所述目标断言语句;
异常位置确定模块,用于基于所述异常代码片段对应的所述目标断言语句的插入位置确定出所述异常代码片段的异常位置。
图5为本申请实施例提供的一种电子设备的结构示意图。该芯片仿真设计验证设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、传感器25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所+述处理器21加载并执行,以实现前述任一实施例公开的由芯片仿真设计验证设备执行的芯片仿真设计验证方法中的相关步骤。
本实施例中,电源23用于为芯片仿真设计验证设备20上的各硬件设备提供工作电压;通信接口24能够为芯片仿真设计验证设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;传感器25,用于获取传感器数据,其具体的传感器类型包括但不限于速度传感器、温度传感器、红外传感器、声音传感器和图像传感器等。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制芯片仿真设计验证设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由芯片仿真设计验证设备20执行的芯片仿真设计验证方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括芯片仿真设计验证设备接收到的由外部设备传输进来的数据,也可以包括由自身传感器25采集到的数据等。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或+者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种芯片仿真设计验证方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种芯片仿真设计验证方法,其特征在于,包括:
确定出包含待验证场景类型的验证需求;
从预设断言库中获取与所述待验证场景类型对应的目标断言语句;
根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段;
将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。
2.根据权利要求1所述的芯片仿真设计验证方法,其特征在于,所述确定出包含待验证场景类型的验证需求之前,还包括:
获取所述目标仿真芯片的仿真设计代码,并确定所述仿真设计代码所能实现的不同场景类型下对应的不同代码功能;
基于不同的所述代码功能确定不同的代码类型,并建立所述场景类型与所述代码类型之间的映射关系;
基于不同的所述代码类型对所述仿真设计代码进行划分,以得到所述目标仿真芯片的所有仿真设计代码片段。
3.根据权利要求1所述的芯片仿真设计验证方法,其特征在于,所述确定出包含待验证场景类型的验证需求,包括:
从所述仿真设计代码所能实现的不同场景类型中确定出待验证场景类型,并基于所述待验证场景类型构建相应的验证需求;所述待验证场景类型包括对所述目标仿真芯片的电路功能进行验证的场景、对所述目标仿真芯片的接口功能进行验证的场景以及对所述目标仿真芯片的应用程序功能进行验证的场景中的任意一种或几种的组合。
4.根据权利要求1所述的芯片仿真设计验证方法,其特征在于,所述将所述目标断言语句插入所述待验证代码片段,包括:
将所述待验证代码片段中的目标位置作为待插入位置;
根据所述待插入位置将所述目标断言语句插入至所述待验证代码片段中的相应位置。
5.根据权利要求4所述的芯片仿真设计验证方法,其特征在于,所述将所述待验证代码片段中的目标位置作为待插入位置,包括:
利用预设位置输入接口获取所述待验证代码片段中的目标位置,并将所述目标位置确定为待插入位置;
或,通过随机方式从所述待验证代码片段中随机确定出目标位置,并将所述目标位置确定为待插入位置;
或,根据所述待验证代码片段对应的代码类型,从所述待验证代码片段的所有代码语句中确定出目标代码语句,并将所述目标代码语句在所述待验证代码片段中的位置确定为待插入位置。
6.根据权利要求4所述的芯片仿真设计验证方法,其特征在于,所述在监测到所述异常代码片段后确定出相应的异常位置,包括:
在监测到所述异常代码片段后,确定出所述异常代码片段对应的所述目标断言语句;
基于所述异常代码片段对应的所述目标断言语句的插入位置确定出所述异常代码片段的异常位置。
7.根据权利要求1至6任一项所述的芯片仿真设计验证方法,其特征在于,所述从预设断言库中获取与所述待验证场景类型对应的目标断言语句之前,还包括:
获取开放式验证库,并按照不同的场景类型对所述开放式验证库中的各断言语句进行分类;
对所述开放式验证库进行标注,以为所述开放式验证库中的各断言语句标注相应的所述场景类型;
相应的,所述从预设断言库中获取与所述待验证场景类型对应的目标断言语句,包括:
利用所述待验证场景类型对经过标注后的所述开放式验证库进行查询,以得到与所述待验证场景类型对应的目标断言语句。
8.一种芯片仿真设计验证装置,其特征在于,包括:
需求确定模块,用于确定出包含待验证场景类型的验证需求;
语句获取模块,用于从预设断言库中获取与所述待验证场景类型对应的目标断言语句;
代码片段确定模块,用于根据所述待验证场景类型确定出相应的待验证代码类型,并从目标仿真芯片的所有仿真设计代码片段中筛选出与所述待验证代码类型对应的仿真设计代码片段作为待验证代码片段;所述仿真设计代码片段为预先基于不同的代码类型对所述目标仿真芯片的仿真设计代码进行划分后得到的代码片段;
仿真验证模块,用于将所述目标断言语句插入所述待验证代码片段,以便利用所述目标断言语句监测所述待验证代码片段是否存在为异常代码片段,并在监测到所述异常代码片段后基于监测结果确定出相应的异常位置。
9.一种芯片仿真设计验证设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的芯片仿真设计验证方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的芯片仿真设计验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210181576.7A CN114564903A (zh) | 2022-02-25 | 2022-02-25 | 一种芯片仿真设计验证方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210181576.7A CN114564903A (zh) | 2022-02-25 | 2022-02-25 | 一种芯片仿真设计验证方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564903A true CN114564903A (zh) | 2022-05-31 |
Family
ID=81714914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210181576.7A Pending CN114564903A (zh) | 2022-02-25 | 2022-02-25 | 一种芯片仿真设计验证方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564903A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472670A (zh) * | 2023-11-09 | 2024-01-30 | 紫光同芯微电子有限公司 | 一种芯片验证中断言验证管理的方法、装置、系统和介质 |
-
2022
- 2022-02-25 CN CN202210181576.7A patent/CN114564903A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472670A (zh) * | 2023-11-09 | 2024-01-30 | 紫光同芯微电子有限公司 | 一种芯片验证中断言验证管理的方法、装置、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766236B (zh) | 测试任务自动化管理方法、装置、设备及存储介质 | |
CN113114680B (zh) | 用于文件上传漏洞的检测方法和检测装置 | |
US20130326276A1 (en) | Method and apparatus for correlating input and output messages of system under test | |
CN106681877B (zh) | 芯片调试系统及方法与系统芯片 | |
CN112286750A (zh) | 一种gpio验证方法、装置、电子设备和介质 | |
CN114564903A (zh) | 一种芯片仿真设计验证方法、装置、设备及介质 | |
CN111352829A (zh) | 一种内存泄漏的测试方法、装置及设备 | |
CN111736951A (zh) | 自动驾驶的仿真方法、计算机设备、及存储介质 | |
CN112685316A (zh) | 代码执行路径的获取方法、装置、计算机设备及存储介质 | |
CN111124828B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112988578A (zh) | 一种自动化测试方法和装置 | |
CN113821898A (zh) | 芯片子系统的随机验证方法、装置、设备和存储介质 | |
JP2008135008A (ja) | プログラムモジュール検証方式 | |
CN115840707A (zh) | 一种刷写测试方法、装置及介质 | |
CN115756935A (zh) | 嵌入式软件系统的异常故障定位方法、装置及设备 | |
CN110988661B (zh) | 一种fpga原型验证开发板时分分析系统、方法、介质及终端 | |
CN114416596A (zh) | 一种测试应用的方法、装置、计算机设备及存储介质 | |
CN113672917A (zh) | 恶意代码检测方法、装置、存储介质及电子设备 | |
CN110096888B (zh) | 一种加快验证及分析smm安全隐患的方法及系统 | |
CN111090575B (zh) | 测试方法 | |
CN112346994A (zh) | 一种测试信息关联方法、装置、计算机设备及存储介质 | |
CN110955595A (zh) | 问题修复方法、装置、电子设备及计算机可读存储介质 | |
CN112015640B (zh) | 一种软件测试方法及系统 | |
CN116610557B (zh) | 动作绑定信息排错方法、装置、存储介质及电子设备 | |
CN115616387B (zh) | 一种基于芯片的控制信号校准方法、系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |