CN112100950B - 用于芯片设计的方法、系统、设备以及存储介质 - Google Patents

用于芯片设计的方法、系统、设备以及存储介质 Download PDF

Info

Publication number
CN112100950B
CN112100950B CN202010980254.XA CN202010980254A CN112100950B CN 112100950 B CN112100950 B CN 112100950B CN 202010980254 A CN202010980254 A CN 202010980254A CN 112100950 B CN112100950 B CN 112100950B
Authority
CN
China
Prior art keywords
logic circuit
waveform
flip
flop
unstable
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
CN202010980254.XA
Other languages
English (en)
Other versions
CN112100950A (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 CN202010980254.XA priority Critical patent/CN112100950B/zh
Publication of CN112100950A publication Critical patent/CN112100950A/zh
Application granted granted Critical
Publication of CN112100950B publication Critical patent/CN112100950B/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/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

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

用于芯片设计的方法、系统、设备以及存储介质
技术领域
本公开的实施例涉及一种用于芯片设计的方法、系统、设备以及存储介质。
背景技术
目前,功耗已经成为集成电路设计中日益关注的因素。在高性能图形处理器(Graphics Processing Unit,CPU)和中央处理器(Central Processing Unit,CPU)设计中,动态功率是关键设计指标之一,而动态功率的关键部分之一就是毛刺功率(glitchpower)。在实际电路中,例如由于器件延迟的存在,电路会产生额外的功耗,这种功耗被称为毛刺功率。
发明内容
本公开的实施例提供一种用于芯片设计的方法、系统、设备以及存储介质。用于芯片设计的方法可以计算芯片设计中的非稳定翻转状态导致的功率,例如毛刺功率。
本公开至少一个实施例提供了一种用于芯片设计的方法,该用于芯片设计的方法包括:加载网表,其中,所述网表包括用于芯片设计的多个功能模块、位于所述多个功能模块之间的多个逻辑电路以及所述多个功能模块的时序信息;基于时序分析工具根据所述网表获得波形文件,其中,所述波形文件包括所述多个逻辑电路的工作波形;加载与所述波形文件关联的属性设计文件,结合所述网表从所述属性设计文件中读取所述多个功能模块的时钟频率;根据所述多个功能模块的时钟频率,确定位于所述多个功能模块中的相邻传输级功能模块的稳定频率;以及基于所述稳定频率,标识所述相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态。
例如,本公开至少一个实施例提供的用于芯片设计的方法还包括:根据标识出的所述逻辑电路的工作波形中的非稳定翻转状态,计算单个功率分析周期内的时钟信号在所述相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:比较所述相邻传输级功能模块的稳定频率对应的波形与所述相邻传输级功能模块之间的逻辑电路的工作波形,当所述逻辑电路的工作波形中的至少一个脉冲与所述稳定频率对应的波形的有效沿不重叠时,所述至少一个脉冲被标识为非稳定翻转状态,其中,所述稳定频率对应的波形的有效沿包括所述稳定频率对应的波形的上升沿。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,确定位于所述多个功能模块中的相邻传输级功能模块的稳定频率包括:将所述相邻传输级功能模块的时钟频率中最大的时钟频率作为稳定频率。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,确定位于所述多个功能模块中的相邻传输级功能模块的稳定频率包括:将所述相邻传输级功能模块的其中之一的时钟频率作为稳定频率。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,所述多个功能模块包括第一触发器和第二触发器,所述第一触发器的输出端通过所述逻辑电路与所述第二触发器的输入端连接,所述第一触发器的时钟引脚与所述第二触发器的时钟引脚连接,所述第一触发器的时钟频率与所述第二触发器的时钟频率相等。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,所述逻辑电路包括第一组合逻辑电路,所述第一组合逻辑电路与所述第一触发器的输出端和所述第二触发器的输入端连接,其中,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:将所述第一触发器的时钟频率作为稳定频率,基于所述第一触发器的时钟频率对应的波形,标识所述第一组合逻辑电路的工作波形中的非稳定翻转状态。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,所述多个功能模块还包括第三触发器,所述逻辑电路包括扇出逻辑电路,所述扇出逻辑电路包括多个第一分支逻辑电路,所述第一触发器的输出端通过所述多个第一分支逻辑电路分别与所述第二触发器的输入端和所述第三触发器的输入端连接,所述第一触发器的时钟引脚接收第一时钟信号,所述第三触发器的时钟引脚接收第二时钟信号,所述第一时钟信号包括第一时钟频率,所述第二时钟信号包括第二时钟频率,所述第一触发器和所述第二触发器的时钟频率分别包括所述第一时钟频率,所述第三触发器的时钟频率包括所述第二时钟频率,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:将所述第一触发器的第一时钟频率作为稳定频率,基于所述第一触发器的第一时钟频率对应的波形,分别标识所述扇出逻辑电路的多个第一分支逻辑电路的工作波形中的非稳定翻转状态。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,所述多个第一分支逻辑电路包括第一子分支逻辑电路、第二子分支逻辑电路以及第三子分支逻辑电路,其中,所述第一子分支逻辑电路与所述第一触发器的输出端连接,所述第二子分支逻辑电路和所述第三子分支逻辑电路都与所述第一子分支逻辑电路连接,所述第二子分支逻辑电路与所述第二触发器的输入端连接,所述第三子分支逻辑电路与所述第三触发器的输入端连接,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:基于所述第一触发器的第一时钟频率对应的波形,分别标识所述第一子分支逻辑电路和所述第二子分支逻辑电路的工作波形中的第一非稳定翻转状态和第二非稳定翻转状态;基于所述第三触发器的第二时钟频率对应的波形,标识所述第三子分支逻辑电路的工作波形中的第三非稳定翻转状态。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,所述多个功能模块还包括第四触发器,所述逻辑电路包括扇入逻辑电路,所述扇入逻辑电路包括多个第二分支逻辑电路,所述第一触发器的输出端和所述第四触发器的输出端通过所述多个第二分支逻辑电路与所述第二触发器的输入端连接,所述第四触发器的时钟引脚接收第一时钟信号,所述第一触发器的时钟引脚接收第二时钟信号,所述第一时钟信号包括第一时钟频率,所述第二时钟信号包括第二时钟频率,所述第一触发器和所述第二触发器的时钟频率分别包括所述第二时钟频率,所述第四触发器的时钟频率包括所述第一时钟频率,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:将所述第二触发器的第二时钟频率作为稳定频率,基于所述第二触发器的第二时钟频率对应的波形,分别标识所述扇出逻辑电路的多个第二分支逻辑电路的工作波形中的非稳定翻转状态。
例如,在本公开至少一个实施例提供的用于芯片设计的方法中,所述多个第二分支逻辑电路包括第四子分支逻辑电路、第五子分支逻辑电路以及第六子分支逻辑电路,所述第四子分支逻辑电路与所述第四触发器的输出端连接,所述第五子分支逻辑电路和所述第一触发器的输出端连接,所述第四子分支逻辑电路和所述第五子分支逻辑电路都与所述第六子分支逻辑电路连接,所述第六子分支逻辑电路与所述第二触发器的输入端连接,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:基于所述第二触发器的第二时钟频率对应的波形,分别标识所述第五子分支逻辑电路和所述第六子分支逻辑电路的工作波形中的第四非稳定翻转状态和第五非稳定翻转状态;基于所述第四触发器的第一时钟频率对应的波形,标识所述第四子分支逻辑电路的工作波形中的第六非稳定翻转状态。
例如,本公开至少一个实施例提供的用于芯片设计的方法还包括:将所述单个功率分析周期内的时钟信号在所述相邻传输级功能模块之间传递过程中产生的所述非稳定翻转状态导致的功率相加,得到每个功率分析周期的非稳定翻转状态导致的功率,将所述每个功率分析周期的非稳定翻转状态导致的功率相加,得到多个功率分析周期的非稳定翻转状态导致的功率。
本公开至少一个实施例还提供了一种用于芯片设计的系统,包括:网表加载单元、文件获得单元、文件加载单元、稳定频率确定单元以及标识单元。网表加载单元配置为加载网表,其中,所述网表包括用于芯片设计的多个功能模块、位于所述多个功能模块之间的多个逻辑电路以及所述多个功能模块的时序信息;文件获得单元配置为基于时序分析工具根据所述网表获得波形文件,其中,所述波形文件包括所述多个逻辑电路的工作波形;文件加载单元配置为加载与所述波形文件关联的属性设计文件,结合所述网表从所述属性设计文件中读取所述多个功能模块的时钟频率;稳定频率确定单元配置为根据所述多个功能模块的时钟频率,确定位于所述多个功能模块中的相邻传输级功能模块的稳定频率;标识单元配置为基于所述稳定频率,标识所述相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态。
例如,本公开至少一个实施提供的一种用于芯片设计的系统还包括功率计算单元,配置为根据标识出的所述逻辑电路的工作波形中的非稳定翻转状态,计算单个功率分析周期内的时钟信号在所述相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率。
例如,在本公开至少一个实施例提供的一种用于芯片设计的系统中,标识单元还配置为比较所述相邻传输级功能模块的稳定频率对应的波形与所述相邻传输级功能模块之间的逻辑电路的工作波形,当所述逻辑电路的工作波形中的至少一个脉冲与所述稳定频率对应的波形的有效沿不重叠时,所述至少一个脉冲被标识为非稳定翻转状态,其中,所述稳定频率对应的波形的有效沿包括所述稳定频率对应的波形的上升沿。
本公开至少一个实施例还提供了一种用于芯片设计的设备,所述设备包括存储器和处理器,其中所述存储器中存有可执行代码,当利用所述处理器执行所述可执行代码时,使得所述处理器执行如前任一所述的用于芯片设计的方法。
本公开至少一个实施例还提供了一种计算机可读存储介质,其上存储有可执行代码,所述可执行代码在被处理器执行时,使得所述处理器执行如前任一所述的用于芯片设计的方法。
本公开至少一实施例提供的一种用于芯片设计的方法、系统、设备以及存储介质,通过基于稳定频率,标识相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态,从而可以根据标识出的工作波形中的非稳定翻转状态对应的功耗,得到非稳定翻转状态导致的功率,例如毛刺功率。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A为一种逻辑电路的示意图;
图1B为图1A中所示逻辑电路的波形图;
图2为本公开至少一实施例提供的一种用于芯片设计的方法的流程图;
图3为本公开至少另一实施例提供的一种用于芯片设计的方法的流程图;
图4A为本公开至少一实施例提供的一种用于芯片设计的功能模块以及逻辑电路的示意图;
图4B为图4A所示逻辑电路的波形图;
图5A为本公开至少另一实施例提供的一种用于芯片设计的功能模块以及逻辑电路的示意图;
图5B为本公开至少一实施例提供的图5A所示逻辑电路的波形图;
图5C为本公开至少另一实施例提供的图5A所示逻辑电路的波形图;
图6A为本公开至少再一实施例提供的一种用于芯片设计的功能模块以及逻辑电路的示意图;
图6B为本公开至少一实施例提供的图6A所示逻辑电路的波形图;
图6C为本公开至少另一实施例提供的图6A所示逻辑电路的波形图;
图7为本公开至少一实施例提供的一种用于芯片设计的系统的示意图;
图8为本公开至少一实施例提供的又一种用于芯片设计的设备的结构示意图;以及
图9为本公开至少一实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
在芯片设计的过程中,传统功率分析工具,例如EDA(Electronic DesignAutomation)工具中常见的Synopsys等工具软件,使用模拟器来运行带有通过SDF文件注释时序的门级网表(Gate Netlist)进行模拟。该SDF文件为动态时序仿真所用的文件,并包括门级网表中每个单元或模块的时序信息,基本的时序数据由以下几部分组成:IOPATH延迟、INTERCONNECT延迟、SETUP时序检查以及HOLD时序检查等。模拟器得到的记录波形的文件,例如VCD(Value Change Dump)文件或FSDB(Fast Signal Data Base)文件,与标准媒介文件(Standard Parasitic Exchange Format,SPEF)一起被馈送到功率分析工具。该功率分析工具用于测试与统计分析,以计算基于时间的开关功率。
图1A为一种逻辑电路的示意图。如图1A所示,逻辑电路包括或门01以及与门02,或门01以及与门02组成或与门。或门01和与门02分别包括两个输入以及一个输出。或门01接收时钟信号A和时钟信号B,并输出时钟信号D,或门01输出的时钟信号D和时钟信号C输入到与门02,与门02输出时钟信号E。
图1B为图1A中所示逻辑电路的波形图。如图1B所示,时钟信号A对应的波形在时刻t3发生翻转,时钟信号B对应的波形在时刻t2发生翻转,时钟信号C对应的波形在时刻t1发生翻转。时钟信号E对应的波形在时刻t1、时刻t2以及时刻t3发生翻转。例如,时钟信号E对应的波形在时刻t3发生翻转之后获得了稳定的传输,即与之后接收时钟信号E的逻辑电路的时钟信号相同,则时钟信号E在时刻t3为最终稳定值。但是,在时刻t3之前,时钟信号E对应的波形在时刻t1和时刻t2的翻转,例如时刻t1和时刻t2之间的脉冲,为非稳定翻转的中间值(例如不必要的信号转换)。根据以上分析,时刻t1和时刻t2之间的脉冲为毛刺(glitch),该毛刺所引起的功耗为毛刺功率(glitch power)。
在逻辑设计中,毛刺为没有功能的不必要的信号转换(例如虚假翻转)。逻辑电路中门(例如,与门、非门或门及其组合等)的功耗有两种方式:静态功耗和动态功耗。毛刺功率属于逻辑电路的动态功耗,与逻辑电路中门开关活动成正比。以触发器为例,相邻传输级的触发器通过逻辑电路连接,触发器的状态元素(例如,在芯片设计的过程中,约束设计文件(Synopsys Design Constraints,SDC)中约束的触发器的工作频率),相邻传输级的触发器的状态元素之间的逻辑电路在每个状态元素之间形成传递函数。例如,毛刺功率可以是状态元素之间的逻辑电路在稳定到最终稳定值(例如,触发器的工作频率)之前的任何中间值。毛刺取决于信号转换的数量与幅度,毛刺越多,功耗越高。
目前为止,常用的功率分析工具计算基于时间的开关功率,以得到一个总功率,该总功率包括毛刺功率和其它功率(例如功能功率(从一个稳定值到另一个稳定值的转换)等)。现有设计方法无法将毛刺功率和其它功率识别出来,所以无法获得芯片设计中的毛刺功率,由此也无法在设计阶段对毛刺功率进行更好地优化以降低被设计芯片的功耗。
在低功耗芯片设计越来越重要的情况下,将毛刺功率计算出来对于毛刺的去除以优化芯片设计至关重要。
本公开至少一实施例提供一种用于芯片设计的方法。该用于芯片设计的方法包括:加载网表,网表包括用于芯片设计的多个功能模块、位于多个功能模块之间的多个逻辑电路以及多个功能模块的时序信息;基于时序分析工具根据网表获得波形文件,波形文件包括多个逻辑电路的工作波形;加载与波形文件关联的属性设计文件,结合网表从所述属性设计文件中读取多个功能模块的时钟频率;根据多个功能模块的时钟频率,确定位于多个功能模块中的相邻传输级功能模块的稳定频率;基于稳定频率,标识相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态。
在本公开上述实施例提供的用于芯片设计的方法中,通过基于稳定频率,标识相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态,从而可以根据标识出的工作波形中的非稳定翻转状态对应的功耗,得到非稳定翻转状态导致的功率,例如毛刺功率。并且,本公开实施例提供的用于芯片设计的方法具有较强的普适性,可以被应用于多种功率分析工具或EDA工具等。
下面结合附图对本公开的实施例及其示例进行详细说明。
图2为本公开至少一实施例提供的一种用于芯片设计的方法的流程图。
如图2所示本公开实施例提供的用于芯片设计的方法包括步骤S101-S105。
步骤S101:加载网表,该网表包括用于芯片设计的多个功能模块、位于多个功能模块之间的多个逻辑电路以及多个功能模块的时序信息。
例如,在一些实施例中,在基于软件工具,例如Synopsys工具的芯片设计流程中,可以利用逻辑综合工具(例如Synopsys工具中的Design Compiler工具)解析定义芯片设计中的多个功能模块的属性信息的属性设计文件以及寄存器传输级描述文件,结合标准单元库生成网表。例如,网表为寄存器传输级描述文件的下一级描述文件。例如,从寄存器传输级描述文件中获取芯片设计中的多个功能模块的对应于高级语言的描述(例如,C语言或寄存器传输级描述)。例如,属性设计文件包括约束设计文件(Synopsys DesignConstraints,SDC),约束设计文件定义了多个功能模块的时间约束,例如对电路的时序、面积、功耗进行约束。例如,标准单元库中包括芯片设计的标准单元(例如组成各个功能模块的单元器件)的标准参数。网表包括对应于寄存器传输级描述文件中的多个功能模块的多个功能模块、多个功能模块的时序信息。例如,网表的多个功能模块之间还可以插入逻辑电路,逻辑电路形成功能模块的组合逻辑,组合逻辑形成传递函数。例如,逻辑电路可以是逻辑门电路。例如,在本公开实施例中,逻辑电路以逻辑门电路为例进行说明。
需要说明的是,本公开实施例中的功能模块可以理解为包括但不限于芯片设计中的各个系统、子系统等。网表的多个功能模块之间还可以插入其它电路单元,比如,电平移位器、移位电路、位准偏移器、电平移动二级管等,本公开实施例不以此为限。
步骤S102:基于时序分析工具根据网表获得波形文件,波形文件包括多个逻辑电路的工作波形。
例如,在一些实施例中,使用步骤101中生产的网表,使用时序分析工具,例如Synopsys工具中的静态时序分析(STA,Static Timing Analysis)所使用的PT(PrimeTime)工具,运行网表,模拟得到的波形文件,例如VCD(Value Change Dump)文件或FSDB(Fast Signal Data Base)文件。在静态时序分析的过程中,通过为综合(synthesis)计算模块(cell)和逻辑电路组成的时序传输路线(path)的延时,判断时序传输路线延时是否满足相应时序约束,判断时序传输路线延时是否满足相应时序约束,然后基于时序传输路线延时,静态时序分析工具从用时序数据库(Timing Library)中选择计算模块来创建一个满足时序要求的逻辑电路。
然后基于时序传输路线的延时,静态时序分析工具读入网表,并调用时序数据库进行时序分析,得到波形文件。波形文件包括多个逻辑电路的工作波形,例如VCD(ValueChange Dump)文件或FSDB(Fast Signal Data Base)文件。
需要说明的是,对网表进行时序分析,还可以采用动态时序分析的方式,本公开实施例不以此为限制。
步骤S103:加载与波形文件关联的属性设计文件,结合网表从属性设计文件中读取多个功能模块的时钟频率。
例如,在一些实施例中,如在步骤S101中所述的属性设计文件,属性设计文件中的约束设计文件定义了多个功能模块的时序。由于网表与属性设计文件相关联,且波形文件是基于网表产生的,所以波形文件与属性设计文件也是间接关联的。在芯片设计流程中,例如利用Synopsys工具,加载属性设计文件,例如约束设计文件,结合网表,例如结合网表中的多个功能模块的信息,读取多个功能模块的时钟频率。需要说明的是,多个功能模块的时钟频率指的是功能模块在正常工作状态下的时钟频率,也可以理解为每个功能模块的稳定时钟频率,该稳定时钟频率对应于功能模块的稳定状态。
步骤S104:根据多个功能模块的时钟频率,确定位于多个功能模块中的相邻传输级功能模块的稳定频率。
例如,在一些实施例中,在芯片设计的一些部分设计中,相邻传输级功能模块的时钟频率可能是相同的,也即相邻传输级功能模块接收相同的时钟频率;在芯片设计的另一些部分设计中,相邻传输级功能模块的时钟频率可能是不相同的,也即相邻传输级功能模块之间的逻辑电路在完成时钟信号传输的过程中,需要实现时钟信号的转变,相邻传输级功能模块分别接收不同的时钟频率。在相邻传输级功能模块接收相同的时钟频率的情况下,相邻传输级功能模块的稳定频率可以选择功能模块的时钟频率。在相邻传输级功能模块分别接收不同的时钟频率的情况下,需要选择多个功能模块中的相邻传输级功能模块的稳定频率。
例如,在一些实施例中,确定位于多个功能模块中的相邻传输级功能模块的稳定频率包括:将相邻传输级功能模块的时钟频率中最大的时钟频率作为稳定频率。例如,稳定频率用于标识逻辑电路的工作波形中的翻转状态,从而进一步判断翻转状态是非稳定翻转状态还是稳定翻转状态。例如,在将相邻传输级功能模块的时钟频率中最大的时钟频率作为稳定频率的情况下,相邻传输级功能模块之间的逻辑电路的工作波形与最大的时钟频率对应的波形做比较以确定逻辑电路的工作波形是否达到稳定翻转状态。相对应地,稳定翻转状态之间的其它翻转状态为非稳定翻转状态,从而根据非稳定翻转状态的功耗,计算逻辑电路的非稳定翻转状态导致的功率(例如毛刺功率)。同时,在本公开实施例中,将相邻传输级功能模块的时钟频率中最大的时钟频率作为稳定频率,无需判断具体的电路(例如逻辑电路)结构功能等,从而快速、高效地确定稳定频率,以加快计算非稳定翻转状态导致的功率的速度,节约计算时间。需要说明的是,在本公开实施例中,稳定翻转状态指的是逻辑电路的工作波形相对于稳定频率做了对应于必要的信号转换的有效翻转,之后将结合图5A-图6C所示的实施例详细介绍。
例如,在另一些实施例中,确定位于多个功能模块中的相邻传输级功能模块的稳定频率包括:将相邻传输级功能模块的其中之一的时钟频率作为稳定频率。例如,稳定频率用于标识逻辑电路的工作波形中的翻转状态,从而进一步判断翻转状态是非稳定翻转状态还是稳定翻转状态。例如,在将相邻传输级功能模块的其中之一的时钟频率作为稳定频率的情况下,若选择相邻传输级功能模块的时钟频率中的非最大值作为稳定频率,当相邻传输级功能模块之间的逻辑电路的工作波形与稳定时钟频率对应的波形做比较,以确定逻辑电路的工作波形的非稳定翻转状态,从而根据非稳定翻转状态的功耗,计算逻辑电路的非稳定翻转状态导致的功率。同时,在本公开实施例中,将相邻传输级功能模块的其中之一的时钟频率作为稳定频率,无需判断具体的电路(例如逻辑电路)结构功能等,可以加快计算非稳定翻转状态导致的功率的速度,节约计算时间。此时,相比于最大的时钟频率作为稳定频率的情况,逻辑电路的工作波形中被确定为非稳定翻转状态的比较结果有所不同,后续将结合图5A-图6C所示的实施例详细介绍。
步骤S105:基于稳定频率,标识相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态。
例如,在一些实施例中,相邻传输级功能模块之间的逻辑电路的工作波形与稳定频率对应波形相比,在逻辑电路的工作波形经过多次翻转,例如逻辑电路的工作波形的工作波形包括多个脉冲的情况下,工作波形的有效翻转为稳定翻转状态。例如,工作波形的有效翻转可以是与稳定频率对应波形的上升沿重叠的脉冲。逻辑电路的工作波形在稳定状态之间的非有效翻转被标识为非稳定翻转状态。该非稳定翻转状态可以是一个无效脉冲(即不必要的信号转换),例如,被称为毛刺(glitch)。此时,非稳定翻转状态所产生的功耗被为非稳定翻转状态导致的功率(例如毛刺功率)。
例如,在其它实施例中,逻辑电路的工作波形中的非稳定翻转状态可以根据计算方法的需求,或者软件计算速度的要求进行设计。例如两个功能模块之间的逻辑电路的工作波形,若该工作波形的发生偶数次翻转,则这些偶数次翻转都为非稳定翻转状态。例如,工作波形翻转两次,从0变为1,又从1变为0,则说明功能模块之间传递的时序信号为0,而翻转为1是错误或无效的。又例如两个功能模块之间的逻辑电路的工作波形,若该工作波形的发生奇数次翻转,若翻转次数为1次,则工作波形中不存在非稳定翻转状态;若翻转次数为大于1的奇数次,则工作波形中除了最后一次翻转之外,其它翻转都被标识为非稳定翻转状态。
例如,在上述实施例中,通过基于稳定频率,标识相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态,可以根据标识出的工作波形中的非稳定翻转状态对应的功耗,得到非稳定翻转状态导致的功率(例如毛刺功率)。并且,本公开实施例提供的用于芯片设计的方法具有较强的普适性,可以被应用于多种功率分析工具或EDA工具等。
图3为本公开至少另一实施例提供的一种用于芯片设计的方法的流程图。
如图3所示本公开实施例提供的用于芯片设计的方法包括步骤S201-S205。
步骤S201:比较相邻传输级功能模块的稳定频率对应的波形与相邻传输级功能模块之间的逻辑电路的工作波形。
例如,在一些实施例中,在同一个功率分析周期以及相同时刻,比较相邻传输级功能模块的稳定频率对应的波形与相邻传输级功能模块之间的逻辑电路的工作波形,从而可以对比出稳定频率对应的波形与逻辑电路的工作波形中的翻转(例如脉冲)之间的对应关系。后续将结合图4B、图5B、图5C、图6B以及图6C进行详细介绍。
步骤S202:当逻辑电路的工作波形中的至少一个脉冲与稳定频率对应的波形的有效沿不重叠时,至少一个脉冲被标识为非稳定翻转状态。
例如,在一些实施例中,稳定频率对应的波形的有效沿包括稳定频率对应的波形的上升沿。当逻辑电路的工作波形的翻转没有跨过稳定频率对应波形的有效沿时,即,逻辑电路的工作波形的脉冲没有跨过上升沿,则将该翻转标识为非稳定翻转状态。也就是说,逻辑电路的工作波形中的没有跨过有效沿的脉冲被标识为毛刺。相对应地,逻辑电路的工作波形中的跨过有效沿的脉冲将不被标识为非稳定翻转状态。从而将非稳定翻转状态从逻辑电路的工作波形中选择出来,使得下一步可以根据标识出的非稳定翻转状态计算逻辑电路的非稳定翻转状态导致的功率(例如毛刺功率)。
例如,在其它实施例中,根据芯片设计的相关要求,稳定频率对应的波形的有效沿不限于上升沿,也可以是其它形式,本公开实施例不以有效沿的具体设计为限制。
步骤S203:根据标识出的逻辑电路的工作波形中的非稳定翻转状态,计算单个功率分析周期内的时钟信号在相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率。
例如,在一些实施例中,利用功率分析工具,由于被标识出的逻辑电路的工作波形中的非稳定翻转状态(被毛刺)的功耗是已知的,可以将单个功率分析周期内的时钟信号在相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率(例如毛刺功率)都计算出来,由此,将非稳定翻转状态导致的功率从总功率中区分出来,由此可以根据非稳定翻转状态导致的功率对芯片设计进行相应地优化。本公开实施例提供的计算非稳定翻转状态导致的功率的上述技术方案,可以被应用于多种功率分析工具或EDA工具等。
步骤S204:将单个功率分析周期内的时钟信号在相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率相加,得到每个功率分析周期的非稳定翻转状态导致的功率。
例如,在一些实施例中,功率分析工具在进行功率分析时,可以设置为将非稳定翻转状态导致的功率(例如毛刺功率)和功能功率(除非稳定翻转状态导致的功率以外的其它功率)传输到每个周期基准的单独的功率箱中。也就是说,根据得到的单个功率分析周期内的时钟信号在相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率都放到一起,例如通过加法运算,得到每个功率分析周期的非稳定翻转状态导致的功率,相当于将多个逻辑电路在每个功率分析周期的非稳定翻转状态导致的功率进行汇总,得到一个直观的对应于多个功率分析周期的非稳定翻转状态导致的功率的总和。
步骤S205:将每个功率分析周期的非稳定翻转状态导致的功率相加,得到多个功率分析周期的非稳定翻转状态导致的功率(例如毛刺功率的总和)。例如,功率分析工具还可以设置为,根据功率分析周期进行汇总,例如将将每个功率分析周期的非稳定翻转状态导致的功率相加,得到多个功率分析周期的非稳定翻转状态导致的功率。另一方面,功率分析工具还可以将每个功率分析周期的功能功率根据功率分析周期进行汇总(例如加法运算),得到总功能功率。也就是说,功率分析工具基于时间的开关功率得到的总功率分为了多个功率分析周期的非稳定翻转状态导致的功率(例如毛刺功率的总和)和总功能功率,由此可以根据多个功率分析周期的非稳定翻转状态导致的功率对芯片设计进行相应地优化。
例如,在图3所示的实施例提供的用于芯片设计的方法,利用功率分析工具,根据标识的逻辑电路的工作波形中的非稳定翻转状态,获得了多个功率分析周期的非稳定翻转状态导致的功率,从而设计人员可以根据多个功率分析周期的非稳定翻转状态导致的功率对芯片设计进行优化,以减小或去除多个功率分析周期的非稳定翻转状态导致的功率(例如毛刺功率的总和)。
例如,在一些实施例中,图4A为本公开至少一实施例提供的一种用于芯片设计的功能模块以及逻辑电路的示意图。如图4A所示,网表中的多个功能模块包括第一触发器1201和第二触发器1203。第一触发器1201的输出端1102(例如引脚Q)通过逻辑电路与第二触发器1203的输入端1104(例如引脚D)连接。第一触发器1201的时钟引脚1101(例如引脚CLK)与第二触发器1203的时钟引脚1103(例如引脚CLK)连接,由此,第一触发器1201的时钟引脚1101与第二触发器1203的时钟引脚1103接收相同的时钟信号,例如图中的时钟信号CLK_A11,即两者的时钟频率相等。
例如,如图4A所示,时钟信号CLK_A11由信号端401提供。又例如,时钟信号CLK_A11也可以是由上一级功能模块的输出端提供。本公开实施例不以此为限。
例如,在本公开上述实施例中,功能模块以触发器为例进行说明,本公开并不限于此。
需要说明的是,本公开实施例对第一触发器1201的输入端(例如引脚D)以及第二触发器1203的输出端(例如引脚Q)的具体的工作过程加以限制,第一触发器1201的输入端(例如引脚D)以及第二触发器1203的输出端(例如引脚Q)并不对标识逻辑电路的工作波形中的非稳定翻转状态产生影响。
例如,在一些实施例中,如图4A所示,第一触发器1201和第二触发器1203之间的逻辑电路包括第一组合逻辑电路1301。第一组合逻辑电路1301与第一触发器1201的输出端1102和第二触发器1203的输入端1104连接。以图4A所示的第一触发器1201和第二触发器1203之间的逻辑电路组成第一触发器1201和第二触发器的传递函数,第一触发器1201和第二触发器以及两者之间的逻辑电路执行相邻传输级之间的信号传递。
例如,在本公开实施例中,第一组合逻辑电路1301例如是由与门、非门以及或门其中的至少一个组成。需要说明的是,第一组合逻辑电路1301的具体结构可以根据芯片设计进行选择,本公开实施例并不限制第一组合逻辑电路1301的具体结构。
例如,在一些实施例中,标识逻辑电路的工作波形中的非稳定翻转状态包括:将第一触发器的时钟频率作为稳定频率,基于第一触发器的时钟频率对应的波形,标识第一组合逻辑电路的工作波形中的非稳定翻转状态。图4B为用于图4A所示逻辑电路的波形图。
如图4A以及4B所示,第一触发器1201和第二触发器1203都接收时钟信号CLK_A11,即第一触发器1201和第二触发器1203的时钟频率都为时钟信号CLK_A11对应的时钟频率。第一组合逻辑电路1301的工作波形,例如为图4B中的波形DATA11。波形DATA11包括脉冲11、脉冲12以及脉冲13。波形DATA11在时刻T11和时刻T12发生翻转产生脉冲11,波形DATA11在时刻T13和时刻T14发生翻转产生脉冲12,波形DATA11在时刻T15和时刻T16发生翻转产生脉冲13。
需要说明的是,本公开实施例以图4B所示的波形图为例对逻辑电路的工作波形的非稳定翻转状态的标识方法进行说明,图4B所示的波形图并不代表第一触发器1201、第二触发器1203以及第一组合逻辑电路1301实际的工作波形。
例如,在一些实施例中,如图4B所示,将第一触发器1201的时钟频率,例如时钟信号CLK_A11对应的时钟频率,作为稳定频率。当稳定频率对应的波形的有效沿包括稳定频率对应的波形的上升沿时,脉冲11和脉冲12都没有与稳定频率对应的波形(例如,图中时钟信号CLK_A11的波形)的上升沿重叠,而脉冲13与稳定频率对应的波形(例如,图中时钟信号CLK_A11的波形)的上升沿重叠。所以,脉冲11和脉冲12被标识为非稳定翻转状态,即毛刺,而脉冲13可以被标识为相对应的稳定翻转状态。这种情况下,脉冲11和脉冲12产生的功耗将被功率分析工具计算为非稳定翻转状态导致的功率(例如毛刺功率),而脉冲13产生的功耗将被功率分析工具计算为功能功率。例如,可以根据非稳定翻转状态导致的功率对芯片设计进行优化,以减小或去除非稳定翻转状态导致的功率。
例如,在一些实施例中,图5A为本公开至少另一实施例提供的一种用于芯片设计的功能模块以及逻辑电路的示意图。如图5A所示,网表中的多个功能模块包括第一触发器2201、第二触发器2203以及第三触发器2204。第二触发器2203和第三触发器2204位于第一触发器2201的相邻的下一传输级。第二触发器2203和第三触发器2204与第一触发器2201之间的逻辑电路包括扇出(Fan Out)逻辑电路201,扇出逻辑电路201包括多个第一分支逻辑电路202。第一触发器2201的输出端2102(例如引脚Q)通过多个第一分支逻辑电路202分别与第二触发器2203的输入端2104(例如引脚D)以及第三触发器2204的输入端2106(例如引脚D)连接。第一触发器2201的时钟引脚2101(例如引脚CLK)与第二触发器2203的时钟引脚2103(例如引脚CLK)连接,由此,第一触发器2201的时钟引脚2101与第二触发器2203的时钟引脚2103接收相同的时钟信号,例如图中的第一时钟信号CLK_A21,即两者的时钟频率相等。第三触发器2204的时钟引脚2105(例如引脚CLK)接收另一时钟信号,例如图中的第二时钟信号CLK_B21。第二时钟信号CLK_B21与第一时钟信号CLK_A21不同。例如,本公开实施例中的扇出逻辑电路201可以使第一触发器2201直接调用下一级的第二触发器2203和第三触发器2204。
例如,如图5A所示,第一时钟信号CLK_A21和第二时钟信号CLK_B21分别由信号端501和信号端502提供。又例如,第一时钟信号CLK_A21和第二时钟信号CLK_B21也可以是由上一级功能模块的输出端提供。本公开实施例不以此为限。
例如,在一些实施例中,第一时钟信号CLK_A21包括第一时钟频率,第二时钟信号CLK_B21包括第二时钟频率。由此,第一触发器2201和第二触发器2203的时钟频率分别包括第一时钟频率,第三触发器2204的时钟频率包括第二时钟频率。
例如,如图5A所示,多个第一分支逻辑电路202的数量为3个,并呈一个连接两个的结构。例如在其它实施例中,多个第一分支逻辑电路202的数量和结构可以根据芯片设计的需求而定,本公开实施例不以多个第一分支逻辑电路202的数量为限。
例如,在一些实施例中,标识逻辑电路的工作波形中的非稳定翻转状态包括:将第一触发器的第一时钟频率作为稳定频率,基于第一触发器的第一时钟频率对应的波形,分别标识扇出逻辑电路的多个第一分支逻辑电路的工作波形中的非稳定翻转状态。例如,可以根据非稳定翻转状态得到非稳定翻转状态导致的功率(例如毛刺功率),利用非稳定翻转状态导致的功率对芯片设计进行优化,以减小或去除非稳定翻转状态导致的功率。
图5B为本公开至少一实施例提供的图5A所示逻辑电路的波形图。如图5A以及图5B所示,第一触发器2201和第二触发器2203的第一时钟频率对应的波形为图5B中第一时钟信号CLK_A21的波形,第三触发器2204对应的第二时钟频率为图5B中第二时钟信号CLK_B21的波形。当将第一触发器2201的第一时钟频率作为稳定频率时,第一触发器2201的第一时钟频率对应的波形(第一时钟信号CLK_A21的波形)为稳定频率对应的波形。第一时钟信号CLK_A21的波形在时刻T21以及时刻T25出现上升沿(有效沿),第二时钟信号CLK_B21的波形在时刻T21、时刻T22、时刻T23、时刻T24以及时刻T25出现上升沿(有效沿)。
例如,图5C为本公开至少另一实施例提供的图5A所示逻辑电路的波形图。在一些实施例中,如图5B以及图5C所示,多个第一分支逻辑电路202的工作波形发生的翻转与稳定频率对应的波形进行对比。多个第一分支逻辑电路202的三个对应的工作波形分别为波形DATA21、波形DATA22以及波形DATA23。
需要说明的是,本公开的上述实施例以图5B以及图5C所示的波形图为例对多个第一分支逻辑电路202的工作波形的非稳定翻转状态的标识方法进行说明,图5B以及图5C所示的波形图并不代表第一触发器2201、第二触发器2203、第三触发器2204以及多个第一分支逻辑电路202实际的工作波形。
例如,如图5B所示,当第一时钟信号CLK_A21的第一时钟频率小于第二时钟信号CLK_B21的第二时钟频率时,稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21以及时刻T25存在上升沿。波形DATA21的脉冲21和脉冲22都不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21以及时刻T25的上升沿重叠,也就是说,波形DATA21的脉冲21和脉冲22都没有跨过稳定频率对应波形的有效沿,而脉冲23与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA21的脉冲21和脉冲22被标识为非稳定翻转状态,即毛刺,而脉冲23可以被标识为相对应的稳定翻转状态。采用同样的方式,波形DATA22的脉冲27不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21以及时刻T25的上升沿重叠,而脉冲28与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA22的脉冲27被标识为非稳定翻转状态,即毛刺,而脉冲28可以被标识为相对应的稳定翻转状态。波形DATA23的脉冲24和脉冲25都不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21以及时刻T25的上升沿重叠,而脉冲26与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA22的脉冲24和脉冲25被标识为非稳定翻转状态,即毛刺,而脉冲26可以被标识为相对应的稳定翻转状态。
例如,图5C与图5B相比,第一时钟信号CLK_A21与第二时钟信号CLK_B21的波形图交换,相应的,波形DATA23与波形DATA22交换。
例如,如图5C所示,当第一时钟信号CLK_A21的第一时钟频率大于第二时钟信号CLK_B21的第二时钟频率时,稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21、时刻T22、时刻T23、时刻T24以及时刻T25存在上升沿。波形DATA21的脉冲22不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21、时刻T22、时刻T23、时刻T24以及时刻T25的上升沿重叠,也就是说,波形DATA21的脉冲22没有跨过稳定频率对应波形的有效沿,而脉冲21和脉冲23分别与稳定频率对应的波形在时刻T22以及时刻T25的上升沿重叠。此时,波形DATA21的脉冲22被标识为非稳定翻转状态,即毛刺,而脉冲21和脉冲23可以被标识为相对应的稳定翻转状态。采用同样的方式,波形DATA22的脉冲24和脉冲25都不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21、时刻T22、时刻T23、时刻T24以及时刻T25的上升沿重叠,而脉冲26与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA22的脉冲24和脉冲25被标识为非稳定翻转状态,即毛刺,而脉冲26可以被标识为相对应的稳定翻转状态。波形DATA23的脉冲27与稳定频率(第一时钟信号CLK_A21的波形)对应的波形在时刻T22和时刻T23的上升沿重叠,波形DATA23的脉冲28与稳定频率对应的波形在时刻T25和时刻T26的上升沿重叠。此时,波形DATA23的脉冲27和脉冲28被标识为相对应的稳定翻转状态,即波形DATA23中不存在非稳定翻转状态。
例如,如图5B和图5C所示,当第一时钟信号CLK_A21的时钟频率小于第二时钟信号CLK_B21的时钟频率时(在图5B中),共标识出5个非稳定翻转状态(脉冲21、脉冲22、脉冲24、脉冲25以及脉冲27);当第一时钟信号CLK_A21的时钟频率大于第二时钟信号CLK_B21的时钟频率(在图5C中)时,共标识出3个非稳定翻转状态(脉冲22、脉冲24以及脉冲25)。根据以上对比,可以看出所选择稳定频率的大小影响最终标识出的非稳定翻转状态的个数,此时,功率分析工具计算出的多个功率分析周期的非稳定翻转状态导致的功率(例如毛刺功率的总和)会有差别,但是并不影响参考多个功率分析周期的非稳定翻转状态导致的功率对芯片设计进行优化。所以稳定频率的大小并不会对计算出的非稳定翻转状态导致的功率在芯片设计过程中的使用产生影响。
例如,在一些实施例中,如图5A所示,多个第一分支逻辑电路202包括第一子分支逻辑电路2021、第二子分支逻辑电路2022以及第三子分支逻辑电路2023。第一子分支逻辑电路2021与第一触发器2201的输出端2102连接,第二子分支逻辑电路2022和第三子分支逻辑电路2023都与第一子分支逻辑电路2021连接,第二子分支逻辑电路2022与第二触发器2203的输入端2104连接,第三子分支逻辑电路2023与第三触发器2204的输入端2106连接。第一子分支逻辑电路2021的工作波形对应图5B以及图5C中的波形DATA21,第二子分支逻辑电路2022的工作波形对应图5B以及图5C中的波形DATA22,第三子分支逻辑电路2023的工作波形对应图5B以及图5C中的波形DATA23。
例如,在一些实施例中,标识逻辑电路的工作波形中的非稳定翻转状态包括:基于第一触发器的第一时钟频率对应的波形,分别标识第一子分支逻辑电路和第二子分支逻辑电路的工作波形中的第一非稳定翻转状态和第二非稳定翻转状态;基于第三触发器的第二时钟频率对应的波形,标识第三子分支逻辑电路的工作波形中的第三非稳定翻转状态。
如图5B所示,在第一时钟信号CLK_A21的第一时钟频率小于第二时钟信号CLK_B21的第二时钟频率的情况下,以第一触发器2201的第一时钟频率(即稳定频率)对应的波形(第一时钟信号CLK_A21的波形),标识第一子分支逻辑电路2021的波形DATA21和第二子分支逻辑电路2022的波形DATA22的第一非稳定翻转状态和第二非稳定翻转状态。此时,波形DATA21的脉冲21和脉冲22都不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21以及时刻T25的上升沿重叠,也就是说,波形DATA21的脉冲21和脉冲22都没有跨过稳定频率对应波形的有效沿,而脉冲23与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA21的脉冲21和脉冲22被标识为第一非稳定翻转状态,即毛刺,而脉冲23可以被标识为相对应的稳定翻转状态。波形DATA22的脉冲27不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21以及时刻T25的上升沿重叠,而脉冲28与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA22的脉冲27被标识为第二非稳定翻转状态,即毛刺,而脉冲28可以被标识为相对应的稳定翻转状态。
以第三触发器2202的第二时钟频率(即稳定频率)对应的波形(第二时钟信号CLK_B21的波形),标识第三子分支逻辑电路2023的波形DATA23的第三非稳定翻转状态。此时,波形DATA23的脉冲24和脉冲25都不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21、时刻T22、时刻T23、时刻T24以及时刻T25的上升沿重叠,而脉冲26与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA23的脉冲24和脉冲25被标识为第三非稳定翻转状态,即毛刺,而脉冲26可以被标识为相对应的稳定翻转状态。
如图5C所示,在第一时钟信号CLK_A21的时钟频率大于第二时钟信号CLK_B21的时钟频率的情况下,以第一触发器2201的第一时钟频率(即稳定频率)对应的波形(第一时钟信号CLK_A21的波形),标识第一子分支逻辑电路2021的波形DATA21和第二子分支逻辑电路2022的波形DATA22的第一非稳定翻转状态和第二非稳定翻转状态。此时,波形DATA21的脉冲22不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21、时刻T22、时刻T23、时刻T24以及时刻T25的上升沿重叠,也就是说,波形DATA21的脉冲22没有跨过稳定频率对应波形的有效沿,而脉冲21和脉冲23分别与稳定频率对应的波形在时刻T22以及时刻T25的上升沿重叠。此时,波形DATA21的脉冲22被标识为第一非稳定翻转状态,即毛刺,而脉冲21和脉冲23可以被标识为相对应的稳定翻转状态。波形DATA22的脉冲24和脉冲25都不与稳定频率对应的波形(第一时钟信号CLK_A21的波形)在时刻T21、时刻T22、时刻T23、时刻T24以及时刻T25的上升沿重叠,而脉冲26与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA22的脉冲24和脉冲25被标识为第二非稳定翻转状态,即毛刺,而脉冲26可以被标识为相对应的稳定翻转状态。
以第三触发器2202的第二时钟频率(即稳定频率)对应的波形(第二时钟信号CLK_B21的波形),标识第三子分支逻辑电路2023的波形DATA23的第三非稳定翻转状态。此时,波形DATA23的脉冲27不与稳定频率对应的波形(第二时钟信号CLK_B21的波形)在时刻T21以及时刻T25的上升沿重叠,而脉冲28与稳定频率对应的波形在时刻T25的上升沿重叠。此时,波形DATA22的脉冲27被标识为第三非稳定翻转状态,即毛刺,而脉冲28可以被标识为相对应的稳定翻转状态。
例如,如图5B和图5C所示,当第一时钟信号CLK_A21的时钟频率小于第二时钟信号CLK_B21的时钟频率时(在图5B中),共标识出5个非稳定翻转状态(脉冲21、脉冲22、脉冲24、脉冲25以及脉冲27);当第一时钟信号CLK_A21的时钟频率大于第二时钟信号CLK_B21的时钟频率(在图5C中)时,共标识出4个非稳定翻转状态(脉冲22、脉冲24、脉冲25以及脉冲27)。根据以上对比,可以看出所选择的稳定频率影响最终标识出的非稳定翻转状态的个数,此时,功率分析工具计算出的多个功率分析周期的非稳定翻转状态导致的功率(例如毛刺功率的总和)会有些差别,但是并不影响参考多个功率分析周期的非稳定翻转状态导致的功率对芯片设计进行优化。所以稳定频率的大小并不会对计算出的非稳定翻转状态导致的功率在芯片设计过程中的使用产生影响。
根据以上对图5B以及图5C所示扇出逻辑电路201的工作波形的不稳定翻转状态的标识方式的详细描述,可以根据功率分析工具的计算能力以及计算时间等方面的考虑,选择合适的稳定频率,例如,当多个第一分支逻辑电路202采用同一个稳定频率(例如第一时钟频率或第二时钟频率)时,标识不稳定翻转状态的速度以及计算非稳定翻转状态导致的功率(例如毛刺功率)的速度较快,而当多个第一分支逻辑电路202采用多个稳定频率时,标识不稳定翻转状态的速度以及计算非稳定翻转状态导致的功率的速度较慢,但是计算的精度相对较高。在芯片设计的过程中,设计者可以根据实际情况选择确定稳定频率的方式。
例如,在一些实施例中,图6A为本公开至少另一实施例提供的一种用于芯片设计的功能模块以及逻辑电路的示意图。如图6A所示,网表中的多个功能模块包括第一触发器3201、第二触发器3203以及第四触发器3205。第一触发器3201和第四触发器3205位于第二触发器3203的相邻的上一传输级。第一触发器3201和第四触发器3205与第二触发器3203之间的逻辑电路包括扇入(Fan In)逻辑电路301,扇入逻辑电路301包括多个第二分支逻辑电路302。第一触发器3201的输出端3102(例如引脚Q)和第四触发器3108的输出端3108(例如引脚Q)通过多个第二分支逻辑电路302与第二触发器3203的输入端3104(例如引脚D)连接。第一触发器3201的时钟引脚3101(例如引脚CLK)与第二触发器3203的时钟引脚3103(例如引脚CLK)连接,由此,第一触发器3201的时钟引脚3101与第二触发器3203的时钟引脚3103接收相同的时钟信号,例如图中的第二时钟信号CLK_B31,即两者的时钟频率相等。第四触发器3205的时钟引脚3107(例如引脚CLK)接收另一时钟信号,例如图中的第一时钟信号CLK_A31。例如,第一时钟信号CLK_A31和第二时钟信号CLK_B31分别由信号端601和信号端602提供。例如,本公开实施例中的扇入逻辑电路301可以使第二触发器3203直接调用上一级的第一触发器3201和第四触发器3205。
例如,如图6A所示,多个第二分支逻辑电路302的数量为3个,并呈一个连接两个的结构。例如在其它实施例中,多个第二分支逻辑电路302的数量和结构可以根据芯片设计的需求而定,本公开实施例不以多个第二分支逻辑电路302的数量为限。
例如,在一些实施例中,标识逻辑电路的工作波形中的非稳定翻转状态包括:将第二触发器的第二时钟频率作为稳定频率,基于第二触发器的第二时钟频率对应的波形,分别标识扇出逻辑电路的多个第二分支逻辑电路的工作波形中的非稳定翻转状态。例如,可以根据非稳定翻转状态的功耗得到非稳定翻转状态导致的功率(例如毛刺功率),利用非稳定翻转状态导致的功率对芯片设计进行优化,以减小或去除非稳定翻转状态导致的功率。
图6B为本公开至少一实施例提供的图6A所示逻辑电路的波形图。图6C为本公开至少另一实施例提供的图6A所示逻辑电路的波形图。
如图6B以及图6C所示,第一触发器3201和第二触发器3203的第二时钟频率对应的波形为图6B以及图6C中第二时钟信号CLK_B21的波形,第四触发器3205对应的第一时钟频率为图6B以及图6C中第一时钟信号CLK_A21的波形。当将第二触发器3203的第二时钟频率作为稳定频率时,第二触发器3203的第二时钟频率对应的波形(第二时钟信号CLK_B21的波形)标识为稳定频率对应的波形。例如,多个第二分支逻辑电路302的工作波形发生的翻转与稳定频率对应的波形进行对比。多个第二分支逻辑电路302的三个对应的工作波形分别为波形DATA31、波形DATA32以及波形DATA33。
需要说明的是,本公开实施例以图6B以及图6C所示的波形图为例对多个第二分支逻辑电路302的工作波形的非稳定翻转状态的标识方法进行说明,图6B以及图6C所示的波形图并不代表第一触发器3201、第二触发器3203、第四触发器3205以及多个第二分支逻辑电路302实际的工作波形。
例如,图6C所示的情形与图6B相比,第一时钟信号CLK_A31与第二时钟信号CLK_B31的波形图交换,相应的,波形DATA31与波形DATA32交换。
例如,如图6B所示,当第一时钟信号CLK_A31的第一时钟频率小于第二时钟信号CLK_B31的第二时钟频率时,稳定频率对应的波形(第二时钟信号CLK_B31的波形)在时刻T21、时刻T22、时刻T23、时刻T24以及时刻T25存在上升沿。此时,标识波形DATA31、波形DATA32以及波形DATA33中的非稳定翻转状态,与图5C所示的波形图在选择第一时钟频率CLK_A21时的情况相似,可以参考之前的描述。采用相同的方法,波形DATA31的脉冲37和脉冲38被标识为相对应的稳定翻转状态,即波形DATA31中不存在非稳定翻转状态。波形DATA32的脉冲34和脉冲35被标识为非稳定翻转状态,即毛刺,而脉冲36可以被标识为相对应的稳定翻转状态。波形DATA33的脉冲32被标识为非稳定翻转状态,即毛刺,而脉冲31和脉冲33可以被标识为相对应的稳定翻转状态。
例如,如图6C所示,当第一时钟信号CLK_A31的第一时钟频率大于第二时钟信号CLK_B31的第二时钟频率时,稳定频率对应的波形(第二时钟信号CLK_B31的波形)在时刻T21以及时刻T25存在上升沿。此时,标识波形DATA31、波形DATA32以及波形DATA33中的非稳定翻转状态,与图5B所示的波形图在选择第一时钟频率CLK_A21时的情况相似,可以参考之前的描述。波形DATA31的脉冲34和脉冲35被标识为非稳定翻转状态,即毛刺,而脉冲236可以被标识为相对应的稳定翻转状态。波形DATA32的脉冲37被标识为非稳定翻转状态,即毛刺,而脉冲38可以被标识为相对应的稳定翻转状态。波形DATA33的脉冲31和脉冲32被标识为非稳定翻转状态,即毛刺,而脉冲33可以被标识为相对应的稳定翻转状态。
例如,在一些实施例中,如图6A所示,多个第二分支逻辑电路302包括第四子分支逻辑电路3021、第五子分支逻辑电路3022以及第六子分支逻辑电路3023。第四子分支逻辑电路3021与第四触发器3205的输出端3108连接,第五子分支逻辑电路3022和第一触发器3201的输出端3102连接。第四子分支逻辑电路3021和第五子分支逻辑电路3022都与第六子分支逻辑电路3023连接,第六子分支逻辑电路3023与第二触发器3203的输入端3104连接。第四子分支逻辑电路3021的工作波形对应图6B以及图6C中的波形DATA31,第五子分支逻辑电路3022的工作波形对应图6B以及图6C中的波形DATA32,第六子分支逻辑电路3023的工作波形对应图6B以及图6C中的波形DATA33。
例如,在一些实施例中,标识逻辑电路的工作波形中的非稳定翻转状态包括:基于第二触发器的第二时钟频率对应的波形,分别标识第五子分支逻辑电路和第六子分支逻辑电路的工作波形中的第四非稳定翻转状态和第五非稳定翻转状态;基于第四触发器的第一时钟频率对应的波形,标识第四子分支逻辑电路的工作波形中的第六非稳定翻转状态。
如图6B所示,在第一时钟信号CLK_A31的第一时钟频率小于第二时钟信号CLK_B31的第二时钟频率的情况下,以第二触发器3203的第二时钟频率(即稳定频率)对应的波形(第二时钟信号CLK_B31的波形),标识第五子分支逻辑电路3022的波形DATA32和第六子分支逻辑电路3023的波形DATA33的第四非稳定翻转状态和第五非稳定翻转状态。以第四触发器3205的第一时钟频率(即稳定频率)对应的波形(第一时钟信号CLK_A31的波形),标识第四子分支逻辑电路3021的波形DATA31的第六非稳定翻转状态。此时,标识波形DATA31、波形DATA32以及波形DATA33中的第四非稳定翻转状态、第五非稳定翻转状态以及第六非稳定翻转状态,可以参考如图5C所示的,以第一触发器2201的第一时钟频率(即稳定频率)对应的波形(第一时钟信号CLK_A21的波形),标识第一子分支逻辑电路2021的波形DATA21和第二分支逻辑电路2022的波形DATA22的第一非稳定翻转状态和第二非稳定翻转状态,以第三触发器2202的第二时钟频率(即稳定频率)对应的波形(第二时钟信号CLK_B21的波形),标识第三子分支逻辑电路2023的波形DATA23的第三非稳定翻转状态。
采用同样的方法,波形DATA33的脉冲32被标识为第六非稳定翻转状态,即毛刺,而脉冲31和脉冲33可以被标识为相对应的稳定翻转状态。波形DATA32的脉冲34和脉冲35被标识为第五非稳定翻转状态,即毛刺,而脉冲36可以被标识为相对应的稳定翻转状态。波形DATA31的脉冲37被标识为第四非稳定翻转状态,即毛刺,而脉冲38可以被标识为相对应的稳定翻转状态。
如图6C所示,在第一时钟信号CLK_A31的第一时钟频率大于第二时钟信号CLK_B31的第二时钟频率的情况下,以第二触发器3202的第二时钟频率(即稳定频率)对应的波形(第二时钟信号CLK_B31的波形),标识第五子分支逻辑电路3022的波形DATA32和第六子分支逻辑电路3023的波形DATA33的第四非稳定翻转状态和第五非稳定翻转状态。以第四触发器3205的第一时钟频率(即稳定频率)对应的波形(第一时钟信号CLK_A31的波形),标识第四子分支逻辑电路3201的波形DATA31的第六非稳定翻转状态。此时,标识波形DATA31、波形DATA32以及波形DATA33中的第四非稳定翻转状态、第五非稳定翻转状态以及第六非稳定翻转状态,可以参考如图5B所示的,以第一触发器2201的第一时钟频率(即稳定频率)对应的波形(第一时钟信号CLK_A21的波形),标识第一子分支逻辑电路2021的波形DATA21和第二子分支逻辑电路2022的波形DATA22的第一非稳定翻转状态和第二非稳定翻转状态,以第三触发器2202的第二时钟频率(即稳定频率)对应的波形(第二时钟信号CLK_B21的波形),标识第三子分支逻辑电路2023的波形DATA23的第三非稳定翻转状态。
采用同样的方法,波形DATA33的脉冲31和脉冲32被标识为第六非稳定翻转状态,即毛刺,而脉冲33可以被标识为相对应的稳定翻转状态。波形DATA32的脉冲37被标识为第五非稳定翻转状态,即毛刺,而脉冲38可以被标识为相对应的稳定翻转状态。波形DATA31的脉冲34和脉冲35被标识为第四非稳定翻转状态,即毛刺,而脉冲36可以被标识为相对应的稳定翻转状态。
根据以上对图6B以及图6C所示扇入逻辑电路301的工作波形的不稳定翻转状态的标识方式的详细描述,可以根据功率分析工具的计算能力以及计算时间等方面的考虑,选择合适的稳定频率。例如,当多个第二分支逻辑电路302采用同一个稳定频率(例如第一时钟频率或第二时钟频率)时,标识不稳定翻转状态的速度以及计算非稳定翻转状态导致的功率的速度较快,而当多个第二分支逻辑电路302采用多个稳定频率时,标识不稳定翻转状态的速度以及计算非稳定翻转状态导致的功率的速度较慢,但是计算的精度相对较高。在芯片设计的过程中,设计者可以根据实际情况选择确定稳定频率的方式。
例如,本公开至少一实施例还提供一种用于芯片设计的系统。图7为本公开至少一实施例提供的一种用于芯片设计的系统的示意图。
例如,在一些实施例中,如图7所示,用于芯片设计的系统800包括:网表加载单元810、文件获得单元820、文件加载单元830、稳定频率确定单元840以及标识单元850。
例如,在一些实施例中,如图7所示,网表加载单元810配置为加载网表。网表包括用于芯片设计的多个功能模块、位于多个功能模块之间的多个逻辑电路以及多个功能模块的时序信息。例如,在基于软件工具,例如Synopsys工具的芯片设计流程中,可以利用逻辑综合工具(例如Synopsys工具中的Design Compiler工具)解析定义芯片设计中的多个功能模块的属性信息的属性设计文件以及寄存器传输级描述文件,结合标准单元库生成网表。例如,网表包括对应于寄存器传输级描述文件中的多个功能模块的多个功能模块、多个功能模块的时序信息。例如,网表的多个功能模块之间还可以插入逻辑电路,逻辑电路形成功能模块的组合逻辑,组合逻辑形成传递函数。例如,逻辑电路可以是逻辑门电路。
例如,在一些实施例中,如图7所示,文件获得单元820配置为基于时序分析工具根据网表获得波形文件,波形文件包括多个逻辑电路的工作波形。例如,使用时序分析工具,例如Synopsys工具中的静态时序分析(STA,Static Timing Analysis)所使用的PT(PrimeTime)工具,运行网表,模拟得到的波形文件,例如VCD(Value Change Dump)文件或FSDB(Fast Signal Data Base)文件。
例如,在一些实施例中,如图7所示,文件加载单元830配置为加载与波形文件关联的属性设计文件,结合网表从属性设计文件中读取多个功能模块的时钟频率。例如,属性设计文件中的约束设计文件定义了多个功能模块的时序。由于网表与属性设计文件相关联,且波形文件是基于网表产生的,所以波形文件与属性设计文件也是间接关联的。在芯片设计流程中,例如利用Synopsys工具,加载属性设计文件,例如约束设计文件,结合网表,例如结合网表中的多个功能模块的信息,读取多个功能模块的时钟频率。
例如,在一些实施例中,如图7所示,稳定频率确定单元840配置为根据多个功能模块的时钟频率,确定位于多个功能模块中的相邻传输级功能模块的稳定频率。例如,在相邻传输级功能模块接收相同的时钟频率的情况下,相邻传输级功能模块的稳定频率可以选择功能模块的时钟频率。在相邻传输级功能模块分别接收不同的时钟频率的情况下,需要选择多个功能模块中的相邻传输级功能模块的稳定频率。
例如,在一些实施例中,将相邻传输级功能模块的时钟频率中最大的时钟频率作为稳定频率。此时,无需判断具体的电路(例如逻辑电路)结构功能等,从而快速、高效地确定稳定频率,以加快计算非稳定翻转状态导致的功率的速度,节约计算时间。
例如,在另一些实施例中,将相邻传输级功能模块的其中之一的时钟频率作为稳定频率。此时,无需判断具体的电路(例如逻辑电路)结构功能等,可以加快计算非稳定翻转状态导致的功率的速度,节约计算时间。此时,相比于最大的时钟频率作为稳定频率的情况,逻辑电路的工作波形中被确定为非稳定翻转状态的比较结果有所不同。
例如,在一些实施例中,如图7所示,标识单元850配置为基于稳定频率,标识相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态。例如,工作波形的有效翻转可以是与稳定频率对应波形的上升沿重叠的脉冲。逻辑电路的工作波形在稳定状态之间的非有效翻转被标识为非稳定翻转状态。该非稳定翻转状态可以是一个无效脉冲(即不必要的信号转换),例如,被称为毛刺(glitch)。此时,非稳定翻转状态所产生的功耗被为非稳定翻转状态导致的功率(例如毛刺功率)。
例如,在一些实施例中,标识单元850还配置为比较相邻传输级功能模块的稳定频率对应的波形与相邻传输级功能模块之间的逻辑电路的工作波形,当逻辑电路的工作波形中的至少一个脉冲与稳定频率对应的波形的有效沿不重叠时,至少一个脉冲被标识为非稳定翻转状态,稳定频率对应的波形的有效沿包括稳定频率对应的波形的上升沿。例如,当逻辑电路的工作波形的翻转没有跨过稳定频率对应波形的有效沿时,即,逻辑电路的工作波形的脉冲没有跨过上升沿,则将该翻转标识为非稳定翻转状态。也就是说,逻辑电路的工作波形中的没有跨过有效沿的脉冲被标识为毛刺。相对应地,逻辑电路的工作波形中的跨过有效沿的脉冲将不被标识为非稳定翻转状态。从而将非稳定翻转状态从逻辑电路的工作波形中选择出来,使得下一步可以根据标识出的非稳定翻转状态计算逻辑电路的非稳定翻转状态导致的功率(例如毛刺功率)。
例如,在一些实施例中,芯片设计的系统800还包括功率计算单元860,配置为根据标识出的逻辑电路的工作波形中的非稳定翻转状态,计算单个功率分析周期内的时钟信号在相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率。例如,利用功率分析工具,由于被标识出的逻辑电路的工作波形中的非稳定翻转状态(被毛刺)的功耗是已知的,可以将单个功率分析周期内的时钟信号在相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率(例如毛刺功率)都计算出来,由此,将非稳定翻转状态导致的功率从总功率中区分出来,由此可以根据非稳定翻转状态导致的功率对芯片设计进行相应地优化。本公开实施例提供的计算非稳定翻转状态导致的功率的上述技术方案,可以被应用于多种功率分析工具或EDA工具等。
图8为本公开至少一实施例提供的又一种用于芯片设计的设备的结构示意图。该用于芯片设计的设备400例如适于用来实施本公开实施例提供的用于芯片设计的方法。用于芯片设计的设备400可以是个人电脑、笔记本电脑、平板电脑、移动电话等终端设备也可以是工作站、服务器、云服务等。需要注意的是,图8示出的用于芯片设计的设备400仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图8所示,用于芯片设计的设备400可以包括处理装置(例如中央处理器、图形处理器等)410,其可以根据存储在只读存储器(ROM)420中的程序或者从存储装置480加载到随机访问存储器(RAM)430中的程序而执行各种适当的动作和处理。在RAM 430中,还存储有用于芯片设计的设备400操作所需的各种程序和数据。处理装置410、ROM 420以及RAM 430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
通常,以下装置可以连接至I/O接口450:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置460;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置470;包括例如磁带、硬盘等的存储装置480;以及通信装置490。通信装置490可以允许用于芯片设计的设备400与其他电子设备进行无线或有线通信以交换数据。虽然图8示出了包括各种装置的用于芯片设计的设备400,但应理解的是,并不要求实施或具备所有示出的装置,用于芯片设计的设备400可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述用于芯片设计的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述用于芯片设计的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置490从网络上被下载和安装,或者从存储装置480安装,或者从ROM420安装。在该计算机程序被处理装置410执行时,可以执行本公开实施例提供的用于芯片设计的方法中限定的功能。
本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机程序可执行代码(例如计算机可执行指令),当该非暂时性计算机程序可执行代码由计算机执行时可以实现本公开任一实施例所述的用于芯片设计的方法;或者,当该非暂时性计算机程序可执行代码由计算机执行时可以实现本公开任一实施例所述的用于芯片设计的方法。
图9为本公开一实施例提供的一种存储介质的示意图。如图9所示,存储介质700非暂时性地存储有计算机程序可执行代码701。例如,当计算机程序可执行代码701由计算机执行时可以执行根据上文所述的用于芯片设计的方法中的一个或多个步骤。
例如,该存储介质700可以应用于上述用于芯片设计的设备400中。例如,存储介质700可以为图8所示的用于芯片设计的设备400中的存储器420。例如,关于存储介质700的相关说明可以参考图8所示的用于芯片设计的设备400中的存储器420的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种用于芯片设计的方法,包括:
加载网表,其中,所述网表包括用于芯片设计的多个功能模块、位于所述多个功能模块之间的多个逻辑电路以及所述多个功能模块的时序信息;
基于时序分析工具根据所述网表获得波形文件,其中,所述波形文件包括所述多个逻辑电路的工作波形;
加载与所述波形文件关联的属性设计文件,结合所述网表从所述属性设计文件中读取所述多个功能模块的时钟频率;
根据所述多个功能模块的时钟频率,确定位于所述多个功能模块中的相邻传输级功能模块的稳定频率,其中,确定位于所述多个功能模块中的相邻传输级功能模块的稳定频率包括:
将所述相邻传输级功能模块的其中之一的时钟频率作为稳定频率;基于所述稳定频率,标识所述相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态,
其中,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:
比较所述相邻传输级功能模块的稳定频率对应的波形与所述相邻传输级功能模块之间的逻辑电路的工作波形,
当所述逻辑电路的工作波形中的至少一个脉冲与所述稳定频率对应的波形的有效沿不重叠时,所述至少一个脉冲被标识为非稳定翻转状态,
其中,所述稳定频率对应的波形的有效沿包括所述稳定频率对应的波形的上升沿。
2.根据权利要求1所述的用于芯片设计的方法,还包括:根据标识出的所述逻辑电路的工作波形中的非稳定翻转状态,计算单个功率分析周期内的时钟信号在所述相邻传输级功能模块之间传递过程中产生的非稳定翻转状态导致的功率。
3.根据权利要求1所述的用于芯片设计的方法,其中,把将所述相邻传输级功能模块的其中之一的时钟频率作为稳定频率替换为:
将所述相邻传输级功能模块的时钟频率中最大的时钟频率作为稳定频率。
4.根据权利要求1-3任一所述的用于芯片设计的方法,其中,所述多个功能模块包括第一触发器和第二触发器,
所述第一触发器的输出端通过所述逻辑电路与所述第二触发器的输入端连接,所述第一触发器的时钟引脚与所述第二触发器的时钟引脚连接,所述第一触发器的时钟频率与所述第二触发器的时钟频率相等。
5.根据权利要求4所述的用于芯片设计的方法,其中,所述逻辑电路包括第一组合逻辑电路,
所述第一组合逻辑电路与所述第一触发器的输出端和所述第二触发器的输入端连接,
其中,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:
将所述第一触发器的时钟频率作为稳定频率,
基于所述第一触发器的时钟频率对应的波形,标识所述第一组合逻辑电路的工作波形中的非稳定翻转状态。
6.根据权利要求4所述的用于芯片设计的方法,其中,所述多个功能模块还包括第三触发器,
所述逻辑电路包括扇出逻辑电路,所述扇出逻辑电路包括多个第一分支逻辑电路,
所述第一触发器的输出端通过所述多个第一分支逻辑电路分别与所述第二触发器的输入端和所述第三触发器的输入端连接,
所述第一触发器的时钟引脚接收第一时钟信号,所述第三触发器的时钟引脚接收第二时钟信号,所述第一时钟信号包括第一时钟频率,所述第二时钟信号包括第二时钟频率,所述第一触发器和所述第二触发器的时钟频率分别包括所述第一时钟频率,所述第三触发器的时钟频率包括所述第二时钟频率,
标识所述逻辑电路的工作波形中的非稳定翻转状态包括:
将所述第一触发器的第一时钟频率作为稳定频率,
基于所述第一触发器的第一时钟频率对应的波形,分别标识所述扇出逻辑电路的多个第一分支逻辑电路的工作波形中的非稳定翻转状态。
7.根据权利要求6所述的用于芯片设计的方法,其中,所述多个第一分支逻辑电路包括第一子分支逻辑电路、第二子分支逻辑电路以及第三子分支逻辑电路,
其中,所述第一子分支逻辑电路与所述第一触发器的输出端连接,所述第二子分支逻辑电路和所述第三子分支逻辑电路都与所述第一子分支逻辑电路连接,所述第二子分支逻辑电路与所述第二触发器的输入端连接,所述第三子分支逻辑电路与所述第三触发器的输入端连接,
标识所述逻辑电路的工作波形中的非稳定翻转状态包括:
基于所述第一触发器的第一时钟频率对应的波形,分别标识所述第一子分支逻辑电路和所述第二子分支逻辑电路的工作波形中的第一非稳定翻转状态和第二非稳定翻转状态;
基于所述第三触发器的第二时钟频率对应的波形,标识所述第三子分支逻辑电路的工作波形中的第三非稳定翻转状态。
8.根据权利要求6所述的用于芯片设计的方法,其中,所述多个功能模块还包括第四触发器,
所述逻辑电路包括扇入逻辑电路,所述扇入逻辑电路包括多个第二分支逻辑电路,
所述第一触发器的输出端和所述第四触发器的输出端通过所述多个第二分支逻辑电路与所述第二触发器的输入端连接,
所述第四触发器的时钟引脚接收第一时钟信号,所述第一触发器的时钟引脚接收第二时钟信号,所述第一时钟信号包括第一时钟频率,所述第二时钟信号包括第二时钟频率,所述第一触发器和所述第二触发器的时钟频率分别包括所述第二时钟频率,所述第四触发器的时钟频率包括所述第一时钟频率,
标识所述逻辑电路的工作波形中的非稳定翻转状态包括:
将所述第二触发器的第二时钟频率作为稳定频率,
基于所述第二触发器的第二时钟频率对应的波形,分别标识所述扇出逻辑电路的多个第二分支逻辑电路的工作波形中的非稳定翻转状态。
9.根据权利要求8所述的用于芯片设计的方法,其中,所述多个第二分支逻辑电路包括第四子分支逻辑电路、第五子分支逻辑电路以及第六子分支逻辑电路,
所述第四子分支逻辑电路与所述第四触发器的输出端连接,所述第五子分支逻辑电路和所述第一触发器的输出端连接,所述第四子分支逻辑电路和所述第五子分支逻辑电路都与所述第六子分支逻辑电路连接,所述第六子分支逻辑电路与所述第二触发器的输入端连接,
标识所述逻辑电路的工作波形中的非稳定翻转状态包括:
基于所述第二触发器的第二时钟频率对应的波形,分别标识所述第五子分支逻辑电路和所述第六子分支逻辑电路的工作波形中的第四非稳定翻转状态和第五非稳定翻转状态;以及
基于所述第四触发器的第一时钟频率对应的波形,标识所述第四子分支逻辑电路的工作波形中的第六非稳定翻转状态。
10.根据权利要求2所述的用于芯片设计的方法,还包括:
将所述单个功率分析周期内的时钟信号在所述相邻传输级功能模块之间传递过程中产生的所述非稳定翻转状态导致的功率相加,得到每个功率分析周期的非稳定翻转状态导致的功率,
将所述每个功率分析周期的非稳定翻转状态导致的功率相加,得到多个功率分析周期的非稳定翻转状态导致的功率。
11.一种用于芯片设计的系统,包括:
网表加载单元,配置为加载网表,其中,所述网表包括用于芯片设计的多个功能模块、位于所述多个功能模块之间的多个逻辑电路以及所述多个功能模块的时序信息;
文件获得单元,配置为基于时序分析工具根据所述网表获得波形文件,其中,所述波形文件包括所述多个逻辑电路的工作波形;
文件加载单元,配置为加载与所述波形文件关联的属性设计文件,结合所述网表从所述属性设计文件中读取所述多个功能模块的时钟频率;
稳定频率确定单元,配置为根据所述多个功能模块的时钟频率,确定位于所述多个功能模块中的相邻传输级功能模块的稳定频率,其中,确定位于所述多个功能模块中的相邻传输级功能模块的稳定频率包括:
将所述相邻传输级功能模块的其中之一的时钟频率作为稳定频率;标识单元,配置为基于所述稳定频率,标识所述相邻传输级功能模块之间的逻辑电路的工作波形中的非稳定翻转状态,
其中,标识所述逻辑电路的工作波形中的非稳定翻转状态包括:
比较所述相邻传输级功能模块的稳定频率对应的波形与所述相邻传输级功能模块之间的逻辑电路的工作波形,
当所述逻辑电路的工作波形中的至少一个脉冲与所述稳定频率对应的波形的有效沿不重叠时,所述至少一个脉冲被标识为非稳定翻转状态,
其中,所述稳定频率对应的波形的有效沿包括所述稳定频率对应的波形的上升沿。
12.一种用于芯片设计的设备,包括:
处理器;和
存储器,其中,所述存储器中存储有计算机可执行代码,所述计算机可执行代码当由所述处理器运行时,执行权利要求1-10任一所述的用于芯片设计的方法。
13.一种计算机可读存储介质,其上存储有计算机可执行代码,所述计算机可执行代码在被处理器执行时,使得所述处理器执行权利要求1-10任一所述的用于芯片设计的方法。
CN202010980254.XA 2020-09-17 2020-09-17 用于芯片设计的方法、系统、设备以及存储介质 Active CN112100950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010980254.XA CN112100950B (zh) 2020-09-17 2020-09-17 用于芯片设计的方法、系统、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010980254.XA CN112100950B (zh) 2020-09-17 2020-09-17 用于芯片设计的方法、系统、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN112100950A CN112100950A (zh) 2020-12-18
CN112100950B true CN112100950B (zh) 2021-07-02

Family

ID=73759390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010980254.XA Active CN112100950B (zh) 2020-09-17 2020-09-17 用于芯片设计的方法、系统、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN112100950B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114441922B (zh) * 2022-04-02 2022-06-14 深圳市赛元微电子有限公司 一种半导体器件测试装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5576979A (en) * 1991-11-12 1996-11-19 Chronology Corp. Automated development of timing diagrams for electrical circuits
CN102955124A (zh) * 2011-08-31 2013-03-06 北京中电华大电子设计有限责任公司 一种毛刺干扰触发芯片闩锁效应的测试方法
CN105044434A (zh) * 2015-07-09 2015-11-11 深圳市明微电子股份有限公司 一种电流检测电路、功率开关芯片及开关电源
CN105975664A (zh) * 2016-04-28 2016-09-28 福州瑞芯微电子股份有限公司 一种芯片功耗评估平台的评估方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4422179B2 (ja) * 2007-10-19 2010-02-24 株式会社半導体理工学研究センター 半導体集積回路のタイミング解析装置及び方法
CN105893707B (zh) * 2016-04-28 2019-06-07 福州瑞芯微电子股份有限公司 一种soc芯片模块验证和功耗分析方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5576979A (en) * 1991-11-12 1996-11-19 Chronology Corp. Automated development of timing diagrams for electrical circuits
CN102955124A (zh) * 2011-08-31 2013-03-06 北京中电华大电子设计有限责任公司 一种毛刺干扰触发芯片闩锁效应的测试方法
CN105044434A (zh) * 2015-07-09 2015-11-11 深圳市明微电子股份有限公司 一种电流检测电路、功率开关芯片及开关电源
CN105975664A (zh) * 2016-04-28 2016-09-28 福州瑞芯微电子股份有限公司 一种芯片功耗评估平台的评估方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Power consumption estimation in CMOS VLSI chips;Dake Liu等;《IEEE Journal of Solid-State Circuits》;19940630;第29卷(第6期);第663-670页 *
大规模SoC设计中的高效FPGA验证技术的研究与实现;丰玉田等;《集成电路应用》;20060206(第2期);第110-114页 *

Also Published As

Publication number Publication date
CN112100950A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
JP3235590B2 (ja) 低電力シーケンス回路のためのコントローラベース電力管理システム
JP3331968B2 (ja) グリッチ分析と低減に重点をおいたレジスタトランスファレベルの電力消費最適化回路、方法、及び記録媒体
US7546559B2 (en) Method of optimization of clock gating in integrated circuit designs
CN101539958B (zh) 一种标准单元库和集成电路的设计方法和装置
EP2179342B1 (en) Method and apparatus for detecting clock gating opportunities in a pipelined electronic circuit design
US20140107999A1 (en) Multi-level abstract power modeling method
CN112667024A (zh) 延时计算电路、芯片运行频率获取方法、装置及电子设备
CN112100950B (zh) 用于芯片设计的方法、系统、设备以及存储介质
US20090271747A1 (en) Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit
CN107436839B (zh) 进程负载获取方法、电子终端及计算机可读存储介质
CN112580279B (zh) 逻辑电路的优化方法、优化装置以及存储介质
CN112580278B (zh) 逻辑电路的优化方法、优化装置以及存储介质
US8555228B2 (en) Tool for glitch removal
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
US8775989B2 (en) Computer-aided design system and methods thereof for merging design constraint files across operational modes
US20140013294A1 (en) Method for ranking paths for power optimization of an integrated circuit design and corresponding computer program product
CN113627107A (zh) 确定电源电压数据的方法、装置、电子设备和介质
US20160217239A1 (en) Method and system for selecting stimulation signals for power estimation
JP5338919B2 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
CN112580280B (zh) 逻辑电路的优化方法、优化装置以及存储介质
US8392778B2 (en) Clock domain check method, clock domain check program, and recording medium
WO2014106780A1 (en) A method and apparatus for scan chain data management
CN114330185A (zh) 时序修复方法、装置、存储介质及电子设备
CN117907812A (zh) 电路检测方法及装置、电子设备、存储介质、程序产品
CN117313594A (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