首页> 中国专利> 对电子系统设计及相关系统、方法和设备进行时钟门控分析的方法

对电子系统设计及相关系统、方法和设备进行时钟门控分析的方法

摘要

本公开中描述的系统和方法整体涉及分析电子电路,并且更具体地,涉及分析电子电路中时钟门控的效率。分析可包括识别时钟门和/或整个电路浪费的时钟信号的传播。在一些实施方案中,例如通过消除至少一些浪费的时钟信号的传播,可确定改进时钟门控效率的修改的门控逻辑。

著录项

  • 公开/公告号CN112639795A

    专利类型发明专利

  • 公开/公告日2021-04-09

    原文格式PDF

  • 申请/专利权人 微芯片技术股份有限公司;

    申请/专利号CN201980056744.6

  • 发明设计人 A·奥纳;O·M·瑞坦;V·马尔丘克;

    申请日2019-08-12

  • 分类号G06F30/33(20200101);G06F1/3237(20190101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人陈斌

  • 地址 美国亚利桑那州

  • 入库时间 2023-06-19 10:32:14

说明书

优先权声明

本申请要求于2018年8月28日提交的名称为“对电子系统设计及相关系统、方法和设备进行时钟门控分析的方法(Method of Clock Gate Analysis of Electronic SystemDesigns and Related Systems,Methods and Devices)”的美国临时专利申请序列号62/723,589的提交日的权益,并且要求于2018年12月20日提交的名称为“对电子系统设计及相关系统、方法和设备进行时钟门控分析的方法(Method of Clock Gate Analysis ofElectronic System Designs and Related Systems,Methods and Devices)”的待决美国专利申请序列号16/228,445的提交日的权益,该待决申请还要求美国临时专利申请序列号62/723,589的优先权,这些申请各自的内容和公开据此以全文引用方式并入本文。

技术领域

本公开的实施方案整体涉及分析电子电路设计中的时钟门,并且更具体地,在一些实施方案中,涉及分析由电子电路设计工具插入到电子电路设计中的时钟门。

背景技术

电子电路设计工具,诸如用于电子计算机辅助设计和电子设计自动化的工具,通常用于电子系统的设计。例如,电子电路、集成电路、专用集成电路和印刷电路板的设计和/或评估。它们生成的设计用于许多目的,包括制造半导体器件以及将设计功能编程到可配置可编程逻辑块中,诸如用于现场可编程门阵列(FPGA)中。

在制造或释放电子系统之前,通常评估和验证电子电路设计。评估和验证通常涉及执行电子电路设计的模拟以分析系统的功能(或多种功能)-即,给定一组输入,系统是否生成预期输出?此外,模拟可用于根据包括与功率消耗有关的预定义量度来测量系统的效率。以举例的方式,当存储在集成电路的寄存器中的数据没有变化时,对那些寄存器计时是电子电路设计对功率的低效使用。

时钟门控是用于同步电路中以减少功率耗散的技术。其通过向电路(即,“时钟门”)添加逻辑以禁用部分电路来节省功率,以使得时钟被禁用于触发器或电路中不切换状态或不旨在切换状态的其他下游逻辑。电子电路设计工具有时将数千个时钟门插入到电子电路设计中。然而,本公开的发明人现在理解,如果被错误配置或者如果用例为边际的,则时钟门可节省的功率比正确配置的时钟门更少,或者在一些情况下,时钟门可耗费的功率比其节省的更多。

本公开的发明人已经认识到需要用于分析电子电路设计中时钟门的方法,并且更具体地,需要分析由电子电路设计工具插入到电子电路设计中的时钟门。

附图说明

通过结合附图的详细描述,本公开的实施方案的目的和优点对于本领域的普通技术人员将是显而易见的,所述附图包括:

图1示出了根据本公开的一个或多个实施方案的尚未改进的示例电子电路的简化电路图。

图2A示出了对应于图1的电子电路的设想操作的时序图。

图2B示出了根据本公开的一个或多个实施方案的对应于改进电子电路的时序图。

图3示出了对应于图2B的时序图的示例改进电子电路的简化电路图。

图4示出了根据本公开的一个或多个实施方案的时钟门控分析过程的流程图。

图5示出了根据本公开的一个或多个实施方案的示例时钟门控分析器的功能框图。

图6示出了根据本公开的一个或多个实施方案的示例组合逻辑解释过程的流程图。

图7示出了根据本公开的一个或多个实施方案的示例时钟门控解释过程的流程图。

图8示出了根据本公开的一个或多个实施方案的示例效率解释过程的流程图。

具体实施方式

在以下详细描述中,参考了形成其一部分的附图,并且在附图中以举例的方式示出了可实践本公开的具体示例性实施方案。充分详细地描述了这些实施方案,以使本领域的普通技术人员能够实践本公开。然而,可利用其他实施方案,并且可在不脱离本公开的范围的情况下进行结构、材料和过程的变化。

本文所呈现的图示并不旨在为任何特定方法、系统、设备或结构的实际视图,而仅仅是用于描述本公开的实施方案的理想化表示。本文所呈现的附图未必按比例绘制。为了读者的方便,各附图中的类似结构或部件可保持相同或相似的编号;然而,编号的相似性并不意味着该结构或部件在尺寸、组成、配置或任何其他属性方面必须是相同的。

容易理解的是,如本文整体描述的和附图中示出的实施方案的部件可以各种不同的配置来布置和设计。因此,对各种实施方案的以下描述并不旨在限制本公开的范围,而是仅代表各种实施方案。虽然实施方案的各个方面可在附图中呈现,但是附图未必按比例绘制,除非特别指明。

以下描述可包括示例以帮助本领域的普通技术人员实践本发明所公开的实施方案。使用术语“示例性”、“举例”、“例如”、“例如(e.g.)”等意味着有关描述是解释性的,并且尽管本公开的范围旨在涵盖示例和法律等同物,但是使用此类术语并不旨在将实施方案或本公开的范围限制于指定的部件、步骤、特征、功能等。

因此,除非本文另有说明,否则所示出和描述的特定实施方式仅是示例,并且不应被解释为是实施本公开的唯一方式。元件、电路和功能可以框图形式示出,以便不以不必要的细节模糊本公开。相反,所示出和描述的特定实施方式仅为示例性的,并且不应理解为实施本公开的唯一方式,除非本文另外指明。另外,块定义和各个块之间逻辑的分区是特定实施方式的示例。对于本领域的普通技术人员将显而易见的是,本公开可通过许多其他分区解决方案来实践。在大多数情况下,已省略了关于定时考虑等的细节,其中此类细节不需要获得本公开的完全理解,并且在相关领域的普通技术人员的能力范围内。

本文所述的信息和信号可使用各种不同技术和技艺中的任何一种来表示。例如,可在整个说明书中参考的数据、指令、命令、信息、信号、比特和符号可由电压、电流、电磁波、磁场或粒子、光场或粒子或者它们的任何组合来表示。为了清晰地呈现和描述,一些附图可以将信号示出为单个信号。本领域普通技术人员应当理解,信号可表示信号的总线,其中该总线可具有各种比特宽度,并且本公开可在任何数量的包括单个数据信号的数据信号上实现。

应当理解,本文中使用名称诸如“第一”、“第二”等对元件的任何提及不限制这些元件的数量或顺序,除非明确说明此类限制。相反,这些名称在本文中用作区分两个或更多个元件或者一个元件的两个或更多个实例的便利方法。因此,对第一元件和第二元件的提及并不意味着只能使用两个元件,或者第一元件必须以某种方式在第二元件之前。而且,除非另有说明,否则一组元件可包括一个或多个元件。同样地,有时以单数形式提及的元件也可包括元件的一个或多个实例。

结合本文所公开的实施方案描述的各种例示性逻辑块、模块和电路可使用通用处理器、专用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者被设计成执行本文所述的功能的其他可编程逻辑设备、离散栅极或晶体管逻辑、离散硬件部件或它们的任何组合来实现或实施。通用处理器(在本文中也可称为主机处理器或仅称为主机)可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实现为计算设备的组合,诸如DSP和微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器或任何其他此类配置。在通用计算机被配置为执行与本公开的实施方案相关的计算指令(例如,软件代码)时,包括处理器的通用计算机被认为是专用计算机。

而且,应当指出的是,可根据被描绘为流程图、流程图示、结构图或框图的过程来描述实施方案。尽管流程图可将操作行为描述为顺序过程,但是许多这些行为可按另一顺序、并行或基本上同时执行。此外,可重新安排动作的顺序。过程可以对应于方法、线程、函数、程序、子例程、子程序等。此外,本文所公开的方法可以在硬件、软件或两者中实现。如果在软件中实现,这些函数可作为一个或多个指令或代码存储或传输到计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质两者,该通信介质包括有利于将计算机程序从一个位置传递到另一个位置的任何介质。

本公开中任何将某物表征为“典型”、“常规”或“已知”不一定意味着它在现有技术中公开或在现有技术中理解所讨论的方面。其也不一定意味着在相关领域它是众所周知的、易于理解的或常规使用的。

如本文所用,“被门控设备”是电子系统内的电路,该电子系统可被启用/禁用并且包括同步电路。同步电路的示例包括同步组合逻辑,诸如触发器、寄存器和锁存器。就寄存器而言,被门控设备可以是部分寄存器,例如寄存器的最低有效位(例如,形成寄存器的多个触发器的子集)。

作为惯例,当被门控设备接收时钟时,其在本文中可描述为“驱动的”。此外,时钟门可在传播时钟时驱动其扇出中的被门控设备或被门控设备组。注意,第一时钟门可在其扇出中“驱动”被门控设备,但是这并不意味着一些或甚至所有此类被门控设备接收时钟信号-例如,一个或多个时钟门可在此类第一时钟门与各种被门控设备之间的时钟路径中。

在一些情况下,时钟门在本文中可以根据状态(例如,“打开”或“关闭”),可操作地(例如,“传播”和“不传播”)以及它们的组合描述。

如本文所用,“时钟”是在高状态与低状态之间振荡的信号。通常,“高”和“低”的振幅以及振荡频率是可预测的,但并不一定总是这种情况。以举例的方式,时钟可用于协调电子系统和电子系统的电路的动作。在本公开中,为了描述的一致性,边沿触发电路应假定为“低到高”或“上升沿”触发,并且当时钟电平为高时,电平触发电路应假定为“打开”。然而,本领域的普通技术人员将会理解,任何数量的约定可用于基于时钟触发电路。

时钟周期是从第一触发事件到下一个触发事件测量的时间段。就本公开的上升沿触发电路而言,下一个触发事件可以是紧接的上升沿,或一些倍数的上升沿,例如,每隔2个上升沿、每隔3个上升沿,但是不限于此。时间段可以用时钟周期的数量表示。例如,相关时段可表示为两个时钟周期长、三个时钟周期长等。形成时段的多个连续时钟周期可描述为一系列时钟周期。

典型的电子电路设计工具在不考虑使用的情况下将时钟门插入到电子电路设计中,尽管时钟门消耗功率和使用物理空间。出于许多潜在原因,电子电路设计工具可配置时钟门以禁用被门控设备。电子电路设计工具可将时钟门配置为控制(如本文所用,控制被门控设备是指启用和禁用被门控设备两者)被门控设备以考虑时钟稳定,但是可能不考虑时钟门控将提高效率的其他状况。例如,如果被门控设备未改变状态(例如,就寄存器而言改变存储的信息),则时钟门传播时钟可能是无效的。

本公开的一个或多个实施方案一般涉及分析电子电路设计中的时钟门控的方法。在电子电路设计的模拟期间,对于给定时钟门,观察时钟门的扇出中一个或多个被门控设备中的状态变化,并且与时钟门的操作比较-即,时钟门是否在被门控设备应改变状态时传播时钟还是在被门控设备不应改变状态时传播时钟。如果传播时段与被门控设备处的空闲时段重叠(即,对应于一个或多个相同时钟周期),并且对传播时段的改变将提高电子电路设计的效率,则时钟门可至少部分地基于传播时段的期望变化来重新配置。以另一种方式表征,如果对当时钟被启用以到达被门控设备并且被禁用以到达被门控设备时的变化将提高电子电路设计的效率,则时钟门控制逻辑可至少部分地基于此类时序信息来重新配置。

本公开的一个或多个实施方案整体涉及被配置用于电子电路设计的时钟门控分析的时钟门控分析器(“CGAnalyzer”)。CGAnalyzer可建立与电子电路设计相关联的门控模型,创建可用于模拟电子电路设计的时钟门控分析参数,以及在电子电路设计的模拟期间执行时钟门控分析。CGAnalyzer可模拟和分析电子电路设计中的每个时钟门,和/或分析模拟器的模拟结果。CGAnalyzer可基于效率阈值以识别时钟门的人类和/或计算机可读格式输出结果。在一个实施方案中,CGAnalyzer可输出将导致更高效率的分析时钟门的配置的变化。CGAnalyzer可将具有重新配置的时钟门的电子电路设计的模拟的输出与原始电子电路设计的模拟的输出进行比较,以验证电子电路设计不是与重新配置的时钟门/时钟门控逻辑不同地作用。

现在将参考根据本公开的一个或多个实施方案的图1、图2A、图2B和图3描述示例时钟门控分析。

图1示出了根据本公开的一个或多个实施方案的尚未改进的示例电子电路100的简化电路图,并且该示例电子电路可以是完整的电子电路或更大、更复杂的电子系统的一部分。电路100包括时钟门102、N位寄存器104和被门控设备108(也是N位寄存器,并且在本文中有时可称为“N位寄存器108”)。组合逻辑110的云操作地耦接至N位寄存器104的输入,并且组合逻辑106的另一个云操作地耦接在N位寄存器104与N位寄存器108之间。N位寄存器108可被认为是被门控设备,并且形成N位寄存器108的触发器可各自单独被认为是被门控设备。

门控逻辑114和时钟门102也操作地耦接在N位寄存器104与N位寄存器108之间。时钟门102还操作地耦接至为电路100供应时钟112的主时钟。时钟门102被配置为在一个或多个输入处接收由门控逻辑114供应的使能116和由主时钟供应的时钟112。时钟门102被配置为向N位寄存器108供应启用时钟118。在设想的操作中,时钟门102被配置为响应于使能116和/或时钟112而在传播模式与门控模式之间切换,其中时钟门102在传播模式期间传播时钟112并且在门控模式期间门控时钟112,即,时钟门102在门控模式期间不传播时钟112。注意,时钟门102是根据本公开的实施方案的时钟门的简化框图。诸如触发器、与门和其他组合逻辑的公共元件不一定在本公开中的时钟门的讨论和附图中指出,但是为了避免疑问,如本文所用的“时钟门”旨在包括时钟门及其法律等同物的所有布置,即使没有提到某些元件。

时钟门102被配置为向其扇出中的一个或多个被门控设备(包括N位寄存器108)供应启用时钟118。N位寄存器108操作地耦接至时钟门102,以使得各个寄存器元件(例如,触发器)可由启用时钟118计时。第一总线120操作地耦接在计算逻辑106与N位寄存器108之间,并且向N位寄存器108供应数据。附加总线操作地耦接在N位寄存器108的输出与来自电路100的下游元件之间,并且被配置为传输信息。第二总线(例如,第二总线122)被示出为操作地耦接在N位寄存器108与下游的任何电路之间。

图2A示出了根据本公开的一个或多个实施方案的对应于电路100的设想操作的示例时序图200。示出了时钟112、时钟门使能116和启用时钟118的信号。还示出了寄存器输入124和寄存器输出126。时钟周期沿时序图200的轴线示出(即,周期

一般地,观察沿数据路径(例如,逻辑110、N位寄存器104、逻辑106、N位寄存器108等)的活动,并且用于配置时钟路径(例如,启用时钟118)。

在一个或多个实施方案中,可观察对应于总线122上的信号的寄存器输出126,以确定N位寄存器108何时活动和不活动。活动可响应于在多个时钟周期内在寄存器输出126处检测到的状态变化而检测。以举例的方式,总线122操作地耦接至N位寄存器108的输出,并且可在总线122处观察至少部分地基于寄存器输出126的状态变化。

寄存器输入124对应于总线120上的信号,并且出于信息目的而示出,但是不一定用于检测N位寄存器108处的活动。简单地以解释的方式,寄存器输入124将不用于时钟门控分析,因为当时钟门打开时,寄存器的输入和输出在相关情况下是(或将变得)相同的。当时钟门关闭时,寄存器输入可不同于寄存器输出。

启用时钟118在由使能116生效(例如,高)所限定的传播时段202期间活动。在传播时段202期间,启用时钟118和时钟112基本上相同,尽管有时可存在小的传播延迟。门控时段204在传播时段202后,并且由使能116失效(例如,低)所限定。门控时段204开始后的一个时钟周期,启用时钟118变为不活动,并且启用时钟118在与门控时段204的长度相同数量的时钟周期(一个)内不活动。

转到寄存器输出126,显著地,在活动212之后(在该示例中,从信号“a”到信号“b”的变化),寄存器输出126处于空闲时段214,其中没有活动与N位寄存器108相关联(例如,在这些被门控设备的输出上没有信息变化,寄存器108保持输入“b”,但是不对输入“c”计时),因此N位寄存器108也可表征为处于空闲时段214(也可表征为“静止”时段)直到第二活动218。为了检测寄存器输出126处的活动,可观察每个时钟周期处的状态,然后与前一个时钟周期的状态比较。例如,周期

因此,传播时段202与空闲时段214重叠的部分可能是浪费的传播时间和改善时钟门102的操作的机会。时钟门控逻辑可基于浪费的传播时间来配置。可记录这个和其他浪费的传播时间,例如,可观察和存储与浪费的传播时间的开始时间和结束时间相关联的时钟周期。

图2B示出了对应于改进电路300(见图3)的时序图230,该改进电路可基于本公开中所述的时钟门控分析来创建(或可创建其设计)。图2B示出了改进电路300的设想操作的示例,以及该设想操作如何对预改进电路100改进。示出了时钟312、时钟使能316和启用时钟318的信号。还示出了总线320和322,在图2B所示的示例中,观察该总线以确定寄存器输入324和寄存器输出326,其中寄存器输入324对应于总线320上的信号,并且寄存器输出326对应于总线322上的信号。

参考时钟使能316,存在短传播时段232,之后是门控时段234,然后是另一个短传播时段236。由于将关于图3进一步描述的向时钟门302供应使能316的修改的门控逻辑314,与门控时段204和空闲时段214相比,门控时段234更紧密地对应于寄存器输出326的空闲时段250。注意,与两个时钟周期在空闲时段214期间传播的图2A所示的时序图200相比,传播启用时钟318的时钟周期240,但是没有时钟312的其他时钟周期在空闲时段250期间传播。还注意,在图2A和图2B所示的示例中,对于门控周期234,时钟门逻辑314有目的地抑制寄存器输入324处的信号变化“b”到“c”,该时钟门逻辑包括逻辑314-1和逻辑314-2。

可执行一致性检查以示出电路100的门控逻辑114的寄存器输入124和寄存器输出126的活动与改进电路300的修改的门控逻辑314的寄存器输入324和寄存器输出326相同。例如,可观察和确定对应时钟周期在寄存器输出126处的状态变化与寄存器输出326处的状态变化一致,因此,改进电路300的设想操作与电路100的设想操作一致。

图3示出了根据本公开的一个或多个实施方案的示例改进电路300的简化电路图。注意,改进电路300是可基于本公开的时钟门控分析创建的一般化电路的一个示例。本领域的普通技术人员将会理解,许多其他电路可用于实现从电路100到改进电路300的时钟门控效率的类似改进。

改进电路300包括修改的门控逻辑314,该修改的门控逻辑供应启用316,并且负责图2A和图2B中所示的门控时段与传播时段之间的差异。注意,修改的门控逻辑314以简化格式示出,并且包括逻辑314-1和逻辑314-2。逻辑314-2是异或门,其被配置为如果到N位寄存器308的任一个输入信号不同于N位寄存器308的对应输出信号,则输出“1”;并且如果到N位寄存器308的所有输入信号与N位寄存器308的对应输出信号相同,则输出“0”。逻辑314-1是(先前的)门控逻辑114和与门,并且与门接收逻辑314-2的输出和门控逻辑114的输出。这是示出设想示例的简化示例,并且本领域的普通技术人员将会理解,其可由组合逻辑的其他组合表示。

一种用于选择新门控逻辑的技术是观察触发器的数据输入与数据输出之间的异或(XOR)操作。只有当输入与输出不同时,才需要供应时钟。此类技术的一个优点是节省功率。然而,电路设计可考虑许多不同的考虑因素和考虑因素的组合,包括功率使用、时序、信号强度等。例如,如果从有限状态机(FSM)供应使能信号,则可重新设计FSM以仅在状态改变(例如,数据改变)时输出使能。

本公开中所述的时钟门控分析技术和时钟门控改进技术可在硬件、软件以及它们的组合中实现。此外,它们可用于分析例如在可配置处理器、现场可编程门阵列或模拟电路中实现的电子电路或部分电子电路;并且还分析电子电路的设计,诸如可在逻辑门模型中描述的电子电路。

图4示出了根据本公开的一个或多个实施方案的时钟门控分析过程400的流程图。在操作402中,识别时钟门的传播时段和被门控设备的空闲时段。在一个实施方案中,空闲时段可对应于被门控设备处的不活动时段,该不活动时段可通过观察操作地耦接至被门控设备的总线线路来检测。在操作404中,响应于传播时段与空闲时段的重叠而识别浪费的时钟传播时间。例如可使用开始时间和停止时间,识别和记录浪费的时钟传播时间。注意,传播时段实际上可包括多个传播时段,并且空闲时段可包括多个空闲时段,因此可识别多个重叠时段和多个浪费的传播时间的时段。在操作406中,响应于浪费的传播时间而配置修改的时钟门控逻辑。在一些情况下,时钟门可以是标准单元库中的特定元件,并且可存在许多类型的行为不同的时钟门(例如,相关联的时钟门控逻辑)。在一个实施方案中,时钟门的列表和它们的相关联行为可用于识别候选时钟门,然后可在标准单元库搜索候选时钟门。如果可用,则可调查候选时钟门以查看其是否改善电路的操作,并且更具体地,改善时钟门控效率。

在操作408中,比较在配置修改的时钟门控逻辑之前的被门控设备的第一活动与在配置修改的时钟门控逻辑之后的被门控设备的第二活动。在操作410中,确认第一活动与第二活动一致。

在一个或多个实施方案中,时钟门分析器可模拟所有相关设备(例如,时钟门和被门控设备)的电子电路,而不使用采样时段-换句话讲,对所有信令变化进行采样。然而,在一些情况下,模拟效率可存在折衷。更具体地,电路在时钟门和/或被门控设备的数量方面越复杂,并且被跟踪的信令变化越多,则存储空间(例如,用于存储波形)、处理功率和/或模拟运行时间的成本越高。

因此,在一个或多个实施方案中,时钟门分析器首先可模拟时钟门而不使用指定的采样时段,换句话讲,对所有信令变化进行采样。时钟门分析器可基于第一模拟的结果确定相关的时钟频率和/或采样时段以用于所有相关设备(例如,时钟门和/或被门控设备)的模拟。可使用所确定的频率和/或采样时段对所有相关设备执行第二模拟。注意,对于所有信令变化,使用所确定的采样时段模拟所有相关设备的成本比模拟所有相关被门控设备更低。

图5示出了根据本公开的一个或多个实施方案的时钟门分析器500的示例实施方案的功能框图,该时钟门分析器一般被配置为分析电子电路(诸如图1的电路100)的时钟门控。更具体地,时钟门分析器500可被配置为例如使用编译器分析与电子电路设计相关联的时钟门控,例如,从电子系统(例如,系统Verilog文件)的行为设计推断的门控级逻辑实现(例如,Verilog中的门控级网表文件)。

在图5所示的示例中,时钟门分析器500一般包括逻辑解释器502、模拟器520、时钟门控解释器524、全电路模拟器528和效率解释器524。逻辑解释器502可被配置为解释门级逻辑模型504以识别逻辑单元,提取逻辑单元信息,且提供逻辑单元信息以填充逻辑单元记录506。

逻辑单元记录506可包括预定义逻辑单元类型的字段,包括时钟门508、被门控设备510和连接512。在一个实施方案中,逻辑单元记录506还可存储关于时序元件诸如缓冲器(未示出)的信息。在一个或多个实施方案中,门级逻辑模型504可描述电子电路设计的部件的连接性和行为。在其他实施方案中,门级逻辑模型504可描述连接性(例如,单元列表、节点和/或单元的一些属性),并且解释器502还可包括门级逻辑模型504中描述的一个或多个单元的行为的描述(例如,库文件)。

门级逻辑模型504中的连接性可描述物理连接(例如,导线)或者信号和信号路径(例如,信号和接收信号的连接设备的标识符)。

在一个实施方案中,逻辑解释器502可包括描述用于门级逻辑模型(包括门级逻辑模型504)中不同类型的逻辑单元的命名约定的术语表。在一个实施方案中,术语表可以是或基于标准单元库。逻辑解释器502可使用术语表中描述的术语识别门级逻辑模型504和提取逻辑单元信息514中描述的时钟门、被门控设备和连接。逻辑单元信息514可包括完整模块(例如,详细的子块和封装子块的高级功能)以及每个模块的实例路径和导线别名。

逻辑解释器502可被配置为解析门级逻辑模型504以识别时钟门和从时钟门的时钟输出到由时钟门驱动(即,在被门控设备的时钟输入处接收时钟门的时钟输出)的每个被门控设备的迹线连接性(例如,导线或信号)。关于其驱动的每个时钟门和被门控设备的信息可由逻辑解释器502作为提取的逻辑单元信息514存储在逻辑单元记录506中。逻辑解释器502可使用术语表中描述的术语识别门级逻辑模型504和提取逻辑单元信息514中描述的时钟门、被门控设备和连接。

逻辑解释器502将逻辑单元记录506存储在连接模型516中,该连接模型包括时钟门和它们驱动的被门控设备的描述。

除了从门级逻辑模型504提取逻辑单元信息514之外,逻辑解释器502还被配置为生成时钟门(CG)模拟命令518,该CG模拟命令是用于在模拟器520处运行相关时钟门的模拟的解析命令。CG模拟命令518可包括由逻辑解释器502和门级逻辑模型504确定的模拟命令、采样频率。逻辑解释器502可基于存储在连接模型516中的连接性和行为信息来确定CG模拟命令518。在一个实施方案中,CG模拟命令518可存储为命令文件。

模拟器520被配置为响应于CG模拟命令518,以及更具体地,门级逻辑模型504、模拟命令和采样频率,而输出相关时钟门信号的时钟门(CG)行为522(例如,波形)。CG行为522可描述可更详细地记录和分析的信号以理解时钟门在电子电路设计中的影响。

CG行为522还可包括每当在分析时段期间连接变化状态时所有连接的状态信息。在一个或多个实施方案中,可限定采样时段(例如,对应于如上所述的采样频率)以简化时钟门和/或时钟门以及被门控设备模拟和分析。

在一个或多个实施方案中,逻辑解释器524可被配置为确定要在使用CG行为522的第二模拟(例如,由全电路模拟器528)期间使用的采样频率。因为在分析时段期间系统时钟的频率可变化或者系统时钟可具有频率不同的不同时钟,所以在一个实施方案中,逻辑解释器524识别没有数据或无关紧要的数据将丢失(例如,将不记录)的采样频率。

本领域的普通技术人员已知的任何合适的技术可用于识别一个或多个采样频率。例如,根据本公开中设想的一般识别过程,逻辑解释器502在分析时段期间识别“最低”时钟频率fs和“最高”时钟频率f

根据另一个本公开中设想的一般识别过程,逻辑解释器502在分析时段期间识别所有时钟频率,确定时钟频率的最小公倍数(LCM)频率,以及将分析频率限定为LCM频率。

在一个实施方案中,为了识别时钟频率(无论是所有频率还是仅最低和最高频率),对于在分析时段内执行分析运行的每个时钟门,逻辑解释器524可被配置为识别整个分析时段的子时段的时钟频率的最大公约数。在一个实施方案中,相关子时段可通过检查时钟的每次切换的时间戳和记录每个此类时间戳之间的时间间隔而找到。例如,如果在时间t1处存在第一次切换并且在时间t2处存在第二次切换,则t1与t2之间流经的时间可记录为找到的半时段,其中找到的时段将为从上升沿到上升沿。

时钟门控解释器524可被配置为生成ECD模拟命令526和向全电路模拟器528ECD提供模拟命令526。ECD模拟命令526可包括例如用于模拟相关设备(例如,时钟门和被门控设备)的所有相关信号和用于模拟相关设备的采样频率。

响应于ECD模拟命令526,对时钟门和被门控设备(CG-GD)行为530的一系列描述由全电路模拟器528输出。对于每个时钟门,CG-GD行为530可描述由时钟门输出的一系列波形和由被门控设备在其扇出中输出的波形。

CG-GD行为530的每个波形(例如,每个波形文件)可由效率解释器532分析。效率解释器532可被配置为针对每个时钟门检查:(1)在一行中时钟门驱动被门控设备多少个周期;以及(2)通过在被门控设备空闲或活动的传播时段期间测量时钟周期的数量来检查时钟门的效率。效率解释器532还可被配置为例如通过查看多个连接来确定其扇出中被门控设备的数量。

注意,由于时钟门传播的时钟的时段可变化,因此效率解释器532可被配置为检测活动时钟边沿,且响应于检测到的活动时钟边沿而检查被门控设备处的活动。

在一个或多个实施方案中,可收集每个时钟门的评估信息,进行比较并存储,然后以人类和/或计算机可读格式在可存储的报告534中输出。

在一个或多个实施方案中,逻辑解释器502、CG解释器524和效率解释器532中的每一个可以是计算机程序(例如,目标代码中的编译程序)、以脚本语言编写的脚本以及它们的组合(例如,控制或调用一个或多个计算机程序的脚本,反之亦然)。

虽然模拟器(诸如模拟器520和全电路模拟器528)被示出和描述为单独的功能块,但是在一个或多个实施方案中,它们可以是相同的功能模块或软件包的一部分。此外,本文一般可将分析过程描述为第一模拟,其中它们提供的时钟门和信号基于第一模拟来识别,然后它们提供的时钟门、信号、以及被门控设备在第二模拟中更全面地监测和分析。然而,在一个或多个实施方案中,可一起分析时钟门和被门控设备。

图6、图7和图8示出了根据本公开的一个或多个实施方案的分别实现为逻辑解释器502、CG解释器524和效率解释器532的脚本的示例过程600、700和800的流程图。

图6示出了根据本公开的一个或多个实施方案的示例逻辑解释过程600(例如由逻辑解释器502执行)的流程图。在操作602中,时钟门单元名称、寄存器单元名称和缓冲器单元名称(逐一地或组合地)用作感兴趣的单元类型的变参(即,以定义参数),并且对逻辑模型搜索感兴趣的单元类型。在操作604中,返回逻辑单元对应于每个逻辑单元类型名称的底层实例化。在一个实施方案中,底层实例化是在网表中从标准单元库中所取的逻辑单元的位置,因此是使用单元的模块名称的唯一位置。解析整个网表,并且收集对应于逻辑单元类型名称的所有逻辑单元实例。在操作606中,识别单元被实例化的每个模块,并且收集模块名称。在逻辑模型内检查稍后调用模块名称的每个位置,并且提取密钥信息。在一个实施方案中,密钥信息是实例名称、导线别名以及在其内实例化的模块名称。在一些情况下,模块可以是嵌套的(模块内的模块内的模块),在这种情况下,模块名称可以是嵌套模块的模块路径。

在提取关于逻辑单元类型的密钥信息之后,在操作608中,确定所识别的逻辑单元之间的关系。由于已针对在电子电路设计内使用逻辑单元的所有不同位置采集了关于该逻辑单元的输入和输出导线的密钥信息,因此逻辑单元之间的连接可基于密钥信息来识别。在操作610中,提供和清除所提取的单元信息以确保所识别的连接的正确格式化。在操作612中,形成时钟门的单元树,并且用作搜索树以搜索连接到给定时钟门的被门控设备的单元信息。

在操作614中,一次一个时钟门逐步通过单元树以搜索单元信息的列表。针对耦接(例如,从时钟门供应启用时钟信号(“ENCLK信号”)作为输入时钟信号)至给定时钟门(例如,寄存器或另一时钟门)的被门控设备返回所有逻辑单元,并且存储所识别的逻辑单元的逻辑单元信息。记录每个此类被门控设备为被特定时钟门门控。

以设想的举例方式,在一个或多个实施方案中,找到从特定时钟门供应(例如,耦接至)ENCLK信号的所有缓冲器。记录每个此类缓冲器的输出导线。然后,输出导线被视为ENCLK信号的等同物。再次一次一个时钟门逐步通过单元树,以搜索单元信息并且识别由ENCLK信号供应的被门控设备和缓冲器。记录新识别的被门控设备以及新识别的缓冲器,该新识别的缓冲器被视为ENCLK信号的等同物。重复该过程,直到不再识别到缓冲器,并且假设已找到所有被门控设备并且将其存储在时钟门作为其找到的被门控设备。

在一个或多个实施方案中,当找到被门控设备(诸如寄存器)时,将被门控设备标识符(例如,多个若干数字)与时钟门标识符一起存储在列表中,以示出时钟门与被门控设备是连接的。在一个实施方案中,被门控设备标识符是对应于可找到特定被门控设备的被门控设备列表中位置的数量。当找到被门控设备时,由于被门控设备不传播时钟信号,所以连接到被门控设备的输出的更多逻辑单元不再需要该时钟树的该分支,这意味着连接到被门控设备的输出的逻辑单元不由相应的时钟门驱动。

图7示出了根据本公开的一个或多个实施方案的示例时钟门控解释过程700的流程图。

在操作702中,搜索和识别时钟门各自可被采样而不丢失任何相关信息的最长采样时段。在操作704中,找到要分析的寄存器和时钟门的信号的所有路径。每个路径可被描述为电路设计中特定单元的位置,并且更具体地,可在特定单元位于其内的嵌套模块的列表中描述。在操作706中,路径被解析成一系列终端命令。一系列终端命令中的一个终端命令可以是执行单个时钟门及其相关联的被门控设备(例如,被驱动的寄存器)的模拟的命令。命令可包括用于运行模拟器(例如,用于商购的模拟引擎)中电子电路设计的特定指令、每个相关设备(此处,每个相关单元)的路径以及采样频率和/或采样时段。在操作708中,导出相关波形,每个波形(或波形的子集)处于用于分析特定时钟门及其被门控设备的期望采样时段。

在一个或多个实施方案中,为了找到期望的采样时段,找到每个时钟门的正确波形(即,特定于时钟门),导出到文件,并且逐行搜索。检测每个时钟边沿,并且读取和存储时钟边沿事件的时间。每当已检测到上升时钟边沿时,记录从时钟下降到上升沿的时间,并且对于下降沿事件,反之亦然。识别和存储所得的半时段。在一个实施方案中,将识别的所得的半时段和其他采样时段添加到候选采样时段的列表中。可找到半时段的一个或多个最大公约数,并且附到候选采样时段的列表。在分析所有时钟门和完成候选采样时段的列表时,返回候选采样时段的列表。可分析候选采样时段的列表,并且可选择适当的采样时段以用于模拟电子电路设计,并且所选的采样时段可用于确定采样频率。

时钟门与寄存器之间的连接列表可用于创建终端命令以运行数字模拟器。还创建终端命令中所需的信号的正确路径。输出可以是列出每个时钟门的一个终端命令的文件。逐一读取该文件。针对每个时钟门写出文件(例如,逗号分隔的值类型文件),并且将该文件存储在例如文件系统或数据库的目录中。

图8示出了根据本公开的一个或多个实施方案的示例效率解释过程800的流程图。一般地,可分析对应于模拟电子电路设计的波形,并且收集和存储动态效率信息。动态效率信息可包括例如被门控设备活动的时钟周期的数量、被门控设备静止的周期的数量以及对应于传播时钟(打开状态)的此类门控设备的时钟门、时钟门传播时钟的连续周期的最大数量、电路中被门控设备和非被门控设备的数量、以及时钟门的扇出中被门控设备的数量(例如,存储为到时钟门的连接的列表)。在一个或多个实施方案中,时钟门和被门控设备可例如使用原始分数、百分比、排名以及它们的组合根据动态效率信息来量化(例如,作为分数)。例如,被门控设备对非被门控设备的计数;计算为浪费的传播时段对总的传播时段的比较的时钟门、时钟门组、被门控设备和被门控设备组的动态效率分数(例如,以百分比计);以及使用一个或多个前述动态效率分数计算的电路的总体动态效率分数(例如,以百分比计)。

一般地,可处理波形文件以收集测试标准的动态效率信息,例如,以百分比计的动态效率、时钟门打开的连续周期的最大数量、以及时钟门扇出中被门控设备的数量。由于采样时段可比时钟周期短,因此可实现边沿检测器以确定何时读取感兴趣的信号。以设想的举例方式,当采样频率高于波形的特定部分的时钟频率时,可观察时钟的每个样本以确定其是否不同于时钟的先前样本-换句话讲,是否存在变化-即活动。如果样本不同于先前样本,则可推断出边沿发生的地方(或在对应于延迟的时钟周期的数量内)。

转到示例效率解释过程800,在操作802中,读取第一或下一个时钟门及其被门控设备(例如,其扇出中的寄存器)的波形。在操作804中,基于波形来检测第一或下一个时钟周期(例如,使用边沿检测技术)。在操作806中,确定时钟门是否处于当前时钟周期(即,在操作802中检测到的第一或下一个时钟周期)的操作的传播模式(在本文中也称为“打开模式”)。

如果在操作806中,确定时钟门处于当前时钟周期的传播模式,则在操作808中,递增打开模式周期计数。打开模式周期计数是时钟门处于传播模式的连续周期的数量的计数-换句话讲,是传播周期的量度。在操作810中,读取当前时钟周期和先前时钟周期的被门控设备的状态,以识别此类被门控设备的状态是否已变化。在操作812中,比较当前时钟周期与先前时钟周期的被门控设备的状态,并且确定是否检测到任何状态变化。如果寄存器值未变化(即,寄存器静止),则在操作816中,记录静止的时钟周期-即,记录时钟门在传播但是被门控设备静止的时钟周期。在一个实施方案中,记录静止周期可包括递增静止周期计数。如果被门控设备状态已变化(即,寄存器活动),则在操作814中,可记录活动周期。在一个实施方案中,记录活动周期可包括递增活动周期计数。在记录活动周期(操作814)或静止周期(操作816)之后,视情况而定,在操作824中,基于波形确定存在更多时钟周期以分析当前时钟门。如果有更多时钟周期要分析,则过程800回到操作804并且检测下一个时钟周期。

如果在操作806中,确定时钟门处于当前时钟周期的门控模式(即,不传播时钟),则在操作818中,确定当前打开模式周期计数(也是连续传播周期的计数)是否大于先前存储的打开模式周期计数。如果不大于,则在操作822中,丢弃当前打开模式周期计数以有利于先前存储的打开模式周期计数。如果更大,则在操作820中,丢弃先前存储的打开模式周期计数并且存储当前打开模式周期计数。在分析时钟门时,存储的计数器将对应于检测到的时钟门在传播的连续周期的最大数量。在存储或丢弃当前打开模式周期计数之后,视情况而定,在操作824中,基于波形确定存在更多时钟周期以分析当前时钟门。如果有更多时钟周期要分析,则过程800回到操作804并且检测下一个时钟周期。

如果在操作824中,确定不再有时钟周期要分析,则在操作826中,计算和存储时钟门的分数。在本公开中稍后描述了评分示例,诸如动态效率分数。在操作828中,确定是否有更多时钟门要分析。如果有更多时钟门要分析,则过程800行进至操作802以读取下一个时钟门及其被门控设备的下一个波形。

如果在操作824中,确定不再有时钟门要分析,则在操作830中,加权分数被分配给每个时钟门(例如,表示其对整个系统的分数贡献的动态效率分数的加权),并且结果被解析到文件并且进行存储。除了其他方式以外,可使用加权分数彼此比较时钟门。例如,加权分数可用于基于一组标准确定一组时钟门中哪些时钟门是最低效的。加权可涉及确定哪些量度最重要以及将权重(例如,值)分配给特定量度。重要性可例如基于对因素的贡献诸如对功率消耗的贡献来确定。在确定权重时考虑的量度可包括在传播的连续时钟周期的数量以及时钟门接收输入的周期总数(即,时钟门被另一个关闭时钟门门控的周期的数量)。

过程800在执行操作830之后完成。

结果脚本可被配置为创建输出文件,以整个电子系统设计的一般信息开头。一般信息可包括例如,未门控寄存器对门控寄存器的量(例如,计数)、门和/或门组的动态效率(例如,以百分比计)、总体平均动态效率分数(例如,以百分比计)、以及更一般的动态效率信息。

在概述之后,可描述时钟门的分级/评分列表。示出每个列表的时钟门的量可例如由用户输入给出,且预设为示出最差和最佳时钟门(例如,在动态效率方面)的数量,例如,设为示出十个最差时钟门和十个最佳时钟门。

以举例的方式,每个条目以时钟门名称开始,该时钟门名称之后是每个测试标准的数量。时钟门的路径可例如在网表类型的显示布置中示出。在条目的底部处,示出由时钟门驱动的每个被门控设备(例如,寄存器)的路径。在一个或多个实施方案中,鉴于时钟门不是在合成阶段之前(即,在网表中)物理地推断出的,寄存器路径可用于在原始RTL代码内定位时钟门。

报告1是根据本公开的一个或多个实施方案生成的整个电子系统的示例概要:

报告2是根据本公开的一个或多个实施方案生成的时钟门的示例报告,该示例报告被报告为电子系统最低效的:

报告3是根据本公开的一个或多个实施方案生成的时钟门的示例报告,该示例报告被报告为另一个电子系统最有效的:

本领域的普通技术人员将会理解,除了那些具体描述的以外,还有许多与本公开的实施方案的实现相关联的益处和优点。

虽然本文可描述诸如时钟门、组合逻辑、被门控设备、总线和各种连接的元件,但是本领域的普通技术人员将会理解,此类元件和连接可以是物理的(诸如部分电路)、逻辑的(诸如像门级模型的设计中所定义的)、或是物理的和逻辑的(诸如对应于电路的设计)两者。本公开中所述的示例和实施方案应被解释为独立地和组合地覆盖物理的实施方式和逻辑的实施方式及其法律等同物;除非特别说明示例或实施方案适用于逻辑的或物理的实施方式中的一者,或者本领域的普通技术人员将理解的上下文适用于物理的或逻辑的实施方式中的一者,在这种情况下,本公开中所述的示例和实施方案涵盖此类陈述或理解的实施方式及其法律等同物。

至少出于本文阐述的原因,本公开的各种实施方案提供了对由人无法合理执行的技术引起的一个或多个问题的技术解决方案。本公开的各种实施方案提供了源于计算机技术的技术优点和技术解决方案,克服了源于计算机有关技术的问题和/或缺点,以及一般地改善了计算机有关技术,包括本文所述的问题、缺点和挑战。此外,本文所公开的至少一些实施方案可通过允许计算机执行先前不可由计算机执行的功能来改进计算机有关技术。

本说明书中的许多功能描述可被示出、描述或标记为编程代码(包括固件)的模块、线程、步骤或其他分类,以便更具体地强调它们的实施独立性。模块可至少部分地以一种或另一种形式在硬件中实现。例如,模块可实现为硬件电路,该硬件电路包括定制的VLSI电路或门阵列、现有半导体诸如逻辑芯片、晶体管或其他分立部件。模块也可在可编程硬件设备诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等中实现。

模块也可使用存储在物理存储设备上(例如,计算机可读存储介质,本文中也可简称为计算机可读介质)、存储器中或其组合中的软件或固件来实现,以用于由各种类型的处理器执行。

可执行代码的所识别模块可例如包括计算机指令的一个或多个物理块或逻辑块,这些物理块或逻辑块可例如被组织为线程、对象、过程或功能。然而,所识别模块的可执行文件不需要物理地定位在一起,而是可包括存储在不同位置中的不同指令,这些指令在被逻辑地结合在一起时包括模块并实现模块的所述目的。

实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可分布在若干不同的代码段上、不同程序之间以及若干存储装置或存储器设备上。类似地,操作数据在本文中可在模块内被识别和示出,并且能够以任何合适的形式实施并在任何合适类型的数据结构内被组织。操作数据可作为单个数据集被收集,或者可分布在不同位置上,包括分布在不同存储设备上,并且可至少部分地仅作为系统或网络上的电子信号存在。在模块或部分模块以软件实现的情况下,软件部分存储在一个或多个物理存储设备上。

在一些实施方案中,软件部分以非暂态状态存储,使得软件部分或其表示在同一物理位置持续一段时间。另外,在一些实施方案中,软件部分存储在一个或多个非暂态存储设备上,这些非暂态存储设备包括能够存储非暂态状态和/或表示软件部分的信号的硬件元件,尽管非暂态存储设备的其他部分可能能够改变和/或传输信号。非暂态存储设备的示例是闪速存储器和随机存取存储器(RAM)。非暂态存储设备的另一个示例包括只读存储器(ROM),该只读存储器可将表示软件部分的信号和/或状态存储一段时间。然而,存储信号和/或状态的能力不会因传输与所存储的信号和/或状态相同或表示所存储的信号和/或状态的信号的其他功能而减弱。例如,处理器可访问ROM以获得表示所存储的信号和/或状态的信号,以便执行对应的软件指令。

模块的软件部分也可存储在计算机可读存储介质上,以用于承载或具有存储在其上的计算机可执行指令或数据结构。此类计算机可读存储介质可以是可由通用或专用计算机访问的任何可用介质。

以举例而非限制的方式,此类计算机可读存储介质可包括非暂态存储介质,该非暂态存储介质包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)或其他光盘存储设备(诸如数字视频盘或“DVD”)、磁盘存储或其他磁存储设备、闪存存储器设备(例如,固态存储器设备)、或可用于承载或存储计算机可执行指令或数据结构形式的期望程序代码和可由通用或专用计算机访问的任何其他存储介质。上述的组合也可包括在计算机可读存储介质和存储介质的范围内。计算机可执行指令可包括例如被配置为致使处理器执行某个操作或一组操作(包括执行本公开的各种实施方案)的指令和数据。

本文所述的实施方案可全部或部分地嵌入在各种计算机可读存储介质中的任一种上供应的一个或多个计算机程序产品中。计算机程序产品可嵌入在计算机语言语句中。

术语“计算机程序产品”用于指如上定义的计算机可读存储介质,其上具有任何形式的软件,以使得计算机系统能够根据本发明的任何实施方案操作。软件应用程序可包括用于促进与软件模块交互的软件,该软件模块包括用户界面和应用程序编程接口。软件也可以是捆绑的,尤其是在商业环境中,以构建、编译和/或安装在本地计算机上。

本公开的附加非限制性实施方案可包括:

实施方案1:一种分析电子系统的方法,该方法包括:识别时钟门的传播时段;识别操作地耦接至时钟门的被门控设备的空闲时段;响应于传播时段与空闲时段的重叠而识别浪费的传播时段;响应于浪费的传播时段而配置修改的时钟门控逻辑;比较被门控设备的第一活动与被门控设备的第二活动;以及确认第一活动与第二活动一致。

实施方案2:根据实施方案1所述的方法,其中比较被门控设备的第一活动与被门控设备的第二活动包括:在配置修改的时钟门控逻辑之前,响应于与被门控设备相关联的活动而确定被门控设备的第一活动;以及在配置修改的时钟门控逻辑之后,响应于与被门控设备相关联的活动而确定被门控设备的第二活动。

实施方案3:根据实施方案1和2所述的方法,其中识别被门控设备的空闲时段包括:识别对应于包括时钟门和被门控设备的时钟路径的数据路径上的活动;以及响应于所识别的活动而识别空闲时段。

实施方案4:根据实施方案1至3中任一项所述的方法,其中识别空闲时段包括在被门控设备的输出处观察一个或多个状态变化。

实施方案5:根据实施方案1至4中任一项所述的方法,其中识别空闲时段还包括:识别对应于所观察的状态变化的时钟周期;以及识别所观察的状态变化的两个连续状态变化之间的一系列时钟周期。

实施方案6:根据实施方案1至5中任一项所述的方法,其中识别时钟门的传播时段包括识别时钟门传播接收的时钟的一系列时钟周期。

实施方案7:根据实施方案1至6中任一项所述的方法,其中响应于传播时段与空闲时段的重叠而识别浪费的传播时段包括:识别对应于时钟门的传播时段的第一系列时钟周期;识别对应于被门控设备的空闲时段的第二系列时钟周期;以及识别对于第一系列时钟周期和第二系列时钟周期为相同的至少一个时钟周期。

实施方案8:根据实施方案1至7中任一项所述的方法,其中响应于浪费的传播时段而配置修改的时钟门控逻辑包括将修改的时钟门控逻辑配置为在至少一些浪费的传播时段不传播接收的时钟。

实施方案9:一种用于分析电子电路的系统,包括:非暂态存储介质,该非暂态存储介质被配置为存储对应于电子电路的时钟门和被门控设备的操作的波形电子文件;处理器,该处理器用于处理存储在非暂态存储介质处的波形电子文件,其中该处理器被配置为:识别时钟门的传播时段;识别操作地耦接至时钟门的被门控设备的空闲时段;响应于传播时段与空闲时段的重叠而识别浪费的传播时段;响应于浪费的传播时段而配置修改的时钟门控逻辑;比较被门控设备的第一活动与被门控设备的第二活动;以及确认第一活动与第二活动一致。

实施方案10:根据实施方案9所述的系统,其中处理器被配置为通过以下方式比较被门控设备的第一活动与被门控设备的第二活动:在配置修改的时钟门控逻辑之前,响应于与被门控设备相关联的活动而确定被门控设备的第一活动;以及在配置修改的时钟门控逻辑之后,响应于与被门控设备相关联的活动而确定被门控设备的第二活动。

实施方案11:根据实施方案9和10所述的系统,其中处理器被配置为通过以下方式识别被门控设备的空闲时段:识别对应于包括时钟门和被门控设备的时钟路径的数据路径上的活动;以及响应于所识别的活动而识别空闲时段。

实施方案12:根据实施方案9至11中任一项所述的系统,其中处理器被配置为识别空闲时段包括在被门控设备的输出处观察一个或多个状态变化。

实施方案13:根据实施方案9至12中任一项所述的系统,其中处理器被配置为进一步通过以下方式识别空闲时段:识别对应于所观察的状态变化的时钟周期;以及识别所观察的状态变化的两个连续状态变化之间的一系列时钟周期。

实施方案14:根据实施方案9至13中任一项所述的系统,其中处理器被配置为通过识别时钟门打开的一系列时钟周期来识别时钟门的传播时段。

实施方案15:根据实施方案9至14中任一项所述的系统,其中处理器被配置为通过以下方式响应于传播时段与空闲时段的重叠而识别浪费的传播时段:识别对应于时钟门的传播时段的第一系列时钟周期;识别对应于被门控设备的空闲时段的第二系列时钟周期;以及识别对于第一系列时钟周期和第二系列时钟周期为相同的至少一个时钟周期。

实施方案16:根据实施方案9至15中任一项所述的系统,其中处理器被配置为通过将修改的时钟门控逻辑配置为在至少一些浪费的传播时段关闭时钟门来响应于浪费的传播时段而配置修改的时钟门控逻辑。

实施方案17:一种计算机程序产品,该计算机程序产品包括:计算机可读介质;和存储在计算机可读介质上的指令,该指令被配置为使得处理器能够执行以下操作:识别时钟门的传播时段;识别操作地耦接至时钟门的被门控设备的空闲时段;响应于传播时段与空闲时段的重叠而识别浪费的传播时段;响应于浪费的传播时段而配置修改的时钟门控逻辑;比较被门控设备的第一活动与被门控设备的第二活动;以及确认第一活动与第二活动一致。

实施方案18:根据实施方案17所述的计算机程序产品,其中指令被配置为使得处理器能够通过以下方式比较被门控设备的第一活动与被门控设备的第二活动:在配置修改的时钟门控逻辑之前,响应于与被门控设备相关联的活动而确定被门控设备的第一活动;以及在配置修改的时钟门控逻辑之后,响应于与被门控设备相关联的活动而确定被门控设备的第二活动。

实施方案19:根据实施方案17和18所述的计算机程序产品,其中指令被配置为通过以下方式使得处理器能够识别被门控设备的空闲时段:识别对应于包括时钟门和被门控设备的时钟路径的数据路径上的活动;以及响应于所识别的活动而识别空闲时段。

实施方案20:根据实施方案17至19中任一项所述的计算机程序产品,其中指令被配置为使得处理器能够识别空闲时段包括在被门控设备的输出处观察一个或多个状态变化。

实施方案21:根据实施方案17至20中任一项所述的计算机程序产品,其中指令被配置为进一步通过以下方式使得处理器能够识别空闲时段:识别对应于所观察的状态变化的时钟周期;以及识别所观察的状态变化的两个连续状态变化之间的一系列时钟周期。

实施方案22:根据实施方案17至21中任一项所述的计算机程序产品,其中指令被配置为使得处理器能够通过识别时钟门打开的一系列时钟周期来识别时钟门的传播时段。

实施方案23:根据实施方案17至22中任一项所述的计算机程序产品,其中指令被配置为通过以下方式使得处理器能够响应于传播时段与空闲时段的重叠而识别浪费的传播时段:识别对应于时钟门的传播时段的第一系列时钟周期;识别对应于被门控设备的空闲时段的第二系列时钟周期;以及识别对于第一系列时钟周期和第二系列时钟周期为相同的至少一个时钟周期。

实施方案24:根据实施方案17至23中任一项所述的计算机程序产品,其中指令被配置为使得处理器能够通过将修改的时钟门控逻辑配置为在至少一些浪费的传播时段关闭时钟门来响应于浪费的传播时段而配置修改的时钟门控逻辑。

实施方案25:一种分析电子电路设计的方法,该方法包括:识别包括电子电路设计的门级逻辑模型的逻辑单元;响应于所识别的逻辑单元而生成第一模拟命令以用于模拟电子电路设计;响应于生成第一模拟命令而执行第一模拟;响应于执行第一模拟而识别时钟门行为;响应于识别时钟门行为而生成第二模拟命令以用于模拟电子电路设计;响应于生成第二模拟命令而执行第二模拟;响应于执行第二模拟而收集电子电路设计的动态效率信息;以及响应于收集动态效率信息而对电子电路设计、电子电路设计的时钟门和电子电路设计的被门控设备中的一个或多个评分。

实施方案26:根据实施方案25所述的方法,其中收集动态效率信息包括收集以下一个或多个:被门控设备活动的时钟周期的数量;被门控设备静止并且对应于此类被门控设备的时钟门传播接收的时钟的周期的数量;时钟门的扇出中被门控设备的数量。

实施方案27:根据实施方案25和26所述的方法,其中响应于所识别的逻辑单元而生成第一模拟命令以用于模拟电子电路设计包括:识别逻辑单元中描述的时钟门;以及响应于所识别的时钟门而生成第一模拟命令。

实施方案28:根据实施方案25至27中任一项所述的方法,其中响应于所识别的时钟门而生成第一模拟命令包括生成用于模拟所识别的时钟门处的信令变化的模拟命令。

实施方案29:根据实施方案25至28中任一项所述的方法,其中生成用于模拟所识别的时钟门处的信令变化的模拟命令包括:生成用于模拟所识别的时钟门处的信令变化但是不用于模拟电子电路设计的其他设备处的信令变化的模拟命令。

实施方案30:根据实施方案25至29中任一项所述的方法,其中响应于执行第一模拟而识别时钟门行为包括识别用于执行电子电路设计的时钟门和被门控设备的模拟的采样频率。

实施方案31:根据实施方案25至30中任一项所述的方法,其中识别用于执行电子电路设计的时钟门和被门控设备的模拟的采样频率包括:在分析时段期间识别最低时钟频率和最高时钟频率;以及响应于在分析时段期间识别最低时钟频率和最高时钟频率而确定第二时钟频率。

实施方案32:根据实施方案25至31中任一项所述的方法,其中响应于在分析时段期间识别最低时钟频率和最高时钟频率而确定第二时钟频率包括:识别与最高时钟频率相同或更高的最低时钟频率的倍数;以及响应于识别最低时钟频率的倍数而限定第二时钟频率。

实施方案33:根据实施方案25至32中任一项所述的方法,其中识别用于执行电子电路设计的时钟门和被门控设备的模拟的采样频率包括:在分析时段期间识别所有时钟频率;以及响应于在分析时段期间识别所有时钟频率而确定最小公倍数的时钟频率。

实施方案34:根据实施方案25至33中任一项所述的方法,其中响应于识别时钟门行为而生成第二模拟命令以用于模拟电子电路设计包括:生成用于使用采样频率模拟电子电路的时钟门和被门控设备的模拟命令。

实施方案35:一种系统,该系统被配置为执行根据实施方案26至35中一项或多项的任一项操作。

实施方案36:一种计算机程序产品,该计算机程序产品被配置为执行实施方案26至35中一项或多项的任一项操作。

虽然本文关于某些图示实施方案描述了本发明,但本领域的普通技术人员将认识到并理解本发明不受此限制。相反,在不脱离下文所要求保护的本发明的范围及其法律等同形式的情况下,可对图示实施方案和所述实施方案进行许多添加、删除和修改。此外,来自一个实施方案的特征可与另一个实施方案的特征组合,同时仍被包括在发明人所设想的本发明的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号