CN112464599B - 应用在电路的静态时序分析中确定电源电压数据的方法 - Google Patents

应用在电路的静态时序分析中确定电源电压数据的方法 Download PDF

Info

Publication number
CN112464599B
CN112464599B CN202011349089.4A CN202011349089A CN112464599B CN 112464599 B CN112464599 B CN 112464599B CN 202011349089 A CN202011349089 A CN 202011349089A CN 112464599 B CN112464599 B CN 112464599B
Authority
CN
China
Prior art keywords
supply voltage
power supply
simulation
logic unit
fluctuation
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.)
Active
Application number
CN202011349089.4A
Other languages
English (en)
Other versions
CN112464599A (zh
Inventor
姚水音
梁洪昌
王毓千
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011349089.4A priority Critical patent/CN112464599B/zh
Publication of CN112464599A publication Critical patent/CN112464599A/zh
Application granted granted Critical
Publication of CN112464599B publication Critical patent/CN112464599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种应用在电路的静态时序分析中确定电源电压数据的方法。该方法包括:获取电路的全电源电压仿真数据,全电源电压仿真数据包括多个电源电压仿真数据,多个电源电压仿真数据中的每一个包括电路中的一个逻辑单元在每一个仿真周期中的电源电压仿真值;根据电路的静态时序分析约束文件从电路中选取需要进行分析的时序路径,时序路径包括多个逻辑单元;对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,电源电压特征数据体现了至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动;以及确定电源电压特征数据为至少一个逻辑单元在电路的静态时序分析中所采用的电源电压数据。

Description

应用在电路的静态时序分析中确定电源电压数据的方法
技术领域
本公开的实施例涉及一种应用在电路的静态时序分析中确定电源电压数据的方法、电路的静态时序分析方法、应用在电路的静态时序分析中确定电源电压数据的装置、用于电路的静态时序分析装置、静态时序分析设备以及存储介质。
背景技术
在深亚微米制程的芯片设计中,随着制程的不断缩小,器件密度不断提高,功耗密度也在不断增大,从而使得电源电压的压降带来的影响会更加显著。在电路的静态时序分析中体现电源电压的压降的真实影响以及去除不必要的悲观性,成为完成设计目标,并使时序快速收敛的重要方式。
发明内容
本公开至少一实施例提供一种应用在电路的静态时序分析中确定电源电压数据的方法,所述电路包括多个逻辑单元,所述方法包括:获取所述电路的全电源电压仿真数据,所述全电源电压仿真数据包括多个电源电压仿真数据,所述多个电源电压仿真数据中的每一个包括所述电路中的一个逻辑单元在每一个仿真周期中的电源电压仿真值;根据所述电路的静态时序分析约束文件从所述电路中选取需要进行分析的时序路径,所述时序路径包括多个逻辑单元;对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,所述电源电压特征数据体现了所述至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动;以及确定所述电源电压特征数据为所述至少一个逻辑单元在所述电路的静态时序分析中所采用的电源电压数据。
例如,在本公开至少一实施例提供的方法中,获取所述电路的全电源电压仿真数据,包括:获取所述电路对应的仿真网表和应用场景激励文件;以及基于所述仿真网表和所述应用场景激励文件对所述电路进行电源电压波动仿真以获得所述全电源电压仿真数据。
例如,在本公开至少一实施例提供的方法中,所述至少一个逻辑单元包括第一逻辑单元,所述电源电压仿真数据对应N个仿真周期,N为大于1的整数;对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,包括:对所述第一逻辑单元在所述N个仿真周期的每相邻的两个仿真周期中的电源电压仿真值求取差值以得到N-1个差值,然后对所述N-1个差值分别取绝对值以获得N-1个绝对值,然后再对所述N-1个绝对值求取特征值以获得对应所述第一逻辑单元的第一特征值;获取所述电路的第一标准电源电压值,用所述第一标准电源电压值减去所述第一特征值以获得第二标准电源电压值;以及将所述第一标准电源电压值和所述第二标准电源电压值作为对应所述第一逻辑单元的电源电压特征数据。
例如,在本公开至少一实施例提供的方法中,对所述N-1个绝对值求取特征值以获得对应所述第一逻辑单元的第一特征值,包括:对所述N-1个绝对值求取平均值、方差或标准差中的一个,以获得对应所述第一逻辑单元的所述第一特征值。
例如,在本公开至少一实施例提供的方法中,所述至少一个逻辑单元包括第一逻辑单元,所述电源电压仿真数据对应N个仿真周期,N为大于1的整数;对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,包括:将所述第一逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第一波动曲线;根据所述静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数;基于所述波动窗口对所述第一波动曲线进行数据扫描,直到所述第一逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为第一波动窗口;以及将所述第一逻辑单元在所述第一波动窗口内的电源电压仿真值作为对应所述第一逻辑单元的电源电压特征数据。
例如,在本公开至少一实施例提供的方法中,所述至少一个逻辑单元还包括第二逻辑单元,且对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,还包括:将所述第二逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第二波动曲线;基于所述波动窗口对所述第二波动曲线进行数据扫描,直到所述第二逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为第二波动窗口;以及将所述第二逻辑单元在所述第二波动窗口内的电源电压仿真值作为对应所述第二逻辑单元的电源电压特征数据。
例如,在本公开至少一实施例提供的方法中,所述至少一个逻辑单元包括第一逻辑单元和第二逻辑单元,所述电源电压仿真数据对应N个仿真周期,N为大于1的整数;对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,包括:将所述第一逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第一波动曲线;将所述第二逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第二波动曲线;根据所述静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数;基于所述波动窗口同时对所述第一波动曲线以及所述第二波动曲线进行数据扫描,直到所述第一逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大且所述第二逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为公共波动窗口;以及将所述第一逻辑单元在所述公共波动窗口内的电源电压仿真值作为对应所述第一逻辑单元的电源电压特征数据,将所述第二逻辑单元在所述公共波动窗口内的电源电压仿真值作为对应所述第二逻辑单元的电源电压特征数据。
例如,在本公开至少一实施例提供的方法中,所述仿真周期和所述电路所采用的时钟周期一致。
例如,在本公开至少一实施例提供的方法中,所述仿真周期小于所述电路采用的时钟周期。
本公开至少一实施例还提供一种电路的静态时序分析方法,所述电路包括多个逻辑单元,所述方法包括:根据本公开的实施例提供的任一方法确定所述多个逻辑单元中的至少一个逻辑单元在所述电路的静态时序分析中所采用的电源电压数据;以及根据确定的所述至少一个逻辑单元所采用的所述电源电压数据对所述电路进行静态时序分析。
本公开至少一实施例还提供一种应用在电路的静态时序分析中确定电源电压数据的装置,所述电路包括多个逻辑单元,所述装置包括:获取模块,被配置为获取所述电路的全电源电压仿真数据,所述全电源电压仿真数据包括多个电源电压仿真数据,所述多个电源电压仿真数据中的每一个包括所述电路中的一个逻辑单元在每一个仿真周期中的电源电压仿真值;选取模块,被配置为根据所述电路的静态时序分析约束文件从所述电路中选取需要进行分析的时序路径,所述时序路径包括多个逻辑单元;处理模块,被配置为对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,所述电源电压特征数据体现了所述至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动;以及第一确定模块,被配置为确定所述电源电压特征数据为所述至少一个逻辑单元在所述电路的静态时序分析中所采用的电源电压数据。
例如,在本公开至少一实施例提供的装置中,所述至少一个逻辑单元包括第一逻辑单元和第二逻辑单元,所述电源电压仿真数据对应N个仿真周期,N为大于1的整数,所述处理模块包括:生成模块,被配置为将所述第一逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第一波动曲线,且将所述第二逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第二波动曲线;第二确定模块,被配置为根据所述静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数;数据扫描模块,被配置为基于所述波动窗口同时对所述第一波动曲线以及所述第二波动曲线进行数据扫描,直到所述第一逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大且所述第二逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为公共波动窗口;以及第三确定模块,被配置为将所述第一逻辑单元在所述公共波动窗口内的电源电压仿真值作为对应所述第一逻辑单元的电源电压特征数据,将所述第二逻辑单元在所述公共波动窗口内的电源电压仿真值作为对应所述第二逻辑单元的电源电压特征数据。
本公开至少一实施例还提供一种用于电路的静态时序分析装置,所述电路包括多个逻辑单元,所述装置包括:第四确定模块,被配置为根据本公开的实施例提供的任一方法确定所述多个逻辑单元中的至少一个逻辑单元在所述电路的静态时序分析中所采用的电源电压数据;以及分析模块,被配置为根据确定的所述至少一个逻辑单元所采用的所述电源电压数据对所述电路进行静态时序分析。
本公开至少一实施例还提供一种静态时序分析设备,包括:处理器;存储器,包括一个或多个计算机程序模块;所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现本公开的实施例提供的任一方法。
本公开至少一实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现本公开的实施例提供的任一方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种时序路径的示意图;
图2为用于说明对图1中的时序路径进行电源电压波动仿真以及进行STA所采用的电源电压数据的示意图;
图3为本公开的至少一实施例提供的一种应用在电路的静态时序分析中确定电源电压数据的方法10的示意图;
图4为对应图3中的步骤S110的一种示例的示意图;
图5为本公开的至少一实施例提供的一种对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理的示意图;
图6为本公开的至少一实施例提供的另一种对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理的示意图;
图7为本公开的至少一实施例提供的又一种对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理的示意图;
图8为本公开的至少一实施例提供的一种仿真周期小于时钟周期的示意图;
图9为本公开的至少一实施例提供的一种电路的静态时序分析方法20的示意图;
图10为本公开的至少一实施例提供的一种应用在电路的静态时序分析中确定电源电压数据的装置300的示意框图;
图11为本公开的至少一实施例提供的一种处理模块330的示意框图;
图12为本公开的至少一实施例提供的一种用于电路的静态时序分析装置400的示意框图;
图13为本公开的至少一实施例提供的一种静态时序分析设备500的示意框图;
图14为本公开的至少一实施例提供的一种静态时序分析设备800的示意框图;以及
图15为本公开的至少一实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
静态时序分析(Static Timing Analysis,STA)是电路设计中的重要组成部分。STA的主要目的是通过分析时序路径的延迟,计算出电路设计的各项时序性能指标,以及时发现违反时序要求的路径。计算电路设计中的时序路径的延迟时间是STA的基础,一个时序路径可能包括一个或多个逻辑单元(或称为标准单元),时序路径的延迟时间可以基于该时序路径中的一个或多个逻辑单元的延迟时间来确定。
例如,逻辑单元的延迟时间可以被事先确定和存储,例如存储在逻辑单元库(或称为标准单元库)中,并且可以在STA过程中被访问和使用。例如,逻辑单元库包括每一个逻辑单元的多个工作模式以及多个工作模式分别对应的延迟时间;例如,某一个逻辑单元的工作模式包括该逻辑单元处于该工作模式时所采用的电源电压值。例如,对于同一个逻辑单元来说,当它所采用的电源电压值不同时,它对应的延迟时间也不同。所以,在进行STA时需要确定时序路径中的每一个逻辑单元所采用的电源电压值。例如,可以通过对电路进行电源电压波动仿真来获得电路中的逻辑单元在每一个仿真周期中的电源电压仿真值。
图1示出了一种示例性的时序路径200,例如,该时序路径200包括逻辑单元201、202、203、204、205共5个逻辑单元。例如,逻辑单元202和204可以为寄存器,逻辑单元201可以为发送时钟路径,逻辑单元203可以为数据传送组合逻辑单元,逻辑单元205可以为接收时钟路径。
图2为用于说明对图1中的时序路径进行电源电压波动仿真以及进行STA所采用的电源电压数据的示意图。图2中的CLK表示电路工作时的时钟周期,图2中示出了CC1、CC2、CC3、……、CCN共N个时钟周期。例如,对图1中的时序路径进行电源电压波动仿真可以得到图1中的每一个逻辑单元的电源电压仿真数据,每一个逻辑单元的电源电压仿真数据包括该逻辑单元在每一个仿真周期中的电源电压仿真值。例如,图2中示出了T1、T2、T3、……、TN共N个仿真周期,即在每一个仿真周期中,对逻辑单元的瞬时电源电压值进行采样以获得该逻辑单元的多个电源电压仿真值,该逻辑单元的多个电源电压仿真值的集合即为该逻辑单元的电源电压仿真数据。
需要说明的是,图2中是以仿真周期与时钟周期一致为例进行说明的,本公开的实施例包括但不限于此,仿真周期也可以与时钟周期不同。另外,图2中右侧的电压值也仅是一种表示电源电压波动变化的一种示例,并不表示真实值。
例如,以逻辑单元203为例进行说明,图2中示出的曲线C1可以表示根据逻辑单元203的电源电压仿真数据得到的曲线。可以看出,该逻辑单元203在不同的仿真周期中的电源电压仿真值是波动的。例如,从曲线C1可以看出,逻辑单元203的电源电压仿真值的最大值(VMAX)为1V,最小值(VMIN)为0.7V。
如图2所示,曲线C2和C3分别示出了逻辑单元203在STA中所采用的电源电压数据的两种示例。例如,曲线C3所示的是一种最简化的示例,即逻辑单元203在进行STA时采用的电源电压数据保持为电源电压仿真值的最大值VMAX,即认为逻辑单元203的电源电压数据不波动。如果采用这种方式确定的电源电压数据进行STA,虽然没有引入电源电压数据的波动,即没有引入悲观性,但是跟实际情况相差较大,很可能会导致STA的结果不符合实际情况。例如,本来电路设计违反时序要求,但STA结果却是不违反时序要求;或者本来电路设计不违反时序要求,但STA结果却是违反时序要求。这些不符合实际情况的STA结果均会影响电路设计的正常进行。
又例如,曲线C2所示的示例是在曲线C3的基础上乘了一个系数,即逻辑单元203在进行STA时采用的电源电压数据保持为电源电压仿真值的最大值VMAX乘以一个系数,例如在该示例中,系数可以为0.7,此处仅为一种示例,不是对该系数的限定。如果采用这种方式确定的电源电压数据进行STA,虽然考虑了电源电压数据的波动,但引入了过度的悲观性,也可能会导致STA的结果不符合实际情况。
需要说明的是,上述是以图1的逻辑单元203为例进行说明的,其它逻辑单元在进行STA时确定采用的电源电压数据的方法与上述类似,不再赘述。例如,图1中的所有逻辑单元均采用图2中的曲线C2所示的示例来确定进行STA所采用的电源电压数据。
上述在STA中确定逻辑单元所采用的电源电压数据的示例可能存在以下问题:(1)忽略了电源电压波动仿真的结果中的相邻仿真周期之间的相关性;(2)对于一个逻辑单元来说,在所有仿真周期中,统一采用乘以一定系数的电源电压数据会带来过度的悲观性;(3)对于多个逻辑单元来说,每个逻辑单元带来的悲观性会累积。上述存在的问题都可能会导致STA的结果与实际情况相差较大,从而影响电路设计的正常进行。
本公开的至少一实施例提供一种应用在电路的静态时序分析中确定电源电压数据的方法,电路包括多个逻辑单元,该方法包括:获取电路的全电源电压仿真数据,全电源电压仿真数据包括多个电源电压仿真数据,多个电源电压仿真数据中的每一个包括电路中的一个逻辑单元在每一个仿真周期中的电源电压仿真值;根据电路的静态时序分析约束文件从电路中选取需要进行分析的时序路径,时序路径包括多个逻辑单元;对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,电源电压特征数据体现了至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动;以及确定电源电压特征数据为至少一个逻辑单元在电路的静态时序分析中所采用的电源电压数据。
本公开的实施例还提供一种电路的静态时序分析方法、应用在电路的静态时序分析中确定电源电压数据的装置、用于电路的静态时序分析装置、静态时序分析设备以及存储介质。
本公开的实施例提供的方法、装置、设备以及存储介质在确定逻辑单元在电路的静态时序分析中所采用的电源电压数据时考虑到了逻辑单元的电源电压仿真值在多个仿真周期中的波动,可以体现相邻仿真周期之间的相关性,从而可以抑制例如由于逻辑单元在所有仿真周期中统一采用乘以一定系数的电源电压数据而带来的过度悲观性,也可以抑制由于多个逻辑单元而累积的悲观性,从而使得静态时序分析(Static Timing Analysis,STA)的结果更符合实际情况,有利于电路设计的正常进行。
本公开的至少一实施例提供一种应用在电路的静态时序分析中确定电源电压数据的方法10,例如,电路包括多个逻辑单元,该方法10可以用于确定多个逻辑单元中的至少一个逻辑单元在电路的STA中所采用的电源电压数据,如图3所示,该方法10包括以下操作步骤。
步骤S110:获取电路的全电源电压仿真数据;该全电源电压仿真数据包括多个电源电压仿真数据,多个电源电压仿真数据中的每一个包括电路中的一个逻辑单元在每一个仿真周期中的电源电压仿真值。
步骤S120:根据电路的静态时序分析约束文件从电路中选取需要进行分析的时序路径;例如,该时序路径包括多个逻辑单元。
步骤S130:对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,电源电压特征数据体现了至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动。
步骤S140:确定电源电压特征数据为至少一个逻辑单元在电路的静态时序分析中所采用的电源电压数据。
本公开的实施例提供的方法10在确定逻辑单元在电路的静态时序分析中所采用的电源电压数据时考虑到了逻辑单元的电源电压仿真值在多个仿真周期中的波动,可以体现相邻仿真周期之间的相关性,从而可以抑制例如由于逻辑单元在所有仿真周期中统一采用乘以一定系数的电源电压数据而带来的过度悲观性,也可以抑制由于多个逻辑单元而累积的悲观性,从而使得STA的结果更符合实际情况,有利于电路设计的正常进行。
例如,如图4所示,在至少一个实施例中,上述步骤S110包括以下操作步骤。
步骤S111:获取电路对应的仿真网表和应用场景激励文件。
步骤S112:基于仿真网表和应用场景激励文件对电路进行电源电压波动仿真以获得全电源电压仿真数据。
例如,电路对应的仿真网表记录了该电路在某一个逻辑层次(例如,门级电路)下的各个逻辑单元之间的连接关系。例如,应用场景激励文件记录了该电路在某一个应用场景下各个逻辑单元的输入信号(例如数字信号0和1)随着时间的变化的组合。例如,电路对应的仿真网表和应用场景激励文件可以被预先存储在存储介质(存储器)中;在步骤S111中,可以直接访问该存储介质从而获取电路对应的仿真网表和应用场景激励文件。这里要说明的是,电路中包括了多个逻辑单元,对应不同的应用场景激励文件,电路中工作的逻辑单元可能不同。
在步骤S112中,例如可以通过仿真器对电路进行电源电压波动仿真。例如,可以将步骤S111中获取的仿真网表和应用场景激励文件输入仿真器中,同时将电路对应的电源网络数据模型也输入仿真器中。例如,在进行仿真时,逻辑单元随着输入信号的变化不断消耗电源网络的电能,输入信号变化快的逻辑单元消耗的电能更多,鉴于电源网络自身的阻抗特性,该逻辑单元的瞬时电源电压值即电源电压仿真值会减小,仿真器对电路进行电源电压波动仿真可以得到每个逻辑单元在每个仿真周期中的电源电压仿真值。这里,将一个逻辑单元在每一个仿真周期中的电源电压仿真值的集合称为该逻辑单元对应的电源电压仿真数据,电路中的多个逻辑单元对应的电源电压仿真数据的集合即为该电路的全电源电压仿真数据。
上述全电源电压仿真数据也可以提前获取并存储在在存储介质(存储器)中,从而在执行步骤S110时只需要从存储介质中直接获取该全电源电压仿真数据即可。
例如,电源电压仿真数据可以采用如下所示的数据格式进行存储。
{["InstA",(T0,VddT0),(T1,VddT1),(T2,VddT2),…,(Tn,VddTn)],
["InstB",(T0,VddT0),(T1,VddT1),(T2,VddT2),…,(Tn,VddTn)],
["InstC",(T0,VddT0),(T1,VddT1),(T2,VddT2),…,(Tn,VddTn)],
["InstD",(T0,VddT0),(T1,VddT1),(T2,VddT2),…,(Tn,VddTn)],
…}
在上面所示的数据格式中,"InstA"、"InstB"、"InstC"、"InstD"表示不同的逻辑单元,例如,可以表示四种不同种类的逻辑单元,也可以表示同一种逻辑单元在电路中的四个不同位置处的示例。每一行表示对应逻辑单元的电源电压仿真数据,其中T0、T1、T2、…、Tn表示仿真周期,VddT0表示在仿真周期T0中的电源电压仿真值,VddT1表示在仿真周期T1中的电源电压仿真值,其它与此类似,不再赘述。
需要说明的是,上述数据格式仅是一种示例,不构成对本公开的实施例的限制,本公开的实施例还可以采用其它各种数据格式。
由于整个电路的规模较大,在对电源电压仿真数据进一步处理之前,在步骤S120中可以根据电路的静态时序分析约束文件从电路中选取需要进行分析的时序路径,例如,该时序路径包括多个逻辑单元。约束文件包括了一些关于时钟信息的定义(时钟周期、频率、起始点等)、检查周期要求等,通过解读约束文件可以从电路中将需要进行分析的时序路径选取出来,从而可以提高上述方法10的效率。
完成步骤S120后,在步骤S130中,对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,该电源电压特征数据体现了至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动。然后在步骤S140中确定步骤S130中获得的电源电压特征数据为至少一个逻辑单元在电路的STA中所采用的电源电压数据。
本公开的实施例提供的方法10在确定逻辑单元在电路的STA中所采用的电源电压数据时考虑到了逻辑单元的电源电压仿真值在多个仿真周期中的波动,可以体现相邻仿真周期之间的相关性,从而可以抑制例如由于逻辑单元在所有仿真周期中统一采用乘以一定系数的电源电压数据而带来的过度悲观性,也可以抑制由于多个逻辑单元而累积的悲观性,从而使得STA的结果更符合实际情况,有利于电路设计的正常进行。
需要说明的是,在步骤S130中可以仅对一个逻辑单元所对应的电源电压仿真数据进行处理,从而获得对应该逻辑单元的电源电压特征数据,然后在进行电路的STA时,将上述电源电压特征数据作为该逻辑单元采用的电源电压数据,而其他逻辑单元可以采用其它方式进行处理,例如采用图2中的曲线C2所示的示例进行处理。这样至少对于该逻辑单元来说,可以体现相邻仿真周期之间的相关性,从而可以在一定程度上抑制过度悲观性,从而可以使得STA的结果更符合实际情况,有利于电路设计的正常进行。当然,在步骤S130中也可以对时序路径中的所有逻辑单元所对应的电源电压仿真数据进行处理,这样可以进一步地抑制过度悲观性,从而可以使得STA的结果更符合实际情况。
下面对步骤S130中如何对电源电压仿真数据进行处理进行说明。
在至少一个实施例中,例如,上述时序路径中的至少一个逻辑单元包括第一逻辑单元,第一逻辑单元的电源电压仿真数据对应N个仿真周期,N为大于1的整数。下面仍然以图1所示的时序路径为例进行说明。
例如,对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,包括以下操作步骤。
步骤S131:对第一逻辑单元在N个仿真周期的每相邻的两个仿真周期中的电源电压仿真值求取差值以得到N-1个差值,然后对N-1个差值分别取绝对值以获得N-1个绝对值,然后再对N-1个绝对值求取特征值以获得对应第一逻辑单元的第一特征值。
步骤S132:获取电路的第一标准电源电压值,用第一标准电源电压值减去第一特征值以获得第二标准电源电压值。
步骤S133:将第一标准电源电压值和第二标准电源电压值作为对应第一逻辑单元的电源电压特征数据。
下面基于图5所示的示意图对上述实施例进行说明,如图5所示,CLK表示电路工作时的时钟周期,需要说明的是,图5仅示例性地示出了第一时钟周期CC1、第二时钟周期CC2、第三时钟周期CC3、第四时钟周期CC4以及第五时钟周期CC5共5个时钟周期,以及仅示例性地示出了N个仿真周期中的第一仿真周期T1、第二仿真周期T2、第三仿真周期T3、第四仿真周期T4和第五仿真周期T5共5个仿真周期,而且在图5所示的示例中,仿真周期和时钟周期保持一致,即仿真周期和时钟周期一一对应。
例如,第一逻辑单元可以为图1所示的时序路径中的逻辑单元201。图5中的第一波动曲线FC1为将第一逻辑单元对应的电源电压仿真数据基于仿真周期生成的波动曲线,例如,第一逻辑单元在第一仿真周期T1中的电源电压仿真值为SV1,第一逻辑单元在第二仿真周期T2中的电源电压仿真值为SV2,第一逻辑单元在第三仿真周期T3中的电源电压仿真值为SV3,第一逻辑单元在第四仿真周期T4中的电源电压仿真值为SV4,第一逻辑单元在第五仿真周期T5中的电源电压仿真值为SV5。
在步骤S131中,以图5中所示的5个仿真周期为例进行说明,例如,对第一逻辑单元在5个仿真周期的每相邻的两个仿真周期中的电源电压仿真值求取差值以得到4个差值,然后对4个差值分别取绝对值以获得4个绝对值,即|SV1-SV2|、|SV2-SV3|、|SV3-SV4|和|SV4-SV5|,然后再对该4个绝对值求取特征值以获得对应第一逻辑单元的第一特征值。该第一特征值体现了第一逻辑单元的电源电压仿真值在相邻仿真周期内的波动。
在本公开的至少一实施例中,对4个绝对值求取特征值以获得对应第一逻辑单元的第一特征值,包括:对4个绝对值求取平均值、方差或标准差中的一个,以获得对应第一逻辑单元的第一特征值。这里需要说明的是,本公开的实施例还可以采用其它统计方法对上述多个绝对值求取特征值,本公开的实施例对此不作限定。
在步骤S132,获取电路的第一标准电源电压值,例如,该第一标准电源电压值为电路的电源电压值(VDD),例如,该第一标准电源电压值可以被预先存储在存储介质(存储器)中,在需要时可以被访问和获取。然后,用第一标准电源电压值减去第一特征值以获得第二标准电源电压值。
然后,在步骤S133中将第一标准电源电压值和第二标准电源电压值作为对应第一逻辑单元的电源电压特征数据。例如,将第一标准电源电压值和第二标准电源电压值分别作为第一逻辑单元的电源电压仿真值的最大值(VMAX)和最小值(VMIN),然后在进行STA时,例如在进行建立时序(SETUP TIMING)分析时采用第一标准电源电压值作为第一逻辑单元的电源电压数据,又例如在进行保持时序(HOLD TIMING)分析时采用第二标准电源电压值作为第一逻辑单元电源电压数据;或者在进行建立时序(SETUP TIMING)分析时采用第二标准电源电压值作为第一逻辑单元的电源电压数据,又例如在进行保持时序(HOLD TIMING)分析时采用第一标准电源电压值作为第一逻辑单元电源电压数据。
本公开的实施例提供的方法在确定逻辑单元在电路的STA中所采用的电源电压数据时考虑到了逻辑单元的电源电压仿真值在多个仿真周期中的波动,可以体现相邻仿真周期之间的相关性,从而可以抑制例如由于逻辑单元在所有仿真周期中统一采用乘以一定系数的电源电压数据而带来的过度悲观性,从而使得STA的结果更符合实际情况,有利于电路设计的正常进行。
上述实施例仅对第一逻辑单元对应的电源电压仿真数据进行了处理,本公开的实施例包括但不限于此,例如还可以对时序路径中的两个、三个或全部逻辑单元进行处理。例如,上述时序路径还可以包括第二逻辑单元、第三逻辑单元、第四逻辑单元、第五逻辑单元等。例如,第二逻辑单元、第三逻辑单元、第四逻辑单元、第五逻辑单元可以分别为图1中所示的逻辑单元202、203、204、205。
例如,图5中的第二波动曲线FC2为将第二逻辑单元对应的电源电压仿真数据基于仿真周期生成的波动曲线,第三波动曲线FC3为将第三逻辑单元对应的电源电压仿真数据基于仿真周期生成的波动曲线,第四波动曲线FC4为将第四逻辑单元对应的电源电压仿真数据基于仿真周期生成的波动曲线,第五波动曲线FC5为将第五逻辑单元对应的电源电压仿真数据基于仿真周期生成的波动曲线。
例如,可以基于上述步骤S131、S132以及S133分别对第二逻辑单元、第三逻辑单元、第四逻辑单元、第五逻辑单元进行处理,从而获得对应每个逻辑单元的电源电压特征数据,然后在上述步骤S140中,确定逻辑单元的电源电压特征数据为对应的逻辑单元在STA中所采用的电源电压数据。
相对于只对一个逻辑单元对应的电源电压仿真数据进行处理,对时序路径中的多个逻辑单元或全部逻辑单元对应的电源电压仿真数据进行处理可以进一步抑制由于多个逻辑单元而累积的悲观性,从而使得STA的结果更符合实际情况,有利于电路设计的正常进行。
在至少一个实施例中,例如,上述时序路径中的至少一个逻辑单元包括第一逻辑单元,第一逻辑单元的电源电压仿真数据对应N个仿真周期,N为大于1的整数。下面仍然以图1所示的时序路径为例进行说明。
例如,对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,包括以下操作步骤。
步骤S231:将第一逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第一波动曲线。
步骤S232:根据静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数。
步骤S233:基于波动窗口对第一波动曲线进行数据扫描,直到第一逻辑单元的电源电压仿真值在波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为第一波动窗口。
步骤S234:将第一逻辑单元在第一波动窗口内的电源电压仿真值作为对应第一逻辑单元的电源电压特征数据。
以图6所示的示意图对上述操作步骤进行说明,图6中与图5相同的附图标注表示的含义与图5相同,这里不再赘述。
在步骤S231中,将第一逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第一波动曲线FC1,需要说明的是,和图5类似地,图6仅示例性地示出了5个时钟周期(CC1、CC2、CC3、CC4、CC5)和5个仿真周期(T1、T2、T3、T4、T5),本公开的实施例包括但不限于此。
在步骤S232中,根据静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,例如,在图6所示的示例中,波动窗口包括2个相邻的仿真周期。该波动窗口包括的相邻的仿真周期的个数可以根据静态时序分许约束文件的内容进行确定,本公开的实施例对此不进行限定。
在步骤S233中,基于波动窗口对第一波动曲线FC1进行数据扫描,例如,可以对N个仿真周期中的数据扫描一遍,最后发现当波动窗口包括第一仿真周期T1和第二仿真周期T2时,第一逻辑单元的电源电压仿真值在波动窗口内的压降波动最大,从而停止数据扫描,并将此时的波动窗口称为第一波动窗口FW1。
然后,在步骤S234中,将第一逻辑单元在第一波动窗口FW1内的电源电压仿真值作为对应第一逻辑单元的电源电压特征数据。例如,将第一逻辑单元在第一波动窗口FW1内的电源电压仿真值的最大值作为第一逻辑单元的电源电压仿真值的最大值(VMAX),并将第一逻辑单元在第一波动窗口FW1内的电源电压仿真值的最小值作为第一逻辑单元的电源电压仿真值的最大值(VMIN)。
在本公开的一些实施例中,通过上述基于波动窗口进行数据扫描来确定逻辑单元对应的电源电压特征数据,使得在确定逻辑单元在电路的静态时序分析中所采用的电源电压数据时考虑到了逻辑单元的电源电压仿真值在多个仿真周期中的波动,可以体现相邻仿真周期之间的相关性,从而可以抑制逻辑单元的过度悲观性,从而使得STA的结果更符合实际情况,有利于电路设计的正常进行。
在至少一个实施例中,至少一个逻辑单元还包括第二逻辑单元,且对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,还包括以下操作步骤。
步骤S235:将第二逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第二波动曲线。
步骤S236:基于波动窗口对第二波动曲线进行数据扫描,直到第二逻辑单元的电源电压仿真值在波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为第二波动窗口。
步骤S237:将第二逻辑单元在第二波动窗口内的电源电压仿真值作为对应第二逻辑单元的电源电压特征数据。
在步骤S235中,将第二逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第二波动曲线FC2。
在步骤S236中,基于波动窗口对第二波动曲线FC2进行数据扫描,例如,可以对N个仿真周期中的数据扫描一遍,最后发现当波动窗口包括第二仿真周期T2和第三仿真周期T3时,第二逻辑单元的电源电压仿真值在波动窗口内的压降波动最大,从而止数据扫描,并将此时的波动窗口称为第二波动窗口FW2。
然后,在步骤237中,将第二逻辑单元在第二波动窗口FW2内的电源电压仿真值作为对应第二逻辑单元的电源电压特征数据。例如,将第二逻辑单元在第二波动窗口FW2内的电源电压仿真值的最大值作为第二逻辑单元的电源电压仿真值的最大值(VMAX),并将第二逻辑单元在第二波动窗口FW2内的电源电压仿真值的最小值作为第二逻辑单元的电源电压仿真值的最大值(VMIN)。
类似地,可以对第三逻辑单元对应的第三波动曲线FC3进行数据扫描以确定第三波动窗口FW3,对第四逻辑单元对应的第四波动曲线FC4进行数据扫描以确定第四波动窗口FW4,对第五逻辑单元对应的第五波动曲线FC5进行数据扫描以确定第五波动窗口FW5,从而分别确定第三逻辑单元、第四逻辑单元以及第五逻辑单元分别对应的电源电压特征数据。
上述对每一个逻辑单元都单独进行数据扫描来确定该逻辑单元对应的电源电压特征数据,可以进一步抑制由于多个逻辑单元而累积的悲观性,从而使得STA的结果更符合实际情况,有利于电路设计的正常进行。
在至少一个实施例中,例如,上述时序路径中的至少一个逻辑单元包括第一逻辑单元和第二逻辑单元,电源电压仿真数据对应N个仿真周期,N为大于1的整数。下面仍然以图1所示的时序路径为例进行说明。
例如,对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,包括以下操作步骤。
步骤S331:将第一逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第一波动曲线。
步骤S332:将第二逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第二波动曲线。
步骤S333:根据静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数。
步骤S334:基于波动窗口同时对第一波动曲线以及第二波动曲线进行数据扫描,直到第一逻辑单元的电源电压仿真值在波动窗口内的压降波动最大且第二逻辑单元的电源电压仿真值在波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为公共波动窗口。
步骤S335:将第一逻辑单元在公共波动窗口内的电源电压仿真值作为对应第一逻辑单元的电源电压特征数据,将第二逻辑单元在公共波动窗口内的电源电压仿真值作为对应第二逻辑单元的电源电压特征数据。
以图7所示的示意图对上述操作步骤进行说明,图7中与图5相同的附图标注表示的含义与图5相同,这里不再赘述。
在步骤S331中将第一逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第一波动曲线FC1;在步骤S332中将第二逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第二波动曲线FC2。上述步骤S331和S332分别与步骤S231和S235类似,这里不再赘述。
在步骤S333中,根据静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,例如,在图7所示示例中,波动窗口包括4个相邻的仿真周期。该步骤S333与上述步骤232类似,这里不再赘述。
在步骤S334中,基于波动窗口同时对第一波动曲线FC1以及第二波动曲线FC2进行数据扫描,例如,可以对N个仿真周期中的数据扫描一遍,最后发现当波动窗口包括第一仿真周期T1、第二仿真周期T2、第三仿真周T3以及第四仿真周期T4时,第一逻辑单元的电源电压仿真值在波动窗口内的压降波动最大且第二逻辑单元的电源电压仿真值在波动窗口内的压降波动也最大,从而停止数据扫描,并将此时的波动窗口称为公共波动窗口CFW。
然后,在步骤S335中,将第一逻辑单元在公共波动窗口CFW内的电源电压仿真值作为对应第一逻辑单元的电源电压特征数据,例如,在进行STA时,第一逻辑单元采用的电源电压数据为第一逻辑单元在公共波动窗口CFW内的电源电压仿真值,该电源电压数据是随着仿真周期变化的。类似地,在进行STA时,第二逻辑单元采用的电源电压数据为第二逻辑单元在公共波动窗口CFW内的电源电压仿真值,该电源电压数据也是随着仿真周期变化的。
在本公开的一些实施例中,通过上述基于波动窗口进行数据扫描来确定逻辑单元对应的电源电压特征数据,使得在确定逻辑单元在电路的静态时序分析中所采用的电源电压数据时考虑到了逻辑单元的电源电压仿真值在多个仿真周期中的波动,可以体现相邻仿真周期之间的相关性,从而可以抑制逻辑单元的过度悲观性,也可以抑制由于多个逻辑单元而累积的悲观性,从而使得STA的结果更符合实际情况,有利于电路设计的正常进行。
在至少一个实施例中,如图7所述,在上述步骤S334中确定公共波动窗口CFW时,还可以使得时序路径包括的5个逻辑单元在该公共波动窗口CFW内的压降波动均最大。容易理解,当确定公共波动窗口CFW时考虑的逻辑单元越多,所消耗的时间越长,而且在有些情形下,可能不一定能找到可以使得所有逻辑单元的压降波动均最大的公共波动窗口CFW,所以在进行基于波动窗口进行数据扫描来确定公共波动窗口CFW时,要根据实际情况而确定需要考虑的逻辑单元的个数。
需要说明的是,在图2、图5、图6以及图7所对应的实施例中,均是以仿真周期与时钟周期一致为例进行说明的,本公开的实施例包括但不限于此,例如,在图8所示的实施例中,仿真周期也可以小于时钟周期CC。例如,对于第六波动曲线FC6,它的仿真周期是时钟周期CC的四分之一,即每四分之一个时钟周期CC,对逻辑单元的瞬时电源电压值采样一次获得该逻辑单元的电源电压仿真值。又例如,对于第七波动曲线FC7,它的仿真周期是时钟周期CC的二分之一,即每二分之一个时钟周期CC,对逻辑单元的瞬时电源电压值采样一次获得该逻辑单元的电源电压仿真值。这里的第六波动曲线FC6和第七波动曲线FC7仅是一种示例,例如它们可以分别对应图1所示的时序路径中的两个不同的逻辑单元。
本公开的至少一实施例还提供一种电路的静态时序分析方法20,例如该电路包括多个逻辑单元,如图9所示,该方法20包括以下操作步骤。
步骤S210:根据本公开的实施例提供的任一方法10确定多个逻辑单元中的至少一个逻辑单元在电路的静态时序分析中所采用的电源电压数据。
步骤S220:根据确定的至少一个逻辑单元所采用的电源电压数据对电路进行静态时序分析。
需要说明的是,在上述步骤S210中,可以确定一个逻辑单元所采用的电源电压数据,也可以确定多个逻辑单元或时序路径中的全部逻辑单元所采用的电源电压数据,本公开的实施例对此不作限定。
例如,逻辑单元的延迟时间可以被事先确定和存储,例如存储在逻辑单元库(或称为标准单元库)中,并且可以在STA过程中被访问和使用。例如,逻辑单元库包括每一个逻辑单元的多个工作模式以及多个工作模式分别对应的延迟时间;例如,某一个逻辑单元的工作模式包括该逻辑单元处于该工作模式时所采用的电源电压值。例如,对于同一个逻辑单元来说,当它所采用的电源电压值不同时,它对应的延迟时间也不同。所以,在步骤S220中,可以根据确定的至少一个逻辑单元所采用的电源电压数据获得对应至少一个逻辑单元的延迟时间,然后基于该延迟时间对电路进行STA。
本公开的实施例提供的方法20在确定逻辑单元在电路的静态时序分析中所采用的电源电压数据时考虑到了逻辑单元的电源电压仿真值在多个仿真周期中的波动,可以体现相邻仿真周期之间的相关性,从而可以抑制例如由于逻辑单元在所有仿真周期中统一采用乘以一定系数的电源电压数据而带来的过度悲观性,也可以抑制由于多个逻辑单元而累积的悲观性,从而使得STA的结果更符合实际情况,有利于电路设计的正常进行。
本公开至少一个实施例还提供一种应用在电路的静态时序分析中确定电源电压数据的装置300,如图10所示,该装置300包括获取模块310、选取模块320、处理模块330以及第一确定模块340。
例如,该获取模块310被配置为获取电路的全电源电压仿真数据,全电源电压仿真数据包括多个电源电压仿真数据,多个电源电压仿真数据中的每一个包括电路中的一个逻辑单元在每一个仿真周期中的电源电压仿真值。
该选取模块320被配置为根据电路的静态时序分析约束文件从电路中选取需要进行分析的时序路径,时序路径包括多个逻辑单元。
该处理模块330被配置为对时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应至少一个逻辑单元的电源电压特征数据,电源电压特征数据体现了至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动。
该第一确定模块340被配置为确定电源电压特征数据为至少一个逻辑单元在电路的静态时序分析中所采用的电源电压数据。
在至少一个实施例中,至少一个逻辑单元包括第一逻辑单元和第二逻辑单元,电源电压仿真数据对应N个仿真周期,N为大于1的整数,如图11所示,上述处理模块330包括生成模块331、第二确定模块332、数据扫描模块333以及第三确定模块334。
例如,该生成模块331被配置为将第一逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第一波动曲线,且将第二逻辑单元对应的电源电压仿真数据基于N个仿真周期生成第二波动曲线。
该第二确定模块332被配置为根据静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数。
该数据扫描模块333被配置为基于波动窗口同时对第一波动曲线以及第二波动曲线进行数据扫描,直到第一逻辑单元的电源电压仿真值在波动窗口内的压降波动最大且第二逻辑单元的电源电压仿真值在波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为公共波动窗口。
该第三确定模块334被配置为将第一逻辑单元在公共波动窗口内的电源电压仿真值作为对应第一逻辑单元的电源电压特征数据,将第二逻辑单元在公共波动窗口内的电源电压仿真值作为对应第二逻辑单元的电源电压特征数据。
本公开至少一个实施例还提供一种用于电路的静态时序分析装置400,电路包括多个逻辑单元,例如,如图12所示,该装置400包括第四确定模块410和分析模块420。
例如,该第四确定模块410被配置为根据本公开的实施例提供的任一方法10确定多个逻辑单元中的至少一个逻辑单元在电路的静态时序分析中所采用的电源电压数据。
该分析模块420被配置为根据确定的至少一个逻辑单元所采用的电源电压数据对电路进行静态时序分析。
由于在上述描述方法10以及方法20的过程中,已经对上述装置300、400操作所涉及的内容的细节进行了介绍,因此这里为简洁起见不再赘述,相关细节可参照以上关于图1至图9的描述。
需要说明的是,图10-图12所示的装置中的各个模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。作为示例,参照图10-图12描述的装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其它能够执行程序指令的装置,但不限于此。
另外,尽管以上在描述装置300、400时将其划分为用于分别执行相应处理的模块,然而,本领域技术人员清楚的是,各模块执行的处理也可以在装置中不进行任何具体模块划分或者各模块之间并无明确划界的情况下执行。此外,以上参照图10-图12描述的装置并不限于包括以上描述的模块,而是还可以根据需要增加一些其它模块(例如,存储模块、数据处理模块等),或者以上模块也可被组合。
本公开的至少一实施例还提供一种静态时序分析设备,该静态时序分析设备包括处理器和存储器;该存储器包括一个或多个计算机程序模块;一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上文所述的本公开的实施例提供的方法10和20。
图13为本公开至少一实施例提供的一种静态时序分析设备的示意框图。如图13所示,该静态时序分析设备500包括处理器510和存储器520。存储器520用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器510用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器510运行时可以执行上文所述的方法10以及20中的一个或多个步骤。存储器520和处理器510可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器510可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器510可以为通用处理器或专用处理器,可以控制静态时序分析设备500中的其它组件以执行期望的功能。
例如,存储器520可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器510可以运行一个或多个计算机程序模块,以实现设备500的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,静态时序分析设备500的具体功能和技术效果可以参考上文中关于方法10以及方法20的描述,此处不再赘述。
图14为本公开一些实施例提供的另一种静态时序分析设备的示意框图。该静态时序分析设备800例如适于用来实施本公开实施例提供的方法10以及方法20。需要注意的是,图14示出的静态时序分析设备800仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图14所示,静态时序分析设备800可以包括处理装置(例如中央处理器、图形处理器等)810,其可以根据存储在只读存储器(ROM)820中的程序或者从存储装置880加载到随机访问存储器(RAM)830中的程序而执行各种适当的动作和处理。在RAM 830中,还存储有静态时序分析设备800操作所需的各种程序和数据。处理装置810、ROM 820以及RAM 830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。
通常,以下装置可以连接至I/O接口850:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置860;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置870;包括例如磁带、硬盘等的存储装置880;以及通信装置890。通信装置890可以允许静态时序分析设备800与其他电子设备进行无线或有线通信以交换数据。虽然图14示出了具有各种装置的静态时序分析设备800,但应理解的是,并不要求实施或具备所有示出的装置,静态时序分析设备800可以替代地实施或具备更多或更少的装置。
例如,本公开实施例提供的方法10以及方法20可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行方法10以及方法20的程序代码。在这样的实施例中,该计算机程序可以通过通信装置890从网络上被下载和安装,或者从存储装置880安装,或者从ROM 820安装。在该计算机程序被处理装置810执行时,可以执行本公开实施例提供的方法10以及方法20。
本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当该非暂时性计算机可读指令由计算机执行时可以实现本公开的实施例提供的任一方法10以及方法20。
图15为本公开一些实施例提供的一种存储介质的示意图。如图15所示,存储介质600用于存储非暂时性计算机可读指令610。例如,当非暂时性计算机可读指令610由计算机执行时可以执行根据上文所述的方法10以及方法20中的一个或多个步骤。
例如,该存储介质600可以应用于上述静态时序分析设备500中。例如,存储介质600可以为图13所示的静态时序分析设备500中的存储器520。例如,关于存储介质600的相关说明可以参考图13所示的静态时序分析设备500中的存储器520的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种应用在电路的静态时序分析中确定电源电压数据的方法,其中,所述电路包括多个逻辑单元,所述方法包括:
获取所述电路的全电源电压仿真数据,所述全电源电压仿真数据包括多个电源电压仿真数据,所述多个电源电压仿真数据中的每一个包括所述电路中的一个逻辑单元在每一个仿真周期中的电源电压仿真值;
根据所述电路的静态时序分析约束文件从所述电路中选取需要进行分析的时序路径,所述时序路径包括多个逻辑单元;
对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,所述电源电压特征数据体现了所述至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动;以及
确定所述电源电压特征数据为所述至少一个逻辑单元在所述电路的静态时序分析中所采用的电源电压数据。
2.根据权利要求1所述的方法,其中,获取所述电路的全电源电压仿真数据,包括:
获取所述电路对应的仿真网表和应用场景激励文件;以及
基于所述仿真网表和所述应用场景激励文件对所述电路进行电源电压波动仿真以获得所述全电源电压仿真数据。
3.根据权利要求1所述的方法,其中,所述至少一个逻辑单元包括第一逻辑单元,所述电源电压仿真数据对应N个仿真周期,N为大于1的整数;
其中,对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,包括:
对所述第一逻辑单元在所述N个仿真周期的每相邻的两个仿真周期中的电源电压仿真值求取差值以得到N-1个差值,然后对所述N-1个差值分别取绝对值以获得N-1个绝对值,然后再对所述N-1个绝对值求取特征值以获得对应所述第一逻辑单元的第一特征值;
获取所述电路的第一标准电源电压值,用所述第一标准电源电压值减去所述第一特征值以获得第二标准电源电压值;以及
将所述第一标准电源电压值和所述第二标准电源电压值作为对应所述第一逻辑单元的电源电压特征数据。
4.根据权利要求3所述的方法,其中,对所述N-1个绝对值求取特征值以获得对应所述第一逻辑单元的第一特征值,包括:
对所述N-1个绝对值求取平均值、方差或标准差中的一个,以获得对应所述第一逻辑单元的所述第一特征值。
5.根据权利要求1所述的方法,其中,所述至少一个逻辑单元包括第一逻辑单元,所述电源电压仿真数据对应N个仿真周期,N为大于1的整数;
其中,对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,包括:
将所述第一逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第一波动曲线;
根据所述静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数;
基于所述波动窗口对所述第一波动曲线进行数据扫描,直到所述第一逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为第一波动窗口;以及
将所述第一逻辑单元在所述第一波动窗口内的电源电压仿真值作为对应所述第一逻辑单元的电源电压特征数据。
6.根据权利要求5所述的方法,其中,所述至少一个逻辑单元还包括第二逻辑单元,且对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,还包括:
将所述第二逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第二波动曲线;
基于所述波动窗口对所述第二波动曲线进行数据扫描,直到所述第二逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为第二波动窗口;以及
将所述第二逻辑单元在所述第二波动窗口内的电源电压仿真值作为对应所述第二逻辑单元的电源电压特征数据。
7.根据权利要求1所述的方法,其中,所述至少一个逻辑单元包括第一逻辑单元和第二逻辑单元,所述电源电压仿真数据对应N个仿真周期,N为大于1的整数;
其中,对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,包括:
将所述第一逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第一波动曲线;
将所述第二逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第二波动曲线;
根据所述静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数;
基于所述波动窗口同时对所述第一波动曲线以及所述第二波动曲线进行数据扫描,直到所述第一逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大且所述第二逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为公共波动窗口;以及
将所述第一逻辑单元在所述公共波动窗口内的电源电压仿真值作为对应所述第一逻辑单元的电源电压特征数据,将所述第二逻辑单元在所述公共波动窗口内的电源电压仿真值作为对应所述第二逻辑单元的电源电压特征数据。
8.根据权利要求1-7任一所述的方法,其中,所述仿真周期和所述电路所采用的时钟周期一致。
9.根据权利要求1-7任一所述的方法,其中,所述仿真周期小于所述电路采用的时钟周期。
10.一种电路的静态时序分析方法,其中,所述电路包括多个逻辑单元,所述方法包括:
根据权利要求1-9任一所述的方法确定所述多个逻辑单元中的至少一个逻辑单元在所述电路的静态时序分析中所采用的电源电压数据;以及
根据确定的所述至少一个逻辑单元所采用的所述电源电压数据对所述电路进行静态时序分析。
11.一种应用在电路的静态时序分析中确定电源电压数据的装置,其中,所述电路包括多个逻辑单元,所述装置包括:
获取模块,被配置为获取所述电路的全电源电压仿真数据,所述全电源电压仿真数据包括多个电源电压仿真数据,所述多个电源电压仿真数据中的每一个包括所述电路中的一个逻辑单元在每一个仿真周期中的电源电压仿真值;
选取模块,被配置为根据所述电路的静态时序分析约束文件从所述电路中选取需要进行分析的时序路径,所述时序路径包括多个逻辑单元;
处理模块,被配置为对所述时序路径中的至少一个逻辑单元所对应的电源电压仿真数据进行处理,以获得对应所述至少一个逻辑单元的电源电压特征数据,所述电源电压特征数据体现了所述至少一个逻辑单元的电源电压仿真值在多个仿真周期中的波动;以及
第一确定模块,被配置为确定所述电源电压特征数据为所述至少一个逻辑单元在所述电路的静态时序分析中所采用的电源电压数据。
12.根据权利要求11所述的装置,其中,所述至少一个逻辑单元包括第一逻辑单元和第二逻辑单元,所述电源电压仿真数据对应N个仿真周期,N为大于1的整数,所述处理模块包括:
生成模块,被配置为将所述第一逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第一波动曲线,且将所述第二逻辑单元对应的电源电压仿真数据基于所述N个仿真周期生成第二波动曲线;
第二确定模块,被配置为根据所述静态时序分析约束文件确定一个包括M个相邻的仿真周期的波动窗口,M为大于1且小于N的整数;
数据扫描模块,被配置为基于所述波动窗口同时对所述第一波动曲线以及所述第二波动曲线进行数据扫描,直到所述第一逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大且所述第二逻辑单元的电源电压仿真值在所述波动窗口内的压降波动最大则停止数据扫描,并将此时的波动窗口称为公共波动窗口;以及
第三确定模块,被配置为将所述第一逻辑单元在所述公共波动窗口内的电源电压仿真值作为对应所述第一逻辑单元的电源电压特征数据,将所述第二逻辑单元在所述公共波动窗口内的电源电压仿真值作为对应所述第二逻辑单元的电源电压特征数据。
13.一种用于电路的静态时序分析装置,其中,所述电路包括多个逻辑单元,所述装置包括:
第四确定模块,被配置为根据权利要求1-9任一所述的方法确定所述多个逻辑单元中的至少一个逻辑单元在所述电路的静态时序分析中所采用的电源电压数据;以及
分析模块,被配置为根据确定的所述至少一个逻辑单元所采用的所述电源电压数据对所述电路进行静态时序分析。
14.一种静态时序分析设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现权利要求1-10任一所述的方法。
15.一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现权利要求1-10任一所述的方法。
CN202011349089.4A 2020-11-26 2020-11-26 应用在电路的静态时序分析中确定电源电压数据的方法 Active CN112464599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011349089.4A CN112464599B (zh) 2020-11-26 2020-11-26 应用在电路的静态时序分析中确定电源电压数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011349089.4A CN112464599B (zh) 2020-11-26 2020-11-26 应用在电路的静态时序分析中确定电源电压数据的方法

Publications (2)

Publication Number Publication Date
CN112464599A CN112464599A (zh) 2021-03-09
CN112464599B true CN112464599B (zh) 2023-04-11

Family

ID=74809639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011349089.4A Active CN112464599B (zh) 2020-11-26 2020-11-26 应用在电路的静态时序分析中确定电源电压数据的方法

Country Status (1)

Country Link
CN (1) CN112464599B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113484585B (zh) * 2021-06-29 2023-05-26 厦门紫光展锐科技有限公司 芯片压降的测量方法及相关产品
CN113626994B (zh) 2021-07-23 2022-11-22 东南大学 一种寄存器时序约束灵活建模方法
CN113627107A (zh) * 2021-08-11 2021-11-09 海光信息技术股份有限公司 确定电源电压数据的方法、装置、电子设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314525A (zh) * 2010-06-30 2012-01-11 中国科学院微电子研究所 一种低功耗电路设计优化方法
CN103207657A (zh) * 2011-11-04 2013-07-17 联发科技(新加坡)私人有限公司 电压调整装置与方法、移动装置及使其运行的方法
CN103425222A (zh) * 2012-05-18 2013-12-04 联发科技(新加坡)私人有限公司 电压调整系统与电压调整方法
CN111079293A (zh) * 2019-12-19 2020-04-28 北京华大九天软件有限公司 一种包含动态电源噪声的jitter仿真分析方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130253868A1 (en) * 2012-03-23 2013-09-26 International Business Machines Corporation Estimating delay deterioration due to device degradation in integrated circuits
TWI697797B (zh) * 2018-11-08 2020-07-01 瑞昱半導體股份有限公司 決定積體電路之電壓以及找出電壓與電路參數之關係的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314525A (zh) * 2010-06-30 2012-01-11 中国科学院微电子研究所 一种低功耗电路设计优化方法
CN103207657A (zh) * 2011-11-04 2013-07-17 联发科技(新加坡)私人有限公司 电压调整装置与方法、移动装置及使其运行的方法
CN103425222A (zh) * 2012-05-18 2013-12-04 联发科技(新加坡)私人有限公司 电压调整系统与电压调整方法
CN111079293A (zh) * 2019-12-19 2020-04-28 北京华大九天软件有限公司 一种包含动态电源噪声的jitter仿真分析方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
李悦 ; 蔡刚 ; 李天文 ; 杨海钢 ; .基于向量传播的单粒子瞬态模拟方法研究.微电子学.2017,(第02期),全文. *
李悦 ; 蔡刚 ; 李天文 ; 杨海钢 ; .基于四值脉冲参数模型的单粒子瞬态传播机理与软错误率分析方法.电子与信息学报.2016,(第08期),全文. *
王磊 ; 童子权 ; .基于CPLD的面阵CCD驱动电路的设计.仪表技术与传感器.2010,(第10期),全文. *

Also Published As

Publication number Publication date
CN112464599A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112464599B (zh) 应用在电路的静态时序分析中确定电源电压数据的方法
US10699049B2 (en) System design using accurate performance models
CN110704751A (zh) 数据处理方法、装置、电子设备及存储介质
CN114862656B (zh) 基于多gpu的分布式深度学习模型训练代价的获取方法
WO2015043527A1 (zh) 电子设备性能的测试方法及装置
US12072780B2 (en) Method and apparatus for testing AI chip computing performance, and non-transitory computer-readable storage medium
US11144357B2 (en) Selecting hardware accelerators based on score
US9021289B2 (en) Method and system for power estimation based on a number of signal changes
US20150160274A1 (en) Method and apparatus for power estimation
WO2021114757A1 (zh) 计算图的优化方法、装置、计算机设备和存储介质
CN115129460A (zh) 获取算子硬件时间的方法、装置、计算机设备和存储介质
JP6567215B2 (ja) アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム
US20130282337A1 (en) Performance evaluation device and performance evaluation method
US20110283131A1 (en) Computer-readable recording medium, method, and apparatus for calculating power consumption information
CN114021733B (zh) 模型训练优化方法、装置、计算机设备及存储介质
US11386251B2 (en) Logic simulation verification system, logic simulation verification method, and program
CN113627107A (zh) 确定电源电压数据的方法、装置、电子设备和介质
CN114896105A (zh) 电子设备的可靠性评估方法、装置、设备和介质
JPWO2016181549A1 (ja) 性能評価装置及び性能評価プログラム
CN114724639B (zh) 预处理加速方法、装置、设备及存储介质
CN113568821B (zh) 一种ai芯片计算性能的测试方法、装置、设备、及介质
Kariofillis et al. Workload Characterization of Commercial Mobile Benchmark Suites
JP7378866B1 (ja) プログラム、情報処理システム及び情報処理方法
US9384016B2 (en) Method of estimating program speed-up with highly parallel architectures
KR102408222B1 (ko) 전력 모델 증분 학습 방법 및 장치

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