CN102439468A - 考虑了时间和空间相关性的统计形式活动分析 - Google Patents

考虑了时间和空间相关性的统计形式活动分析 Download PDF

Info

Publication number
CN102439468A
CN102439468A CN2010800198826A CN201080019882A CN102439468A CN 102439468 A CN102439468 A CN 102439468A CN 2010800198826 A CN2010800198826 A CN 2010800198826A CN 201080019882 A CN201080019882 A CN 201080019882A CN 102439468 A CN102439468 A CN 102439468A
Authority
CN
China
Prior art keywords
circuit
signal
state
input
centerdot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010800198826A
Other languages
English (en)
Inventor
Z·顾
K·S·麦克尔文
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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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 Synopsys Inc filed Critical Synopsys Inc
Publication of CN102439468A publication Critical patent/CN102439468A/zh
Pending legal-status Critical Current

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
    • 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
    • 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/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Abstract

在此公开了考虑了时间和/或空间相关性的统计形式活动分析技术。根据一个实施方式,具有反馈环路的时序电路被展开成多个展开电路,其中该时序电路由有限状态机(FSM)表示。经由相关性网络向每个展开电路引入时间相关性,以用于时序电路的活动分析。时间相关性表示信号的当前逻辑状态与信号的之前逻辑状态之间的依赖关系。还描述了其他方法和装置。

Description

