CN112597718A - 集成电路设计的验证方法、验证装置以及存储介质 - Google Patents
集成电路设计的验证方法、验证装置以及存储介质 Download PDFInfo
- Publication number
- CN112597718A CN112597718A CN202011514297.5A CN202011514297A CN112597718A CN 112597718 A CN112597718 A CN 112597718A CN 202011514297 A CN202011514297 A CN 202011514297A CN 112597718 A CN112597718 A CN 112597718A
- Authority
- CN
- China
- Prior art keywords
- integrated circuit
- circuit design
- test case
- test cases
- test
- 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.)
- Granted
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
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)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种集成电路设计的验证方法、验证装置及存储介质。该验证方法包括根据使用测试用例组对该集成电路设计进行仿真得到的功能覆盖率报告确定该测试用例组中的重复测试用例。该集成电路设计的预期功能对应多个功能覆盖单元,该测试用例组包括多个测试用例,该多个测试用例的每个覆盖该多个功能覆盖单元中的至少一个,该重复测试用例所覆盖的功能覆盖单元被其它测试用例完全覆盖。该验证方法可以有效提高验证效率。
Description
技术领域
本公开的实施例涉及一种集成电路设计的验证方法、验证装置以及存储介质。
背景技术
在集成电路的设计中,需要用硬件描述语言(也即硬件编程语言)将硬件电路形成为寄存器传输级逻辑代码,使用验证工具对该逻辑代码进行仿真验证后再通过综合工具将逻辑代码转换为门级电路网表,然后再使用自动布局布线工具将网表转换为要实现的具体电路布线结构。随着集成电路技术的不断发展,芯片的规模和复杂度在不断提升,验证时间也越来越长,如何提高验证效率、缩短验证时长是本领域关注的问题。
发明内容
本公开至少一实施例提供一种集成电路设计的验证方法,包括:根据使用测试用例组对所述集成电路设计进行仿真得到的功能覆盖率报告确定所述测试用例组中的重复测试用例。所述集成电路设计的预期功能对应多个功能覆盖单元,所述测试用例组包括多个测试用例,所述多个测试用例的每个覆盖所述多个功能覆盖单元中的至少一个,所述重复测试用例所覆盖的功能覆盖单元被其它测试用例完全覆盖。
在一些示例中,所述验证方法还包括:将所述重复测试用例从所述测试用例组中移除以对所述测试用例组进行优化。
在一些示例中,所述验证方法还包括:将优化后的测试用例组用于对所述集成电路设计进行仿真。
在一些示例中,所述功能覆盖单元为所述集成电路设计的预期功能的最小功能覆盖单元。
在一些示例中,根据使用测试用例组对所述集成电路设计进行仿真得到的功能覆盖率报告确定所述测试用例组中的重复测试用例包括:从所述功能覆盖率报告中提取所述多个测试用例中每个所覆盖的功能覆盖单元信息,以及对所述多个功能覆盖单元中被多个测试用例所覆盖的功能覆盖单元进行标记。
在一些示例中,所述验证方法还包括:根据所述功能覆盖率报告确定所述集成电路设计的预期功能对应的多个功能覆盖单元是否被所述测试用例组完全覆盖。
在一些示例中,所述验证方法还包括:当所述集成电路设计的预期功能对应的多个功能覆盖单元未被所述测试用例组完全覆盖,向所述测试用例组中添加新的测试用例以对所述集成电路设计进行仿真。
在一些示例中,在所述仿真中使用所述测试用例组触发所述集成电路设计产生至少一个功能行为,将所述至少一个功能行为与所述集成电路设计的预期功能进行对比以生成所述功能覆盖率报告,所述功能覆盖率报告显示出所述集成电路设计的预期功能对应的多个功能覆盖单元被所述测试用例组覆盖的情况。
在一些示例中,所述集成电路设计使用硬件编程语言实现。
本公开至少一实施例还提供一种集成电路设计的验证装置,包括处理器,以及存储器。所述存储器中存储有计算机可执行代码,当所述计算机可执行代码被执行时,执行上述任一实施例提供的验证方法。
本公开至少一实施例还提供一种计算机可读存储介质,其上存储有计算机可执行代码,所述计算机可执行代码在被执行时,执行上述任一实施例提供的验证方法。
本公开至少一实施例还提供一种集成电路设计的验证装置,包括重复测试用例确定单元,所述重复测试用例确定单元配置为根据使用测试用例组对所述集成电路设计进行仿真得到的功能覆盖率报告确定所述测试用例组中的重复测试用例,其中,所述集成电路设计的预期功能对应多个功能覆盖单元,所述测试用例组包括多个测试用例,所述多个测试用例的每个覆盖所述多个功能覆盖单元中的至少一个,所述重复测试用例所覆盖的功能覆盖单元被其它测试用例完全覆盖。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种集成电路设计的验证过程示意图;
图2为一种功能覆盖率报告的示意图;
图3A-3C示出了两类测试用例对功能覆盖单元的几种覆盖关系示意图;
图4为本公开至少一实施例提供的验证方法的流程示意图;
图5A为本公开至少一实施例提供的集成电路设计的验证过程示意图;
图5B示出了图5A中测试用例组与功能覆盖单元之间覆盖关系;
图6为本公开至少一实施例提供的验证装置的示意图;
图7为本公开至少一实施例提供的一种存储介质的示意图;以及
图8为本公开另一些实施例提供的验证装置的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
在集成电路设计的验证中,验证工程师编写测试用例(test case)来对集成电路设计进行仿真以验证集成电路设计的功能是否正确,也即是否与预期功能一致。当仿真通过时会生成功能覆盖率报告(functional coverage report)显示该集成电路设计的预期功能是否完全被覆盖,也即该集成电路设计是否具有所有的预期功能。例如,可以用功能覆盖率(functional coverage)描述是否该集成电路设计的所有的预期功能在验证中都得到了验证(也即覆盖)。功能覆盖率可以用于指导验证设计师对测试用例的构建。
例如,功能覆盖率主要关注设计的输入、输出和内部状态。对于输入,它检测数据端的输入和命令组合类型,以及控制信号与数据传输的组合情况;对于输出,它检测是否有完整的数据传输类别,以及各种情况的反馈时序;对于内部设计,需要检查的信号与验证计划中需要覆盖的功能点相对应,通过对信号的单一覆盖、交叉覆盖或时序覆盖来检查功能是否被触发、以及执行是否正确。
例如,对于集成电路设计中不同层级的模块的预期功能,可以在验证中用不同层级的功能覆盖单元进行覆盖。例如,集成电路设计的预期功能对应的功能覆盖单元可以是功能覆盖组(covergroup)、功能覆盖点(coverpoint)和功能覆盖仓(也称bin)。
例如,一个功能覆盖组可以包括至少一个功能覆盖点;一个功能覆盖点可以包括至少一个功能覆盖仓。例如,功能覆盖仓是集成电路设计的预期功能的最小功能覆盖单元,也即颗粒度最小的功能覆盖单元。
例如,功能覆盖组封装了一个功能模块(例如寄存器)的一个功能(例如读写功能),功能覆盖点封装了对应于该功能的一个端口(例如读出端口),覆盖仓定义了该端口的一个有效值。例如,在验证过程中,测试用例通过测试激励触发集成电路设计产生至少一个功能行为,该功能行为还可以进一步触发更多的功能行为。例如,如果这些触发的功能行为中包括某个寄存器的读行为,那么这个测试用例就覆盖到了这个寄存器的读功能所对应的功能覆盖组;例如,该寄存器的读出端口为4位,在该读行为中,寄存器的读出数据是1111、1110和1101,那么该测试用例所覆盖的功能覆盖仓为三个。当测试用例覆盖了该集成电路设计的预期功能所对应的功能覆盖单元,相应地,该预期功能也就得到了该测试用例的覆盖,也即该预期功能得到了该测试用例的验证。
例如,被设计、验证的集成电路(例如SOC等)的多个功能之间不是完全独立的,而是协同工作的。为了实现一个完整的功能,测试用例需要触发一组单一的功能,覆盖一组(多个)功能覆盖组。随着测试用例数量的增加,不同的测试用例之间在功能覆盖上必然存在某种重叠,导致部分测试用例的重复冗余。发明人注意到,为了提高验证的效率,需要减少这种重叠。
图1为一种集成电路设计的验证过程的示意图。如图1所示,例如,验证平台是使用SystemVerilog(SV)语言搭建的,测试用例是在C域(使用C语言或C++语言)编写的。为了方便交互,可以在验证平台中定义直接编程接口(Direct Programming Interface,DPI)函数。测试用例通过事务级建模(Transaction Level Modeling,TLM)实现触发了设计中的集成电路的各种功能行为。例如,集成电路设计用硬件编程语言实现,例如该硬件编程语言可以是Verilog或者SystemVerilog。例如,该验证平台为UVM验证平台。
例如,该集成电路设计可以应用于处理器、单片机、数字信号处理(DigitalSignal Process,DSP)、专用集成电路(Application Specific Integrated Circuits,ASIC)等器件中的一种或多种。处理器例如可以为中央处理单元(CPU)、图像处理单元(GPU)或张量处理单元(TPU)等。
例如,如图1所示,设计中的集成电路具有多个预期功能,包括功能1、功能2……功能T等,测试用例1覆盖了功能1、功能2和功能T,测试用例2覆盖了功能1和功能2,因此测试用例1和测试用例2所覆盖的功能存在重叠,也即,测试用例1和测试用例2各自覆盖的功能覆盖单元存在重叠。
例如,在对集成电路设计的验证中,通过运行测试用例以对集成电路设计进行仿真测试,当仿真失败时对集成电路设计进行调试直至仿真通过,从而使得集成电路设计的行为与预期相符,并生成功能覆盖率报告。如果该功能覆盖率报告显示集成电路设计的预期功能没有被完全覆盖,可以添加新的测试用例重复上述仿真过程,以覆盖该集成电路设计的更多的预期功能,直至所有预期功能均被测试用例覆盖。
例如,使用回归技术,所涉及的测试用例会被反复运行。例如,在集成电路的设计过程中,在逻辑结构的基础上会对逻辑功能进行逐步完善优化,设计中的逻辑模块的数量会逐步增加,在此过程中需要不断对优化后的设计进行大量仿真,从而这些测试用例会被反复运行。当测试用例的数量变得巨大时,运行回归所花费的时间也变得相当长,测试用例之间的功能重叠也变得更严重,导致许多测试用例变得多余,并降低了验证效率。
本公开至少一实施例提供一种集成电路设计的验证方法,通过在测试用例组中的多个测试用例中筛查出重复的测试用例以用于对测试用例组进行优化,有助于提高验证效率和缩短验证时间。
本公开至少一实施了提供的集成电路设计的验证方法包括:根据使用测试用例组对该集成电路设计进行仿真得到的功能覆盖率报告确定该测试用例组中的重复测试用例。该集成电路设计的预期功能对应多个功能覆盖单元,该测试用例组包括多个测试用例,该多个测试用例的每个覆盖该多个功能覆盖单元中的至少一个,该重复测试用例所覆盖的功能覆盖单元被其它测试用例完全覆盖。例如,这里的重复测试用例可以是该测试用例组中的全部或部分重复测试用例,例如可以是一个或多个。
例如,该功能覆盖率报告由运行测试用例组对集成电路设计仿真并通过仿真得到。例如,可以通过使用仿真工具(如Synopsys的VCS和Cadence的NCSIM)对集成电路设计进行仿真。例如,在该仿真过程中,使用该测试用例组触发所述集成电路设计产生至少一个功能行为,将该至少一个功能行为与所述集成电路设计的预期功能进行对比以生成该功能覆盖率报告,该功能覆盖率报告显示出该集成电路设计的预期功能对应的功能覆盖单元被该测试用例组覆盖的情况,也即反映了该集成电路设计的预期功能被覆盖的情况。
例如,当测试用例触发该集成电路设计产生的功能行为与该集成电路设计的某个预期功能相符,则该测试用例覆盖了该预期功能所对应的功能覆盖单元。例如,每个功能覆盖单元被至少一个测试用例覆盖。
例如,该测试用例组中的多个测试用例分为两类:重复测试用例和非重复测试用例。例如,该重复测试用例的数目为一个或多个。例如,该重复测试用例所覆盖的功能覆盖单元均被非重复测试用例完全覆盖;例如,该非重复测试用例所覆盖的功能覆盖单元中存在至少一个未被其它测试用例覆盖的功能覆盖单元。
例如,每个重复测试用例和非重复测试用例均覆盖多个功能覆盖单元;例如,该功能覆盖单元可以是功能覆盖组、功能覆盖点或功能覆盖仓或者是以上任意组合。例如,该功能覆盖单元为该集成电路设计的预期功能的最小功能覆盖单元,也即功能覆盖仓(bin)。
图2示出了一种功能覆盖率报告的部分示意图,该功能覆盖率报告显示出在仿真过程中该集成电路设计的预期功能被该测试用例组覆盖的情况。
例如,该功能覆盖率报告显示出了该集成电路设计的预期功能对应的各功能覆盖单元被该测试用例组覆盖的次数,当次数大于0则表示该功能覆盖单元得到了覆盖。如图2所示,例如,该集成电路设计的预期功能对应5个功能覆盖单元:walk_zero0、walk_zero1、walk_zero2、walk_zero3以及all_one。该功能覆盖率报告显示出仅功能覆盖单元walk_zero0得到了该测试用例组中的测试用例的覆盖并且被覆盖了5468次,而其它的4个功能覆盖单元walk_zero1、walk_zero2、walk_zero3以及all_one的覆盖次数是0,也即均未被测试用例覆盖,该测试用例组的功能覆盖率为20%。
例如,可以从该功能覆盖率报告中提取出该测试用例组中的每个测试所覆盖的功能覆盖单元。
图3A-3C示出了该两类测试用例对功能覆盖单元的几种覆盖关系示意图。
如图3A所示,每个重复测试用例所覆盖的多个功能覆盖单元bin可以被一个非重复测试用例完全覆盖。
在另一些示例中,如图3B所示,该重复测试用例所覆盖的多个功能覆盖单元bin也可以被多个非重复测试用例共同覆盖。
在另一些示例中,如图3C所示,该测试用例组包括6个测试用例:测试用例1-测试用例6。每个测试用例均覆盖多个功能覆盖单元bin,其中,测试用例5所覆盖的4个功能覆盖单元bin被其它测试用例共同覆盖,例如被测试用例2和测试用例6共同覆盖,或者说被测试用例4和测试用例6共同覆盖,因此测试用例5为重复测试用例。测试用例1、2、3、4和6均覆盖了未被其它测试用例覆盖的功能覆盖单元bin,因此测试用例1、2、3、4和6均为非重复测试用例。
例如,根据使用测试用例组对集成电路设计进行仿真得到的功能覆盖率报告确定该测试用例组所中的重复测试用例包括:从该功能覆盖率报告中提取多个测试用例中每个所覆盖的功能覆盖单元信息并对所述多个功能覆盖单元中被多个测试用例所覆盖的功能覆盖单元进行标记。
例如,可以从该功能覆盖率报告中提取每个测试用例所覆盖的功能覆盖单元信息并建立数据库,例如,该数据库中包括每个测试用例的名字以及每个测试用例所覆盖的功能覆盖单元的名字等。
例如,该数据库可以采用哈希表的形式构建,但是本公开的实施例不限于此。例如,可以将该测试用例的名字和该测试用例所覆盖的功能覆盖单元的名字分别作为该哈希表的关键字和值,在查找时,可以将该测试用例的名字作为索引迅速获得该测试用例所覆盖的功能覆盖单元的信息。
例如,可以根据该数据库,比较多个测试用例所覆盖的功能覆盖单元,并标记出被多个测试用例覆盖的功能覆盖单元,例如标记为重复功能覆盖单元。
例如,可以检查每个测试用例,当该测试用例中所覆盖的所有功能覆盖单元均标记为重复功能覆盖单元时,可以标记该测试用例为准重复测试用例。
例如,由于多个准重复测试用例所覆盖的功能覆盖单元可能存在重叠,导致准重复测试用例中可能存在一些非重复测试用例。
例如,可以对该准重复测试用例进行进一步分析以确定该测试用例组中的重复测试用例。
例如,可以将得到的准重复测试用例的信息提供给工程师参考分析从而确定重复测试用例。
在另一些示例中,可以循环执行进行对重复功能覆盖单元的标记动作和对重复测试用例的标记动作筛查出该测试用例组中所有的重复测试用例。
例如,基于从功能覆盖率报告所提取出的每个测试用例及其覆盖的功能覆盖单元信息,比较多个测试用例所覆盖的功能覆盖单元,并标记出被多个测试用例覆盖的重复功能覆盖单元。然后,检查每个测试用例,当该测试用例中所覆盖的所有功能覆盖单元均标记为重复功能覆盖单元时,将该测试用例标记为准重复测试用例;接着,对准重复测试用例逐个标记为重复测试用例并进行试移除处理,并在每次试移除处理后重复该重复功能覆盖单元的标记工作和该重复测试用例的标记工作,从而标记出所有的重复测试用例。
在另一些示例中,该验证方法包括:根据使用测试用例组对该集成电路设计进行仿真得到的功能覆盖率报告确定该测试用例组所包括的M个测试用例中是否存在N个重复测试用例。该集成电路设计的预期功能对应多个功能覆盖单元,该多个功能覆盖单元的每个被该M个测试用例中的至少一个覆盖;该N个重复测试用例中的每个所覆盖的功能覆盖单元均被其余(M-N)个测试用例完全覆盖,M和N均为正整数,且N小于M。
例如,该验证方法还包括:将该重复测试用例从测试用例组中移除以对测试用例组进行优化。
例如,该验证方法还包括:将优化后的测试用例组用于对所述集成电路设计进行仿真。例如,随着集成电路设计在设计过程中不断被完善优化,测试用例组会被反复运行。将测试用例组进行上述优化处理可以有效提高验证效率。
例如,该验证方法还包括:根据该功能覆盖率报告确定该集成电路设计的预期功能对应的多个功能覆盖单元是否被所述测试用例组完全覆盖,也即功能覆盖率是否为100%。
例如,如图2所示,当该功能覆盖率报告显示出该集成电路设计的预期功能对应的多个功能覆盖单元中存在未被该测试用例组覆盖的功能覆盖单元时,即表示该集成电路设计的预期功能未被该测试用例组完全覆盖(验证),可以向该测试用例组中添加新的测试用例以对该集成电路设计进行后续仿真。
图4示出了本公开至少一实施例提供的一种集成电路设计的验证方法。如图4所示,该验证方法包括:运行测试用例组以对集成电路设计进行仿真测试,当仿真失败时对集成电路设计进行调试直至仿真通过,从而使得集成电路设计的行为与预期相符,并生成功能覆盖率报告;然后确定该测试用例组中是否存在重复测试用例,当存在重复测试用例时从该测试用例组中移除该重复测试用例,再查看该功能覆盖率报告确定该集成电路设计的所有预期功能是否被完全覆盖,如果该集成电路设计的所有预期功能显示被完全覆盖,则验证结束;如果该集成电路设计的所有预期功能显示没有被完全覆盖,则添加新的测试用例重复上述仿真过程,以覆盖该集成电路设计的更多的预期功能,直至所有预期功能均被测试用例覆盖;当测试用例组中不存在重复测试用例时,可以直接查看该功能覆盖率报告确定该集成电路设计的所有预期功能是否被完全覆盖并进行后续步骤。
确定该测试用例组中是否存在重复测试用例的具体步骤可以参考前述实施例的描述,此处不再赘述。
图5A示出了本公开至少一实施例提供的集成电路设计的验证过程的示意图。
如图5A所示,该集成电路设计的测试用例组包括43个测试用例:case_1-case_43,该集成电路设计对应226个功能覆盖组:cg_1-cg_226。例如,该功能覆盖组cg_1-cg_226已经被实例化。
图5B示出了该43个测试用例与该226个功能覆盖组中每个功能覆盖组中的功能覆盖仓的覆盖关系。如图5B所示,例如,功能覆盖组cg_1包括多个功能覆盖仓:cg_1_bin1、cg_1_bin2、cg_1_bin3、cg_1_bin4、cg_1_bin5等,功能覆盖组cg_2包括多个功能覆盖仓:cg_2_bin1、cg_2_bin2、cg_2_bin3、cg_2_bin4、cg_2_bin5等,等等。图5B中用箭头分别示出了各测试用例及其覆盖的功能覆盖仓之间的覆盖关系。
如下表1示出了根据本公开至少一实施例提供的验证方法得到的该测试用例组中所含的重复测试用例列表,该表中示出了每个重复测试用例所覆盖的所有功能覆盖单元以及与该重复测试用例存在功能覆盖单元交叠的交叠测试用例。
如表1所示,43个测试用例中存在5个重复测试用例:case_16、case_23、case_33、case_35和case_40。
表1
此外,本公开至少一实施例还提供一种验证装置,适用如上任一实施例提供的验证方法。
图6为本公开至少一实施例提供的一种验证装置的结构示意图。该验证装置400可以是个人电脑、笔记本电脑、平板电脑、移动电话等终端设备也可以是工作站、服务器、云服务等。需要注意的是,图6示出的该验证装置400仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图6所示,验证装置400可以包括处理器410(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)420中的程序或者从存储装置480加载到随机访问存储器(RAM)430中的程序而执行各种适当的动作和处理。在RAM430中,还存储有验证装置400操作所需的各种程序和数据。处理器410、ROM 420以及RAM 430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
通常,以下装置可以连接至I/O接口450:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置460;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置470;包括例如磁带、硬盘等的存储装置480;以及通信装置490。通信装置490可以允许验证装置400与其他电子设备进行无线或有线通信以交换数据。虽然图6示出了包括各种装置的验证装置400,但应理解的是,并不要求实施或具备所有示出的装置,验证装置400可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述验证方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述验证方法的程序代码。
在这样的实施例中,该计算机程序可以通过通信装置490从网络上被下载和安装,或者从存储装置480安装,或者从ROM420安装。在该计算机程序被处理器410执行时,可以执行本公开实施例提供的验证方法中限定的功能。
本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机程序可执行代码(例如计算机可执行指令),当该非暂时性计算机程序可执行代码由计算机执行时可以实现本公开任一实施例所述的验证方法;或者,当该非暂时性计算机程序可执行代码由计算机执行时可以实现本公开任一实施例所述的验证方法。
图7本公开一实施例提供的一种存储介质的示意图。如图7示,存储介质700非暂时性地存储有计算机程序可执行代码701。例如,当计算机程序可执行代码701由计算机执行时可以执行根据上文所述的验证方法中的一个或多个步骤。
例如,该存储介质700可以应用于上述验证装置400中。例如,存储介质700可以为图6示的验证装置400中的存储器420。例如,关于存储介质700的相关说明可以参考图6示的验证装置400中的存储器420的相应描述,此处不再赘述。
图8为本公开另一些实施例提供的一种集成电路设计的验证装置,适用于上述任一实施例提供的验证方法。如图8所示,该验证装置600包括重复测试用例确定单元610,该重复测试用例确定单元610配置为根据使用测试用例组对该集成电路设计进行仿真得到的功能覆盖率报告确定该测试用例组中存在的重复测试用例。
例如,该验证装置600还包括重复测试用例移除单元620,配置为将该重复测试用例从该测试用例组移除以对该测试用例组进行优化。
例如,该验证装置600还包括仿真单元630,配置为将该优化后的测试用例组用于对该集成电路设计进行仿真。
例如,上述重复测试用例确定单元610、重复测试用例移除单元620、仿真单元630等各单元可以为硬件、软件、固件以及它们的任意可行的组合。例如,上述各个单元可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。
Claims (12)
1.一种集成电路设计的验证方法,包括:
根据使用测试用例组对所述集成电路设计进行仿真得到的功能覆盖率报告确定所述测试用例组中的重复测试用例,
其中,所述集成电路设计的预期功能对应多个功能覆盖单元,所述测试用例组包括多个测试用例,所述多个测试用例的每个覆盖所述多个功能覆盖单元中的至少一个,所述重复测试用例所覆盖的功能覆盖单元被其它测试用例完全覆盖。
2.如权利要求1所述的验证方法,还包括:将所述重复测试用例从所述测试用例组中移除以对所述测试用例组进行优化。
3.如权利要求2所述的验证方法,还包括:将优化后的测试用例组用于对所述集成电路设计进行仿真。
4.如权利要求1所述的验证方法,其中,所述功能覆盖单元为所述集成电路设计的预期功能的最小功能覆盖单元。
5.如权利要求1所述的验证方法,其中,根据使用测试用例组对所述集成电路设计进行仿真得到的功能覆盖率报告确定所述测试用例组中的重复测试用例包括:
从所述功能覆盖率报告中提取所述多个测试用例中每个所覆盖的功能覆盖单元信息,以及
对所述多个功能覆盖单元中被多个测试用例所覆盖的功能覆盖单元进行标记。
6.如权利要求1所述的验证方法,还包括:
根据所述功能覆盖率报告确定所述集成电路设计的预期功能对应的多个功能覆盖单元是否被所述测试用例组完全覆盖。
7.如权利要求6所述的验证方法,还包括:
当所述集成电路设计的预期功能对应的多个功能覆盖单元未被所述测试用例组完全覆盖,向所述测试用例组中添加新的测试用例以对所述集成电路设计进行仿真。
8.如权利要求1所述的验证方法,其中,在所述仿真中使用所述测试用例组触发所述集成电路设计产生至少一个功能行为,将所述至少一个功能行为与所述集成电路设计的预期功能进行对比以生成所述功能覆盖率报告,所述功能覆盖率报告显示出所述集成电路设计的预期功能所对应的功能覆盖单元被所述测试用例组覆盖的情况。
9.如权利要求1-8任一所述的验证方法,其中,所述集成电路设计使用硬件编程语言实现。
10.一种集成电路设计的验证装置,包括:
处理器,以及
存储器,其中,所述存储器中存储有计算机可执行代码,当所述计算机可执行代码被执行时,执行权利要求1-9任一所述的验证方法。
11.一种计算机可读存储介质,其上存储有计算机可执行代码,所述计算机可执行代码在被执行时,执行权利要求1-9任一所述的验证方法。
12.一种集成电路设计的验证装置,包括:
重复测试用例确定单元,配置为根据使用测试用例组对所述集成电路设计进行仿真得到的功能覆盖率报告确定所述测试用例组中的重复测试用例,
其中,所述集成电路设计的预期功能对应多个功能覆盖单元,所述测试用例组包括多个测试用例,所述多个测试用例的每个覆盖所述多个功能覆盖单元中的至少一个,所述重复测试用例所覆盖的功能覆盖单元被其它测试用例完全覆盖。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011514297.5A CN112597718B (zh) | 2020-12-21 | 2020-12-21 | 集成电路设计的验证方法、验证装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011514297.5A CN112597718B (zh) | 2020-12-21 | 2020-12-21 | 集成电路设计的验证方法、验证装置以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597718A true CN112597718A (zh) | 2021-04-02 |
CN112597718B CN112597718B (zh) | 2023-10-03 |
Family
ID=75199743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011514297.5A Active CN112597718B (zh) | 2020-12-21 | 2020-12-21 | 集成电路设计的验证方法、验证装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597718B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343629A (zh) * | 2021-06-25 | 2021-09-03 | 海光信息技术股份有限公司 | 集成电路验证方法、代码生成方法、***、设备和介质 |
CN115618800A (zh) * | 2022-11-14 | 2023-01-17 | 沐曦集成电路(上海)有限公司 | 基于dpi的gpu联合仿真*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916225A (zh) * | 2010-09-02 | 2010-12-15 | 于秀山 | 图形用户界面软件功能覆盖测试方法 |
CN102622471A (zh) * | 2012-02-22 | 2012-08-01 | 山东华芯半导体有限公司 | 集成电路前端验证方法 |
CN103440195A (zh) * | 2013-07-11 | 2013-12-11 | 盛科网络(苏州)有限公司 | 基于逻辑芯片的交换机芯片验证方法和装置 |
CN103810104A (zh) * | 2014-03-04 | 2014-05-21 | 中国人民解放军63863部队 | 一种软件测试用例优化方法及*** |
CN105260534A (zh) * | 2015-10-10 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 用于超大规模芯片验证的回归测试用例维护方法及*** |
US10146668B1 (en) * | 2013-12-20 | 2018-12-04 | EMC IP Holding Company LLC | Modeling code coverage in software life cycle |
-
2020
- 2020-12-21 CN CN202011514297.5A patent/CN112597718B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916225A (zh) * | 2010-09-02 | 2010-12-15 | 于秀山 | 图形用户界面软件功能覆盖测试方法 |
CN102622471A (zh) * | 2012-02-22 | 2012-08-01 | 山东华芯半导体有限公司 | 集成电路前端验证方法 |
CN103440195A (zh) * | 2013-07-11 | 2013-12-11 | 盛科网络(苏州)有限公司 | 基于逻辑芯片的交换机芯片验证方法和装置 |
US10146668B1 (en) * | 2013-12-20 | 2018-12-04 | EMC IP Holding Company LLC | Modeling code coverage in software life cycle |
CN103810104A (zh) * | 2014-03-04 | 2014-05-21 | 中国人民解放军63863部队 | 一种软件测试用例优化方法及*** |
CN105260534A (zh) * | 2015-10-10 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 用于超大规模芯片验证的回归测试用例维护方法及*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343629A (zh) * | 2021-06-25 | 2021-09-03 | 海光信息技术股份有限公司 | 集成电路验证方法、代码生成方法、***、设备和介质 |
CN113343629B (zh) * | 2021-06-25 | 2023-02-28 | 海光信息技术股份有限公司 | 集成电路验证方法、代码生成方法、***、设备和介质 |
CN115618800A (zh) * | 2022-11-14 | 2023-01-17 | 沐曦集成电路(上海)有限公司 | 基于dpi的gpu联合仿真*** |
CN115618800B (zh) * | 2022-11-14 | 2023-05-12 | 沐曦集成电路(上海)有限公司 | 基于dpi的gpu联合仿真*** |
Also Published As
Publication number | Publication date |
---|---|
CN112597718B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7434101B2 (en) | Highly specialized scenarios in random test generation | |
US8838430B1 (en) | Detection of memory access violation in simulations | |
CN112597718B (zh) | 集成电路设计的验证方法、验证装置以及存储介质 | |
US8762907B2 (en) | Hierarchical equivalence checking and efficient handling of equivalence checks when engineering change orders are in an unsharable register transfer level | |
JP2020149270A (ja) | 回路適正化装置及び回路適正化方法 | |
CN115952758A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
US9690681B1 (en) | Method and system for automatically generating executable system-level tests | |
CN114021440B (zh) | 一种基于matlab的fpga时序仿真验证方法及装置 | |
US20150234978A1 (en) | Cell Internal Defect Diagnosis | |
CN112257362B (zh) | 逻辑代码的验证方法、验证装置以及存储介质 | |
CN117094269B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
US10929584B1 (en) | Environmental modification testing for design correctness with formal verification | |
US9135376B2 (en) | Input space reduction for verification test set generation | |
US20190332727A1 (en) | Semiconductor lsi design device and design method | |
CN112380127B (zh) | 测试用例回归方法、装置、设备和存储介质 | |
US10936776B1 (en) | Analyzing waveform data generated for simulated circuit design | |
CN112613257A (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
JP7410476B2 (ja) | ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム | |
US10546083B1 (en) | System, method, and computer program product for improving coverage accuracy in formal verification | |
CN112257382A (zh) | 用于芯片设计的物理验证方法、***、设备以及存储介质 | |
CN112579475A (zh) | 代码测试方法、装置、设备及可读存储介质 | |
CN117313650B (zh) | 一种芯片测试验证方法及其应用装置 | |
CN111400994A (zh) | 网表形式验证方法、装置、计算机设备及存储介质 | |
CN111880768B (zh) | 一种ip核代码级安全需求描述方法 | |
CN117112447B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |