CN112580278B - 逻辑电路的优化方法、优化装置以及存储介质 - Google Patents
逻辑电路的优化方法、优化装置以及存储介质 Download PDFInfo
- Publication number
- CN112580278B CN112580278B CN202011430000.7A CN202011430000A CN112580278B CN 112580278 B CN112580278 B CN 112580278B CN 202011430000 A CN202011430000 A CN 202011430000A CN 112580278 B CN112580278 B CN 112580278B
- Authority
- CN
- China
- Prior art keywords
- circuit
- logic
- optimization
- clock
- input
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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)
- 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
技术领域
本公开的实施例涉及一种逻辑电路的优化方法、优化装置以及存储介质。
背景技术
在高性能中央处理器和图形处理器超大规模集成电路设计中,时钟树的峰值功率(瞬时峰值功耗)可能会影响时序裕量、封装和系统功率/电流设计以及电源电路设计。在大多数设计中,时钟树峰值功率需求比组合逻辑峰值功率大几倍,因此时钟树峰值功率需求是本领域的主要研究课题之一。
发明内容
本公开至少一实施例提供一种逻辑电路的优化方法,所述逻辑电路包括第一逻辑子电路以及与所述第一逻辑子电路连接的第一输入功能电路,所述第一逻辑子电路配置为从所述第一输入功能电路接收输入信号;所述第一输入功能电路包括多个第一功能模块;所述优化方法包括:对所述第一逻辑子电路进行模块优化处理;保持所述多个第一功能模块的时钟信号的相对相位关系不变并对所述逻辑电路进行后续优化处理。
在一些示例中,所述后续优化处理包括:对所述第一输入功能电路进行时钟偏移设计以降低所述逻辑电路的瞬时功耗。
在一些示例中,所述逻辑电路还包括第二功能模块,对所述第一输入功能电路进行时钟偏移设计以降低所述逻辑电路的瞬时功耗包括:在所述第一输入功能电路的时钟信号与所述第二功能模块的时钟信号之间设置时钟偏移。
在一些示例中,在所述第一输入功能电路的时钟信号与所述第二功能模块的时钟信号之间设置时钟偏移包括:在所述第一输入功能电路的时钟路径上增加或删除中间元件。
在一些示例中,所述中间元件包括缓冲器、反相器中的至少之一。
在一些示例中,在所述第一输入功能电路的时钟信号与所述第二功能模块的时钟信号之间设置时钟偏移包括:分别在所述第一输入功能电路中的多个第一功能模块的多条时钟路径上增加多个中间元件,其中,每个中间元件在所在的时钟路径上所引起的延时相同。
在一些示例中,所述模块优化处理包括:对所述第一逻辑子电路进行毛刺功耗优化。
在一些示例中,所述第一逻辑子电路包括M个单元电路,对所述第一逻辑子电路进行毛刺功耗优化包括:将所述M个单元电路中的N个划分为P个第一级电路簇,其中,所述P个第一级电路簇中的任意两个彼此不嵌套,所述P个第一级电路簇均配置为从所述第一输入功能电路接收输入信号,M、N、P均为正整数且M大于或等于N,N大于或等于P;以及对所述P个第一级电路簇中的每个进行第一优化处理以降低所述每个第一级电路簇的输出信号的毛刺功耗。
在一些示例中,将所述M个单元电路中的N个划分为P个第一级电路簇包括:分别计算所述M个单元电路的输出信号的毛刺功耗值,并根据所述毛刺功耗值从所述M个单元电路确定P个单元电路,其中,所述P个单元电路与所述P个第一级电路簇一一对应,所述P个第一级电路簇的每个包括所述第一级电路簇对应的单元电路的输出端到所述前级功能模块之间的电路群。
本公开至少一实施例还提供一种逻辑电路的优化装置,包括处理器和存储器。所述存储器中存储有计算机可执行代码,所述计算机可执行代码当由所述处理器运行时,执行以上任一实施例提供的优化方法。
本公开至少一实施例还提供一种计算机可读存储介质,其上存储有计算机可执行代码,所述计算机可执行代码在被执行时,执行以上任一实施例提供的优化方法。
本公开至少一实施例还提供一种逻辑电路的优化装置,所述逻辑电路包括第一逻辑子电路以及与所述第一逻辑子电路连接的第一输入功能电路,所述第一逻辑子电路配置为从所述第一输入功能电路接收输入信号;所述第一输入功能电路包括多个第一功能模块;所述优化装置包括:模块优化处理单元,配置为对所述第一逻辑子电路进行模块优化处理;后续优化处理单元,配置为保持所述多个第一功能模块的时钟信号的相对相位关系不变并对所述逻辑电路进行后续优化处理。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A为一种时钟树的结构示意图;
图1B为一种时钟树的电流-时间曲线示意图;
图2A和图2B分别为本公开至少一实施例提供的逻辑电路的示意图;
图3为本公开至少一实施例提供的优化方法的流程图;
图4A为一种逻辑电路的示意图;
图4B为图4A中所示逻辑电路的波形图;
图5A为本公开至少一实施例提供的逻辑子电路的示意图;
图5B为图5A中所示第一级电路簇的优化方法示意图;
图6A和图6B分别为本公开至少一实施例提供的一种第一输入功能电路的时钟信号波形图;
图7A为本公开至少一实施例提供的经过后续优化处理的逻辑电路的示意图;
图7B为本公开另一些实施例提供的经过后续优化处理的逻辑电路的示意图;
图7C为根据本公开至少一实施例提供的逻辑电路的时钟树优化前后的电流-时间曲线对照示意图;
和图7D为根据本公开另一些实施例提供的逻辑电路的时钟树优化前后的电流-时间曲线对照示意图;
图8为本公开至少一实施例提供的一种逻辑电路的优化装置的结构示意图;
图9为本公开至少一实施例提供的一种存储介质的示意图;以及
图10为本公开至少一实施例提供的一种逻辑电路的优化装置的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
数字电路中,通常通过时钟树对时钟域中的时钟信号进行管理,对该时钟域中的所有寄存器之间的时钟进行平衡,以保证时序收敛。一种时钟树结构如图1A所示,其中,CLK表示时钟信号源,BUF表示缓冲器,与BUF连接的矩形框表示寄存器。
时钟树的瞬时电流最大的时刻往往是寄存器时钟翻转的时刻,数字电路设计的本质就是数据按照时钟的节拍进行运算,时钟的到达时刻,就是寄存器的数据输出进行运算传输到下一级寄存器的开始;从而数据进入相应的组合逻辑单元中,许多的单元信号翻转,汇合形成时钟树的瞬时功耗。
在图1A所示的结构中,时钟到达各寄存器的时间是相近的,从而触发所有寄存器同时翻转,导致时钟树的瞬时电流(功耗)大,如图1B所示,在时刻T0,时钟树具有较大的峰值电流。这会对电源造成冲击,可能导致电源电压被拉低,从而造成数字电路的逻辑错误。
一种解决方法是在不同寄存器之间进行有用的时钟偏移设计(也称作usefulskew),使得时钟信号到达各寄存器的时钟长度不同,从而将各寄存器的触发翻转时间错开,进而将时钟树的时间-电流波形展宽,以达到降低时钟树的瞬时功耗、减少对电源冲击的目的。
由于寄存器时钟信号确定了数据信号线上信号的初始时序关系,对由该寄存器驱动的逻辑电路的功耗及性能具有较大影响。对寄存器进行时钟偏移需要考虑这些因素,否则会对逻辑电路的性能造成不利影响,例如引起较大的功耗。例如,当逻辑电路已经进行过优化处理时,改变输入寄存器之间的时钟信号的相对相位关系会降低之前的优化效果,甚至造成前功尽弃。
本公开至少一实施例提供一种逻辑电路的优化方法中,先对功能模块进行模块内优化处理,然后将与一个逻辑子电路的输入端连接的多个输入功能子电路的时钟信号的相对相位关系保持不变,再将经模块优化处理后的功能模块中的多个输入功能子电路作为一个整体进行后续优化处理。这种方法有助于降低后续优化处理过程中的时钟信号的调整对功能模块内部电路的性能的不利影响,从而提高优化效率。
图2A和图2B分别示出了本公开实施例提供的逻辑电路的示例。例如,该逻辑电路属于同一时钟域。如图2A所示,该逻辑电路包括多个逻辑子电路,例如第一逻辑子电路Sub1和第二逻辑子电路Sub2。该第一逻辑子电路Sub1和第二逻辑子电路Sub2均连接到同一时钟信号源CLK以接收同一时钟信号。
每个逻辑子电路与输入功能电路连接以接收输入信号,每个输入功能电路包括多个功能模块。如图2A所示,第一逻辑子电路Sub1与第一输入功能电路M1连接,该第一输入功能电路M1包括多个第一功能模块Reg1、Reg2、Reg3。例如,每个第一功能模块的输出端分别与该第一逻辑子电路连接以为该第一逻辑子电路提供输入信号。第二逻辑子电路Sub2与第二输入功能电路M2连接,该第二输入功能电路M2包括多个第二功能模块Reg4、Reg5。例如,每个第二功能模块的输出端分别与该第二逻辑子电路连接以为该第二逻辑子电路提供输入信号。
例如,每个功能模块都包括时钟信号端。如图2A所示,每个功能模块的时钟信号端(未示出)均与时钟信号源CLK连接以接收时钟信号,并在该时钟信号的驱动下完成数据采样。例如,每个功能模块接收到的时钟信号具有相同的频率。例如,该多个功能模块接收到的时钟信号CLK1-CLK5的相位可以相同或不同。
例如,功能模块可以理解为包括但不限于芯片设计中的各个系统、子系统等,例如包括寄存器或者触发器。例如,逻辑子电路由多个单元电路构成,例如该单元电路可以是标准单元库中的各种标准单元电路,例如可以是各种门电路(例如与门、或门、非门等)、反相器、寄存器、选择器、全加器、乘法器等多种基本单元电路。
在基于软件工具,例如Synopsys工具的芯片设计流程中,可以利用逻辑综合工具(例如Synopsys工具中的Design Compiler工具)解析定义芯片设计中的逻辑电路以及该逻辑电路中的多个功能模块的属性信息的属性设计文件以及寄存器传输级描述文件,结合标准单元库生成门级网表。例如,门级网表为寄存器传输级描述文件的下一级描述文件。例如,从寄存器传输级描述文件中获取芯片设计中的多个功能模块的对应于高级语言的描述(例如,C语言或寄存器传输级描述)。例如,属性设计文件包括约束设计文件(SynopsysDesign Constraints,SDC),约束设计文件定义了多个功能模块的时间约束,例如对电路的时序、面积、功耗进行约束。例如,标准单元库中包括芯片设计的标准单元(例如组成各个功能模块的单元器件)的标准参数。门级网表包括对应于寄存器传输级描述文件中的多个功能模块的时序信息。例如,门级网表的多个功能模块之间还可以插入逻辑子电路,逻辑子电路形成功能模块的组合逻辑,组合逻辑形成传递函数。例如,功能模块用来保存数据,逻辑子电路用于传输数据。
例如,本公开中的一个逻辑子电路可以理解为该门级网表中任意数据路径(datapath)上的单元电路的输出端到与该单元电路连接的输入功能模块(前级功能模块)之间的电路群,也即每个逻辑子电路可以根据选定的单元电路定义;例如,该电路群可以称为一个逻辑锥,该单元电路可以称作该逻辑锥的锥顶点。例如,该电路群可以包括至少一个单元电路,该至少一个单元电路共享一个输出端,也即作为锥顶点的单元电路的输出端。例如,该锥顶点可以与下一级功能模块直接连接(如图2B所示),也可以与其它单元电路连接,或者通过其它单元电路与下一级功能模块,本公开实施例对此不作限制。例如,如图2A和2B所示,该第一逻辑子电路Sub1包括一个或门和一个与门,该第二逻辑子电路Sub2包括一个与门,然而本公开对于第一逻辑子电路和第二逻辑子电路的具体结构不作限制。
在图2B所示的逻辑电路的电路结构中,每个逻辑子电路为两级功能模块之间的电路群,每个逻辑电路配置为从前级功能模块接收输入信号,并将输出信号输出至后级功能模块。
如图2A和2B所示,每个功能模块的时钟信号端可以分别通过缓冲器Buf与时钟信号端CLK连接,以使得电路的时序满足要求。例如,根据每个功能模块的时钟路径上的延时大小,该时钟路径上的缓冲器在该时钟路径上引起的延时可以相同或不同。例如,各功能模块所接收的时钟信号的相位可以一致也可以存在偏移。例如,当各时钟路径上的延时相同时,各时钟路径上插入的缓冲器Buf均相同。
图3为本公开至少一实施例提供的一种逻辑电路的优化方法的流程图,如图所示,该优化方法包括步骤S101-S102。
步骤S101:对第一逻辑子电路Sub1进行模块优化处理。
例如,该模块优化处理包括对该第一逻辑子电路Sub1进行毛刺功耗优化。
在组合逻辑电路中,信号要经过一系列的门电路和信号变换。由于信号传输延迟的作用使得当输入信号发生变化时,其对应的输出信号不能同步地跟随该输入信号变化,而是经过一段过渡时间才能达到预期状态,此时会产生毛刺信号,使得电路产生瞬间的错误输出,并产生毛刺功耗(glitch power)。毛刺功耗是影响电路的动态功耗的重要因素。
图4A为一种逻辑电路的具体结构的示意图。如图4A所示,逻辑电路包括或门01以及与门02,或门01以及与门02组成或与门。或门01和与门02分别包括两个输入以及一个输出。或门01接收时钟信号A和时钟信号B,并输出时钟信号D,或门01输出的时钟信号D和时钟信号C输入到与门02,与门02输出时钟信号E。
图4B为图4A中所示逻辑电路的波形图。如图4B所示,时钟信号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)中约束的触发器的工作频率),相邻传输级的触发器的状态元素之间的逻辑电路在每个状态元素之间形成传递函数。例如,该非稳定信号翻转的数目越多,毛刺越多,产生的毛刺功耗越高。通过对逻辑子电路进行毛刺功耗优化可以降低电路的毛刺功耗。
例如,可以对每个逻辑子电路进行分簇并以电路簇为单位进行优化,可以有效降低电路的毛刺功耗并且提高优化效率。
例如,电路簇可以以一个单元电路的输出端作为输出端(也即该单元电路作为簇顶点),并包括该输出端到该单元电路所在逻辑电路所连接的前级功能模块(一个或多个)之间的电路群,因此一个电路簇包括该单元电路以及到该单元电路到该前级功能模块之间与该单元电路级联的所有单元电路,且该电路簇配置为直接从前级功能模块接收输入信号。例如,一个电路簇可以包括一个或多个单元电路。
图5A示出了本公开另一实施例提供的逻辑子电路的示意图,图中省略了与该逻辑电路连接的输入功能电路。如图5A所示,该逻辑电路包括多个电路单元101-108,这些电路单元例如可以包括与门、或门等门电路,然而这并不作为对本公开的限制。
例如,可以将该逻辑子电路划分为多级电路簇并进行逐级优化,从而提高优化效率。
例如,每一级电路簇划分都可以有多种划分方案,图5A示出了该逻辑子电路的一种电路簇的划分方案。例如,该逻辑子电路包括三级电路簇,分别为第一级电路簇221、第二级电路簇222和第三级电路簇223。例如,每级电路簇都嵌套前级电路簇;例如,每级电路簇的数目均为1,然而这并不作为对本公开的限制。
例如,对该逻辑子电路进行的模块优化处理包括第一级优化处理,逻辑子电路包括M个单元电路,该第一级优化处理包括:将逻辑子电路的M个单元电路中的N个划分为P个第一级电路簇,该P个第一级电路簇中的任意两个彼此不嵌套,该P个第一级电路簇均配置为从所述第一输入功能电路接收输入信号,M、N、P均为正整数且M大于或等于N,N大于或等于P;以及对该多个第一级电路簇中的每个进行优化处理以降低每个第一级电路簇的输出信号的毛刺功耗,从而得到第一优化电路。
例如,对每个第一级电路簇进行优化处理包括:选取第一级电路簇的至少一个输入支路插入中间元件以增加所述第一输入支路的信号延迟。例如,该中间元件包括缓冲器、反相器中的至少之一。
图5B示出了对该第一级电路簇221进行优化的示意图。图5B左侧示出了该第一级电路簇221在优化前的电路结构以及对应的输入及输出信号波形图,图5B右侧示出了该第一级电路簇221在优化后的电路结构以及对应的输入及输出信号波形图。
例如,如图5B所示,该第一级电路簇221包括三个输入支路A、B、C,从波形图可知,该输入支路B和C的信号均相对于该输入支路A的信号存在延迟,该第一级电路簇221的输出支路D上的输出信号存在一个非稳定信号翻转(包括一组上翻和下翻)。
如图5B所示,在该第一级电路簇221的存在延迟的支路B和C上分别插入第一中间元件301和第二中间元件302,可以消除输出信号中的毛刺信号,从而降低毛刺功耗。经过优化之后,该第一级电路簇221形成第一级稳定电路簇,该逻辑电路形成为第一逻辑电路。
例如,将逻辑子电路的M个单元电路中的N个划分为P个第一级电路簇包括:分别计算该M个单元电路的输出信号的毛刺功耗值,并根据毛刺功耗值从所述M个单元电路确定P个单元电路,其中,所述P个单元电路与所述P个第一级电路簇一一对应,所述P个第一级电路簇的每个包括所述第一级电路簇对应的单元电路的输出端到所述前级功能模块之间的电路群。也就是说,该P个单元电路分别作为该P个第一级电路簇的簇顶点。
例如,对电路簇的优化处理是为了降低该电路簇的输出端的信号的毛刺功耗值,也即降低与该电路簇的输出端连接的单元电路的输出端的信号的毛刺功耗值。例如,为了尽可能降低电路的毛刺功耗,可以分别计算该M个单元电路的输出信号的毛刺功耗值,并将该M个单元电路按照毛刺功耗值由高到低的顺序排序,然后从高到低选择单元电路的输出端作为电路簇的输出端来构建电路簇。
例如,可以将该第一优化电路作为第一级优化处理的结果并在此基础上继续进行第二级优化处理。例如,该第二级优化处理包括:根据该逻辑子电路中剩余的(M-T)个单元电路中的L个确定L个第二级电路簇,其中,所述L个第二级电路簇中的任意两个彼此不嵌套,L为正整数且小于或等于(M-T);对该L个第二级电路簇中的每个进行优化处理,以降低每个第二级电路簇对应的单元电路的输出端的输出信号的毛刺功耗,从而得到第二优化电路。例如,该L个单元电路分别为该L个第二级电路簇的簇顶点。
例如,在该第二优化电路的基础上可以继续后续优化处理直至该优化处理覆盖该逻辑子电路中的所有单元电路。
例如,该逻辑子电路的输出信号受多种因素影响,例如,该逻辑子电路具有多种不同的工作场景,每种工作场景包括该多种因素的组合。例如,该多种因素包括该逻辑子电路的制作工艺、工作条件(如环境温度、工作电压)以及来自前级功能模块的输入信号等。每种工作场景具有特定的工艺条件、环境温度、输入波形等。例如,在不同的工作场景下该逻辑子电路可以有不同的输出信号和毛刺功耗。例如,不同的工作场景具有不同的权重(也即应用频率)。例如,该第一优化电路是在权重最高的工作场景下得到的。
在另一些示例中,每一级优化处理可以根据不同的分簇方案得到多种优化电路,然后分别计算该多种优化电路在该逻辑电路的多个不同工作场景下的毛刺功耗加权和并进行比较,将毛刺功耗加权和较小值对应的优化电路作为该级优化处理的结果并进行后续优化。这种方法考虑了工作场景对毛刺功耗的影响从而对优化结果进行了进一步优化。
例如,可以分别采用上述模块优化处理方法对该逻辑电路中的多个逻辑子电路进行模块优化处理。
步骤S102:保持所述多个第一功能模块的时钟信号的相对相位关系不变并对所述逻辑电路进行后续优化处理。
由于时钟信号控制着功能模块对数据的采样及输出,因此该功能模块的时钟信号是影响由该功能模块驱动的逻辑子电路的工作信号的重要因素。当与逻辑子电路连接的多个输入功能模块的时钟信号的相对相位关系发生改变时,该逻辑子电路的可以有不同的性能,例如输出波形、毛刺功耗等。
本公开通过在逻辑子电路进行优化处理后将与该逻辑子电路的输入端连接的多个功能模块的时钟信号的相对相位关系进行固定,可以保持模块优化处理的结果,在此基础上对电路进行后续优化处理时,不会对之前的优化成果造成影响。
例如,将与该第一子逻辑电路Sub1连接的第一输入功能电路M1中的所有第一功能模块作为一个整体进行后续优化处理。
例如,在使用电子设计自动化(EDA)工具进行电路设计时,通过该设计工具对该第一输入功能电路添加属性,使得该第一输入功能电路中的多个第一功能模块被识别为一个整体。
例如,当与该第一逻辑子电路连接的多个输入功能模块的时钟信号CLK1、CLK2、CLK3具有相同的相位时,如图6A所示,保持它们的时钟信号相位相同。
例如,当与该第一逻辑子电路连接的多个输入功能模块的时钟信号CLK1、CLK2、CLK3之间存在偏移(skew),具有不同的相位时,如图6B所示,保持它们的时钟信号相位差不变。
例如,该后续优化处理包括:对该第一输入功能电路进行时钟偏移设计以降低所述逻辑电路的瞬时功耗。
通过对该第一输入功能电路进行时钟偏移设计,可以将到达该第一输入功能电路与其它功能的时间错开或者离散化,从而将时钟树的时间-电流波形展宽,供电电源的峰值降低电流降低,从而到降低了时钟树的瞬时功耗、减少了对电源的冲击。
例如,在该时钟偏移设计中,将与该第一子逻辑电路Sub1连接的第一输入功能电路M1中的所有第一功能模块作为一个整体进行时钟偏移,从而保持该多个第一功能模块的时钟信号之间的相位关系不变。
例如,可以利用有用的时钟偏移(也称作useful skew)降低逻辑电路的瞬时功耗。
有用的时钟偏移是指不仅不会给电路造成时序问题还能有效改善电路时序的时钟偏移。该时钟偏移可以通过在相关时钟路径上增加或减少中间元件从而给该时钟路径增加或减少延时形成。例如,如果功能模块的建立时间(setup time)不够,即时钟信号到达太早,通过进行有用的时钟偏移设计增加该功能模块的时钟路径上的延时可以让时钟信号晚点到达,使得建立时间满足时序要求。例如,如果功能模块的保持时间(hold time)不够,即时钟信号到达太晚,通过进行有用的时钟偏移设计减少该功能模块的时钟路径上的延时可以刚好让时钟信号早点到达,使得保持时间满足时序要求。
该有用的时钟偏移使得时钟信号到达各功能模块的时钟长度不同,从而将各寄存器的触发翻转时间错开,进而将时钟树的电流扩展开,以达到降低时钟树的瞬时功耗的目的。
在该时钟偏移过程中,将该第一输入功能电路中的多个第一功能模块的时钟信号作为一个整体进行时钟偏移设计,从而保持该多个第一功能模块的时钟信号CLK1-CLK3的相对相位关系不变。
例如,该逻辑电路还包括第二功能模块,对该第一输入功能电路进行时钟偏移设计包括:在该第一输入功能电路的时钟信号与该第二功能模块的时钟信号之间设置时钟偏移。
例如,如图2B所示,该第二功能模块可以与另一个逻辑子电路(第二逻辑子电路Sub2)连接,而与该第二逻辑子电路的输入端连接的第二功能模块的数目为多个(Reg4、Reg5)。例如,可以分别将该多个第一功能模块的时钟信号和多个第二功能模块的时钟信号作为一个整体进行时钟偏移设计。例如,在该时钟偏移设计中,多个第一功能模块的时钟信号CLK1-CLK3之间的相对相位关系保持不变,多个第二功能模块的时钟信号CLK4-CLK5之间的相对相位关系保持不变。
例如,在第一输入功能电路的时钟信号与第二功能模块的时钟信号之间设置时钟偏移包括:分别在该第一输入功能电路中的多个第一功能模块的多条时钟路径上增加多个中间元件,其中,每个中间元件在所在的时钟路径上所引起的延时相同。
图7A和图7B分别示出了对图2B所示逻辑电路进行时钟偏移设计的示例。例如,该时钟偏移为有用的时钟偏移。在该图7A和7B中,Sub1’和Sub2’分别指示经过模块优化处理的第一逻辑子电路Sub1和第一逻辑子电路Sub2,图中省略了该逻辑子电路的具体结构。
如图7A所示,在该多个第一功能模块Reg1、Reg2、Reg3的时钟路径上分别插入中间元件B1、B2、B3。例如,该中间元件在各自所在的时钟路径上引起的延时相同,从而保证插入后该多个第一功能模块Reg1、Reg2、Reg3的时钟信号之间的相位关系不变。例如,该中间元件包括缓冲器、反相器中的至少之一。例如,该中间元件B1、B2、B3彼此相同。
在另一些示例中,如图7B所示,当第一功能模块Reg1、Reg2、Reg3的时钟路径上插入的缓冲器Buf相同(在时钟路径上引起的延时相同)时,可以去除该第一功能模块Reg1、Reg2、Reg3的时钟路径上插入的缓冲器Buf。由于第一功能模块Reg1、Reg2、Reg3的时钟路径上插入的缓冲器Buf相同,这种去除处理会保持该多个第一功能模块Reg1、Reg2、Reg3的时钟信号之间的相位关系不变。
例如,该优化方法还包括:修复因时钟偏移设计导致的时序问题。
例如,在上述后续优化处理后,检查上述时钟偏移设计是否造成电路的时序问题,如果电路存在时序问题,则对电路的时序进行修复。
图7C和图7D示出了对逻辑电路进行有用的时钟偏移设计前后时钟树的时间-电流曲线对照示意图,其中图7C对应示出了图7A所示优化方案的效果,图7D对应示出了图7B所示优化方案的效果。如图7A和7B所示,经过优化后,时钟树的时间-电流波形得到了展宽,优化后的峰值电流Ip’相较于优化前的峰值电流Ip得到了降低,从而降低了时钟树的瞬时功耗、减少了对电源的冲击。
例如,图7A所示的优化方案是通过在在第一功能模块的时钟路径上增加延时对电路进行优化,峰值电流时间T’相对于优化前的峰值电流时间T延迟;图7B所示的优化方案是通过在在第一功能模块的时钟路径上减少延时对电路进行优化,峰值电流时间T’相对于优化前的峰值电流时间T提前。
本公开至少一实施例还提供一种逻辑电路的优化装置,适用如上任一实施例提供的优化方法。
图8为本公开至少一实施例提供的一种优化装置的结构示意图。该优化装置400可以是个人电脑、笔记本电脑、平板电脑、移动电话等终端设备也可以是工作站、服务器、云服务等。需要注意的是,图8示出的该优化装置400仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图8示,优化装置400可以包括处理装置410(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)420中的程序或者从存储装置480加载到随机访问存储器(RAM)430中的程序而执行各种适当的动作和处理。在RAM430中,还存储有优化装置400操作所需的各种程序和数据。处理装置410、ROM 420以及RAM430通过总线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的相应描述,此处不再赘述。
图10为本公开另一些实施例提供的逻辑电路的优化装置的示意图,该优化装置适用于上述任一实施例提供的优化方法。
如图10所示,该优化装置800包括模块优化处理单元80和后续优化处理单元81。
例如,该模块优化处理单元80配置为对上述逻辑电路中的第一逻辑子电路进行模块优化处理。该后续优化处理单元81配置为保持上述多个第一功能模块的时钟信号的相对相位关系不变并对该逻辑电路进行后续优化处理。
例如,该模块优化处理单元80和后续优化处理单元81可以为硬件、软件、固件以及它们的任意可行的组合。例如,上述各个单元可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种逻辑电路的优化方法,其中,所述逻辑电路包括第一逻辑子电路以及与所述第一逻辑子电路连接的第一输入功能电路,所述第一逻辑子电路配置为从所述第一输入功能电路接收输入信号;所述第一输入功能电路包括多个第一功能模块;所述逻辑电路还包括第二逻辑子电路以及与所述第二逻辑子电路连接的第二输入功能电路,所述第二输入功能电路包括第二功能模块;
所述优化方法包括:
对所述第一逻辑子电路进行模块优化处理,其中,所述模块优化处理包括对所述第一逻辑子电路进行毛刺功耗优化;
保持所述多个第一功能模块的多个时钟信号的相对相位关系不变并对所述逻辑电路进行后续优化处理,其中,所述后续优化处理包括在所述第一输入功能电路的多个时钟信号与所述第二功能模块的时钟信号之间设置时钟偏移。
2.如权利要求1所述的优化方法,其中,在所述第一输入功能电路的多个时钟信号与所述第二功能模块的时钟信号之间设置时钟偏移包括:
在所述第一输入功能电路的时钟路径上增加或删除中间元件。
3.如权利要求2所述的优化方法,其中,所述中间元件包括缓冲器、反相器中的至少之一。
4.如权利要求1所述的优化方法,其中,在所述第一输入功能电路的多个时钟信号与所述第二功能模块的时钟信号之间设置时钟偏移包括:
分别在所述第一输入功能电路中的多个第一功能模块的多条时钟路径上增加多个中间元件,其中,每个中间元件在所在的时钟路径上所引起的延时相同。
5.如权利要求1所述的优化方法,其中,所述第一逻辑子电路包括M个单元电路,对所述第一逻辑子电路进行毛刺功耗优化包括:
将所述M个单元电路中的N个划分为P个第一级电路簇,其中,所述P个第一级电路簇中的任意两个彼此不嵌套,所述P个第一级电路簇均配置为从所述第一输入功能电路接收输入信号,M、N、P均为正整数且M大于或等于N,N大于或等于P;以及
对所述P个第一级电路簇中的每个第一级电路簇进行第一优化处理以降低所述每个第一级电路簇的输出信号的毛刺功耗。
6.如权利要求5所述的优化方法,其中,将所述M个单元电路中的N个划分为P个第一级电路簇包括:
分别计算所述M个单元电路的输出信号的毛刺功耗值,并根据所述毛刺功耗值从所述M个单元电路确定P个单元电路,其中,所述P个单元电路与所述P个第一级电路簇一一对应,所述P个第一级电路簇的每个包括所述第一级电路簇对应的单元电路的输出端到前级功能模块之间的电路群。
7.一种逻辑电路的优化装置,包括:
处理器;和
存储器,其中,所述存储器中存储有计算机可执行代码,所述计算机可执行代码当由所述处理器运行时,执行权利要求1-6任一所述的优化方法。
8.一种计算机可读存储介质,其上存储有计算机可执行代码,所述计算机可执行代码在被执行时,执行如权利要求1-6任一所述的优化方法。
9.一种逻辑电路的优化装置,其中,所述逻辑电路包括第一逻辑子电路以及与所述第一逻辑子电路连接的第一输入功能电路,所述第一逻辑子电路配置为从所述第一输入功能电路接收输入信号;所述第一输入功能电路包括多个第一功能模块;所述逻辑电路还包括第二逻辑子电路以及与所述第二逻辑子电路连接的第二输入功能电路,所述第二输入功能电路包括第二功能模块;
所述优化装置包括:
模块优化处理单元,配置为对所述第一逻辑子电路进行模块优化处理,其中,所述模块优化处理包括对所述第一逻辑子电路进行毛刺功耗优化;
后续优化处理单元,配置为保持所述多个第一功能模块的多个时钟信号的相对相位关系不变并对所述逻辑电路进行后续优化处理,其中,所述后续优化处理包括在所述第一输入功能电路的多个时钟信号与所述第二功能模块的时钟信号之间设置时钟偏移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011430000.7A CN112580278B (zh) | 2020-12-07 | 2020-12-07 | 逻辑电路的优化方法、优化装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011430000.7A CN112580278B (zh) | 2020-12-07 | 2020-12-07 | 逻辑电路的优化方法、优化装置以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112580278A CN112580278A (zh) | 2021-03-30 |
CN112580278B true CN112580278B (zh) | 2023-06-09 |
Family
ID=75130425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011430000.7A Active CN112580278B (zh) | 2020-12-07 | 2020-12-07 | 逻辑电路的优化方法、优化装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112580278B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992193A (zh) * | 2021-10-29 | 2022-01-28 | 上海阵量智能科技有限公司 | 电路调整方法、装置、电子设备、存储介质及电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101053158A (zh) * | 2005-10-05 | 2007-10-10 | 松下电器产业株式会社 | 可重构半导体集成电路及其处理分配方法 |
CN103684525A (zh) * | 2013-12-06 | 2014-03-26 | 硅谷数模半导体(北京)有限公司 | 信号传输电路 |
CN104821802A (zh) * | 2014-02-05 | 2015-08-05 | 株式会社巨晶片 | 时钟生成方法及时钟生成电路 |
WO2017121228A1 (zh) * | 2016-01-15 | 2017-07-20 | 深圳市中兴微电子技术有限公司 | 一种保持分频时钟相位一致的方法及分频电路 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1963721B (zh) * | 2006-12-15 | 2010-04-21 | 威盛电子股份有限公司 | 核心逻辑电路及时脉信号偏移调整方法 |
US7904859B2 (en) * | 2007-05-09 | 2011-03-08 | Synopsys, Inc. | Method and apparatus for determining a phase relationship between asynchronous clock signals |
CN106788353A (zh) * | 2016-11-18 | 2017-05-31 | 深圳市紫光同创电子有限公司 | 一种时钟偏斜纠正方法及电路、终端设备 |
CN107665033B (zh) * | 2017-08-28 | 2020-06-09 | 上海集成电路研发中心有限公司 | 一种具有复位去毛刺功能的数字逻辑电路模块 |
CN110098821B (zh) * | 2018-01-31 | 2023-01-24 | 龙芯中科技术股份有限公司 | 触发器电路及集成电路 |
CN109857190A (zh) * | 2019-02-27 | 2019-06-07 | 苏州浪潮智能科技有限公司 | 一种时钟信号处理方法、装置、设备及可读存储介质 |
CN111399588B (zh) * | 2020-03-18 | 2021-09-21 | 深圳市紫光同创电子有限公司 | 时钟信号产生电路、驱动方法及电子设备 |
-
2020
- 2020-12-07 CN CN202011430000.7A patent/CN112580278B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101053158A (zh) * | 2005-10-05 | 2007-10-10 | 松下电器产业株式会社 | 可重构半导体集成电路及其处理分配方法 |
CN103684525A (zh) * | 2013-12-06 | 2014-03-26 | 硅谷数模半导体(北京)有限公司 | 信号传输电路 |
CN104821802A (zh) * | 2014-02-05 | 2015-08-05 | 株式会社巨晶片 | 时钟生成方法及时钟生成电路 |
WO2017121228A1 (zh) * | 2016-01-15 | 2017-07-20 | 深圳市中兴微电子技术有限公司 | 一种保持分频时钟相位一致的方法及分频电路 |
Also Published As
Publication number | Publication date |
---|---|
CN112580278A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9053277B2 (en) | Clock tree construction across clock domains | |
US8095900B2 (en) | Achieving clock timing closure in designing an integrated circuit | |
US7917882B2 (en) | Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof | |
US10740520B2 (en) | Pessimism in static timing analysis | |
CN111562808A (zh) | 时钟电路系统、计算芯片、算力板和数字货币挖矿机 | |
CN212160484U (zh) | 时钟电路系统、计算芯片、算力板和数字货币挖矿机 | |
CN114997087B (zh) | 一种时钟树的优化方法、优化装置和相关设备 | |
US20090271747A1 (en) | Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit | |
CN112580279B (zh) | 逻辑电路的优化方法、优化装置以及存储介质 | |
CN112580278B (zh) | 逻辑电路的优化方法、优化装置以及存储介质 | |
US6518788B2 (en) | Logic circuit design method and logic circuit | |
CN112100950B (zh) | 用于芯片设计的方法、系统、设备以及存储介质 | |
US8522187B2 (en) | Method and data processing system to optimize performance of an electric circuit design, data processing program and computer program product | |
US20190187208A1 (en) | Multibit vectored sequential with scan | |
CN116306417B (zh) | 时钟延时方法、装置、电子设备及存储介质 | |
CN112906338A (zh) | 对物理分区结构进行时钟设计的方法、系统、介质和程序 | |
Takizawa et al. | A design support tool set for asynchronous circuits with bundled-data implementation on FPGAs | |
US7302657B2 (en) | Optimization of the design of a synchronous digital circuit | |
US10372851B2 (en) | Independently projecting a canonical clock | |
US20030212972A1 (en) | Unconventional clocked circuit components having multiple timing models | |
CN115220528A (zh) | 时钟获得方法、装置、芯片、电子设备及存储介质 | |
Semba et al. | Conversion from synchronous RTL models to asynchronous RTL models | |
Marakkalage et al. | Fanout-Bounded Logic Synthesis for Emerging Technologies | |
US10289786B1 (en) | Circuit design transformation for automatic latency reduction | |
Lu et al. | Register on MEsh (ROME): A novel approach for clock mesh network synthesis |
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 |