考虑了时间和空间相关性的统计形式活动分析
技术领域
本发明总体上涉及自动化电路活动分析。特别地,本发明涉及考虑了时间和/或空间相关性的统计形式活动分析。分析的结果可以用于分析和优化电路设计。
背景技术
对于数字电路(例如,超大规模集成(VLSI)技术的规模)的设计而言,设计者通常采用计算机辅助技术。已经开发了标准语言(诸如硬件描述语言(HDL))来描述数字电路,以帮助设计和模拟复杂的数字电路。若干种硬件描述语言(例如VHDL和Verilog)已经演进为工业标准。VHDL和Verilog是通用硬件描述语言,其允许通过使用抽象数据类型来定义门级、寄存器传输级(RTL)或者行为级的硬件模型。随着器件技术的持续发展,已经开发了各种产品设计工具来使HDL适用于更新的器件和设计风格。
在使用HDL代码设计集成电路时,首先对该代码进行编写,之后由HDL编译器对该代码进行编译。HDL源代码在一定级别上对电路元件进行描述,而编译器则根据该编译产生RTL网表。该RTL网表通常是独立于工艺的网表,因为其独立于特定销售商的集成电路(诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))的工艺/架构。该RTL网表对应于电路元件的图示(与行为表示不同)。然后执行映射操作以从独立于工艺的RTL网表转换成工艺专用网表,该工艺专用网表能够用于创建销售商的工艺/架构中的电路。众所周知,FPGA销售商利用不同的工艺/架构来实现他们的集成电路中的逻辑电路。因此,对独立于工艺的RTL网表进行映射,以创建专用于特定销售商的工艺/架构的网表。在映射过程期间,在PFGA的情况中,逻辑操作以及它们之间的信号的小的集合被映射成门或LUT。在这一级,能够通过使在门或LUT内部被覆盖或映射的信号的活动最大化来使功率最小化,使得活动度更低的信号被布置到逻辑单元之间的线路上。
在芯片上布局部件的期间,所使用的算法通常通过将连接的部件和关键路径单元布置在一起,来尽力优化总布线以及沿着关键路径的延迟。功耗的降低也是布局期间的目标。在该情况中,该目标是使用于快速转换的信号的线路更短。
由于积极地降低工艺尺寸,功率成为下一代纳米级IC(集成电路)设计的瓶颈。对于许多种类的功率估计和优化而言,电路活动分析是缺少的关键输入。在当前的EDA(电子设计自动化)工业中,没有针对活动分析的低成本解决方案,因为对于大的工业级设计而言基于模拟的方法的运行时间相当长,并且很难构建将模仿由电路的真实世界使用所创建的活动的测试台。因此,当今的大部分设计或者在功率分析和优化期间不明确地考虑电路活动,或者对电路的所有信号而言都假设与时钟信号的频率相关的全局计时频率百分比,这与现实相差甚远。
对于集成电路(IC)的功率估计和功率优化两者而言,转换活动分析是缺少的关键要素,因为功耗成为IC设计中的一个瓶颈。
电路转换活动分析的问题定义如下:给定电路的所有输入的状态和转换概率,提供该电路的所有内部信号和输出的状态和转换概率。这里,使用两个定量的参数来指定信号A的活动:1)状态概率P(A)(例如,逻辑1处信号A的概率);以及2)转换概率T(A)(例如,信号A从逻辑1转换到逻辑0或者从逻辑0转换到逻辑1的概率)。
执行转换活动分析的直接方法是模拟轨迹(诸如蒙特卡罗模拟(MCS)),其包括在电路输入处应用随机生成的输入模式以及使用模拟器计算状态和转换概率。MCS的缺点是需要非常长的测试台来覆盖需要长运行时间的大量输入模式序列。随着电路中触发器数量的增加,序列的数量和长度也需要快速地增加,因为状态的数量随着触发器数量的增加而指数增长。因此,大部分的设计者仅是简单地在所有信号上应用全局转换活动率,诸如例如时钟频率的25%。
另一种方法称为无矢量电路活动分析或者基于概率的电路活动分析,其基于信号概率计算。在顺序电路分析中使用的一个基本工具是展开电路的概念,其通过随着时钟周期对电路进行迭代(iterate)而构成。视觉上,你可以考虑彼此层叠的多个电路图副本,其中触发器由线路替换,该线路将下层的触发器的输入连接到上层的触发器的输出连接。输入和线路上的信号值表示第一时钟周期中的电路输入和状态,并且每个相继的层表示相继的时钟周期中的输入和状态。一些人已经提出了展开下一状态逻辑以便对有限状态机(FSM)的两个连续逻辑状态之间的时间相关性(即FSM内的内部时间相关性)进行建模的思想。进一步的改进通过考虑重汇聚路径的空间相关性来实现。然而,这些方法中没有一个方法考虑展开电路的输入信号的时间和空间相关性。简单的空间相关性示例是子电路的从不同时为真的两个输入信号、或许是计数器的计数为0,1,2,0,…但是从未达到3的输出。近来,提出了封闭形式(close-form)的公式来表征具有反馈环路的每个单个触发器的状态概率和转换活动。然而,该方法仅具备在假设无状态使能信号和无相关性输入的情况下对具有一个触发器的状态机的时间-空间相关性进行建模的能力,这是不真实的。
发明内容
这里描述考虑了时间和/或空间相关性的统计形式活动分析技术。该活动分析的结果能够用于从性能和/或功耗的角度分析和优化电路设计。根据本发明的一个方面,设计和利用时间相关性网络来在活动分析期间引入输入信号的时间相关性。在特别的实施方式中,使用布尔表示或等效逻辑电路来表示时间相关性网络。
另外,根据本发明的另一方面,使用有效的编码方案来表示具有其联合概率的一组信号的活动分析信息。该编码方案能够用于对一组信号之间的空间相关性进行建模。空间相关性涉及这样的状况,即一个或一组信号的逻辑状态依赖于其他信号的逻辑状态。
另外,根据本发明的另一方面,通过采用编码方案来表示一组信号的正确联合概率,展开电路(也称为展开中的电路)的深度能够在一些存储器约束中得到控制,并且活动数据能够通过计算浅展开电路的统计数据的多次迭代而非一次计算多个被深度展开的电路的统计来收敛。在一个实施方式中,利用有效的布尔表示或等效逻辑电路来表示彼此之间具有时间、空间或者时间和空间相关依赖性的一组信号。结果,本发明的实施方式能够在联合概率信息的支持下,将非常长的展开电路链(通常是消耗存储器的)变换成短的展开电路的若干迭代。本发明的实施方式能够大大地降低峰值存储器利用率,同时仍然保持相同的精确水平。本发明的实施方式还能够通过迭代地展开电路来改善活动分析的精度,由于峰值存储器约束这是用传统方法不能实现的。
另外,根据本发明的另一方面,对于大的和复杂电路而言,不是在硬件加速的竞争或原型期间捕获所有信号的活动信息,而是将电路划分成多个块。硬件仅捕获一小组关键信号,诸如触发器的活动数据和边界信息。通过使用贯穿本申请描述的统计形式分析方法,能够通过电路来传播捕获到的信息并且能够针对每个信号计算活动数据。与传统方法相比,该技术使得板上模仿器/原型更快并且占用更小的面积。该分析能够重复进行,以达到活动收敛的解决方案。
根据附图以及随后的详细描述,本发明的其它特征将变得显而易见。
附图说明
通过示例的方式示出了本发明,并且本发明不受附图中的图形的限制,其中,类似的标号指代类似的元件。
图1是根据本发明一个实施方式的示出了活动分析过程的示例的流程图。
图2A是根据本发明一个实施方式的示出了用于执行组合电路的活动分析的过程的流程图。
图2B是示出了组合电路示例的框图。
图3是示出了典型门逻辑的示意图。
图4A是根据本发明一个实施方式的示出了用于解决时间相关性的示例性解决方案的框图。
图4B是根据本发明一个实施方式的表示相关性网络的真值表。
图4C是根据本发明一个实施方式的示出了相关性的示例的示意图。
图5是示出了具有反馈环路的时序电路的表示的示意图。
图6是根据本发明一个实施方式的示出了具有相关性网络的展开时序电路的示意图。
图7是根据本发明一个实施方式的示出了相关性网络的示意图。
图8是示出了具有反馈环路的时序电路的另一示例的示意图。
图9是根据一个实施方式的示出了具有相关性网络的展开电路的示意图。
图10是根据本发明一个实施方式的示出了对具有时间相关性的时序电路进行活动分析的过程的流程图。
图11A-11B是根据本发明一些实施方式的示出了具有编码方案的时序电路的框图。
图12是根据本发明一个实施方式的示出了具有时间相关性和空间相关性两者的展开时序电路的框图。
图13是示出了具有被应用于图9所示的电路的编码方案的时序电路的示意图。
图14是根据本发明另一实施方式的示出了用于时序电路的活动分析的过程的流程图。
图15是根据本发明一个实施方式的示出了考虑了时间和空间相关性两者的用于时序电路的活动分析的过程的流程图。
图16A-16B是根据本发明一些实施方式的示出了考虑了时间和空间相关性两者的用于转换概率的解决方案的示例的框图。
图16C是鉴于图13所示的示例性电路的表示使用图16A-16B中所示的技术的用于转换概率的解决方案的示意图。
图17A-17C是根据本发明实施方式的示出了活动分析的示意图。
图18是根据本发明另一实施方式的示出了活动分析的过程的流程图。
图19A是示出了可以与本发明的实施方式一起使用的电路的示例的示意图。
图19B是根据一个实施方式的示出了被划分成多个子块的电路的框图。
图20是根据本发明另一实施方式的示出了用于执行活动分析的过程的流程图。
图21是可以与本发明的一个实施方式一起使用的数字处理系统的框图。
具体实施方式
这里描述了考虑了时间和/或空间相关性的统计形式活动分析技术。在下面的描述中,列出了各种细节来提供对本发明实施方式的透彻解释。然而,对本领域技术人员而言显而易见的是,在没有这些具体细节的情况下也可以实践本发明的实施方式。在其他实例中,众所周知的结构和设备以框图形式而非详细形式示出,以便避免模糊本发明的实施方式。
说明书中提及的“一个实施方式”或“实施方式”意味着结合该实施方式描述的特定特征、结构或特性包括在本发明的至少一个实施方式中。说明书中各个地方出现的短语“在一个实施方式中”并不是必须都参考同一实施方式。
如上所述,仅简单地使用对电路进行展开并不能解决时间相关性的问题,因为其不包括输入信号的时间相关性。时间相关性涉及这样的情况,即一个信号或一组信号的逻辑状态依赖于同一信号或同一组信号的之前逻辑状态。根据本发明的一个方面,设计和利用时间相关性网络来在活动分析期间引入输入信号的时间相关性。在特定的实施方式中,使用布尔表示或等效逻辑电路来表示时间相关性网络。
另外,根据本发明的另一方面,使用有效的编码方案来表示具有其联合概率的一组信号的活动分析信息。该编码方案能够用于在多个信号或一组信号之间引入空间相关性。空间相关性涉及这样的情况,即一个或一组信号的逻辑状态依赖于其他信号的逻辑状态。
另外,根据本发明的另一方面,通过采用用于表示一组信号的正确联合概率的编码方案,能够将展开电路的深度控制在某个存储器约束内,并且活动数据能够使用计算展开电路的多次迭代来进行收敛。在一个实施方式中,利用有效的布尔表示或等效逻辑电路来表示彼此之间具有时间、空间或者时间和空间相关依赖性的一组信号。结果,本发明的实施方式能够在联合概率信息的支持下,将被深度展开的电路(其是非常消耗存储器的)变换成被浅展开的电路的若干组合迭代。本发明的实施方式能够大大地降低峰值存储器利用率,同时仍然保持相同的精确水平。本发明的实施方式还能够通过迭代地计算被浅展开的电路的统计来改善活动分析的精度,由于峰值存储器约束这是用传统方法不能实现的。
另外,根据本发明的另一方面,对于大的和复杂电路而言,不是在硬件加速的竞争或原型期间捕获所有信号的活动信息,而是将电路划分成多个块。硬件仅捕获一小组关键信号,诸如一组触发器的活动数据和边界信息。对于每组信号而言,小存储器连接到通过将该组信号的之前状态(例如,图19A所示的总线“之前状态(PREV STATE)”)与下一状态(例如,图19A所示的总线“下一状态(NEXT STATE)”)相联系形成的地址。每个时钟周期被编址的位置被递增时,都捕获状态概率和状态以指定转换率(例如,图19A所示的框0002)。在该组中的比特数量太大的情况中,能够通过将大量的低概率状态映射到一个代码来压缩指数(例如,图19A所示的框0001)。例如假设250个状态中的12状态是高概率的,则剩余的250-12=238个状态可以被映射到单个代码,从而得到4比特索引而非8比特。通过使用贯穿本申请描述的统计形式分析方法,能够通过电路来传播捕获到的信息并且能够针对每个信号计算活动数据。与传统方法相比,该技术使得板上模仿器/原型更快并且消耗更小的面积。
图1是根据本发明一个实施方式的示出了活动分析过程的示例的流程图。注意,可以由可以包括软件、硬件或两者的组合的处理逻辑来执行过程100。参照图1,在框101,接收网表,其中该网表表示与所设计的IC相关联的电路的至少一部分的单元电路或块。该网表可以是基于用HDL编程语言编写的输入文件从HDL编译器生成的RTL网表。该网表典型地包括单元中的多个网或节点。在框102,处理逻辑遍历该网表,以对该网表的每个网标记逻辑电平(例如,为1或0的逻辑电平)。
在一个实施方式中,该处理逻辑从网表的输入侧开始,并朝向该网表的输出侧“经过(walk through)”每个网。这种“经过”的一个目的是确定随后通过电路传播状态和转换概率的序列顺序。根据一个实施方式,所有的初始输入和触发器都被指定为电平为0,默认的初始状态概率为0.5以及默认的初始转换概率为0.2,或者初始状态概率和初始转换概率为由用户给定的其他值。所有其他的网都被将与它们的扇入(例如,逻辑门的输入数量)相对应的电平分配为最大电平。
在框103,处理逻辑根据指定的逻辑电平对每个组合电路(也称为组合逻辑)执行统计形式分析。在统计形式分析期间,处理逻辑在网表传播所有组合电路的状态和转换概率。在一个实施方式中,这种传播通过穿越诸如BDD(二进制判决图)树之类的数据结构的节点来执行,其中,该数据结构的每个节点表示网表或其他布尔方法的网点(net)。
BDD是用于表示布尔函数的数据结构。布尔函数可以被表示为有根图、定向图、非循环图,其由判决节点和被称为0端子和1端子的两个端节点构成。每个判决节点都由布尔变量标记,并具有两个被称为低子节点和高子节点的子节点。从根节点到1端子的路径表示所表示的布尔函数为真的(可能部分)变量分配。当该路径从某个节点延伸向低子节点(高子节点)时,则那个节点的变量被分配为0(1)。在CAD(计算机辅助设计)软件中广泛地使用BDD对电路进行综合和形式验证。可以通过用2至1多路复用器来替换每个节点来直接实现每个任意BDD;在FPGA(现场可编程门阵列)中可以由4-LUT(查找表)来直接实现每个多路复用器。注意,贯穿该申请,BDD树被用作针对活动分析的传播过程的数据结构的示例。这些实施方式中描述的技术并不局限于基于BDD的功能表示,也可以使用许多其他适当的功能表示,包括PLA、真值表以及反相器图和其他形式。
返回来参考图1,在框104,对网表中的每个时序电路(也称为时序逻辑)执行统计形式活动分析。在该分析期间,更新时序电路的多个触发器或一组触发器的状态和转换概率。在一个实施方式中,对于不具有反馈环路的一个或一组触发器而言,从输入网点向其相应的输出网点复制状态和转换概率。对于具有反馈环路和/或切边(side-cut)支持的一个或一组触发器而言,时序电路被展开预定次数以表示差异。切边支持涉及不是来自反馈环路的信号。下文中,处理逻辑使用BDD树或其他布尔逻辑方法并考虑时间和空间相关性来更新状态和转换概率。框103-104的操作可以反复执行,直到满足预定条件,该预定条件可以是用户可配置的。在一个实施方式中,执行迭代,直到状态和转换概率收敛。当两个连续迭代之间的状态概率小于预定阈值时,状态概率收敛。类似地,当两个连续迭代之间的转换概率位于预定范围内时,转换概率收敛。
如上所述,电路转换活动分析的目的是,给定电路的所有输入的状态和转换概率,以提供该电路的所有内部信号和所有输出的状态和转换概率。活动分析包括针对组合电路的活动分析和针对时序电路的活动分析。
时序电路或逻辑是其输出不仅依赖于当前输入还依赖于该输入的历史的逻辑电路类型。这与组合电路或逻辑相反,组合电路的输出是当前输入并且仅是当前输入的函数。换言之,时序逻辑具有存储器件(例如,存储器)而组合逻辑没有。因此,时序逻辑用于构建一些类型的计算机存储器、其他类型的延迟和存储元件以及有限状态机。大部分的实际计算机电路都是组合逻辑和时序逻辑的混合。时序逻辑中的基本存储元件是触发器(简称为触发器)。
针对组合电路的活动分析
图2A是根据本发明一个实施方式的示出了用于执行组合电路的活动分析的过程的流程图。注意,过程200可以由可以包括软件、硬件或两者的组合的处理逻辑来执行。参照图2A,在框201,从网表中检索表示组合电路的网点,并估计该组合电路的输入。如果该组合电路的输入是相关的(例如,来自时序电路的输出的部分输入由该网表表示),则通过使用下面将更详细描述的展开和编码技术,在框204,估计该组合电路的状态概率,并在框205,估计该组合电路的转换概率。如果该组合电路的输入是不相关的,则在框202,估计该组合电路的状态概率。在一个实施方式中,对于组合电路输出的每个网点,例如通过遍历该网点的BDD表示以及将路径的所有概率与具有逻辑真值的叶节点求和来计算每个门输出的状态概率。这等效于将函数重写为一组不相接乘积项的和、将这些乘积项的概率计算为它们的变量状态的概率的乘积并之后对所有乘积项求和。可以利用广度优先搜索(BFS)算法来在最大数量的变量、最大数量的深度或者命中初始输入的边界的情况下找到切口(cut)。BFS是图搜索算法,其从根节点开始并探索所有的邻近节点。之后对于那些最接近的节点中的每个节点而言,其探索它们的未被探索的邻近节点等等,直到找到目标。
返回来参考图2A,在框203,估计组合电路的转换概率。在一个实施方式中,根据输入的状态和转换概率来计算输出转换概率。这比其看起来要更为复杂,首先是因为下一状态与当前状态相关(例如,它们相互依赖)。在一个实施方式中,为了计算输出转换概率,这种问题被转换成与静态概率问题相类似的问题。根据特定实施方式,函数被定义如下:
G=F(V)^F(V^T)
这里,^表示矢量XOR运算。T为1的比特表示使得转换能够在对应于的V比特上执行。也就是说,当T(i)=1时,V(i)^T(i)=NOT V(i)。当T(i)=0时,V(i)^T(i)=V(i)。因此,F(V^T)表示下一状态。这里,F是信号的逻辑函数;V是一组输入信号;以及G表示在函数F的转换发生时为真的逻辑函数。
类似地,函数G可以被构成为:如果存在从F(V)到F(V^T)的转换,则G=1;否则G将为0。这样,转换概率问题就被转换成状态概率问题。假设概率T(i)==1,则依赖于V(i)的状态,在BDD表示中,T(i)变量可以被放置在紧跟V(i)之后。在状态概率计算中,可以以类似的方式解决P(G==1)的问题。在一个实施方式中,处理逻辑不得不一起计算V/T变量水平并且仅在V水平处以正形式高速缓存。在这种情况中,当针对每个变量遍历BDD表示时,存在4种情况:
0→0:之前为0,保持0
0→1:之前为0,进行转换,上升沿
1→0:之前为1,保持1
1→1:之前为1,进行转换,下降沿
例如,如图2B所示,为了计算概率的目的,可以将与(AND)门逻辑250表示在逻辑260中。这里,与门264是函数F(V)。逻辑261-263表示F(V^T),其中^表示XOR逻辑。对于与门250,存在两个输入A和B。逻辑261的状态概率基于状态概率A及其转换概率T1来确定。逻辑262的状态概率基于状态概率B及其转换概率T2来确定。最终的转换概率G可以基于逻辑263和264的状态概率来确定,如上所述,其由G=F(V)^F(V^T)来表示。
采用时间相关性对时序电路的活动分析
如上所述,时序电路或逻辑是其输出不仅依赖于当前输入而且还依赖于同一输入的历史(例如,相关输入)的逻辑电路类型。典型的时序电路包括将其输出耦合到其输入的反馈环路。时序电路可由具有反馈环路的组合电路来表示。为了对时序电路执行活动分析,必须确定状态概率和转换概率。
注意,触发器自身并不改变逻辑值。而是,触发器仅存储值。这样,为了计算不具有反馈环路的单个触发器的状态概率,输入网点的状态概率可仅被复制到其输出网点。然而,对具有反馈环路的单个触发器的状态概率的计算将是不同的。
注意,等效逻辑门(诸如图3所示的)可以用于表示具有复位信号、置位信号和使能信号的触发器。根据一个实施方式,可以用下面的公式来计算大部分触发器的状态概率:P1=((1.0-p_r)*(p_s+(1.0-p_s)*p_en*p_d))/(1-(1.0-p_s)*(1.0-p_en)*(1.0-p_r))。这里,p_r表示复位引脚的概率;p_s表示置位引脚的概率;以及p_en表示使能引脚的概率。注意,出于说明的目的,P0表示处于逻辑电平0处的信号的状态概率,而P1表示处于逻辑电平1处的信号的状态概率,其中,P1+P0=1。
根据一个实施方式,为了确定时序电路的转换概率,时序电路被展开成串联的多级(例如,多个副本),自此也称为展开电路或逻辑。另外,相关性网络被设计并耦合到每个展开电路,以在每个展开电路的输入上引入时间相关性。
图4A是根据本发明一个实施方式的示出了用于解决时间相关性的示例性解决方案的框图。参照图4A,时序电路被展开成多级(例如,N级或者N深度)401-403。出于说明的目的,在图4A中仅示出了3级。然而,并不局限于此,可以实现更多或更少的级。另外,相关性网络(例如,相关性网络404-405)被附设到每一级上,以向每一级的输入引入时间相关性。在该示例中,相关性网络404被配置为向展开电路402的输入引入时间相关性,而相关性网络405被配置为向展开电路403的输入引入时间相关性等。
根据一个实施方式,参照图4A,假设F0=G(S0,S1,…Sj,O0,O1,…Ok)是具有反馈环路的组合电路的函数。S=(S0,S1,…Sj)是侧支持集。O=(O0,O1,…Ok)是反馈网点。Fi=G(C(S0),C(S1),…C(Sj),Fi-1)是具有“i”深度的展开电路的函数。函数C(S0)模仿时域中输入信号S0的相关性(例如,时间相关性)。在一个实施方式中,C的基本函数是多路复用器(MUX)的BDD表示:BddMux(tr,tf,S0),其中,tr和tf是来自信号S0的统计数据的信号,即tr的状态概率是信号S0的上升转换概率,而tf的状态概率是信号S0的下降转换概率。
注意,出于说明的目的,根据一个实施方式,转换速率T表示在两个连续时钟周期之间,从逻辑0转换到逻辑1或者从逻辑1转换到逻辑0的信号转换的概率。tr表示上升转换的概率,其中tr=T/2P0。tf表示下降转换的概率,其中tf=T/P1。上升转换的数量等于下降转换的数量:P0*tr=P1*tf=T/2。转换速率T应当小于或等于P0或P1的最小值的2倍:2*Min(P0,P1)。
根据一个实施方式,上述每个信号的相关性网络可以由诸如图4B所示的真值表来表示。参照图4B,真值表表示为初始输入A0引入时间相关性的关键部件。这里,A0表示时间帧0处的信号A,而A1表示时间帧1处的信号A。tf表示信号A的下降转换活动(例如,从逻辑电平1到0)。tr表示信号A的上升转换活动(例如,从逻辑电平0到1)。真值表描述了A0与A1之间的时间相关性逻辑。如从图4C的真值表看到的那样,当当前状态处于逻辑电平零(例如,低逻辑电平)时,上升转换活动会将当前状态转换到下一状态的逻辑电平1。然而,下降转换活动将不会在下一时间帧中改变当前状态,因为当前状态已经处于逻辑电平零,因此事实上,下降转换活动在这种情况中是被忽略的。类似地,当当前状态处于逻辑电平1(例如,高逻辑电平),则下降转换活动会将当前状态转换到下一状态的逻辑电平零。然而,上升转换活动将不会在下一时间帧中改变逻辑电平,因为当前状态已经处于逻辑电平1,因此事实上,上升转换活动在这种情况中是被忽略的。
我们给出了下面的证据来证明被引入的相关性逻辑将不会改变每个时间帧中信号的统计属性,而是将时间相关性添加到同一信号的每两个连续时间帧之间。为了验证状态概率,我们能够从真值表中找到有四种可能的组合将允许信号A1成为逻辑1。这四种组合可以被写成两个乘积项。因此,A1成为逻辑1的概率是下面公式所列的两个乘积项的不相接概率(disjointprobability)的和:
P ( A 1 ) = P ( Atr ) * P ( A 0 ) ‾ + P ( Atf ) ‾ * P ( A 0 ) = τ ( A 0 ) 2 + ( 1 - P ( Atf ) ) * P ( A 0 ) = τ ( A 0 ) 2 +
P ( A 0 ) - τ ( A 0 ) 2 = P ( A 0 )
这里,我们证明A0与A1的状态概率是相同的。
为了验证转换概率,与证明状态概率相类似,我们可以使A1的转换概率作为两个不相接乘积项的概率的和:
τ ( A 1 ) - P ( Atr ) * P ( A 0 ) ‾ + P ( Atf ) * P ( A 0 ) - τ ( A 1 ) 2 + τ ( A 0 ) 2 - τ ( A 0 )
这里,我们证明A0与A1的转换概率是相同的。
根据上面的证明,能够确定信号A1具有与信号A0相同的状态概率和转换概率,即信号A1和A0表示彼此之间具有时间相关性但处于不同时间帧中的同一信号。该结论可以被进一步归纳为P(Ai)=P(Aj),即任何两个之间帧的状态概率将是相同的。图4C是示出了基于图4B中的真值表的时间相关性网络的可能逻辑图中的一个。
图5是示出了具有反馈环路的时序电路的表示的示意图。在该示例中,电路500包括MUX和触发器。当信号en为真时,触发器将它的输出q加载为输入d的值;否则,输出q将不改变。这样,就存在着时间相关性。根据一个实施方式,为了确定电路500的转换概率,电路500被展开多次。
图6是根据本发明一个实施方式的示出了具有相关性网络的展开时序电路的示意图。参照图6,在该示例中,图5的电路500被展开3次以在时间帧0、1和2中表示时序电路。每个展开电路包括时序电路(电路500中的MUX)中的所有组合部件。这3个展开电路串联耦合,其中,当前展开电路的输出耦合到下一展开电路的输入。展开电路(也称为展开网络)可由BDD树或其他等效逻辑数据结构来表示。另外,相关性网络被附设到展开电路的每个输入,以在两个连续的展开电路之间引入相当输入的时间相关性。在该示例中,相关性网络604被附设到展开电路中,以在信号“en”的不同时间帧(例如,en0、en1和en2表示时间帧0、1和2中的信号“en”)之间引入时间相关性。类似地,相关性网络605被附设到展开电路中,以向不同时间帧处的初始输入信号“d”(例如,d0、d1和d2表示时间帧0、1和2中的信号“d”)引入时间相关性。
图7是根据本发明一个实施方式的示出了任何相关信号的相关性网络的示意图。例如,相关性网络700可由被实现为图6的相关性网络604和/或605的部分。在该示例中,出于说明的目的,相关性网络700包括3个子网络,各个子网络用于图6的每个展开电路。每个子网络包括MUX、XOR门和两个被引入的输入变量,这两个被引入的输入变量的统计用于控制转换速率。MUX的输入表示上升转换tr和下降转换tf。MUX的输出耦合到XOR门的输入。初始输入(例如,in0、in1和in2)耦合到MUX的使能引脚和XOR门的另一输入。相关性网络的目的是在给定当前展开电路的初始输入的当前状态和开关转换(例如,tr和tf)的情况下,预测初始输入的下一状态,其用于将时间相关性引入下一展开电路的输入。
根据一个实施方式,相关性网络可以由图4B所示的真值表来支持。例如,当相关性网络700被实现为图6的相关性网络605的一部分时,信号in0表示图6的输入d0;信号in1表示图6的输入d1;以及信号in2表示图6的输入d2。出于说明的目的,给定初始输入in0(例如,图6的输入d或d0),d1基于信号in0的上升转换tr和下降转换tf来确定。
该确定可以基于由图4B所示的真值表表示的逻辑来执行。例如,参照图4B和图7,如果输入in0的当前状态(例如,图4B中的A的当前状态)处于逻辑电平0而上升转换活动tr和下降转换活动tf都为0,则基于图4B的真值表,信号in0的下一状态(例如,in1)为0。类似地,如果输入in0的当前状态(例如,图4B中的A的当前状态)处于逻辑电平1而上升转换活动tr和下降转换活动tf都为1,则基于图4B的真值表,信号in0的下一状态(例如,in1)为0。结果,返回参照图6,输入d1依赖于d0以及d0的转换活动。这样,就在考虑时间相关性的情况下确定了输入d1。
返回参照图7,通过采用图7所示的相关性网络,我们能够确定信号in0、in1、tr和tf的状态概率,基于图4B中的真值表,它们具有下面的关系:
P ( tr ) = T ( in 0 ) 2 P ( in 0 ) ‾ P ( tf ) = T ( in 0 ) 2 P ( in 0 )
P ( in 1 ) = P ( tr ) * P ( in 0 ) ‾ + P ( tf ) ‾ * P ( in 0 ) = T ( in 0 ) 2 + ( 1 - P ( tf ) ) * P ( in 0 ) = P ( in 0 )
T ( in 1 ) = P ( tr ) * P ( in 0 ) ‾ + P ( tf ) * P ( in 0 ) = T ( in 0 ) 2 + T ( in 0 ) 2 = T ( in 0 )
基于上面的计算,能够确定信号in0和in1具有相同的状态和转换概率。类似地,能够证明信号in1和in2具有相同的状态和转换概率。因此,该相关性网络允许在展开电路中建模时间相关性。
图8是示出了具有反馈环路的时序电路的另一示例的示意图。在该示例中,时序电路800包括NOR门和两个触发器。通过使用上面描述的技术,能够通过移除图9所示的触发器来将电路800展成多个时间帧。在该示例中,参照图9,电路800被展开3次,其中每个展开电路包括NOR门和两个与门。另外,附设了3个相关性网络以向每个展开电路的输入中引入时间相关性。
图10是根据本发明一个实施方式的示出了对具有时间相关性的时序电路进行活动分析的过程的流程图。注意,过程1000可以由可以包括软件、硬件或两者的组合的处理逻辑来执行。参照图10,在框1001,给定具有要被分析的反馈环路的目标电路,相关性网络被创建,其中时间相关性网络建模了针对电路的输入的时间相关性影响。相关性网络被配置为在考虑了当前展开电路的输入的上升和下降活动时给定所述输入的当前状态/当前时间帧的情况下,确定该输入的下一状态/下一时间帧。在考虑了当前展开电路的时间相关性的情况下,所确定的下一状态被应用为下一展开电路的输入。在一个实施方式中相关性网络由类似于图4B所示的真值表表示。在框1002,目标电路被展开成多个等效逻辑电路(例如,展开电路)。在框1003,时间相关性网络与每个等效逻辑电路相关联。在框1004,使用用于向相应的展开电路的输入中引入时间相关性的关联的相关性网络,对每个展开电路执行活动分析。也可以执行其它操作。
采用空间相关性对时序电路的活动分析
根据一个实施方式,除了考虑时间相关性,在时序电路的活动分析期间也考虑输入的空间相关性。在不考虑空间相关性的情况下,时序电路的活动分析将是不完整的。
例如,给定具有3个状态(s0:00,s1:01以及s2:10)的2比特FSM,如图8所示,FSM被配置为对0、1、2进行计数并之后再次开始(例如,计数器)。每个比特的状态概率P(bi)以及每个状态P(si)为1/3。然而,能够从P(bi)推导出P(si)。在给定示例中,P(b0)=P(b1)=1/3以及P(s0)=P(s1)=P(s2)=1/3。这样,P(s0)=(1-1/3)*(1-1/3)=4/9以及P(s1)=P(s2)=1/3*(1-1/3)=2/9。如可以看出的那样,所有有效状态的概率(例如,P(s0)、P(s1)、P(s2))的和是8/9,其是不完整的,也称为不完整的状态集。如从上面能够看出的,11的状态是从未被2比特FSM达到的无效状态(例如,不可达状态)。不完整描述并不能表示每个信号之间的空间相关性,即基于每个单独状态比特的状态概率的信息的每个状态的联合概率(例如,所有有效状态概率的和不能等于1)。
根据一个实施方式,编码方案被设计成通过消除FSM中的无效状态(也称为不可达状态)来将不完整状态集映射到完整状态集。在一个实施方式中,鉴于上面的FSM示例,编码方案的示例可由下面的映射表表示。
Figure BDA0000105657420000181
如上面的表格所示,在重新编码方案中,FSM状态概率P(si)是比特的联合概率。在该示例中,旧状态编码11是我们尽力在新状态编码中消除的无效状态。鉴于上面的表格,我们将01和11都映射到X1作为状态S0,这里X意味着不在乎比特。
图11A是根据一个实施方式的示出了具有编码方案的时序电路的框图。参照图11A,系统1100包括可以或者可以不被展开的时序电路1101以及具有相关性网络1102的侧网(sidewet)。假设该时序电路是如图8所示的2比特FSM,则电路1101将被展开成3级。因此,侧网1102包括用于在每一级的输入中引入时间相关性的时间相关性网络。另外,利用编码方案来整体向时序电路的输入中引入空间相关性。在一个实施方式中,当对于给定的具体设计而言并不是所有的状态都是可达到的时,编码方案包括耦合到时序电路1101的输入以将所有可能的状态映射到所述输入的可达状态集的编码器1103。这实际上想消除了无效状态。
根据一个实施方式,编码方案还包括耦合到时序电路1101的输出的可选解码器1104。解码器1104的输出反馈到解码器1103的输入。编码器1103被配置为经状态P(e)映射到P(s),而解码器1104被配置为在将状态P(s)返回编码器以用于迭代之前将状态P(s)映射回P(e)。注意,为了向电路中引入空间相关性,仅需要编码电路,例如如图11B中所示。仅在需要对展开进行重复时才需要解码电路,该展开需要将展开电路的输出反馈回输入。通过在从解码电路初始化时采用反馈环路,能够将电路展开成更少的级数并且展开过程可以用更少的存储器带宽来迭代。
根据一个实施方式,对于具有m个状态的n比特FSM,可以利用(m-1)比特的编码方案来映射FSM的初始状态。结果,通过考虑到一些状态是无效的,我们可以获得每个比特的正确概率。特别地,上面的映射表能够用于迭代地获得每个编码比特P(ei)的状态概率。根据一个实施方式,能够根据下面的公式获得P(ei):
P ( e i ) = P ( S i ) Π j = 0 i = 1 P ( e ‾ j )
图12是根据本发明一个实施方式的示出了具有时间相关性和空间相关性两者的展开时序电路的框图。在该示例中,参照图12,上面描述的编码方案被应用于图4A所示的时序电路。在该实施方式中,编码方案包括编码电路和解码电路。解码电路是编码电路的逆电路。解码电路的输出与编码电路的输入相匹配。根据一个实施方式,编码方案使得能够表示一组信号的联合概率。结果,编码方案通过对浅展开电路进行计算,改善了存储器效率和活动分析精度。
根据一个实施方式,编码方案能够基于下面的理论进行设计。假设FSM具有可达到的状态(S)和m比特的编码输入(E),则找到编码方案A进行配置,从而误差界(Err)被最小化并且所有的编码输入都彼此独立(即,所有2m个组合都被映射到可达状态中的一个状态)。
根据一个实施方式,E可以定义如下:
E=[e0…em-1]T
其中每个ei都表示编码输入比特。另外,S可以定义如下:
S=[s0…sn-1]T
其中每个Si表示可达状态。进一步地,A可以定义如下:
Figure BDA0000105657420000202
其中aij可以是0、1或者d(不关心)。因此,我们定义E和S之间的关系如下:
Figure BDA0000105657420000203
基于上面的公式,可以获得如下的公式:
P ′ ( S i ) = Σ j = 0 m - 1 a ij P ( e j )
这里,P(ej)是输入比特ej的状态概率,而P’(Si)表示计算到的状态概率。
由于我们能够根据FSM分析为每个可达状态确定精确的状态概率,所以我们能够在使用下面的特定编码方案时从可达状态的状态概率的角度来确定下面的公式以测量误差:
Err = Σ i = 0 n - 1 ( P ( s i ) - P ′ ( s i ) ) 2 = Σ i = 0 n - 1 ( P ( s i ) - Σ j = 0 m - 1 a ij P ( e j ) ) 2
另外,所有可达状态的状态概率之和等于1总是对的:
Σ i = 0 n - 1 P ( s i ) = 1
根据一个实施方式,其中一个编码方案是将矩阵A设置如下:
A = 1 0 · · · · · · 0 0 0 d 1 · · · · · · 0 0 0 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · d d · · · · · · 1 0 0 d d · · · · · · d 1 0 d d · · · · · · · · · d 1
基于上述公式,能够确定:
P ( e i ) = P ( s i ) Π j = 0 i - 1 P ( e j ‾ )
在该情况中,m=n-1以及Err=0。更多的细节可以在3.2.1和3.2.2节中找到。
根据另一实施方式,能够定义一般的紧凑编码方案。初始,以状态概率的降序顺序对所有可达状态进行分类。最初的x个状态被指定为与上面描述的编码方案系统。结果,我们可以得到:
P ( e i ) = P ( s i ) Π j = 0 i - 1 P ( e j ‾ ) , where i = 0,1 . . . x
剩余的(n-x)个状态通过使用紧凑编码来指定,其中矩阵A可以表示如下:
A = A 00 A 01 A 10 A 11
A 00 = d d · · · · · · d d d · · · · · · d · · · · · · · · · · · · · · · d d · · · · · · d d d · · · · · · d A 01 = · · · · · · · · · d 1 · · · · · · · · · 1 0 · · · · · · · · · · · · · · · d 0 · · · 0 0 1 0 · · · 0 0
A 10 - 1 1 · · · 1 1 0 1 · · · 1 1 · · · · · · · · · · · · · · · 1 0 · · · 0 0 0 0 · · · 0 0 A 11 - 0 0 · · · · · · 0 0 0 · · · · · · 0 · · · · · · · · · · · · · · · 0 0 · · · · · · 0 0 0 · · · · · · 0
公式A*E=S可以被进一步划分成下面的两个公式:
A 01 * P ( s 0 · · · s x - 1 ) = P ( s 1 · · · s x - 1 ) , A 10 * P ( s x · · · s m - 1 ) = P ( s x · · · s m - 1 ) / Π i = 0 x - 1 P ( s i )
第一个公式可以使用与第一编码方案相同的方法来求解。第二个公式可以使用标准矩阵求解程序来求解。
注意,编码方案和时间相关性网络独立地工作。它们或许并不需要彼此,虽然它们联合起来可以工作的更好。图13是示出了具有被应用于图9所示的电路的编码方案的时序电路的示意图。
图14是根据本发明另一实施方式的示出了用于时序电路的活动分析的过程的流程图。注意,过程1400可以由处理逻辑来执行,该处理逻辑可以包括软件、硬件或两者的组合。参照图14,在框1401,为目标电路(例如,时序电路)创建表示一组信号的空间相关性的编码方案。在框1402,目标电路被展开成多个展开电路。在框1403,编码方案逻辑与展开的目标电路相关联。在框1404,使用用于向展开目标电路的输入引入空间相关性的编码方案来对展开目标电路执行活动分析。
如上所述,相关性网络和编码方案可以单独且独立地实施。相关性网络并不依赖于编码方案,反之亦然。可替换地,相关性网络和编码方案还可以一起工作,以向对时序电路进行活动分析期间提供时间相关性和空间相关性信息。
图15是根据本发明一个实施方式的示出了考虑了时间和空间相关性两者的用于时序电路的活动分析的过程的流程图。注意,过程1500可以由处理逻辑来执行,该处理逻辑可以包括软件、硬件或两者的组合。在该实施方式中,使用如上所述的相关性网络和编码方案来基本上同时引入时间和空间相关性。参照图15,在框1501,时间相关性网络被创建,以对被应用于具有反馈环路的时序电路的输入的时间相关性进行建模。在框1502,创建表示一组信号的空间相关性的编码方案。在框1503,具有反馈环路的时序电路被展开成多个等效逻辑电路。在框1504,时间相关性网络与每个等效逻辑电路相关联。在框1505,编码方案逻辑与展开的时序电路相关联。在框1506,鉴于时间相关性和空间相关性,通过使用关联的时间相关性网络和编码方案来对展开的时序电路执行活动分析。也可以执行其它操作。
如上所述,触发器并不改变值;相反地,其存储值。这样,为了计算不具有反馈环路的单个触发器/或一组触发器的转换概率,根据一个实施方式,仅需要从输入网点向输出网点复制转换概率。为了计算具有反馈环路的单个触发器/或一组触发器的转换概率,根据一个实施方式,相应的组合电路被展开成多级,并且相关性网络被附设到每一级以引入时间相关性,以及在给定上面描述的编码方案的情况下,根据一个实施方式,能够确定FSM中每个寄存器(例如,诸如触发器之类的存储元件)的输出的收敛的状态概率以及美国编码比特P(ei)的收敛的状态概率。由于每个编码比特ei独立于任何其他编码比特,所以展开电路的每个输出的转换概率等于时序电路的两个连续时间帧的XOR表示的状态概率,其可以通过将时序电路展开来获得。换言之,一旦已经确定(例如,收敛)了状态概率,则可以使用下一状态函数来确定相应的转换概率。假设XOR是异或的表示:XOR(Fi,Fi-1)。这样,XOR的输出的状态概率等于F0的转换概率,如图16所示,这将在下面进一步详细描述。
图16A是根据本发明一个实施方式的示出了考虑了时间和空间相关性的用于转换概率的解决方案的示例的框图。参照图16A,除了图12所示的部件,下一状态函数被引入耦合两个展开电路的网点。在该示例中,下一状态函数1501-1503被耦合到对两个连续展开电路(诸如展开电路401-404)耦合的节点。下一状态函数F被配置为提供展开电路的下一状态的状态概率。另外,鉴于来自两个连续时间帧(例如,两个展开电路)的两个状态概率,可以利用XOR门来提供转换概率(例如,t1/t2)。这样,下一状态函数F和XOR门用于获得节点的转换概率。另外,编码电路1103和解码电路1104能够用于在低存储器消耗的情况下再次开始展开过程。再次请注意,仅在需要将展开的时序电路的输出反馈回展开的时序电路的输入时才需要解码电路;否则,解码电路并不需要,如图16B中所示的示例。图16C是鉴于图13所示的示例性电路的表示使用图16A-16B中所示的技术的用于转换概率的解决方案的示意图。在该示例中,下一状态函数基本上与展开电路相同。
图17A-17C是根据本发明实施方式的示出了活动分析的示意图。图17A-17C所示的电路作为包括组合和时序电路的通用网表的示例,其中可以根据图2所示的过程流来执行活动分析。这里,参照图17A-17C,假设信号AB C D具有默认的状态概率0.5和默认的转换概率0.2。参照图2和17A,初始,在框201,标记每个信号的逻辑电平。在该示例中,
·电平0->(A B C D q1 q0)
·电平1->(E F d0)
·电平2->(G)
·电平3->(H)
之后,以信号电平的升序来计算每个信号的状态概率和转换概率。在该示例中:E-F-d0-G-H。如果所有的输入都彼此独立,则执行框202的操作。这里,我们采用信号E作为示例。信号E具有逻辑函数E=A AND B。这里,信号E的状态概率意味着信号E的概率为逻辑1。计算概率的方式是将使信号E为逻辑1的所有不相接乘积项求和。基于E的逻辑函数,我们能够得到仅当输入A和B都为逻辑1时信号E才将为逻辑1。对于转换概率(框203),我们能够使用下面的公式,以便转换概率的计算被转换成状态概率的计算。我们定义函数G=F(V)XOR F(V XOR T)。V是输入的矢量,以及T是使能矢量。这里,F(V)表示逻辑函数;F(V XOR T)表示具有所有可能转换的下一状态的逻辑函数。当F(V)=0和F(V XOR T)=1或者F(V)=1和F(V XOR T)=0时,函数G为1,即G的状态概率是F的转换概率。
如果一些输入是相关信号,则执行框204的操作。这里,我们采用信号H作为示例。信号H具有逻辑函数H=G AND q0 AND q1。由于q0和q1是来自有反馈环路的FSM的信号,所以q0和q1是相关信号。为了在信号H的状态概率计算中包括空间相关性,我们需要添加与图17B所示的编码方案相同的编码方案。对于转换概率,我们使用编码方案+2级展开电路,以包括来自信号q0和q1的时间和空间相关性。我们还将时间相关性添加到另一组合信号G中。因此,如图17C所示,我们能够计算信号H的转换概率(框205),基本上是将之前的状态与时间帧中的当前状态相异或,从而信号H的转换概率被转换成状态概率。下文中,对于每个FSM,使用上面阐述的技术来计算每个时序信号的状态概率和转换概率,在该示例中,即q0、q1。上面的过程可以迭代地执行。
对电路进行折叠以实现精度与存储器之间的更好的折中方法
如从上面可以看到的,时序电路被展开的越深,结果将越精确。然而,时序电路被展开的越深,存储器消耗就将越大。传统的方法是以单级展开时序电路,这通常是或者结果不精确或者具有大的存储器需求。
根据本发明的一个方面,通过采用用于表示一组信号的正确联合概率的编码方案,能够将展开电路的深度(例如,展开级数)控制在某个存储器约束内,并且活动数据能够使用计算展开电路的统计的多次迭代来进行收敛。结果,编码方案能够在联合概率信息的支持下,将非常长的展开电路链(通常是消耗存储器的)变换成对浅的展开电路链进行计算的若干迭代。编码方案能够大大地降低峰值存储器使用,同时仍然保持相同或者类似的精度水平。其还能够通过迭代地计算与浅展开电路相关的统计来改善活动分析的精度,由于存储器约束这是用传统方法不能实现的。
图18是根据本发明另一实施方式的示出了活动分析的过程的流程图。注意,过程1800可以由可以包括软件、硬件或两者的组合的处理逻辑来执行。参照图18,在框1801,将具有反馈环路的时序电路展开成链中的预定数量的展开电路。在框1802,作为引入空间相关性的一部分,使用被附设到该链中的第一展开电路的输入的编码电路来将所有可能的输入状态映射到仅有效状态,从而消除任何无效状态。在框1803,如果存在着任何切边输入,则可选地附设到每个展开电路的时间相关性网络将时间相关性引入相应展开电路的输入。在框1804,鉴于由相关性网络和编码方案引入的时间和空间相关性,对该电路执行活动分析。在框1805处捕获活动分析的结果。如果结果得到满足,则过程1800将结束。如果结果没有得到满足,则在框1806,使用附设到该链的最后展开电路的输出的解码电路收集该输出的联合概率并将该输出重新映射到编码电路的输入,并且此后,过程1800可以再次重新开始。也可以执行其它操作。
组合的硬件/软件共活动分析
典型地,对电路执行活动分析,以在硬件加速竞争器/原型期间捕获所有信号的活动概况。当电路变得越大和更复杂时,要被捕获的信号量也变得指数更大,并且有时其不再切合实际。
根据本发明的一个实施方式,对于大的和复杂电路而言,不是在硬件加速的竞争或原型期间捕获所有信号的活动信息,而是将该电路划分成多个块。硬件仅捕获一小组关键信号,诸如一组触发器的活动数据和边界信息。例如,如图19A所示,对于每一组信号,小存储器连接到通过将该组信号的之前状态(图19A中称为总线“之前状态”)与下一状态(图19A中称为总线“下一状态”)相联系形成的地址。每个时钟周期被编址的位置被递增时,都捕获状态概率和状态以指定转换率(参照图19A中的框0002)。在该组中的比特数量太大的情况中,能够通过将大量的低概率状态映射到一个代码来压缩指数(参照图19A中的框0001)。例如假设250个状态中的12状态是高概率的,则剩余的250-12=238个状态可以被映射到单个代码,从而得到4比特索引而非8比特。通过使用贯穿本申请描述的统计形式分析方法,能够通过电路来传播捕获到的信息,并且能够针对每个信号计算活动数据。与传统方法相比,该技术使得板上模仿器/原型更快并且消耗更小的面积。
根据一个实施方式,电路被划分成多个子块,并且硬件仅捕获与初始输入流和子块之间的信号(也称为边界信号或块间信号)相关的活动信息。对于每个子块,使用上面阐述的一些或所有技术来执行形式活动分析。结果,能够改善模拟器、竞争器或者其他硬件原型的速度,并且能够降低计算晶体管的开销。
例如,如图19B所示,电路块1900被划分成子块1901-1904。电路1900可以在具有最小连接(例如,最小块间连接)的边界处被划分。硬件被配置为仅捕获初始输入信号1905以及子块1901-1904之间的信号1906-1910(例如,块间信号)。在每个子块1901-1904内,使用上面阐述的技术来执行形式分析。例如,对于子块1901,信号1905和1906可以被用作用于子块1901的形式活动分析的初始输入信号。结果,硬件不必捕获针对块1901内的每个信号的活动概况,从而硬件可以不是很复杂。
图20是根据本发明另一实施方式的示出了用于执行活动分析的过程的流程图。注意,过程2000可以由可以包括软件、硬件或两者的组合的处理逻辑来执行。参照图20,在块2001,电路被划分成多个子块。例如,电路可以在子块之间具有最小切口的边界处被划分。在框2002,诸如竞争器/原型设备之类的硬件被配置为捕获子块之间的一些关键信号,而不必捕获每个子块的所有内部信号。该关键信号可以是与触发器的活动数据和/或边界信息相关的信号。对于每个子块,在框2003,处理逻辑在考虑时间和/或空间相关性的情况下基于捕获到的信息来执行形式活动分析。在一个实施方式中,使用用于如上所述那样引入时间和/或空间相关性的相关性网络和/或编码方案来执行形式活动分析。这种过程可以重复执行,直到所有子块都已经被处理。也可以执行其它操作。
数据处理系统的示例
图21是可以与本发明的一个实施方式一起使用的数字处理系统的框图。例如,图21所示的系统2100可以用于使用上面描述的技术来执行形式活动分析。
注意,虽然图21示出了计算机系统的各种部件,但是其并不意欲表示将这些部件进行互连的任何特定结构或方式,因为这些细节与本发明不相关。还应当意识到,网络计算机、手持计算机、蜂窝电话以及具有更少部件或可能更多部件的其他数据处理系统也可以与本发明一起使用。图21的计算机系统可以例如是苹果Macintosh计算机或者IBM可兼容PC。
如图21所示,数据处理系统形式的计算机系统2100包括耦合到微处理器2103和ROM 2107、易失性RAM 2105以及非易失性存储器2106的总线2102。可以是例如摩托罗拉公司或IBM的PowerPC G4或PowerPC G5微处理器的微处理器2103耦合到高速缓存存储器2104,如图21所示。总线2102将这些各种部件互连在一起,并且还将这些部件2103、2107、2105和2106互连到显示控制器和显示设备2108以及输入/输出(I/O)设备,其可以是鼠标、键盘、调制解调器、网络接口、打印机以及本领域公知的其他设备。
典型地,输入/输出设备2110通过输入/输出控制器2109耦合到该系统。易失性RAM 2105通常被实施为动态RAM(DRAM),其需要持续的供电来刷新或保持存储器中的数据。非易失性存储器2106典型地是即使从该系统移除电源之后仍然能够保持数据的磁盘驱动器、磁光驱动器、光驱或DVDRAM或其他类型的存储器系统。典型地,非易失性存储器也可以是随机存取存储器,虽然这并不需要。
虽然图21显示非易失性存储器是直接耦合到数据处理系统中的其余部件的本地设备,但是本发明可以使用远离该系统的非易失性存储器,诸如通过诸如调制解调器或以太网接口之类的网络接口耦合到该数据处理系统的网络存储设备。总线2102可以包括通过本领域公知的各种桥接器、控制器和/或适配器彼此连接的一个或多个总线。在一个实施方式中,I/O控制器2109包括用于控制USB外围设备的USB(通用串行总线)适配器。可替换地,I/O控制器2109可以包括也称为火线(FireWire)适配器的IEEE-1394适配器,用于控制火线(FireWire)设备。
这样,这里描述了考虑了时间和/或空间相关性的统计形式活动分析技术。前面详细描述的一些部分已经被呈现为对计算机存储器内的数据比特进行操作的算法和符号表示形式。这些算法描述和表示是数据处理领域中的技术人员用来把他们工作的实质最有效地传达给本领域其他技术人员的方式。这里的算法一般被构思为导致期望结果的自一致性操作序列。这些操作要求物理量的物理操作。虽然不是必须的,但是这些量通常采用能被存储、转移、结合、比较以及其他方式操作的电或磁信号的形式。主要是出于通用的原因,将这些信号称作比特、值、元素、符号、字符、项、数字等有时被证明是方便的。
然而,应当牢记,所有这些以及类似术语是与适当的物理量相关联的,并且仅仅是应用到这些量的方便的标记。除非以其它方式特别指出,否则从上面的讨论中显而易见的是,应当意识到,在整个说明书中,使用诸如“处理”或“计算”或“算出”或“确定”或“显示”等术语的讨论指的是计算机系统或类似的电子计算设备的动作和处理,所述计算机系统或类似的电子计算设备将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据处理和转换为类似地被表示为计算机系统的存储器或寄存器或其它信息存储、传输或显示设备内的物理量的其它数据。
本发明的实施方式还涉及用于执行本文的操作的装置。该装置可以被专门构建用于所需目的,或者可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可以存储在计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读形式存储或传送信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备等)、机器(例如,计算机)可读传输介质(电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等))等。
这里呈现的算法和显示并非固有地与任何特定的计算机或其它装置相关。根据本文的教导,各种通用系统可以与程序一起使用,或者构造用于执行所需方法操作的更专用的装置被证明是方便的。根据上面的描述,能够看到用于这些多种系统的所需结构。另外,本发明的实施方式不是参考任何特定的编程语言来描述的。应当意识到,各种编程语言可以用于实施本文描述的本发明的实施方式的教导。
在前面的描述中,已经参考本发明的具体示例性实施方式描述了本发明的实施方式。显然,可以在不背离所附权利要求书中阐述的本发明的更宽的精神和范围的情况下,对本发明做出各种修改。因此,应当认为,本说明书和附图是说明性的而非限制性的。

