CN116298830A - 集成电路的验证方法及处理系统 - Google Patents
集成电路的验证方法及处理系统 Download PDFInfo
- Publication number
- CN116298830A CN116298830A CN202211085175.8A CN202211085175A CN116298830A CN 116298830 A CN116298830 A CN 116298830A CN 202211085175 A CN202211085175 A CN 202211085175A CN 116298830 A CN116298830 A CN 116298830A
- Authority
- CN
- China
- Prior art keywords
- simulation
- data
- module
- power consumption
- voltage drop
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 title claims abstract description 18
- 238000004088 simulation Methods 0.000 claims abstract description 281
- 230000008859 change Effects 0.000 claims abstract description 44
- 238000012360 testing method Methods 0.000 claims description 43
- 238000013500 data storage Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 27
- 238000013461 design Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31704—Design for test; Design verification
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31721—Power aspects, e.g. power supplies for test circuits, power saving during test
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
本公开提供了一种集成电路的验证方法、处理系统以及计算机可读存储介质。集成电路包括多个模块,其验证方法包括:对于集成电路的每个模块,基于与该模块相对应的信号值变化数据仿真获得多个仿真窗口分别对应的功耗值;根据各个仿真窗口对应的功耗值的大小,选择该模块的信号值变化数据中的关键数据;以及基于关键数据运行集成电路的顶层仿真,以获得电压降仿真结果,电压降仿真结果用于与签核标准相比较以确认是否验证通过。本公开实施例可高效、准确、低成本地实现对电压降的分析验证。
Description
技术领域
本发明涉及集成电路技术领域,更具体地,涉及集成电路的验证方法、处理系统以及计算机可读存储介质。
背景技术
在集成电路的设计数据交付至芯片制造厂商生产之前,通常需要对设计数据进行一系列的分析验证,以确保该设计数据达到交付标准,这一系列的分析验证统称为签核(signoff),有利于相关技术人员在流片前修正设计数据存在的缺失,从而节约成本。
为了让芯片能够正常工作,我们需要为芯片的每个单元提供均匀稳定的供电,芯片中的每个单元都可能会受到电压降(IR drop)的影响,并且导线还会受到电子迁移(EMElectro-migration)的影响,从而导致芯片无法正常工作。
随着芯片工艺越来越先进,电源网络和接地网络中金属线的宽度越来越窄,导致单位线长的电阻值不断变大,而供电电压也越来越小,所以电压降对芯片性能的影响越来越明显。因此,芯片的功耗和电压降分析结果是否满足signoff标准是芯片交付量产前的一个必要步骤,而如何高效准确地获取功耗和电压降分析结果并判断功耗和电压降分析结果是否满足signoff标准已成为本技术领域的一项重要课题。
发明内容
为了解决上述现有技术存在的问题,本公开提供了一种集成电路的验证方法、处理系统和计算机可读存储介质。根据本公开各实施例的方案,可以提升电压降仿真的效率和准确性以及存储空间的利用率,并减少对存储空间、时间成本和人力成本的消耗。
根据本发明的一方面,提供了一种集成电路的验证方法,所述集成电路包括多个模块,其中,所述验证方法包括:对于每个所述模块,基于与该模块相对应的信号值变化数据仿真获得多个仿真窗口分别对应的功耗值;根据各个所述仿真窗口对应的所述功耗值的大小,选择该模块的所述信号值变化数据中的关键数据;以及基于所述关键数据运行所述集成电路的顶层仿真,以获得电压降仿真结果,所述电压降仿真结果用于与签核标准相比较以确认是否验证通过。
在一些实施例中,根据各个所述仿真窗口对应的所述功耗值的大小,选择该模块的所述信号值变化数据中的关键数据的步骤包括:对于每个所述模块,将所述多个仿真窗口中对应最大功耗值的仿真窗口确定为该模块的关键窗口;以及根据该关键窗口对与所述最大功耗值相对应的所述信号值变化数据进行限定以获得该模块的关键数据段,并根据该关键数据段获得该模块的所述关键数据。
在一些实施例中,每个所述模块对应不同测试用例下的至少一支所述信号值变化数据,对于每个所述模块,基于与该模块相对应的信号值变化数据仿真获得多个仿真窗口分别对应的功耗值的步骤包括:对于每个所述模块,分别基于该模块对应的各支所述信号值变化数据运行所述模块级仿真,以获得每支所述信号值变化数据在所述多个仿真窗口下对应的功耗值。
在一些实施例中,基于所述关键数据运行所述集成电路的顶层仿真以获得电压降仿真结果的步骤包括:对于每个模块的每个测试用例,分别基于该测试用例的所述信号值变化数据所对应的关键数据以及所述集成电路中该模块之外的各模块的非向量数据运行所述顶层仿真,以获得该模块在各个测试用例下的电压降仿真结果,各测试用例的所述信号值变化数据对应的关键窗口是该信号值变化数据在所述多个仿真窗口内提供最大功耗值的仿真窗口,各测试用例的所述信号值变化数据对应的关键数据是根据该信号值变化数据被该仿真窗口限定的关键数据段来确定的。
在一些实施例中,根据各个所述仿真窗口对应的所述功耗值的大小,选择该模块的所述信号值变化数据中的关键数据的步骤包括:通过比较该模块的全部所述信号值变化数据在各个所述仿真窗口下对应的功耗值,确定该模块对应的各支所述信号值变化数据的所述关键数据段中具有最大功耗值的关键数据段;以及根据所述具有最大功耗值的关键数据段确定该模块的关键数据,该模块的所述关键数据至少包括所述具有最大功耗值的关键数据段。
在一些实施例中,基于所述关键数据运行所述集成电路的顶层仿真以获得电压降仿真结果的步骤包括:确定用于所述顶层仿真的数据基础,所述数据基础包括分别对应于所述多个模块的所述关键数据的组合;以及将所述数据基础加载至仿真环境中,并在所述仿真环境中运行所述集成电路的顶层仿真,以获得所述电压降仿真结果。
在一些实施例中,对于每个所述模块,基于与该模块相对应的信号值变化数据仿真获得多个仿真窗口分别对应的功耗值的步骤包括:将所述多个模块对应的所述信号值变化数据在时间上对齐,并整体运行功耗仿真,以获得所述多个仿真窗口分别对应的整体功耗值;根据各个所述仿真窗口对应的所述功耗值的大小,选择该模块的所述信号值变化数据中的关键数据的步骤包括:选择所述整体功耗值中的最大功耗值所对应的仿真窗口作为所述多个模块的关键窗口,并基于该关键窗口对各模块的所述信号值变化数据进行限定以获得各模块的所述关键数据。
在一些实施例中,所述多个仿真窗口的时间宽度一致;和/或在时间顺序上相邻的每两个所述仿真窗口之间的时间差一致。
在一些实施例中,所述时间差对应于所述集成电路所采用的各信号频率的最大值的倒数值。
在一些实施例中,所述多个模块包括:多个子模块,分别具有用于实现相应功能的电路结构;以及调用所述多个子模块的顶层模块。
根据本公开实施例的第二方面,提供了一种处理系统,其中,包括:处理器,用于执行验证工具;以及存储装置,提供所述验证工具的运行空间和数据存储空间。其中,所述验证工具被配置以执行本公开任意实施例的验证方法。
根据本公开实施例的第三方面,还提供了一种计算机可读存储介质,其上存储有指令,其中,所述指令被一个或多个处理单元执行,以实现本公开任意实施例的验证方法。
根据本公开提供的各种实施例,可以基于多个仿真窗口对各个模块对应的信号值变化数据进行仿真,以获得相应的功耗值,并根据功耗值的大小选取信号值变化数据的部分数据作为关键数据,该关键数据作为顶层仿真的数据基础。基于功耗值选取的关键数据的数据量小于信号值变化数据的总数据量,因此可以明显地提升电压降仿真的效率、降低电压降仿真对存储空间的要求,提升存储空间的利用率;同时,基于功耗值大小选取的关键数据可以代表相应信号值变化数据对应的最差电压降场景,因此也能够保证电压降验证的准确定。
在一些优选的实施例中,可以分别对集成电路的各个模块进行模块级的功耗仿真获得多个仿真窗口对应的功耗值,并基于所获得的功耗值确定各个模块的关键数据,再基于集成电路中每个模块的关键数据运行顶层展平级的电压降仿真,以获得用于与签核标准比较的电压降仿真结果。通过模块级仿真可以分别根据各模块的功耗情况确定各个模块的关键数据,而不是基于整体集成电路的功耗情况确定用于电压降仿真的数据基础,因此保证了电压降验证的准确性。此外,在电压降仿真中,基于集成电路的各个模块的关键数据运行顶层展平级的仿真,有利于覆盖各模块的最差电压降场景、提升电压降仿真的效率。
在一些优选的实施例中,对于每个模块,可以将通过比较功耗值,确定该模块对应的各支VCD数据的所述关键数据段中具有最大功耗值的关键数据段,且该模块的关键数据至少包括该具有最大功耗值的关键数据段。基于此,该模块的关键数据对应于全部测试用例和仿真场景下具有最大功耗值的关键数据段。因此,基于此示例确定的各个模块的关键数据足够表征集成电路的最差电压降场景,最少仅需要执行1次电压降仿真就可以获得有价值的电压降仿真结果,在保证验证准确性的前提下进一步提升了集成电路的验证效率、节约了电压降仿真的运行时间和运行次数、提升了存储空间的利用率。
并且,基于该优选实施例,由于模块级仿真运行时间很短,且顶层的电压降仿真仅基于对应于各场景下对应于最大功耗值的关键数据来运行,因此电压降仿真运行时间与前端提供的VCD数据的数量和测试用例的数量基本不相关,从而允许前端基于更全面、更多的测试用例提供相应的VCD数据,进一步提升了电压降验证的准确性。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出一种集成电路的结构示意图;
图2示出传统方法中电压降仿真所需的运行时间、用于电压降仿真的VCD数据对应的仿真时长以及集成电路的规模之间的关系示意图;
图3示出集成电路的一种验证方法的仿真设置示意图;
图4示出集成电路的另一种验证方法的仿真设置示意图;
图5示出图4所示的验证方法中获得关键数据段的步骤示意图;
图6示出根据本公开实施例的集成电路的验证方法的流程示意图;
图7示出根据本公开实施例获得用于进行电压降仿真的关键数据的步骤示意图;
图8示出本公开实施例基于各模块的关键数据进行电压降验证的一种示例性的实施方式的流程示意图;
图9示出本公开实施例的顶层展平级电压降仿真的一种示例的数据设置示意图;
图10示出本公开实施例的顶层展平级电压降仿真的另一种示例的数据设置示意图;
图11示出根据本公开实施例提供的处理系统的结构示意图。
具体实施方式
以下基于实施例对本发明进行描述,在下文中描述了本发明的许多特定的细节,以便更清楚地理解本发明。但正如本领域的技术人员能够理解的那样,可以不按照这些特定的细节来实现本发明,即本发明并不仅仅限于这些实施例。为了避免混淆本发明的实质,公知的方法、过程、流程、芯片器件、芯片电路并没有详细叙述。
在各个附图中相同的芯片器件采用类似的附图标记来表示。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
在介绍本申请的示例性实施例前,为了方便本领域技术人员更好地理解本申请,首先对本申请中涉及的术语进行解释。
电压降(IR drop):通常是指集成电路中电源电压以及接地电压到电路单元的走线给电路单元的电压供应带来的电压损耗。集成电路中的每个单元都有可能受到电压降的影响,电压降高会导致传播到下个单元的信号变慢,当电压降超过一定程度后会导致建立时间不足从而导致芯片不能达到所要求的性能,也可能导致保存时间不能满足要求而使得功能失效。为了让集成电路能够正常工作,我们需要为集成电路的每个单元提供均匀稳定的供电,因此,在集成电路交付生产之前需要对集成电路中的每个单元进行电压降的仿真和验证,使得每个单元的电压降达到signoff标准。电压降可分为静态电压降(static IRdrop)和动态电压降(dynamic IR drop)。静态电压降通常是指,在已知总功耗和电源网络的等效电阻的情况下,求出的恒定电流与等效电阻的乘积。动态电压降通常是指数字电路由于逻辑转换引起电流的波动所产生的电压降,即动态电压降主要取决于数字逻辑的转换活动。如无特别说明,本公开所述的电压降仿真至少包括对动态电压降的仿真,也可以包括对静态电压降的仿真。
信号值变化(value change dump,VCD)数据:指的是前端基于芯片相应的真实工作场景对集成电路的设计数据进行仿真而得到的能够表征所有门单元对应的信号值的真实工作翻转状态的仿真波形数据,其作为前端仿真输出的结果数据,可以基于布局布线(place and route,简称PR)数据库产生。正是因为VCD数据中包含了信号的变化信息,相当于记录了整个仿真的信息,因此,在signoff过程中,可以基于VCD数据再现仿真,以对功耗、电压降等进行分析验证。基于不同的测试用例(例如用于对温度、电源电压、输入信号的状态等约束条件进行设置,以测试不同场景下的相关性能),可以对同一电路单元进行仿真得到多个测试用例下的VCD数据。VCD数据一般存储在VCD文件中,VCD文件例如主要包含头信息、变量的预定义和变量值的变化信息等内容。作为示例,VCD文件可以是基于IEEE1364标准(Verilog HDL语言标准)定义的一种ASCII文件。
下面,参照附图对传统技术和本次公开实施例进行详细说明。
图1示出一种集成电路的结构示意图。
如图1所示,在集成电路100中,可作为模块级(block level)仿真对象的模块可以是集成电路100内部的n个子模块Block1~Blockn(n为大于1的自然数),也可以是调用这n个子模块Block1~Blockn的顶层模块Top0,该顶层模块Top0用于建立不同子模块之间的信号关系,且可能包括n个子模块Block1~Blockn之外的部分(例如接口单元等等)。此外,在电压降仿真中,通常需要对集成电路运行顶层展平级(top flatten level)仿真,即导入集成电路中的全部元件,用于对整个集成电路的各项功能和性能进行充分验证。
在前端仿真阶段,可以基于布局布线等信息在不同测试用例下分别对各个子模块Block1~Blockn和顶层模块进行仿真,从而获得每个子模块和顶层模块在多个测试用例下的VCD数据(包括各个相关信号的仿真波形信息)。这一系列VCD数据可分别以VCD文件的形式被存储,即每个子模块和顶层模块可以对应多个VCD文件(分别对应不同的测试用例)。
由于VCD数据反映的是各种测试用例下的信号值变化,因此可以基于VCD数据进行功耗和电压降的仿真。对集成电路的设计数据进行电压降的分析验证是signoff阶段的一个关键步骤,主要用于判断电压降仿真获得的结果数据是否满足signoff标准。为保证signoff质量和最后产出芯片的性能,signoff的环境设置的准确性和合理性显得尤其重要。
图2示出传统方法中电压降仿真所需的运行时间、用于电压降仿真的VCD数据对应的仿真时长以及集成电路的规模之间的关系示意图。其中,坐标轴的横轴表示用于电压降仿真的VCD数据对应的仿真时长TVCD(单位例如为ns),坐标轴的纵轴表示电压降仿真所需的运行时间Trun(单位例如为天),且图1中大致示出了小规模设计、中规模设计和大规模设计与电压降仿真所需的运行时间Trun、用于电压降仿真的VCD数据对应的仿真时长TVCD的对应关系。
从图2可以看出,用于电压降仿真的VCD数据对应的仿真时长TVCD越长,电压降仿真所需的运行时间Trun越长,电压降仿真所需的运行时间Trun大致随电压降仿真所基于的VCD数据对应的仿真时长TVCD的增大呈指数级增长;同时,随着集成电路的规模的增大,电压降仿真所需的运行时间Trun和用于电压降仿真的VCD数据对应的仿真时长TVCD都随之增加。
在实际工作中,为了保证VCD数据的准确性和/或保证VCD数据足够描述集成电路的各信号值在真实工作场景下对应的波形,前端工程师提供的VCD文件包含的VCD数据对应的仿真时长一般高于一定值,例如为100ns、200ns,甚至是1000ns。在signoff阶段对电压降进行分析验证时,如果直接基于前端提供的完整的VCD文件进行仿真,则需要很长的仿真运行时间Trun。例如,对于TSMC 7ns工艺下、规模为1000万颗实例(instance)的集成电路设计,如果直接基于100ns的VCD文件进行signoff阶段的电压降仿真,则需要至少7天的时间。
因此,在传统的验证方法中,为了提高准确性并覆盖最糟糕的仿真场景,电压降仿真需要设置较长的运行时间Trun,同时也导致内存和硬盘空间被大量占用。若缩短运行时间Trun并减少测试用例数量,则可能导致最糟糕的场景没有被验证是否满足signoff标准,降低了电压降仿真的环境设置的准确性。
根据本公开各个实施例,考虑到迭代时间,在signoff阶段,通常不会基于前端提供的完整的VCD文件执行电压降仿真,而是基于时间轴选取前端提供的VCD文件中的一个VCD数据段作为用于进行电压降仿真的关键数据段(例如对应仿真时长TVCD=20ns)。
图3示出集成电路的一种验证方法的仿真设置示意图。
为了让电压降仿真覆盖的情形较为全面(即,尽量覆盖电压降最糟糕的情形),在本示例中,可以采用混合动态(mixed dynamic)VCD仿真模式基于上述各模块的关键数据段进行电压降仿真。混合动态VCD仿真模式是一种结合基于VCD数据的VCD仿真模式和无需基于VCD数据的非向量(vectorless,也可称为无向量/无矢量/非矢量)仿真模式的混合仿真模式。
在具体实践中,混合动态VCD仿真模式例如可以应用在前端生成顶层模块的VCD数据的情况下,用于基于各个子模块Block1~Blockn的VCD数据进行验证。然而,基于实际需求,该混合动态VCD仿真模式也可以基于各个子模块Block1~Blockn和顶层模块Top0的VCD数据来实现,本公开对此不作限制。
具体地,例如图3所示,对于n个子模块Block1~Blockn中的一个目标模块(图3以子模块Block1作为目标模块为例),在进行功耗和电压降的仿真时,可以将该目标模块之外的其它模块设置为非向量模式(无需载入相应的VCD数据,仅需载入与该模块相关的非向量数据),同时基于目标模块在每个测试用例下的VCD数据分别运行顶层展平级的功耗仿真,以获得各个测试用例的VCD数据在多个仿真窗口下对应的功耗值。
针对每个测试用例下的VCD数据,可以将多个仿真窗口中对应最大功耗值的仿真窗口确定为该VCD数据对应的关键窗口,该关键窗口限定的VCD数据段作为该VCD数据对应的关键数据段。由于电压损耗通常随着功耗值的增大而增大,电压损耗越大则对应的电压降的情形就越严峻,因此,最大功耗值对应的仿真窗口所限定的VCD数据段可以作为用于对电压降进行signoff验证的关键数据段,也就是说,如果基于该关键数据段进行电压降仿真得到的结果满足signoff标准,则说明该目标模块在该VCD数据中关键数据段之外的其它数据段也能满足signoff标准,因而无需基于整支完整的VCD数据进行电压降仿真,仅需基于该VCD数据的关键数据段进行电压降仿真即可进行signoff验证。
同样的,本示例中,在针对该目标模块运行电压降仿真时,仍然将该目标模块之外的其它模块设置为非向量模式,同时基于目标模块在每个测试用例下的关键数据段依次运行顶层展平级的电压降仿真,以获得各个测试用例的关键数据段的电压降仿真结果。基于上述原理可知,通过判断每个测试用例对应的电压降仿真结果是否满足signoff标准,就可以判断该目标模块的电压降是否可以验证合格。
基于本示例,假设每个模块对应k个测试用例(k为大于0的整数),则针对n个子模块的电压降仿真需要运行n*k次,这对内存和磁盘空间、时间成本和人力成本都带来了较大的消耗,也使得电压降的仿真和验证效率较低。
图4示出集成电路的另一种验证方法的仿真设置示意图。图5示出图4所示的验证方法中获得关键数据段的步骤示意图。
为了进一步优化电压降仿真的效率、降低成本和存储空间的消耗,作为示例,如图4所示,可以采用VCD仿真模式基于n个子模块Block1~Blockn和顶层模块Top0各自的VCD数据执行顶层展平级的功耗和电压降仿真,而不采用上述示例中的非向量模式。
具体地,如图4和5所示,本示例中,可以同时将n个子模块Block1~Blockn和顶层模块Top0各自的VCD数据(可以选择每个模块对应具有最大功耗总值的那支VCD数据VCD_jmax为例,对应于顶层模块Top0和各个子模块Block1~Blockn,j依次为0至n)作为包括n+1支VCD数据的VCD数据组加载至仿真环境中,再将这n+1支VCD数据在时间上对齐(起始时刻对齐和/或结束时刻对齐),并基于多个仿真窗口对时间对齐后的n+1支VCD数据运行顶层展平级的功耗仿真,即通过在多个仿真窗口中依次扫描的方式获得多个仿真窗口分别对应的功耗值。在一些示例中,用于对齐并运行顶层展平级功耗仿真的数据也可以仅对应n个子模块Block1~Blockn的VCD数据而不包括顶层模块Top0的VCD数据。
针对该VCD数据组,可以将多个仿真窗口中对应最大功耗值的仿真窗口w[i]=[t1,t2](i为大于0的整数)确定为该VCD数据组对应的关键窗口,该VCD数据组中的n+1支VCD数据被该关键窗口限定的VCD数据段作为该VCD数据组对应的n+1个关键数据段(例如图4所示的VCD_0max[t1,t2]至VCD_nmax[t1,t2]),并基于这n+1个关键数据段进行后续的电压降仿真,以用于判断集成电路的设计数据是否满足电压降的signoff标准。
基于本示例,不管前端基于多少测试用例获得每个模块的VCD数据,针对n个子模块和顶层模块的电压降仿真最少仅需要运行1次,相比于上述示例极大地减小了对存储空间、时间成本和人力成本的消耗,能够显著提升存储空间的利用率以及对电压降的验证效率。
本示例的不足之处在于:由于关键窗口是基于对齐后的多支VCD数据的组合对应的整体功耗值来选取的,因此该关键窗口所限定的各个数据段可能不是相应的那支VCD数据中产生最大功耗值的数据段,这意味着本示例选取的关键窗口仅限定了集成电路产生整体最大功耗的n+1个数据段,该最大功耗有可能仅仅是由少数模块引起的,其它模块可能并非工作在高功耗状态,也就是说本示例选取的关键窗口所限定的n+1个关键数据段并不能覆盖每个模块都在电压降最差状态下工作的场景。因此,本示例提供的验证方法虽然能够提高效率、降低成本,但其准确性有所降低,经本示例的验证方法验证合格的集成电路在真实工作场景下存在与电压降问题相关的风险。
因此,本公开提供了又一实施例,以进一步优化对集成电路的电压降进行signoff验证的方法。
图6示出根据本公开实施例的集成电路的验证方法的流程示意图。其中示出了步骤S110至S140。
在步骤S110中,对于集成电路的每个模块(各子模块以及顶层模块),分别获得相应的VCD数据。如上文所述,作为示例,前端可基于不同的测试用例对每个模块进行仿真以获得不同仿真场景下的多支VCD数据,即每个模块可以对应一支或多支VCD数据。
在步骤S120中,对于每个模块,分别基于相应的VCD数据运行模块级仿真,以获得多个仿真窗口分别对应的功耗值,并基于这一系列功耗值确定该模块的关键数据。其中,对于每个模块,多个仿真窗口中对应最大功耗值的仿真窗口作为该模块的关键窗口,根据该关键窗口对与最大功耗值相对应的VCD数据进行限定而获得的数据作为该模块的关键数据。
图7示出根据本公开实施例获得用于进行电压降仿真的关键数据的步骤示意图。下面基于集成电路100中的子模块Blockj对应的一个测试用例下的一支VCD数据VCD_j1进行说明,该支VCD数据VCD_j1对应的总仿真时长记为TVCD_all。
如图7所示,作为示例,在针对子模块Blockj的模块级功耗仿真中,可以按照时间顺序依次设置m个仿真窗口w[1]至w[m],并分别获得每个仿真窗口限定的VCD数据段所对应的m个功耗值,m为大于1的自然数。其中,第1个仿真窗口w[1]的起始时刻对应于该支VCD数据VCD_j1的起始时刻,最后1个仿真窗口w[m]的结束时刻tm可以与该支VCD数据VCD_j1的结束时刻对应,也可能位于该支VCD数据VCD_j1的结束时刻之前。
为方便进行功耗比较,m个仿真窗口w[1]至w[m]均具有相同的时间宽度Tw。每个仿真窗口的时间宽度Tw可以根据期待的仿真准确度和仿真运行时间来设置,例如可设置为小于/等于100ns。作为参考示例,每个仿真窗口的时间宽度Tw例如可选为10ns或20ns等。
在本公开实施例中,针对该支VCD数据VCD_j1,分别基于仿真窗口w[1]至w[m]运行模块级功耗仿真,可以获得m个相应的功耗值(例如至少包括动态功耗值)。之后,通过比较确定m个功耗值中的最大功耗值Pmax,并确认与该最大功耗值对应的仿真窗口w[i]所限定的VCD数据段VCD_j1[ti-Δts,ti],将该仿真窗口w[i]作为该支VCD数据VCD_j1的关键窗口,该VCD数据段VCD_j1[ti-Δts,ti]作为该支VCD数据VCD_j1的关键数据段。其中i为大于/等于1且小于/等于m的整数。
作为示例,可以指定第一存储空间(例如由存储器和/或寄存器提供,并存储初始值0),并在基于仿真窗口w[1]至w[m]运行模块级功耗仿真期间,将当前仿真窗口通过模块级功耗仿真获得的功耗值与第一存储空间内存储的功耗值比较,并将二者中较大的一个功耗值以及其对应的仿真窗口和/或相应的VCD数据段存储在第一存储空间中,从而在各个仿真窗口w[1]至w[m]均完成模块级功耗仿真后,第一存储空间内存储的功耗值即为m个功耗值中的最大功耗值Pmax,基于第一存储空间内的数据即可获得该支VCD数据的关键数据段、关键窗口及其对应的功耗值。此示例仅仅是一种可能的实施方式,本公开实施例不限于此,也可以基于其它方式获得最大功耗值Pmax及其对应的关键数据段,例如先将全部仿真窗口对应的功耗值存储在第一存储空间中,再对m个功耗值进行比较以获得最大功耗值Pmax,又例如,也可以通过标记的方式将对应于最大功耗值Pmax的仿真窗口标记为关键窗口,后续可以基于该标记定位与最大功耗值对应的关键窗口和关键数据段,等等。
在一些可选的实施例中,每两个相邻的仿真窗口的起始时刻之间的时间差可以为固定的预设值Δts,该预设值Δts可以小于、大于或等于单个仿真窗口的时间宽度Tw。作为示例,该预设值Δts例如可以设置为整个集成电路系统所采用的最高频率的倒数值。
在一些可选的实施例中,最后1个仿真窗口w[m]的结束时刻tm与该支VCD数据VCD_j1的结束时刻之间的时间差可以小于/等于预设值Δts。然而本公开实施例不限于此,例如,在一些可选的实施例中,相邻的仿真窗口的起始时刻之间的时间差可以根据需要进行设置(例如靠近数据VCD_j1的起始时刻和/或结束时刻的多个仿真窗口之间的时间差较小、远离数据VCD_j1的起始时刻和/或结束时刻的多个仿真窗口之间的时间差较大,等等),而不一定为固定值;和/或,最后1个仿真窗口w[m]的结束时刻tm与该支VCD数据VCD_j1的结束时刻之间的时间差也可能大于Δts,等等。
在一些可选的实施例中,不同的仿真窗口可以有交叠。作为示例,在每两个相邻的仿真窗口的起始时刻之间的时间差为固定的预设值Δts(大于0)的情况下,该预设值Δts小于单个仿真窗口的时间宽度Tw,从而相邻的多个仿真窗口存在交叠,可以提升仿真精度和全面度。然而本公开实施例不限于此,例如,为了更进一步地降低仿真运行时间并提高存储空间利用率,相邻的仿真窗口也可以设置为互不交叠。
需要说明的是,虽然图7所示的实施例仅基于多个子模块之一对应的一个测试用例下的一支VCD数据进行说明,但在真实情况下,集成电路通常包括多个子模块(例如图1所示),不仅每个子模块可以在前端基于多个测试用例获得相应的多支VCD数据,而且用于建立不同子模块之间的信号关系的顶层模块也可以在前端基于多个测试用例获得相应的多支VCD数据。本领域技术人员可以理解的是,对于各个子模块和顶层模块对应的不同测试用例下的多支VCD数据,可以分别按照上文描述的实施例获得相应的关键窗口和关键数据段。
以每个子模块和顶层模块分别对应k种(k为大于/等于1的整数)测试用例为例(即每个子模块和顶层模块分别对应k支VCD数据),可以在指定的第二存储空间(例如由存储器和/或寄存器提供)中存储下表1所示的信息:
表1各模块及其对应的VCD数据、关键窗口和功耗值
返回参考图6,在完成用于对各子模块和顶层模块进行模块级功耗仿真的步骤S120之后,本公开实施例可以进一步执行步骤S130和步骤S140,以便基于上述信息进一步执行顶层展平级电压降仿真,从而验证电压降是否满足signoff标准。
具体地,在步骤S130中,基于集成电路中所有模块的关键数据(包括相应的关键数据段)运行顶层仿真(展平级),以获得电压降仿真结果;在步骤S140中,可以基于自动化程序或统计工具将该电压降仿真结果与签核标准相比较以确认该集成电路的电压降是否验证通过。若电压降仿真结果满足签核标准,则确认该集成电路的电压降验证通过,否则说明该集成电路的电压降不满足签核标准,需要进行进一步的调试。
本公开实施例的步骤S130可以通过各种实施方式基于各模块的关键数据实现集成电路的电压降signoff验证。
图8示出本公开实施例基于各模块的关键数据进行电压降验证的一种示例性的实施方式的流程示意图。基于图8所示的实施方式,步骤S130可以包括子步骤S131至S133。图9示出本公开实施例的顶层展平级电压降仿真的一种示例的数据设置示意图。
在步骤S131中,确定用于电压降仿真的数据基础。具体地,作为示例,对于每个模块,选择将相应的VCD数据之一所提供的关键数据段加载至仿真环境中以作为电压降仿真的数据基础。
基于上文示例可知,该数据基础包括分别对应于集成电路中各子模块以及顶层模块的n+1个关键数据。
作为一种示例,在步骤S131中,针对每个模块,可以对该模块对应的各支VCD数据的关键数据段所对应的功耗值进行比较以确定其中的最大功耗值,并根据对应于该最大功耗值的关键数据段确定该模块的关键数据。
例如,参见表1,以子模块Blockj为例,其对应的k支VCD数据VCD_j1至VCD_jk的关键数据段分别为VCD_j1[tj1-Δts,tj1]至VCD_jk[tjk-Δts,tjk],这k个关键数据段对应的功耗值分别为Pmax_j1至Pmax_jk。通过比较这k个功耗值Pmax_j1至Pmax_jk,可以进一步确定k个功耗值中的最大功耗值Pmaxj。假设最大功耗值Pmaxj为Pmax_j1,则说明该功耗值Pmax_j1对应的关键数据段VCD_j1[tj1-Δts,tj1]可以表征子模块Blockj在各种测试用例下出现最高电压损耗的场景,因此该关键数据段VCD_j1[tj1-Δts,tj1]可以作为子模块Blockj的关键数据。也就是说,如果基于该最大功耗值Pmaxj对应的关键数据段进行电压降仿真得到的结果满足signoff标准,则说明子模块Blockj在各种场景下、各种仿真窗口下对应的VCD数据段均能够满足signoff标准。
基于这种方式,可以分别选定集成电路100的各个子模块以及顶层模块分别对应的n+1个关键数据。相应地,第二存储空间中可以存储下表2所示的信息:
表2各模块、相应的最大功耗值及各模块的关键数据
如表2和图9所示,集成电路100的各个子模块Block1至Blockn和顶层模块Top0对应的关键数据VCD_1x[t1x-Δts,t1x],...,VCD_0x[t0x-Δts,t0x]可以组合为用于电压降仿真的数据基础。这些基于功耗值大小选定的关键数据能够表征相应模块在电压损耗最差场景下的电压降情况,因此,基于这种方式选定的数据基础,电压降仿真的准确率较高,电压降验证结果更为可靠。
在步骤S132中,将所确定的数据基础加载至仿真环境中,以便基于所确定的数据基础中的各个关键数据运行顶层展平级电压降仿真,从而获得电压降仿真结果。
若数据基础中的各个关键数据是基于具有相同时间宽度的仿真窗口获得的,则各个关键数据对应的仿真时长一致,则所确定的数据基础中包括的对应于各自时间段的关键数据可以同步运行仿真,而不需要对齐。
需要说明的是,本公开实施例不限于上述示例,还可能存在很多修改、替代和变化。
例如,作为步骤S131的又一示例,作为数据基础的n+1个关键数据可以基于相应的测试用例的关联性或其它条件进行组合,而可以不基于功耗值来选择。例如,图10示出本公开实施例的顶层展平级电压降仿真的另一种示例的数据设置示意图。
可以将各模块的第1支VCD数据对应的具有最大功耗值的关键数据段组合为第1数据基础(如图10所示),将各模块的第2支VCD数据对应的关键数据段组合为第2数据基础,以此类推,最终将各模块的第k支VCD数据对应的关键数据段组合为第k数据基础。基于此示例,可以分别基于第1至k数据基础分别执行后续的步骤S132和S133,从而通过多次运行电压降仿真的方式获得多个电压降仿真结果,并在步骤S140中分别将这多个电压降仿真结果与电压降signoff标准进行比较。基于此示例,只有在全部电压降仿真结果均满足电压降signoff标准的情况下,该集成电路100的电压降验证合格,否则验证不合格,需要进一步调试和再验证。
又例如,作为电压降仿真的数据基础并不仅限于具有与仿真窗口一致的时长,数据基础所包括的n+1个关键数据还可能包括选定的n+1个关键数据段之外的相关数据。作为示例,对于每个被选定作为数据基础的一部分的关键数据,不仅可以包括相应VCD数据的关键数据段,还可以包括时间轴上位于其之前和/或之后的相邻数据段。作为又一示例,也可以对每个模块对应的多个VCD数据的关键数据段的功耗值进行排序,并将其中具有较大功耗值的多个关键数据段组合作为该模块的关键数据,并用作为执行电压降仿真的数据基础。本领域技术人员可以理解的是,在本公开提供的各种示例的启发下,数据基础的选择方式可以有多种变形和替换,均应被限制在本发明的保护范围内。
根据本公开提供的各种实施例,可以基于多个仿真窗口对各个模块对应的信号值变化数据进行仿真,以获得相应的功耗值,并根据功耗值的大小选取信号值变化数据的部分数据作为关键数据,该关键数据作为顶层仿真的数据基础。基于功耗值选取的关键数据的数据量小于信号值变化数据的总数据量,因此可以明显地提升电压降仿真的效率、降低电压降仿真对存储空间的要求,提升存储空间的利用率;同时,基于功耗值大小选取的关键数据可以代表相应信号值变化数据对应的最差电压降场景,因此也能够保证电压降验证的准确定。
在一些优选的实施例中,可以分别对集成电路的各个模块进行模块级的功耗仿真获得多个仿真窗口对应的功耗值,并基于所获得的功耗值确定各个模块的关键数据,再基于集成电路中每个模块的关键数据运行顶层展平级的电压降仿真,以获得用于与签核标准比较的电压降仿真结果。通过模块级仿真可以分别根据各模块的功耗情况确定各个模块的关键数据,而不是基于整体集成电路的功耗情况确定用于电压降仿真的数据基础,因此保证了电压降验证的准确性。此外,在电压降仿真中,基于集成电路的各个模块的关键数据运行顶层展平级的仿真,有利于覆盖各模块的最差电压降场景、提升电压降仿真的效率。
在一些优选的实施例中,对于每个模块,可以将通过比较功耗值,确定该模块对应的各支VCD数据的所述关键数据段中具有最大功耗值的关键数据段,且该模块的关键数据至少包括该具有最大功耗值的关键数据段。基于此,该模块的关键数据对应于全部测试用例和仿真场景下具有最大功耗值的关键数据段。因此,基于此示例确定的各个模块的关键数据足够表征集成电路的最差电压降场景,最少仅需要执行1次电压降仿真就可以获得有价值的电压降仿真结果,在保证验证准确性的前提下进一步提升了集成电路的验证效率、节约了电压降仿真的运行时间和运行次数、提升了存储空间的利用率。
并且,基于该优选实施例,由于模块级仿真运行时间很短,且顶层的电压降仿真仅基于对应于各场景下对应于最大功耗值的关键数据来运行,因此电压降仿真运行时间与前端提供的VCD数据的数量和测试用例的数量基本不相关,从而允许前端基于更全面、更多的测试用例提供相应的VCD数据,进一步提升了电压降验证的准确性。
图11示出根据本公开实施例提供的处理系统200的结构示意图。
如图11所示,处理系统200主要包括存储装置210和处理器220,以用于对待验证的集成电路的设计数据进行仿真验证。
存储装置210例如为存储阵列、共享目录等,用于存储集成电路100的设计数据、仿真所需的数据库、各模块对应的VCD数据以及用于指定signoff标准的文件等等,还可以提供前文所述的第一存储空间和/或第二存储空间。本公开对存储装置210的具体硬件实现不作限制,例如可以是静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
处理器220与存储装置210耦合通信,以便于基于存储装置210提供的信息执行验证工具10,该验证工具被配置为用于执行本公开任一实施例所述的集成电路的仿真方法和/或验证方法。存储装置210用于提供验证工具10的运行空间和数据存储空间。处理器220可以选用各种通用处理器(例如中央处理器CPU和/或数字处理器),也可以是用于执行本公开任意实施例提供的方法的专用处理器,还可能是通用处理器与专用处理器的合理组合。
处理系统200还可以包括各种输入/输出单元、通信单元(用于有线和/或无线通信,例如用于接收前端提供的VCD数据、访问云端以获得仿真相关的数据库等等)、接口单元、供电单元、总线单元等结构中的一个或多个。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机可读存储介质可以是有形设备,该有形设备可存储指令,以供指令执行设备使用。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体的示例非穷尽地包括:便携式计算机磁盘、硬盘(Hard Disk)、随机存取存储器(RandomAccess Memory,简称RAM)、只读存储器(Read-Only Memory,简称ROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM)、静态随机存取存储器(Static Random Access Memory,简称SRAM)、便携式压缩盘只读存储器(Compact DiscRead-Only Memory,简称CD-ROM)、数字多功能盘(Digital Versatile Disk,简称DVD)、记忆棒(Memory Stick)、软盘(Floppy Disk)、机械编码设备(例如穿孔卡或在其上记录有指令的凹槽中的凸起结构),以及前述的任何适当组合,可用于存储可以被计算设备访问的信息。
用于执行上述方法的计算机可读程序指令可以是汇编程序指令、指令集体系结构(instruction-set-architecture,简称ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言)和常规过程编程语言的任何组合所编写的源代码或目标代码。计算机可读程序指令可以完全在作为独立软件包的计算机系统上执行,或者,部分地在第一计算机上执行且部分地在远离第一计算机的第二计算机上执行。在后一种情况下,远程的第二计算机可以通过任何类型的网络连接到第一计算机,所述网络包括局域网(Local Area Network,简称LAN)或广域网(WideArea Network,简称WAN)。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。
Claims (12)
1.一种集成电路的验证方法,所述集成电路包括多个模块,其中,所述验证方法包括:
对于每个所述模块,基于与该模块相对应的信号值变化数据仿真获得多个仿真窗口分别对应的功耗值;
根据各个所述仿真窗口对应的所述功耗值的大小,选择该模块的所述信号值变化数据中的关键数据;以及
基于所述关键数据运行所述集成电路的顶层仿真,以获得电压降仿真结果,所述电压降仿真结果用于与签核标准相比较以确认是否验证通过。
2.根据权利要求1所述的验证方法,其中,根据各个所述仿真窗口对应的所述功耗值的大小,选择该模块的所述信号值变化数据中的关键数据的步骤包括:
对于每个所述模块,将所述多个仿真窗口中对应最大功耗值的仿真窗口确定为该模块的关键窗口;以及
根据该关键窗口对与所述最大功耗值相对应的所述信号值变化数据进行限定以获得该模块的关键数据段,并根据该关键数据段获得该模块的所述关键数据。
3.根据权利要求2所述的验证方法,其中,每个所述模块对应不同测试用例下的至少一支所述信号值变化数据,
对于每个所述模块,基于与该模块相对应的信号值变化数据仿真获得多个仿真窗口分别对应的功耗值的步骤包括:对于每个所述模块,分别基于该模块对应的各支所述信号值变化数据运行所述模块级仿真,以获得每支所述信号值变化数据在所述多个仿真窗口下对应的功耗值。
4.根据权利要求3所述的验证方法,其中,基于所述关键数据运行所述集成电路的顶层仿真以获得电压降仿真结果的步骤包括:
对于每个模块的每个测试用例,分别基于该测试用例的所述信号值变化数据所对应的关键数据以及所述集成电路中该模块之外的各模块的非向量数据运行所述顶层仿真,以获得该模块在各个测试用例下的电压降仿真结果,
各测试用例的所述信号值变化数据对应的关键窗口是该信号值变化数据在所述多个仿真窗口内提供最大功耗值的仿真窗口,各测试用例的所述信号值变化数据对应的关键数据是根据该信号值变化数据被该仿真窗口限定的关键数据段来确定的。
5.根据权利要求3所述的验证方法,其中,根据各个所述仿真窗口对应的所述功耗值的大小,选择该模块的所述信号值变化数据中的关键数据的步骤包括:
通过比较该模块的全部所述信号值变化数据在各个所述仿真窗口下对应的功耗值,确定该模块对应的各支所述信号值变化数据的所述关键数据段中具有最大功耗值的关键数据段;以及
根据所述具有最大功耗值的关键数据段确定该模块的关键数据,该模块的所述关键数据至少包括所述具有最大功耗值的关键数据段。
6.根据权利要求5所述的验证方法,其中,基于所述关键数据运行所述集成电路的顶层仿真以获得电压降仿真结果的步骤包括:
确定用于所述顶层仿真的数据基础,所述数据基础包括分别对应于所述多个模块的所述关键数据的组合;以及
将所述数据基础加载至仿真环境中,并在所述仿真环境中运行所述集成电路的顶层仿真,以获得所述电压降仿真结果。
7.根据权利要求1所述的验证方法,其中,对于每个所述模块,基于与该模块相对应的信号值变化数据仿真获得多个仿真窗口分别对应的功耗值的步骤包括:将所述多个模块对应的所述信号值变化数据在时间上对齐,并整体运行功耗仿真,以获得所述多个仿真窗口分别对应的整体功耗值;
根据各个所述仿真窗口对应的所述功耗值的大小,选择该模块的所述信号值变化数据中的关键数据的步骤包括:选择所述整体功耗值中的最大功耗值所对应的仿真窗口作为所述多个模块的关键窗口,并基于该关键窗口对各模块的所述信号值变化数据进行限定以获得各模块的所述关键数据。
8.根据权利要求1所述的验证方法,其中,
所述多个仿真窗口的时间宽度一致;和/或
在时间顺序上相邻的每两个所述仿真窗口之间的时间差一致。
9.根据权利要求8所述的验证方法,其中,所述时间差对应于所述集成电路所采用的各信号频率的最大值的倒数值。
10.根据权利要求1所述的验证方法,其中,所述多个模块包括:
多个子模块,分别具有用于实现相应功能的电路结构;以及
调用所述多个子模块的顶层模块。
11.一种处理系统,其中,包括:
处理器,用于执行验证工具;以及
存储装置,提供所述验证工具的运行空间和数据存储空间,
其中,所述验证工具被配置以执行权利要求1至10任一项所述的验证方法。
12.一种计算机可读存储介质,其上存储有指令,其中,所述指令被一个或多个处理单元执行,以实现如权利要求1至10任一项所述的验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211085175.8A CN116298830A (zh) | 2022-09-06 | 2022-09-06 | 集成电路的验证方法及处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211085175.8A CN116298830A (zh) | 2022-09-06 | 2022-09-06 | 集成电路的验证方法及处理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116298830A true CN116298830A (zh) | 2023-06-23 |
Family
ID=86792881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211085175.8A Pending CN116298830A (zh) | 2022-09-06 | 2022-09-06 | 集成电路的验证方法及处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116298830A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436379A (zh) * | 2023-12-21 | 2024-01-23 | 成都行芯科技有限公司 | 一种通孔压缩方法、装置、电子设备及存储介质 |
CN117494654A (zh) * | 2023-12-28 | 2024-02-02 | 成都行芯科技有限公司 | 电压降签核方法、电子设备及存储介质 |
-
2022
- 2022-09-06 CN CN202211085175.8A patent/CN116298830A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436379A (zh) * | 2023-12-21 | 2024-01-23 | 成都行芯科技有限公司 | 一种通孔压缩方法、装置、电子设备及存储介质 |
CN117436379B (zh) * | 2023-12-21 | 2024-04-09 | 成都行芯科技有限公司 | 一种通孔压缩方法、装置、电子设备及存储介质 |
CN117494654A (zh) * | 2023-12-28 | 2024-02-02 | 成都行芯科技有限公司 | 电压降签核方法、电子设备及存储介质 |
CN117494654B (zh) * | 2023-12-28 | 2024-05-14 | 成都行芯科技有限公司 | 电压降签核方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116298830A (zh) | 集成电路的验证方法及处理系统 | |
WO2016197768A1 (zh) | 芯片验证方法、装置及系统 | |
TWI627547B (zh) | 用於ic設計協定的自動化功能覆蓋生成和管理的系統和方法 | |
CN104408264B (zh) | 一种基于断言的嵌入式存储控制器验证系统及方法 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN109933535A (zh) | 测试用例的生成方法、装置和服务器 | |
JPS63145549A (ja) | 論理回路シミユレ−シヨン方法 | |
CN109902318B (zh) | 生成标准延时格式文件的方法和装置 | |
US20090222779A1 (en) | Methods and apparatuses for generating a random sequence of commands for a semiconductor device | |
US9501390B1 (en) | Enhancing automated mobile application testing | |
JP6961117B1 (ja) | モデリング方法 | |
CN116245060A (zh) | 数字电路的分析方法、装置、电子设备、存储介质 | |
CN107704351B (zh) | 一种芯片的验证方法和装置 | |
JP2006164132A (ja) | 半導体集積回路のネットリスト作成方法およびレイアウト設計方法 | |
CN117370088A (zh) | 一种国产异构平台人工智能加速卡的性能测试方法及系统 | |
CN112731117A (zh) | 芯片的自动验证方法和系统,及存储介质 | |
CN114996076B (zh) | 一种用于芯片仿真的遍历型用例验证方法、系统及电子设备 | |
CN114818598B (zh) | 一种基于电路翻转行为的vcd矢量压缩方法及装置 | |
US8301431B2 (en) | Apparatus and method for accelerating simulations and designing integrated circuits and other systems | |
CN112861455B (zh) | Fpga建模验证系统及方法 | |
CN104361012A (zh) | 一种城市轨道交通工程线路数据的测试方法及装置 | |
TWI727478B (zh) | 測試圖樣產生方法以及失效模型產生方法 | |
CN104572433A (zh) | 一种金融信息系统测试方法和装置 | |
US9983264B2 (en) | Multiple defect diagnosis method and machine readable media | |
CN110750956B (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 |