Claims (37)

1.一种用于电路分析的机器实施的方法,该方法包括:
将时序电路展开成多个展开电路;以及
经由相关性网络在每个所述展开电路的输入信号之间引入时间相关性以用于所述时序电路的活动分析,所述时间相关性表示信号的当前逻辑状态与该信号的之前逻辑状态之间的依赖关系。
2.根据权利要求1所述的方法,该方法还包括:考虑由所述相关性网络引入的所述时间相关性来执行所述活动分析,包括考虑所述时间相关性来通过表示所述时序电路的有限状态机(FSM)传播活动数据以确定所述时序电路的内部信号和输出信号的状态概率和转换概率。
3.根据权利要求1所述的方法,其中,所述相关性网络被配置为基于所述信号的当前逻辑状态和展开电路的信号的转换活动来确定所述展开电路的信号的下一逻辑状态。
4.根据权利要求1所述的方法,该方法还包括:
对于每个展开电路,考虑输入的状态概率和所述输入的转换活动的转换概率来计算输出的状态概率;以及
考虑所述输入的状态概率和所述输入的转换活动的转换概率来计算所述输出的转换概率,其中所述输入的所述转换活动的转换概率由所述相关性网络引入。
5.根据权利要求1所述的方法,其中,用于输入的相关性网络被配置为生成将被连接到下一展开电路的相应输入的信号,并且其中所述信号的值基于当前展开电路中的输入信号的状态、所述输入信号的下降转换速率以及所述输入信号的上升转换速率。
6.根据权利要求5所述的方法,其中,所述相关性网络包括具有多个项的真值表,其中在给定信号的当前状态、所述信号的下降转换活动以及所述信号的上升转换活动的情况下,每一项提供了所述信号的可能下一状态的概率。
7.根据权利要求1所述的方法,该方法还包括:使用编码电路向展开的时序电路的输入引入空间相关性,所述空间相关性表示所述输入与一个或多个其他信号之间的依赖关系,其中,考虑所述时间相关性和所述空间相关性来执行所述活动分析。
8.根据权利要求7所述的方法,其中,所述编码电路被配置为传播多个信号的联合概率信息以向展开的时序电路的输入引入所述空间相关性。
9.根据权利要求8所述的方法,其中,所述编码电路被配置为将所有可能的状态都映射到所述FSM的可达状态中的至少一个状态。
10.根据权利要求8所述的方法,该方法还包括:使用解码电路从展开的时序电路的输出收集所述联合概率信息,所述解码电路经由反馈环路向所述编码电路提供收集到的联合概率信息。
11.根据权利要求10所述的方法,该方法还包括:使用所述编码电路和所述解码电路经由所述反馈环路迭代地对展开的时序电路执行所述活动分析。
12.一种存储机器可执行指令的机器可读存储介质,其中当所述机器可执行指令由机器执行时使所述机器执行用于电路分析的方法,该方法包括:
将时序电路展开成多个展开电路;以及
经由相关性网络在每个所述展开电路的输入信号之间引入时间相关性以用于所述时序电路的活动分析,所述时间相关性表示信号的当前逻辑状态与该信号的之前逻辑状态之间的依赖关系。
13.根据权利要求12所述的机器可读存储介质,其中,所述方法还包括:考虑由所述相关性网络引入的所述时间相关性来执行所述活动分析,包括考虑所述时间相关性来通过表示所述时序电路的有限状态机(FSM)传播活动数据以确定所述时序电路的内部信号和输出信号的状态概率和转换概率。
14.根据权利要求12所述的机器可读存储介质,其中,所述相关性网络被配置为基于所述信号的当前逻辑状态和展开电路的信号的转换活动来确定所述展开电路的信号的下一逻辑状态。
15.根据权利要求12所述的机器可读存储介质,其中,所述方法还包括:
对于每个展开电路,考虑输入的状态概率和所述输入的转换活动的转换概率来计算输出的状态概率;以及
考虑所述输入的状态概率和所述输入的转换概率来计算所述输出的转换概率,其中所述输入的转换概率由所述相关性网络引入。
16.根据权利要求12所述的机器可读存储介质,其中,用于输入的相关性网络被配置为生成将被连接到下一展开电路的相应输入的信号,并且其中所述信号的值基于当前展开电路中的输入信号的状态、所述输入信号的下降转换速率以及所述输入信号的上升转换速率。
17.根据权利要求12所述的机器可读存储介质,其中,所述相关性网络包括具有多个项的真值表,其中在给定信号的当前状态、所述信号的下降转换活动以及所述信号的上升转换活动的情况下,每一项提供了所述信号的下一状态的估计。
18.根据权利要求12所述的机器可读存储介质,其中,所述方法还包括:使用编码电路向展开的时序电路的输入引入空间相关性,所述空间相关性表示所述输入与一个或多个其他信号之间的依赖关系,其中,考虑所述时间相关性和所述空间相关性来执行所述活动分析。
19.根据权利要求18所述的机器可读存储介质,其中,所述编码电路被配置为传播多个信号的联合概率信息以向展开的时序电路的输入引入所述空间相关性。
20.根据权利要求19所述的机器可读存储介质,其中,所述编码电路被配置为将所有可能的状态都映射到所述FSM的可达状态中的至少一个状态。
21.根据权利要求19所述的机器可读存储介质,其中,所述方法还包括:使用解码电路从展开的时序电路的输出收集所述联合概率信息,所述解码电路经由反馈环路向所述编码电路提供收集到的联合概率信息。
22.根据权利要求21所述的机器可读存储介质,其中,所述方法还包括:使用所述编码电路和所述解码电路经由所述反馈环路迭代地对展开的时序电路执行所述活动分析。
23.一种用于电路分析的机器实施的方法,该方法包括:
将具有反馈环路的时序电路展开成多个展开电路;以及
经由用于所述时序电路的活动分析的编码电路向展开的时序电路的输入引入空间相关性,所述空间相关性表示所述输入的逻辑状态与其他信号的逻辑状态之间的依赖关系。
24.根据权利要求23所述的方法,该方法还包括:考虑由所述编码电路引入的所述空间相关性来执行所述活动分析。
25.根据权利要求24所述的方法,其中,所述编码电路被配置为传播多个信号的联合概率信息以向展开的时序电路的输入引入所述空间相关性。
26.根据权利要求25所述的方法,其中,所述时序电路由有限状态机(FSM)表示,并且其中所述编码电路被配置为将所有可能的状态都映射到所述FSM的可达状态中的至少一个状态。
27.根据权利要求25所述的方法,该方法还包括:使用解码电路从展开的时序电路的输出收集所述联合概率信息,所述解码电路经由反馈环路向所述编码电路提供收集到的联合概率信息。
28.根据权利要求27所述的方法,该方法还包括:使用所述编码电路和所述解码电路经由所述反馈环路迭代地对展开的时序电路执行所述活动分析。
29.一种存储机器可执行指令的机器可读存储介质,其中当所述机器可执行指令由机器执行时使所述机器执行用于电路分析的方法,该方法包括:
将具有反馈环路的时序电路展开成多个展开电路;以及
经由用于所述时序电路的活动分析的编码电路向展开的时序电路的输入引入空间相关性,所述空间相关性表示所述输入的逻辑状态与其他信号的逻辑状态之间的依赖关系。
30.根据权利要求29所述的机器可读存储介质,其中,所述方法还包括:考虑由所述编码电路引入的所述空间相关性来执行所述活动分析。
31.根据权利要求30所述的机器可读存储介质,其中,所述编码电路被配置为传播多个信号的联合概率信息以向展开的时序电路的输入引入所述空间相关性。
32.根据权利要求31所述的机器可读存储介质,其中,所述时序电路由有限状态机(FSM)表示,并且其中所述编码电路被配置为将所有可能的状态都映射到所述FSM的可达状态中的至少一个状态。
33.根据权利要求30所述的机器可读存储介质,其中,所述方法还包括:使用解码电路从展开的时序电路的输出收集所述联合概率信息,所述解码电路经由反馈环路向所述编码电路提供收集到的联合概率信息。
34.根据权利要求33所述的机器可读存储介质,其中,所述方法还包括:使用所述编码电路和所述解码电路经由所述反馈环路迭代地对展开的时序电路执行所述活动分析。
35.一种用于电路分析的机器实施的方法,该方法包括:
将具有反馈环路的时序电路展开成多个展开电路,所述时序电路由有限状态机(FSM)表示;
在展开的时序电路的输入处附设编码电路,以向所述输入传播多个信号的联合概率信息;
在展开的时序电路的输出处附设解码电路,以从所述输出收集所述联合概率信息,其中所述解码电路经由反馈环路向所述编码电路提供收集到的联合概率信息;以及
通过使用所述编码电路和所述解码电路经由所述反馈环路迭代地对每个所述展开电路执行活动分析。
36.一种用于电路分析的机器实施的方法,该方法包括:
根据预定配置将电路划分成多个电路块;
在不捕获每个电路块的所有内部信号的活动信息的情况下,捕获所述电路的输入流以及每个所述电路块之间的信号的活动信息;以及
考虑时间相关性和空间相关性中的至少一者,通过使用捕获到的活动信息来对每个电路块执行统计形式活动分析。
37.根据权利要求36所述的方法,其中,捕获活动信息包括:捕获一组或多组信号的联合状态概率和转换速率。
CN2010800198826A 2009-03-06 2010-03-05 考虑了时间和空间相关性的统计形式活动分析 Pending CN102439468A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/399,795 2009-03-06
US12/399,795 US8161434B2 (en) 2009-03-06 2009-03-06 Statistical formal activity analysis with consideration of temporal and spatial correlations
PCT/US2010/026448 WO2010102264A2 (en) 2009-03-06 2010-03-05 Statistical formal activity analysis with consideration of temporal and spatial correlations

Publications (1)

Publication Number Publication Date
CN102439468A true CN102439468A (zh) 2012-05-02

Family

ID=42679357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800198826A Pending CN102439468A (zh) 2009-03-06 2010-03-05 考虑了时间和空间相关性的统计形式活动分析

Country Status (5)

Country Link
US (3) US8161434B2 (zh)
EP (1) EP2414852A4 (zh)
CN (1) CN102439468A (zh)
TW (1) TWI484202B (zh)
WO (1) WO2010102264A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117454813A (zh) * 2023-12-22 2024-01-26 杭州行芯科技有限公司 电路的翻转概率信息计算方法、装置和计算机设备

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8042075B2 (en) * 2009-03-25 2011-10-18 International Business Machines Corporation Method, system and application for sequential cofactor-based analysis of netlists
US8707244B1 (en) * 2010-08-20 2014-04-22 Altera Corporation Methods and systems for performing signal activity extraction
US8335783B2 (en) 2010-12-28 2012-12-18 Teradata Us, Inc. Collection of statistics for spatial columns or R-tree indexes
US8504974B1 (en) * 2011-09-14 2013-08-06 Xilinx, Inc. Analysis of circuit designs
US20130096901A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Verifying Simulation Design Modifications
US8656326B1 (en) * 2013-02-13 2014-02-18 Atrenta, Inc. Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design
US8966416B2 (en) * 2013-03-07 2015-02-24 Cadence Design Systems, Inc. Finite-state machine encoding during design synthesis
TW201514725A (zh) * 2013-10-09 2015-04-16 Chi Mei Foundation Hospital 自動判定統計分析手法的方法及其系統
GB2518909B (en) * 2013-12-16 2015-10-28 Imagination Tech Ltd Encoder adaptation
US20150260768A1 (en) * 2014-03-13 2015-09-17 Kabushiki Kaisha Toshiba Detection method of algorithm in integrated circuit
US10678980B2 (en) 2015-06-01 2020-06-09 Assurant Design Automation LLC Combination map based composite design
US10747919B2 (en) 2015-06-01 2020-08-18 Assurant Design Automation LLC Generating path execution times
US10997334B2 (en) 2015-06-01 2021-05-04 Assurant Design Automation LLC Implementing a logic design
US11610038B2 (en) * 2015-06-01 2023-03-21 Assurant Design Automation LLC Risk evaluation
US20160350668A1 (en) * 2015-06-01 2016-12-01 Assurant Design Automation LLC Risk evaluation
US10997335B2 (en) 2015-06-01 2021-05-04 Assurant Design Automation LLC Exceptional logic element management
US10402175B2 (en) 2015-06-01 2019-09-03 Assurant Design Automation LLC Parsing source code into a linear array
CN105652182B (zh) * 2015-12-28 2018-10-02 北京航天测控技术有限公司 一种基于电路网络和图搜索的电路板故障定位系统及方法
CN107153682A (zh) * 2017-04-23 2017-09-12 潘小胜 一种自动匹配防爆桶存储信息的方法
TWI681311B (zh) * 2018-04-27 2020-01-01 瑞昱半導體股份有限公司 電路設計系統與檢查方法
US10909283B1 (en) * 2018-11-21 2021-02-02 Cadence Design Systems, Inc. Hardware assisted weighted toggle count

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966523A (en) * 1996-01-12 1999-10-12 Kabushiki Kaisha Toshiba Method of estimating power consumption of semiconductor integrated circuit
US6578176B1 (en) * 2000-05-12 2003-06-10 Synopsys, Inc. Method and system for genetic algorithm based power optimization for integrated circuit designs
US6687882B1 (en) * 2002-01-31 2004-02-03 Synplicity, Inc. Methods and apparatuses for non-equivalence checking of circuits with subspace
CN1710567A (zh) * 2005-07-07 2005-12-21 复旦大学 时序电路等价验证的方法
US7076712B2 (en) * 2003-05-22 2006-07-11 Fujitsu Limited Generating a test sequence using a satisfiability technique

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1300265C (en) * 1987-06-22 1992-05-05 William Curtis Newman Block diagram simulator
US5128871A (en) * 1990-03-07 1992-07-07 Advanced Micro Devices, Inc. Apparatus and method for allocation of resoures in programmable logic devices
US5752000A (en) * 1994-08-02 1998-05-12 Cadence Design Systems, Inc. System and method for simulating discrete functions using ordered decision arrays
US5774370A (en) * 1995-09-18 1998-06-30 Vlsi Technology, Inc. Method of extracting implicit sequential behavior from hardware description languages
US6195786B1 (en) * 1997-12-23 2001-02-27 Nec Usa, Inc. Constrained register sharing technique for low power VLSI design
US6363520B1 (en) * 1998-06-16 2002-03-26 Logicvision, Inc. Method for testability analysis and test point insertion at the RT-level of a hardware development language (HDL) specification
US6816825B1 (en) * 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
US6493853B1 (en) * 1999-07-15 2002-12-10 Texas Instruments Incorporated Cell-based noise characterization and evaluation
US6408428B1 (en) * 1999-08-20 2002-06-18 Hewlett-Packard Company Automated design of processor systems using feedback from internal measurements of candidate systems
JP3836276B2 (ja) * 1999-09-17 2006-10-25 株式会社東芝 集積回路のノイズ及び電力の評価方法
US6477685B1 (en) * 1999-09-22 2002-11-05 Texas Instruments Incorporated Method and apparatus for yield and failure analysis in the manufacturing of semiconductors
US6745160B1 (en) * 1999-10-08 2004-06-01 Nec Corporation Verification of scheduling in the presence of loops using uninterpreted symbolic simulation
US6701501B2 (en) * 2000-10-16 2004-03-02 Simon Joshua Waters Structured algorithmic programming language approach to system design
US6687883B2 (en) * 2000-12-28 2004-02-03 International Business Machines Corporation System and method for inserting leakage reduction control in logic circuits
US7000213B2 (en) * 2001-01-26 2006-02-14 Northwestern University Method and apparatus for automatically generating hardware from algorithms described in MATLAB
US20020144092A1 (en) * 2001-01-31 2002-10-03 Siroyan Limited. Handling of loops in processors
US6988232B2 (en) * 2001-07-05 2006-01-17 Intellitech Corporation Method and apparatus for optimized parallel testing and access of electronic circuits
US7193504B2 (en) 2001-10-09 2007-03-20 Alien Technology Corporation Methods and apparatuses for identification
US6895545B2 (en) * 2002-01-28 2005-05-17 Broadcom Corporation System and method for generating cyclic codes for error control in digital communications
US7134100B2 (en) * 2002-07-29 2006-11-07 Nec Usa, Inc. Method and apparatus for efficient register-transfer level (RTL) power estimation
US7224185B2 (en) * 2002-08-05 2007-05-29 John Campbell System of finite state machines
US6952816B2 (en) * 2002-10-07 2005-10-04 Hewlett-Packard Development Company, L.P. Methods and apparatus for digital circuit design generation
US7565631B1 (en) * 2004-07-02 2009-07-21 Northwestern University Method and system for translating software binaries and assembly code onto hardware
US7278120B2 (en) * 2004-07-23 2007-10-02 Synplicity, Inc. Methods and apparatuses for transient analyses of circuits
US20060259885A1 (en) * 2004-08-09 2006-11-16 Mortensen Michael P System and method for analyzing a circuit
US20080092092A1 (en) * 2004-10-04 2008-04-17 Damian Jude Dalton Method and Processor for Power Analysis in Digital Circuits
US7366997B1 (en) * 2005-01-11 2008-04-29 Synplicity, Inc. Methods and apparatuses for thermal analysis based circuit design
US7882464B1 (en) * 2005-02-14 2011-02-01 Cadence Design Systems, Inc. Method and system for power distribution analysis
US7284218B1 (en) * 2005-03-18 2007-10-16 Calypto Design Systems, Inc. Method and system for inplace symbolic simulation over multiple cycles of a multi-clock domain design
US7350166B2 (en) * 2005-04-14 2008-03-25 International Business Machines Corporation Method and system for reversing the effects of sequential reparameterization on traces
US7596770B1 (en) * 2005-06-02 2009-09-29 Cadence Design Systems, Inc. Temporal decomposition for design and verification
US7222039B2 (en) * 2005-06-10 2007-05-22 Azuro (Uk) Limited Estimation of average-case activity for digital state machines
US7434184B2 (en) * 2005-08-08 2008-10-07 Zhe Li Method for detecting flaws in a functional verification plan
US7469394B1 (en) * 2005-12-09 2008-12-23 Altera Corporation Timing variation aware compilation
TWI337715B (en) * 2006-11-08 2011-02-21 Inst Information Industry Method and system for complex event processing
US7698088B2 (en) * 2006-11-15 2010-04-13 Silicon Image, Inc. Interface test circuitry and methods
US7814448B2 (en) * 2007-04-09 2010-10-12 International Business Machines Corporation Representing and propagating a variational voltage waveform in statistical static timing analysis of digital circuits
EP2006784A1 (en) * 2007-06-22 2008-12-24 Interuniversitair Microelektronica Centrum vzw Methods for characterization of electronic circuits under process variability effects
US7689957B2 (en) * 2007-09-10 2010-03-30 Synopsys, Inc. Identifying and improving robust designs using statistical timing analysis
WO2009043920A1 (en) * 2007-10-03 2009-04-09 University College Dublin A system level power evaluation method
US7904850B2 (en) * 2007-11-30 2011-03-08 Cebatech System and method for converting software to a register transfer (RTL) design
US8341572B1 (en) * 2008-04-11 2012-12-25 Cadence Design Systems, Inc. Methods and apparatus for waveform based variational static timing analysis
WO2009128115A1 (ja) * 2008-04-15 2009-10-22 日東電工株式会社 光学フィルム積層体ロールならびにその製造方法および装置
US7890903B2 (en) * 2008-05-29 2011-02-15 International Business Machines Corporation Method and system for formal verification of an electronic circuit design
US8141024B2 (en) * 2008-09-04 2012-03-20 Synopsys, Inc. Temporally-assisted resource sharing in electronic systems
US8694570B2 (en) * 2009-01-28 2014-04-08 Arun Mohanlal Patel Method and apparatus for evaluation of multi-dimensional discrete fourier transforms
US20120290278A1 (en) * 2011-03-14 2012-11-15 New York University Process, computer-accessible medium and system for obtaining diagnosis, prognosis, risk evaluation, therapeutic and/or preventive control based on cancer hallmark automata
JP5893954B2 (ja) * 2012-02-24 2016-03-23 ルネサスエレクトロニクス株式会社 等価性検証方法、等価性検証プログラム及び等価性検証装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966523A (en) * 1996-01-12 1999-10-12 Kabushiki Kaisha Toshiba Method of estimating power consumption of semiconductor integrated circuit
US6578176B1 (en) * 2000-05-12 2003-06-10 Synopsys, Inc. Method and system for genetic algorithm based power optimization for integrated circuit designs
US6687882B1 (en) * 2002-01-31 2004-02-03 Synplicity, Inc. Methods and apparatuses for non-equivalence checking of circuits with subspace
US7076712B2 (en) * 2003-05-22 2006-07-11 Fujitsu Limited Generating a test sequence using a satisfiability technique
CN1710567A (zh) * 2005-07-07 2005-12-21 复旦大学 时序电路等价验证的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117454813A (zh) * 2023-12-22 2024-01-26 杭州行芯科技有限公司 电路的翻转概率信息计算方法、装置和计算机设备

Also Published As

Publication number Publication date
US20140165024A1 (en) 2014-06-12
EP2414852A2 (en) 2012-02-08
US8161434B2 (en) 2012-04-17
US20100229132A1 (en) 2010-09-09
US9195790B2 (en) 2015-11-24
US20120210291A1 (en) 2012-08-16
WO2010102264A2 (en) 2010-09-10
EP2414852A4 (en) 2014-07-30
TWI484202B (zh) 2015-05-11
WO2010102264A3 (en) 2011-01-06
TW201100829A (en) 2011-01-01
US8656327B2 (en) 2014-02-18

Similar Documents

Publication Publication Date Title
CN102439468A (zh) 考虑了时间和空间相关性的统计形式活动分析
CN101317178B (zh) 统计时序分析中关键度预测的系统和方法
Abdulla et al. Symbolic reachability analysis based on SAT-solvers
Fricker et al. Probabilistic uncertainty analysis of an FRF of a structure using a Gaussian process emulator
Rintanen Symmetry Reduction for SAT Representations of Transition Systems.
US9727668B2 (en) Delta retiming in logic simulation
Li et al. Digital system verification: A combined formal methods and simulation framework
Habibi et al. Towards an efficient assertion based verification of SystemC designs
Paris et al. Computing Horn strong backdoor sets thanks to local search
Mokhov et al. Process windows
Dubrova et al. Finding attractors in synchronous multiple-valued networks using SAT-based bounded model checking
Kroening et al. Formal verification at higher levels of abstraction
Ghavami et al. High performance asynchronous design flow using a novel static performance analysis method
Saifhashemi et al. Logical equivalence checking of asynchronous circuits using commercial tools
Redekopp et al. A parallel pipelined sat solver for fpga’s
Favalli et al. Applications of boolean satisfiability to verification and testing of switch-level circuits
Reda Using circuit structural analysis techniques for networks in systems biology
Metta et al. Spiking neural P systems with anti-spikes as transducers
Welp et al. Hardware acceleration for constraint solving for random simulation
Wei et al. Transmission line inspires a new distributed algorithm to solve the nonlinear dynamical system of physical circuit
Sekanina Approximate Computing: An Old Job for Cartesian Genetic Programming?
Srinivasan et al. Refinement-based verification of elastic pipelined systems
Hehenberger et al. Understanding the relationship of information in mechatronic design modeling
CN117540670A (zh) 用于数字电路的全局真值表生成方法及装置
Rawski Application of indexed partition calculus in logic synthesis of boolean functions for FPGAs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120502