CN117250480A - 组合逻辑电路的环路检测方法、装置、设备及存储介质 - Google Patents
组合逻辑电路的环路检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117250480A CN117250480A CN202311478835.3A CN202311478835A CN117250480A CN 117250480 A CN117250480 A CN 117250480A CN 202311478835 A CN202311478835 A CN 202311478835A CN 117250480 A CN117250480 A CN 117250480A
- Authority
- CN
- China
- Prior art keywords
- logic gate
- combinational logic
- combinational
- circuit
- candidate
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 119
- 238000013461 design Methods 0.000 claims abstract description 49
- 230000004044 response Effects 0.000 claims description 30
- 238000013500 data storage Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 abstract description 30
- 230000008569 process Effects 0.000 abstract description 19
- 230000000644 propagated effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
- G01R31/2855—Environmental, reliability or burn-in testing
- G01R31/2856—Internal circuit aspects, e.g. built-in test features; Test chips; Measuring material aspects, e.g. electro migration [EM]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本申请涉及集成电路设计技术领域,提出组合逻辑电路的环路检测方法、装置、设备及存储介质,所述环路检测方法包括:记录待检测电路中的所有组合逻辑门;以所述组合逻辑门中的任一个未被查找的组合逻辑门为起点,按照信号向前传播的顺序,针对信号经过的每个组合逻辑门的每个输出路径,向前查找下一个电路元件,将重复查找到的组合逻辑门确定为候选组合逻辑门,直至所记录的所有组合逻辑门均被查找到;遍历所有候选组合逻辑门,对所述待检测电路进行组合逻辑环路检测。本申请可以解决组合逻辑环的检测耗时长、检测效率低的问题,可以避免多次模拟信号传播过程所带来的计算量和耗时,能够简化检测过程。
Description
技术领域
本申请涉及集成电路设计技术领域,尤其涉及一种组合逻辑电路的环路检测方法、装置、设备及存储介质。
背景技术
电子设计自动化(Electronic Design Automation,EDA)是指利用计算机辅助设计(Computer Aided Design,CAD)软件来完成集成电路芯片的功能设计、综合、验证、物理设计(例如包括布局、布线、版图、设计规则检查等)等流程的设计方式。集成电路设计人员可能需要使用EDA工具设计几十万到数十亿晶体管的复杂集成电路,以减少设计偏差、提高流片成功率及节省流片费用。
逻辑门(logic gate)是在集成电路上的基本门级元件,例如非门(NOT)、或门(OR)、或非门(NOR)、与门(AND)、异或门(XOR)、同或门(XNOR)等。逻辑门电路从高层次上可分为组合逻辑电路和时序逻辑电路,其中,在组合逻辑电路中,任意时刻的输出仅仅取决于当前时刻的输入,与电路之前的历史状态无关(即无记忆能力),逻辑中不牵涉跳变沿信号的处理。组合逻辑电路例如可以包括多路选择器、编码器、译码器、移位器、比较器等。
在组合逻辑电路中,可能存在组合逻辑环(也可以称为组合逻辑门的反馈环路),组合逻辑环是指不经过任何时序逻辑,而直接将组合逻辑的输出信号反馈到其输入节点而形成的环路。组合逻辑环的存在违反了电路的同步设计原则,很容易产生振荡、毛刺、时序违规,从而使整个系统变得极不稳定,因此需要对组合逻辑环进行检测和修改,以避免其所带来的不良影响。
在相关技术的检测方法中,一般是逐一对电路中的每个组合逻辑门进行扇出(fanout)检测,以确定是否有信号到达它本身。具体来说,检测是否有信号从一个组合逻辑门的输出到达它的输入,以找到电路中的组合逻辑环。然而,这种方法在检测过程中,每次仅能针对一个组合逻辑门进行检测,这导致检测耗时较长,特别是,在组合逻辑门的数量达到一定规模的情况下,对电路整体的检测会消耗巨大的时间,检测效率较低。
发明内容
本申请提供一种组合逻辑电路的环路检测方法、装置、设备及存储介质,以至少解决相关技术中组合逻辑环的检测耗时长、检测效率低的问题。本申请的技术方案如下:
根据本申请的实施例的第一方面,提供一种组合逻辑电路的环路检测方法,所述环路检测方法应用于集成电路电子设计自动化软件,其中,所述环路检测方法包括:记录待检测电路中的所有组合逻辑门;以所述组合逻辑门中的任一个未被查找的组合逻辑门为起点,按照信号向前传播的顺序,针对信号经过的每个组合逻辑门的每个输出路径,向前查找下一个电路元件,将重复查找到的组合逻辑门确定为候选组合逻辑门,直至所记录的所有组合逻辑门均被查找到,其中,所述电路元件为组合逻辑门或非组合逻辑门元件;遍历所有候选组合逻辑门,对所述待检测电路进行组合逻辑环路检测。
可选地,通过以下方式记录所述待检测电路中的所有组合逻辑门:按照所述待检测电路的信号向前传播的顺序,记录所述待检测电路中的所有组合逻辑门,其中,所述组合逻辑门中作为起点的组合逻辑门为:当前未被向前查找的组合逻辑门中在信号路径上最靠近所述待检测电路的信号输入端的组合逻辑门。
可选地,通过以下方式确定所述候选组合逻辑门:确定起点组合逻辑门,并且从当前记录中删除所确定的起点组合逻辑门,其中,在首次确定起点组合逻辑门时,将作为当前起点的组合逻辑门作为起点组合逻辑门,对所述起点组合逻辑门执行遍历输出路径的操作,查找所述候选组合逻辑门,其中,所述遍历输出路径的操作包括:沿着未遍历的输出路径向前查找下一个电路元件;响应于所述下一个电路元件为另一组合逻辑门,在当前记录中查找所述另一组合逻辑门,根据查找结果,确定下一个起点组合逻辑门;响应于不存在下一个电路元件或所述下一个电路元件为非组合逻辑门元件,继续执行所述遍历输出路径的步骤。
可选地,所述遍历输出路径的操作还包括:根据所述起点组合逻辑门的未遍历的输出路径的数量,对所述起点组合逻辑门执行遍历输出路径的操作,查找所述候选组合逻辑门,其中,在所述起点组合逻辑门的未遍历的输出路径为多个的情况下,构建临时队列,以记录所述起点组合逻辑门。
可选地,所述根据所述起点组合逻辑门的未遍历的输出路径的数量,对所述起点组合逻辑门执行遍历输出路径的操作,查找所述候选组合逻辑门的步骤包括:响应于所述起点组合逻辑门的未遍历的输出路径为多个,针对任意一个所述未遍历的输出路径,执行查找所述候选组合逻辑门的操作,并且将所述起点组合逻辑门加入到临时队列中;响应于所述起点组合逻辑门的未遍历的输出路径为仅一个,针对所述未遍历的输出路径,执行查找所述候选组合逻辑门的操作,其中,响应于所述起点组合逻辑门的未遍历的输出路径为仅一个且所述起点组合逻辑门存在于所述临时队列,从所述临时队列中删除所述起点组合逻辑门。
可选地,所述根据查找结果,确定下一个起点组合逻辑门的步骤包括:响应于在当前记录中查找到所述另一组合逻辑门,将所述另一组合逻辑门确定为下一个起点组合逻辑门;响应于在当前记录中未查找到所述另一组合逻辑门,根据所述另一组合逻辑门的输出路径的遍历情况,对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作,其中,所述临时队列具有先进后出的数据存储结构。
可选地,所述对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作的步骤包括:响应于在当前记录中未查找到所述另一组合逻辑门,且所述另一组合逻辑门的输出路径中存在已遍历的路径,则将所述另一组合逻辑门作为候选组合逻辑门,并且对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤,其中,所述另一组合逻辑门的输出路径中的已遍历的路径是指在当前起点下已遍历过,响应于在当前记录中未查找到所述另一组合逻辑门,且所述另一组合逻辑门的输出路径中不存在已遍历的路径,则对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤,其中,在所述临时队列为空的情况下,将当前记录中的任一个组合逻辑门作为下一个起点组合逻辑门,直至当前记录中不存在组合逻辑门。
可选地,所述对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作的步骤包括:在所述临时队列不为空的情况下,将所述临时队列中位于队尾的起点组合逻辑门从所述临时队列中删除。
可选地,所述以所述组合逻辑门中的任一个未被查找的组合逻辑门为起点的步骤的执行次数等于所述待检测电路的信号输入端的数量,其中,在每次执行过程中,所确定的候选组合逻辑门为一个或多个。
可选地,所述遍历所有候选组合逻辑门,对所述待检测电路进行组合逻辑环路检测的步骤包括:针对每个候选组合逻辑门,检测从所述候选组合逻辑门出发的每个信号路径;将从所述候选组合逻辑门出发且到达所述候选组合逻辑门本身的信号路径确定为组合逻辑环路。
根据本申请的实施例的第二方面,提供一种组合逻辑电路的环路检测装置,所述环路检测装置应用于集成电路电子设计自动化软件,其中,所述环路检测装置包括:记录单元,被配置为记录待检测电路中的所有组合逻辑门;确定单元,被配置为以所述组合逻辑门中的任一个未被查找的组合逻辑门为起点,按照信号向前传播的顺序,针对信号经过的每个组合逻辑门的每个输出路径,向前查找下一个电路元件,将重复查找到的组合逻辑门确定为候选组合逻辑门,直至所记录的所有组合逻辑门均被查找到,其中,所述电路元件为组合逻辑门或非组合逻辑门元件;检测单元,被配置为遍历所有候选组合逻辑门,对所述待检测电路进行组合逻辑环路检测。
根据本申请的实施例的第三方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器,其中,所述处理器可执行指令在被所述处理器运行时,促使所述处理器执行根据本申请所述的环路检测方法。
根据本申请的实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行根据本申请所述的环路检测方法。
本申请的实施例提供的技术方案至少带来以下有益效果:
本申请的实施例可以记录待检测电路中的所有组合逻辑门,从组合逻辑门中筛选出候选组合逻辑门,再针对这些候选组合逻辑门进行环路检测,如此,通过先确定候选组合逻辑门,可以避免对所有组合逻辑门逐一进行环路检测,耗费大量时间,而仅需要针对筛选出的候选组合逻辑门执行环路检测即可,可节省检测时间,提高检测效率。
此外,在本申请的实施例中,可以通过对所经过的组合逻辑门的输出路径进行遍历,查找下一个电路元件,以筛选出候选组合逻辑门,在该过程中,通过考虑信号传播的深度方向以及在信号经过的每个组合逻辑门时遍历每个输出路径的宽度方向,实现在单次信号传播过程中对多个组合逻辑门进行排查,确定出可能存在环路的候选组合逻辑门,如此,可以避免多次模拟信号传播过程所带来的计算量和耗时,能够简化检测过程。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1是示出集成电路设计中模块的层次化布局的示意图。
图2是示出组合逻辑环电路的示意图。
图3是示出非组合逻辑环电路的示意图。
图4是根据本申请的示例性实施例示出的组合逻辑电路的环路检测方法的示意性流程图。
图5是根据本申请的示例性实施例示出的组合逻辑电路的环路检测方法中确定候选组合逻辑门的步骤的示意性流程图。
图6是根据本申请的示例性实施例示出的组合逻辑电路的环路检测方法中遍历输出路径的操作的示意性流程图。
图7是根据本申请的示例性实施例示出的组合逻辑电路的环路检测方法中确定下一个起点组合逻辑门的步骤的示意性流程图。
图8是根据本申请的示例性实施例示出的组合逻辑电路的环路检测方法中对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作的示意性流程图。
图9是根据本申请的示例性实施例示出的组合逻辑电路的环路检测方法中对待检测电路进行组合逻辑环路检测的步骤的示意性流程图。
图10是根据本申请的示例性实施例示出的组合逻辑电路的环路检测方法中确定候选组合逻辑电路的一示例的示意性流程图。
图11是根据本申请的示例性实施例示出的组合逻辑电路的一示例的示意图。
图12是根据本申请的示例性实施例示出的记录第一列表的示例的示意图。
图13是根据本申请的示例性实施例示出的一种组合逻辑电路的环路检测装置的框图。
图14是根据本申请的示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了便于理解本申请的示例性实施例,下面将首先参照图1至图3描述与集成电路设计及组合逻辑电路相关的内容。
作为示例,集成电路设计人员可以使用Verilog硬件描述语言(HardwareDescription Language,HDL)(也可以简称为“Verilog”)来进行设计。Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为,可以表示逻辑电路图、逻辑表达式以及数字逻辑系统所完成的逻辑功能等,从而可对算法级、门级、开关级等多种抽象设计层次进行建模。
Verilog设计通常由若干模块(module)组成,模块是层次化设计的基本构件,并且模块之间可以嵌套,顶层模块可以由子模块构成,例如如图1所示,顶层模块可以包括子模块等;子模块可以由下级子模块构成,例如如图1所示,子模块可以包括下级子模块等。
在Verilog设计中,模块可以具有以下特点:模块的实际意义是代表硬件电路上的逻辑实体;每个模块都实现特定的功能;模块之间是并行运行的;模块是分层的,高层模块通过调用、连接低层模块的实例来实现复杂的功能;各模块连接完成整个系统需要一个顶层模块(top module)。
此外,在Verilog设计中,每个模块可以包括模块声明、模块名、端口列表、端口定义、逻辑定义和信号类型声明。模块声明是指使用标识“module”和标识“endmodule”来标记模块的开始和结束,在标识“module”和标识“endmodule”之间的代码都属于本模块。如果将某个模块命名为A,则模块名A就是例化该模块时的声明凭证。端口列表中可以包括电路结构中的每个对外端口,对于模块的电路结构中的每个对外端口,均需要分别定义一个名称。端口定义是用于明确每个端口的输入输出类型,例如,输入端口“input”、输出端口“output”、双向端口“inout”,其中,顶层模块中可以定义设计的主输入端口“primaryinput”和主输出端口“primary output”。逻辑定义可以通过例化各种门级元件以及元件之间的连接关系来定义模块的逻辑功能。信号类型声明是指信号类型可以是寄存器(reg)型或线网(wire)型,例如,模块内某个或门的输出端连接至某个与门的输入端,该或门和该与门之间的连线是个内部信号,则可以定义一个线网信号类型“or_wire”。
上面描述的Verilog语言仅是示例,本申请还可以应用于其他硬件描述语言,例如但不限于VHDL(Very High Speed Integrated Circuit HDL)、System Verilog HDL等,本申请对硬件描述语言不作特别限制。
逻辑门(logic gate)是在集成电路上的基本门级元件,例如可以包括非门(NOT)、或门(OR)、或非门(NOR)、与门(AND)、异或门(XOR)、同或门(XNOR)等。逻辑门电路可以分为组合逻辑电路和时序逻辑电路。
在组合逻辑电路中,任意时刻的输出仅仅取决于当前时刻的输入,与电路之前的历史状态无关(即无记忆能力),逻辑中不牵涉跳变沿信号的处理。组合逻辑电路例如可以包括多路选择器、编码器、译码器、移位器、比较器等。
在时序逻辑电路中,输出不仅取决于当前的输入,还取决于电路的历史状态,电路里面有存储元件用于记忆状态信息,例如触发器、锁存器等。从电路行为上讲,不管输入如何变化,仅当时钟的上升沿或下降沿到达时,才有可能使输出发生变化。
在组合逻辑电路中,可能存在组合逻辑环(combinational loop),组合逻辑环是指不经过任何时序逻辑(例如寄存器等),而直接将组合逻辑的输出信号反馈到其输入节点而形成的环路。
组合逻辑环与非组合逻辑环的示例分别如图2和图3所示,在集成电路设计(例如Verilog设计)中,除了特殊的设计意图(例如伪随机数生成器、可测性设计(Design-for-Testability,DFT)的bypass逻辑等)之外,应该尽量避免组合逻辑环的出现。
具体来说,一方面,组合逻辑环违反了电路的同步设计原则,很容易产生振荡、毛刺、时序违规,从而使整个系统变得极不稳定,例如,使电路陷入死锁状态,以很高的频率形成振荡电路。另一方面,组合逻辑环实现的逻辑功能完全依赖于环路上的逻辑门延迟和布线延迟,如果这些延迟发生变化,原来的逻辑功能将会发生彻底的改变,而且改变后的功能很难预测,影响设计功能的正确性,导致这种设计基本没有可移植性。
在集成电路设计中,设计人员可以利用EDA工具读入设计文件(例如Verilog文件),在读取到设计文件后,EDA工具可以针对设计代码中的组合逻辑门进行反馈环路的检测,当检测到不符合设计意图的反馈环路时,EDA工具可以对反馈环路进行报警或者割断处理。
对此,在相关技术的检测方法中,可以从一个组合逻辑门的扇出(fanout)检测是否有信号到达该逻辑门本身,即,检测是否有信号从一个组合逻辑门的输出到达该逻辑门的输入。然而,在利用这种方法检测反馈环路时,每次只能检测1个组合逻辑门,当组合逻辑门的数量达到一定规模,会消耗巨大的时间。
鉴于上述问题,本申请的示例性实施例提出一种组合逻辑电路的环路检测方法、组合逻辑电路的环路检测、电子设备以及计算机可读存储介质,其能够解决或至少缓解上述问题。
在本申请的示例性实施例的第一方面,提供一种组合逻辑电路的环路检测方法,下面将参照图4至图12进行描述。
根据本申请的示例性实施例的组合逻辑电路的环路检测方法可以应用于集成电路电子设计自动化(Electronic Design Automation,EDA)软件,例如,用户终端上可以加载有集成电路EDA软件,用户可以在用户终端上使用集成电路EDA软件读取集成电路设计文件,并且对设计文件执行该环路检测方法。
集成电路EDA软件可以记录集成电路设计文件中的待检测电路中的所有组合逻辑门。
集成电路EDA软件可以以组合逻辑门中的任一个未被向前查找的组合逻辑门为起点,按照信号向前传播的顺序,针对信号经过的每个组合逻辑门的每个输出路径,向前查找下一个电路元件,将重复查找到的组合逻辑门确定为候选组合逻辑门,直至所记录的所有组合逻辑门均被向前查找,这里,电路元件为组合逻辑门或非组合逻辑门元件。
集成电路EDA软件可以遍历所有候选组合逻辑门,对待检测电路进行组合逻辑环路检测。
上述用户终端可以是诸如平板电脑、笔记本电脑、数字助理、可穿戴设备等,然而,上面环路检测方法的实施场景仅是一示例场景,根据本申请的示例性实施例的环路检测方法还可以应用于其他应用场景,例如也可以是用户在用户终端(例如,手机、台式电脑、平板电脑等)通过网络向服务器请求环路检测,服务器可以通过执行根据本申请的示例性实施例的环路检测方法来完成环路检测,这里,服务器可以是独立服务器,也可以是服务器集群,还可以是云计算平台或虚拟化中心。
尽管在本申请的实施例中以示例的方式描述了集成电路EDA软件在示例场景下的应用,但是本申请的实施例不限于此,也可以适用于集成电路EDA软件的其他应用场景。
根据本申请的示例性实施例的环路检测方法可以通过考虑信号传播的深度方向以及在信号经过的每个组合逻辑门时遍历每个输出路径的宽度方向,实现在单次信号传播过程中对多个组合逻辑门进行排查,确定出可能存在环路的候选组合逻辑门,如此,可以避免多次模拟信号传播过程所带来的计算量和耗时,能够简化检测过程。
下面将参照图4描述根据本申请的示例性实施例的一种环路检测方法的具体步骤。该环路检测方法可以应用于集成电路电子设计自动化软件。如图4所示,该环路检测方法可以包括以下步骤:
在步骤S410,可以记录待检测电路中的所有组合逻辑门。
在该步骤中,可以使用EDA工具读取用户提供的诸如Verilog文件的集成电路设计文件,对用户的电路设计进行分析,至少从所有模块中分析确定出各个组合逻辑门、从待检测电路的主输入端口到主输出端口的信号传播顺序等信息。还可以针对用户的电路设计,根据信号传播顺序收集待检测电路中的各个组合逻辑门,例如可以将收集到的组合逻辑门记录保存至第一列表中。以后文中将详细描述的图11和图12为例,对于图11的电路结构而言,初始的第一列表可以例如如图12中所示。
这里,在一示例中,各个组合逻辑门的记录顺序可以是任意的,例如可以不对各个组合逻辑门加以区分,在该示例中,初始的第一列表可以如图12所示,也可以按照其他顺序记录。
在另一示例中,可以按照各个组合逻辑门的重要性进行记录,例如,可以通过以下方式记录待检测电路中的所有组合逻辑门:按照待检测电路的信号向前传播的顺序,记录待检测电路中的所有组合逻辑门。
具体来说,可以认为越靠近待检测电路的信号输入端,组合逻辑门的重要性越高,其对检测时长的影响越大,因此可以优先检测,如此,可以将最靠近信号输入端的组合逻辑门记录在先。
以图11的电路结构为例,信号传播方向可以为从左至右,按照信号向前传播的方向,组合逻辑门的记录顺序可以为第一组合逻辑门Gate1(及第二组合逻辑门Gate2)、第三组合逻辑门Gate3(及第四组合逻辑门Gate4)至第五组合逻辑门Gate5,其中,第一组合逻辑门Gate1与第二组合逻辑门Gate2的重要性相当,二者之间的顺序可以是任意的,第三组合逻辑门Gate3与第四组合逻辑门Gate4亦是如此。在该示例中,初始的第一列表可以如图12所示,最靠近信号输入端的第一组合逻辑门Gate1及第二组合逻辑门Gate2被记录在列表的最前面。
然而,记录各个组合逻辑门的顺序不限于上述方式,例如也可以将重要性最低的组合逻辑门记录在先,或者也可以按照任意顺序记录组合逻辑门并且标注每个组合逻辑门的重要性排序或权重或检测优先级,只要在记录中能够体现组合逻辑门的重要性排序即可,在后文步骤S420中,可以依此记录优选选取重要性较高的组合逻辑门进行检测。
如此上述方式记录组合逻辑门,可以允许优先检测重要性较高的组合逻辑门,能够对组合逻辑门进行区分检测,优先排查重要性高的组合逻辑门。
此外,需要说明的是,尽管上文中以第一列表的形式来记录组合逻辑门,但是其不限于此,也可以采用其他任意形式来记录,例如图谱、字符串、表格等,只要能够记录组合逻辑门的相关信息即可。
在步骤S420,可以以组合逻辑门中的任一个未被查找的组合逻辑门为起点,按照信号向前传播的顺序,针对信号经过的每个组合逻辑门的每个输出路径,向前查找下一个电路元件,将重复查找到的组合逻辑门确定为候选组合逻辑门,直至所记录的所有组合逻辑门均被查找到。
这里,电路元件可以为组合逻辑门或非组合逻辑门元件,也就是说,组合逻辑门的输出路径上的下一个电路元件可能是组合逻辑门,也可能是非组合逻辑门元件。
这里所述的输出路径可以用于体现元件之间的连接关系,组合逻辑门的输出引脚可能是发散的,即一个输出引脚可能对应一个输出路径,也可能对应多个输出路径。例如,同一个输出引脚可以同时连接到不同的元件,在此情况下,该输出引脚对应于多个输出路径;相比之下,若多个输出引脚同时连接到同一个元件,则相应的多个输出引脚仅对应于一个输出路径。
此外,候选组合逻辑门可以是疑似包含在组合逻辑环中的组合逻辑门。具体来说,由于候选组合逻辑门在按照信号向前传播的顺序向前查找下一个电路元件的过程中被重复查找到,因此,可能被包含在某组合逻辑环中,例如如图11中所示的第三组合逻辑门Gate3,在信号向前传播的过程中,其作为第一组合逻辑门Gate1的下一个电路元件,也作为第五组合逻辑门Gate5的下一个电路元件,因此,需要再次确认该候选组合逻辑门是否确实处于组合逻辑环中,即可以针对性地对候选组合逻辑门执行下述步骤S430。
在该步骤S420中,在一示例中,作为起点的组合逻辑门可以为任一个未被查找的组合逻辑门,以图11为例,可以从任意一个组合逻辑门出发,按照信号向前传播的顺序,向前查找下一个电路元件,例如,可以从第一组合逻辑门Gate1出发,按照从第一组合逻辑门Gate1至第三组合逻辑门Gate3至第五组合逻辑门Gate5这样的顺序依次查找每个组合逻辑门的下一个电路元件;又例如,也可以从第三组合逻辑门Gate3出发,按照从第三组合逻辑门Gate3至第五组合逻辑门Gate5这样的顺序依次查找每个组合逻辑门的下一个电路元件。
在该示例中,当在当前起点下完成整个路径的查找时,可以将当前尚未被查找到的任意一个组合逻辑门作为下一个起点,进行查找,直至所记录的所有组合逻辑门均被查找到。仍以图11为例,若从第三组合逻辑门Gate3出发,按照从第三组合逻辑门Gate3至第五组合逻辑门Gate5的顺序查找到第三组合逻辑门Gate3和第五组合逻辑门Gate5,可以将当前尚未被查找到的第一组合逻辑门Gate1、第二组合逻辑门Gate2和第四组合逻辑门Gate4中的任意一个作为下一个起点,按照信号向前传播的顺序,向前查找下一个电路元件,若以第二组合逻辑门Gate2为起点出发,向前查找下一个电路元件,并且查找到第四组合逻辑门Gate4,则当前尚未被查找到的组合逻辑门仅有第一组合逻辑门Gate1,则可以将第一组合逻辑门Gate1作为下一个起点,向前查找下一个电路元件。
在另一示例中,如上面步骤S410所述,可以按照待检测电路的信号向前传播的顺序记录组合逻辑门。在该示例中,在该步骤S420中,组合逻辑门中作为起点的组合逻辑门可以为:当前未被向前查找的组合逻辑门中在信号路径上最靠近待检测电路的信号输入端的组合逻辑门。
仍以图11为例,在初次查找中未被向前查找的组合逻辑门包括第一组合逻辑门Gate1至第五组合逻辑门Gate5,其记录顺序例如可以如图12所示的初始的第一列表所示,其中,最靠近信号输入端的组合逻辑门为第一组合逻辑门Gate1或第二组合逻辑门Gate2,因此,可以从第一组合逻辑门Gate1或第二组合逻辑门Gate2出发向前查找下一个电路元件。当在当前起点下完成整个路径的查找时,可以将当前尚未被查找到的组合逻辑门中最靠近信号输入端的组合逻辑门作为下一个起点,例如,在初次查找中,从第一组合逻辑门Gate1出发,查找到第三组合逻辑门Gate3和第五组合逻辑门Gate5,完成当前起点下整个路径的查找,此时,可以将剩余的组合逻辑门中最靠近信号输入端的第二组合逻辑门Gate2作为下一个起点。以图12所示的初始的第一列表为例,在每次查找操作中,可以从第一列表的最前方选取一个组合逻辑门作为起点开始检测。
上面描述了对各组合逻辑门执行查找下一电路元件的操作的执行顺序,下面将参照图5描述确定候选组合逻辑门的示例方式。
作为示例,如图5所示,可以通过以下方式确定候选组合逻辑门:
在步骤S510,可以确定起点组合逻辑门,并且从当前记录中删除所确定的起点组合逻辑门。这里,在首次确定起点组合逻辑门时,将当前记录中的任一个组合逻辑门作为起点组合逻辑门。
具体来说,在执行查找操作的过程中,可以先确定起点组合逻辑门,在首次执行查找操作时,可以将作为当前起点的组合逻辑门作为起点组合逻辑门。例如,可以将当前记录中的第一个组合逻辑门作为起点组合逻辑门,以图12的初始的第一列表为例,可以将第一组合逻辑门Gate1作为起点组合逻辑门,并且从当前记录中删除第一组合逻辑门Gate1,例如可以得到图12中的第一次更新后的第一列表。
这里,需要说明的是,起点组合逻辑门是在每次查找操作的过程中确定的,而在上文中所述的“起点”,指的是每次查找操作的起点,每次查找操作具有一个起点,而每次查找操作可以涉及一个或多个起点组合逻辑门。在每次查找操作中首次确定起点组合逻辑门时,可以将当前查找操作的起点作为起点组合逻辑门。
在步骤S520,可以对起点组合逻辑门执行遍历输出路径的操作,查找候选组合逻辑门。
这里,遍历输出路径的操作可以用于查找起点组合逻辑门的每个输出路径上的下一个电路元件,其是对起点组合逻辑门的输出路径的遍历查找。作为示例,查找到的候选组合逻辑门可以记录到疑似存在组合逻辑环的第二列表中,以供后续检测。
作为示例,如图6所示,遍历输出路径的操作可以包括以下步骤:
在步骤S610,可以沿着未遍历的输出路径向前查找下一个电路元件。
这里,可以从起点组合逻辑门的未遍历的输出路径中选择任意一个输出路径,向前查找下一个电路元件。
在步骤S620,可以响应于下一个电路元件为另一组合逻辑门,在当前记录中查找该另一组合逻辑门,根据查找结果,确定下一个起点组合逻辑门。
在该步骤中,在起点组合逻辑门的某输出路径中的下一个电路元件为另一组合逻辑门的情况下,可以在当前记录中查找另一组合逻辑门,根据查找结果,可以判断该另一组合逻辑门是否已经被查找过,从而可以确定是否将该另一组合逻辑门作为下一个起点组合逻辑门。这里,根据查找结果确定下一个起点组合逻辑门的步骤将在下文中参照图7详细描述。
例如,如图11中所示,若起点组合逻辑门为第一组合逻辑门Gate1,其在一个输出路径上的下一个电路元件为第三组合逻辑门Gate3,则可以在当前记录(例如,图12中的第一次更新后的第一列表)中查找第三组合逻辑门Gate3,根据查找结果,确定下一个起点组合逻辑门。
在步骤S630,可以响应于不存在下一个电路元件或下一个电路元件为非组合逻辑门元件,继续执行遍历输出路径的步骤。
在该步骤中,在起点组合逻辑门的某输出路径中不存在下一个电路元件或者下一个电路元件不是组合逻辑门的情况下,可以认为信号在经过该输出路径后不会直接进入任何组合逻辑门,因此也不会在该输出路径后形成组合逻辑环,在此情况下,可以返回到遍历输出路径的步骤,继续遍历其他输出路径或者其他起点组合逻辑门的输出路径。
例如,如图11中所示,若起点组合逻辑门为第五组合逻辑门Gate5,其在一个输出路径P5-1上的下一个电路元件不是组合逻辑门,则可以继续遍历第五组合逻辑门Gate5的另一输出路径P5-2或者重新确定其他起点组合逻辑门,执行遍历输出路径的操作。
通过上述图5和图6所示的方式,可以通过确定起点组合逻辑门,并且对起点组合逻辑门执行遍历输出路径的操作,排查出起点组合逻辑门的输出路径中可能存在组合逻辑环的路径以及不会存在组合逻辑环的路径,避免遗漏可能存在的组合逻辑环。
此外,根据本申请的示例性实施例,遍历输出路径的操作还可以包括:根据起点组合逻辑门的未遍历的输出路径的数量,对起点组合逻辑门执行遍历输出路径的操作,查找候选组合逻辑门。
这里,在起点组合逻辑门的未遍历的输出路径为多个的情况下,构建临时队列,以记录起点组合逻辑门。
作为示例,根据起点组合逻辑门的未遍历的输出路径的数量,对起点组合逻辑门执行遍历输出路径的操作,查找候选组合逻辑门的步骤可以包括以下操作:可以响应于起点组合逻辑门的未遍历的输出路径为多个,针对任意一个未遍历的输出路径,执行查找候选组合逻辑门的操作,并且将起点组合逻辑门加入到临时队列中;可以响应于起点组合逻辑门的未遍历的输出路径为仅一个,针对未遍历的输出路径,执行查找候选组合逻辑门的操作。
具体来说,在未遍历的输出路径为多个的情况下,可以对任意一个未遍历的输出路径执行查找候选组合逻辑门的操作(例如上面参照图5所述的操作),并且可以将起点组合逻辑门加入到临时队列中。如此,可以确保临时队列中的组合逻辑门均至少有一个没有传播过信号的输出路径。
作为示例,临时队列可以具有先进后出的数据存储结构,通过设置这样的队列,可以确保对后加入到队列中的起点组合逻辑门进行输出路径遍历,即以与信号传播方向相反的方向对各起点组合逻辑门进行输出路径遍历,从而可以有序、无遗漏地执行输出路径遍历,满足按照合理顺序检测的要求。
例如,以图11为例,若以第一组合逻辑门Gate1为起点,按照第一组合逻辑门Gate1、第三组合逻辑门Gate3至第五组合逻辑门Gate5的顺序执行候选组合逻辑门查找的操作,由于这三个组合逻辑门均具有多个输出路径,因此,它们均会被加入到临时队列中。在此情况下,若按照先进后出的方式遍历各组合逻辑门的输出路径,则可以先对第五组合逻辑门Gate5执行输出路径遍历、再对第三组合逻辑门Gate3执行、再对第一组合逻辑门Gate1执行,如此可以有序、无遗漏地执行遍历,提高遍历效率。
在未遍历的输出路径为仅一个的情况下,可以对这一个输出路径执行查找候选组合逻辑门的操作。这里,响应于起点组合逻辑门的未遍历的输出路径为仅一个且起点组合逻辑门存在于临时队列,从临时队列中删除起点组合逻辑门。
具体来说,由于临时队列用于存储具有多个未遍历的输出路径的起点组合逻辑门,因此在未遍历的输出路径为仅一个的情况下,可以从临时队列中删除起点组合逻辑门。
如此,可以区分未遍历的输出路径的数量来执行遍历输出路径的操作,并且通过构建临时队列,用于记录具有多个尚未遍历的输出路径的起点组合逻辑门,避免遗漏输出路径。
下面将参照图7描述确定下一个起点组合逻辑门的步骤的示例。如图7所示,在步骤S620中,根据查找结果,确定下一个起点组合逻辑门的步骤可以包括以下操作:步骤S710、可以响应于在当前记录中查找到另一组合逻辑门,将另一组合逻辑门确定为下一个起点组合逻辑门;步骤S720、可以响应于在当前记录中未查找到另一组合逻辑门,根据该另一组合逻辑门的输出路径的遍历情况,对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作。
具体来说,由于如步骤S710中所述,在确定起点组合逻辑门时会将起点组合逻辑门从当前记录中删除,因此,在当前记录中查找到另一组合逻辑门的情况下,可以认为该另一组合逻辑门尚未从当前记录中删除,说明该另一组合逻辑门未作为起点组合逻辑门,也未对其执行过遍历输出路径的操作。在此情况下,在步骤S710中,可以将该另一组合逻辑门作为下一个起点组合逻辑门,以对其执行遍历输出路径的操作。
在当前记录中未查找到该另一组合逻辑门的情况下,可以认为该另一组合逻辑门已从当前记录中删除,说明该另一组合逻辑门已经作为起点组合逻辑门被执行过遍历输出路径的操作,而在此又作为某起点组合逻辑门的下一个电路元件。在此情况下,在步骤S720中,可以根据该另一组合逻辑门的输出路径的遍历情况,对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作,其具体操作示例将在下文中参照图8进行描述。
通过上述过程,可以根据是否在当前记录中查找到该另一组合逻辑门,判断该另一组合逻辑门是否已经被查找过,从而可以以合理的顺序和规则确定下一个起点组合逻辑门。
此外,根据本申请的示例性实施例,在起点组合逻辑门具有三个以上未遍历的输出路径的情况下,在本次遍历其中的一个路径后,起点组合逻辑门仍具有两个以上未遍历的输出路径(即,具有多个未遍历的输出路径),此时可能会将起点组合逻辑门重新加入到临时队列中。
对此,作为一示例,对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作的步骤可以包括:在临时队列不为空的情况下,将临时队列中位于队尾的起点组合逻辑门从临时队列中删除。如此,在每次对起点组合逻辑门的任一输出路径进行遍历后均会将该起点组合逻辑门从临时队列中删除(也可以认为是将该起点组合逻辑门从临时队列中“取出”),若该起点组合逻辑门仍具有多个未遍历的输出路径,则可以在下一次判断中重建将该起点组合逻辑门加入到临时队列中,避免临时队列中存在重复的起点组合逻辑门。
然而,本申请的示例性实施例不限于此,作为另一示例,将起点组合逻辑门加入到临时队列的步骤中也可以判断临时队列是否已存在该起点组合逻辑门,若存在,则认为该起点组合逻辑门已加入到临时队列,无需执行加入动作;若未存在,则可以执行加入动作。
下面将参照图8描述步骤S720中对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作的示例。在步骤S720中,如图8所示,对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作的步骤可以包括:
在步骤S810,可以响应于在当前记录中未查找到上述另一组合逻辑门,且该另一组合逻辑门的输出路径中存在已遍历的路径,则将该另一组合逻辑门作为候选组合逻辑门,并且对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤。
在步骤S820,可以响应于在当前记录中未查找到上述另一组合逻辑门,且该另一组合逻辑门的输出路径中不存在已遍历的路径,则对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤。
这里,该另一组合逻辑门的输出路径中的已遍历的路径是指在当前起点下已遍历过。
作为示例,判断该另一组合逻辑门是否为候选组合逻辑门的条件可以包括两方面,一方面是该另一组合逻辑门已经作为某起点下的起点组合逻辑门(在此情况下,会从当前记录中删除该另一组合逻辑门);另一方面是该另一组合逻辑门的任意输出路径已经在该起点下被遍历过。
具体来说,以图11为例,在以第一组合逻辑门Gate1为起点组合逻辑门查找下一个电路元件时,第四组合逻辑门Gate4会被查找到,因此第四组合逻辑门Gate4将会作为下一个起点组合逻辑门继续向前查找,并且将会从记录中被删除,其输出路径也会被遍历;而在以第二组合逻辑门Gate2为起点组合逻辑门查找下一个电路元件时,第四组合逻辑门Gate4会再次被查找到,此时第四组合逻辑门Gate4已不存在于当前的记录中,并且其输出路径已经被遍历过,但是该遍历过程是在以第一组合逻辑门Gate1为起点的情况下进行的,而并非在当前的起点(第二组合逻辑门Gate2)下被遍历,实际上在以第二组合逻辑门Gate2为起点的情况下,第四组合逻辑门Gate4的输出路径未被遍历过,因此其不会作为候选组合逻辑门。通过这样的判断,可以避免将在不同起点下被重复查找的组合逻辑门被误认为是候选组合逻辑门。
基于上述条件,在当前记录中未查找到上述另一组合逻辑门的情况下,说明该另一组合逻辑门已经满足上述第一方面的条件,即该另一组合逻辑门已经作为某起点下的起点组合逻辑门。在此情况下,还可以判断在当前起点,该另一组合逻辑门的输出路径中是否存在已遍历的路径。若存在已遍历过的路径,则该另一组合逻辑门可能是组合逻辑环中的一个节点,因此,可以作为候选组合逻辑门,需要进行进一步检测,并且可以继续对临时队列中队尾的起点组合逻辑门继续执行遍历输出路径的操作。若不存在已遍历过的路径,则无法确定该另一组合逻辑门是否为候选组合逻辑门,在此情况下,可以对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作。
此外,在上述步骤S810和S820中,在临时队列为空的情况下,可以将当前记录中的任一个组合逻辑门作为下一个起点组合逻辑门,直至当前记录中不存在组合逻辑门,例如可以将当前记录中的第一个组合逻辑门作为下一个起点组合逻辑门。
通过上面参照图8所述的操作,在作为某组合逻辑门的下一个组合逻辑门(即上述另一组合逻辑门)已经作为过起点组合逻辑门的情况下,可以根据其输出路径是否被遍历过来区分该组合逻辑门是否为候选组合逻辑门,避免将在不同起点下被重复查找的组合逻辑门被确定为候选组合逻辑门,从而避免在最终确定的候选组合逻辑门中包含干扰项,有利于进一步提高反馈环路的检测效率。
返回参照图4,在步骤S430,可以遍历所有候选组合逻辑门,对待检测电路进行组合逻辑环路检测。
在该步骤中,可以对各候选组合逻辑门进行组合逻辑环路检测,例如可以采用现有的检测方式进行检测,例如可以从一个候选组合逻辑门的扇出检测是否有信号到达其本身。
图9示出了对候选组合逻辑门进行检测的示例。如图9所示,遍历所有候选组合逻辑门,对待检测电路进行组合逻辑环路检测的步骤可以包括:步骤S910、可以针对每个候选组合逻辑门,检测从候选组合逻辑门出发的每个信号路径;步骤S920、可以将从候选组合逻辑门出发且到达候选组合逻辑门本身的信号路径确定为组合逻辑环路。
具体来说,可以对每个候选组合逻辑门进行逐一排查,查看是否存在由候选组合逻辑门出发、且指向其本身的组合逻辑环路,例如如图2所示的组合逻辑环路的情况。以图11所示的电路为例,在对第三组合逻辑门Gate3进行排查后,可以发现第三组合逻辑门Gate3和第五组合逻辑门Gate5形成了组合逻辑环路,如此,可以完成对待检测电路的组合逻辑环路检测。
此外,根据本申请的示例性实施例,上述以组合逻辑门中的任一个未被查找的组合逻辑门为起点的步骤的执行次数等于待检测电路的信号输入端的数量,其中,在每次执行过程中,所确定的候选组合逻辑门为一个或多个。
根据本申请的示例性实施例,可以在读取到设计文件后,根据从主输入端口到主输出端口的信号传播(traverse)顺序,将电路中的组合逻辑门进行记录,并且根据记录顺序,开展检测操作。在该过程中,每次操作可以检测(1+n)个组合逻辑门,n的数值取决于逻辑电路的具体情况,其取值范围是[0 , N-1],N表示所有组合逻辑门的数量,并且将检测过的组合逻辑门从记录列表中删除,达到精简检测的效果,操作的总执行次数可以等于待检测电路的信号输入端的数量,例如,在图11和图12的示例中操作的总执行次数可以为2。
具体来说,以图11和图12的示例为例,可以从第一列表的最前方选取一个组合逻辑门,并且将选取的组合逻辑门从第一列表中删除,从选取的组合逻辑门的一个没有传播过信号的输出路径开始向前传播信号,若遇到一个组合逻辑门,则将遇到的组合逻辑门进行重新选取,这里,任一时刻至多只有一个组合逻辑门被选取。
可以检查重新选取的组合逻辑门是否存在于第一列表中。若重新选取的组合逻辑门存在于第一列表中,则可以将其从第一列表中删除,继续选取新的组合逻辑门;若重新选取的组合逻辑门不存在于第一列表中,则进一步检查重新选取的组合逻辑门的任一输出引脚是否已经传播过信号。在重新选取的组合逻辑门不存在于第一列表中的情况下,若重新选取的组合逻辑门的任一输出引脚已经传播过信号,则将重新选取的组合逻辑门记录保存至第二列表中,作为候选组合逻辑门。
在检测完第一列表中的所有组合逻辑门之后(例如在第一列表清空后),可以对第二列表中的组合逻辑门进行重点检查,以确认最终的组合逻辑门反馈环路。由于第二列表中的组合逻辑门数量相比于最初第一列表中的组合逻辑门数量有了极大的减少,因此能够迅速快捷地确认最终的反馈环路,即使仅利用传统方法,也能够提高全局的检测效率。
基于候选组合逻辑门最终确认的反馈环路可能会有多个,因此可以分别获取每个反馈环路上的组合逻辑门,并且可以使EDA工具有针对性地进行后续操作,例如报警或者割断处理等。
下面将参照图10描述根据本申请的示例性实施例示出的确定候选组合逻辑电路的一示例的完整流程。
如图10所示,在步骤S1001,可以读取设计文件中的待检测电路,还可以分析设计文件中与待检测电路相关的信息,例如可以确定各个组合逻辑门、信号传播顺序等信息。
在步骤S1002,可以记录待检测电路中的组合逻辑门,例如,可以根据从主输入端口到主输出端口这样的方向按照信号传播顺序收集各组合逻辑门,将其依次记录保存在第一列表中,例如可以如图12所示的初始的第一列表。
在步骤S1003中,可以判断当前记录中是否存在组合逻辑门,若存在,则可以执行步骤S1004;若不存在,则可以结束整个检测流程。
在步骤S1004和步骤S1005中,可以从当前记录中确定起点组合逻辑门,并且可以从当前记录中删除起点组合逻辑门,例如,可以从第一列表的最前方选取一个组合逻辑门作为起点组合逻辑门,并且可以从第一列表中删除该起点组合逻辑门,以图11和图12为例,起点组合逻辑门可以为第一组合逻辑门Gate1,在删除该第一组合逻辑门Gate1后,当前记录可以如图12所示的第一次更新后的第一列表的形式。
在步骤S1006中,可以判断起点组合逻辑门的未遍历的输出路径是否为多个,若为多个,则执行步骤S1007;若不为多个(即,仅一个),则执行步骤S1008。
在步骤S1007中,可以针对任一未遍历路径,向前查找下一个电路元件,且将起点组合逻辑门加入到先进后出的临时队列。仍以上述示例为例,此时第一组合逻辑门Gate1的未遍历的输出路径为2个,可以将第一组合逻辑门Gate1加入到临时队列中,并且可以针对第一组合逻辑门Gate1的任一未遍历的输出路径(例如指向第三组合逻辑门Gate3的输出路径)向前查找。
在步骤S1008中,可以向前查找下一个电路元件,即可以针对仅一个未遍历的输出路径向前查找。这里,若起点组合逻辑门存在于临时队列,则从临时队列中删除该起点组合逻辑门。
在步骤S1009中,可以判断下一个电路元件是否为另一组合逻辑门,若为组合逻辑门,则执行步骤S1010;若不为组合逻辑门,例如为时序逻辑、用户未清楚定义的黑盒(blackbox)等单元(cell),则执行步骤S1011。
在步骤S1010中,可以判断在当前记录中是否查找到该另一组合逻辑门,若查找到,则执行步骤S1012;若未查找到,则执行步骤S1013。
在步骤S1012中,可以将该另一组合逻辑门作为下一个起点组合逻辑门,并且返回到步骤S1005,对新的起点组合逻辑门执行前述操作。例如,以图11为例,起点组合逻辑门可以为第一组合逻辑门Gate1,其下一个电路元件为第三组合逻辑门Gate3,在此情况下,可以在当前记录查找到该第三组合逻辑门Gate3,则可以将第三组合逻辑门Gate3作为下一个起点组合逻辑门,返回到步骤S1005。
在步骤S1013中,可以判断在当前起点下,该另一组合逻辑门是否存在已遍历的输出路径。若存在已遍历的输出路径,则执行步骤S1014;若不存在已遍历的输出路径,则结束当前路径的查找,执行步骤S1015。
在步骤S1014中,可以将该另一组合逻辑门作为候选组合逻辑门,并且可以继续执行步骤S1011。
在步骤S1011中,可以判断临时队列是否为空,若不为空,则执行步骤S1015;若为空,则执行步骤S1016。
在步骤S1015中,可以对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤,并且将位于队尾的起点组合逻辑门从临时队列中删除,然后对该位于队尾的起点组合逻辑门继续执行步骤S1006。
例如,在以第一组合逻辑门Gate1为起点、从第一组合逻辑门Gate1、第三组合逻辑门Gate3至第五组合逻辑门Gate5的路径中,由于在初次遍历输出路径时,第一组合逻辑门Gate1、第三组合逻辑门Gate3至第五组合逻辑门Gate5均具有多个未遍历的输出路径,因此这三个组合逻辑门在作为起点组合逻辑门时均会被加入到临时队列中,并且其加入的顺序为从第一组合逻辑门Gate1、第三组合逻辑门Gate3至第五组合逻辑门Gate5,因此,在临时队列中包括第一组合逻辑门Gate1、第三组合逻辑门Gate3至第五组合逻辑门Gate5的情况下,在步骤S1015中,可以先对位于队尾的第五组合逻辑门Gate5执行遍历输出路径的步骤,并且可以将该组合逻辑门从临时队列中删除,然后对该位于队尾的第五组合逻辑门Gate5继续执行步骤S1006。
在步骤S1016中,可以将当前记录中的第一个组合逻辑门作为下一个起点组合逻辑门,例如,在临时队列为空的情况下,可以从当前记录中再选取一个组合逻辑门作为下一个起点组合逻辑门,并且继续对其执行步骤S1005。例如,在以第一组合逻辑门Gate1为起点、从第一组合逻辑门Gate1、第三组合逻辑门Gate3至第五组合逻辑门Gate5的路径中,在第一组合逻辑门Gate1、第三组合逻辑门Gate3至第五组合逻辑门Gate5各自的输出路径均遍历完成后,临时队列中可能不存在任何逻辑门,而此时第一列表中还记录有其他组合逻辑门,例如第二组合逻辑门Gate2,此时,可以从当前记录中选取一个组合逻辑门作为下一个起点组合逻辑门对其执行步骤S1005。
基于上面描述的过程,可以对待检测电路中的各组合逻辑门进行初步筛查,确定疑似包含在组合逻辑环中的候选组合逻辑门,在上述过程中,这些候选组合逻辑门例如可以存储在第二列表中,在完成初步筛查后,可以对第二列表中的这些候选组合逻辑门进行二次检测,确认是否存在组合逻辑环,并且可以获取到每个组合逻辑环上的所有组合逻辑门。
图11和图12分别示出了一示例的组合逻辑电路及针对该电路确定候选组合逻辑门的过程。
参照上述图10的示例流程,以图11为例,可以先读取图11对应的设计文件,根据主输入端口到主输出端口的信号传播顺序收集组合逻辑门,将其依次记录保存在第一列表中,如图12所示的初始的第一列表。
可以从图12的初始的第一列表的最前方选取一个组合逻辑门作为起点组合逻辑门,例如为第一组合逻辑门Gate1,开始执行第1次查找操作。可以将第一组合逻辑门Gate1从第一列表中删除,如图12所示的第一次更新后的第一列表。
可以从第一组合逻辑门Gate1的一个输出路径开始向前传播(即遍历该输出路径),遇到下一个组合逻辑门为第三组合逻辑门Gate3。可以在当前的第一列表中查找到第三组合逻辑门Gate3,可以将第三组合逻辑门Gate3从第一列表中删除,如图12所示的第二次更新后的第一列表。这里,由于第一组合逻辑门Gate1的未遍历的输出路径为多个,因此,第一组合逻辑门Gate1被加入到临时队列中。
可以将第三组合逻辑门Gate3作为新的起点组合逻辑门,从第三组合逻辑门Gate3的输出路径开始向前传播,遇到下一个组合逻辑门为第五组合逻辑门Gate5。可以在当前的第一列表中查找到第五组合逻辑门Gate5,可以将第五组合逻辑门Gate5从第一列表中删除,如图12所示的第三次更新后的第一列表。这里,由于第三组合逻辑门Gate3的未遍历的输出路径为多个,因此,第三组合逻辑门Gate3被加入到临时队列中。
可以将第五组合逻辑门Gate5作为新的起点组合逻辑门,从第五组合逻辑门Gate5的输出路径开始向前传播,遇到下一个组合逻辑门为第三组合逻辑门Gate3。这里,由于第三组合逻辑门Gate3的未遍历的输出路径为多个,因此,第三组合逻辑门Gate3被加入到临时队列中。
此时,在当前的第一列表(即,如图12所示的第三次更新后的第一列表)中未查找到第三组合逻辑门Gate3,并且在本次操作过程中第三组合逻辑门Gate3的一个输出路径已经被传播过(即遍历过),因此,可以将第三组合逻辑门Gate3作为候选组合逻辑门,记录保存于疑似反馈环路的第二列表中,并且结束当前路径。
然后,可以继续遍历临时队列中队尾的组合逻辑门的其他未遍历的输出路径,即遍历第五组合逻辑门Gate5的另一输出路径,向前传播,遇到主输出端口,则可以结束当前路径。这里,可以将第五组合逻辑门Gate5从临时队列中删除。
然后,可以继续遍历临时队列中队尾的组合逻辑门的其他未遍历的输出路径,由第五组合逻辑门Gate5已被删除,此时第三组合逻辑门Gate3位于队尾,因此,可以继续遍历第三组合逻辑门Gate3的其他未遍历的输出路径,向前传播,遇到其他非组合逻辑门单元,则可以结束当前路径。这里,可以将第三组合逻辑门Gate3从临时队列中删除。
然后,可以继续遍历临时队列中队尾的组合逻辑门的其他未遍历的输出路径,由于第三组合逻辑门Gate3已被删除,此时第一组合逻辑门Gate1位于队尾,因此,可以继续遍历第一组合逻辑门Gate1的其他未遍历的输出路径,向前传播,遇到第四组合逻辑门Gate4。
可以在当前的第一列表(即,如图12所示的第三次更新后的第一列表)中查找到第四组合逻辑门Gate4,可以将第四组合逻辑门Gate4从第一列表中删除,如图12所示的第四次更新后的第一列表。这里,由于第四组合逻辑门Gate4的未遍历的输出路径为多个,因此,第四组合逻辑门Gate4被加入到临时队列中。
可以将第四组合逻辑门Gate4作为新的起点组合逻辑门,从第四组合逻辑门Gate4的输出路径开始向前传播,遇到下一个组合逻辑门为第五组合逻辑门Gate5。此时,在当前的第一列表(即,如图12所示的第四次更新后的第一列表)中未查找到第五组合逻辑门Gate5,并且在本次操作过程中第五组合逻辑门Gate5的一个输出路径已经被传播过,因此,可以将第五组合逻辑门Gate5作为候选组合逻辑门,记录保存于疑似反馈环路的第二列表中,并且结束当前路径。
可以继续遍历临时队列中队尾的组合逻辑门的其他未遍历的输出路径,即遍历第四组合逻辑门Gate4的另一输出路径,向前传播,遇到其他非组合逻辑门单元,则可以结束当前路径。这里,可以将第四组合逻辑门Gate4从临时队列中删除。
然后,可以从当前的第一列表(即,如图12所示的第四次更新后的第一列表)的最前方选取一个第二组合逻辑门Gate2,开始执行第2次查找操作。
可以将第二组合逻辑门Gate2从第一列表中删除,此时第一列表为空。可以从第二组合逻辑门Gate2的一个输出路径开始向前传播,遇到下一个组合逻辑门为第四组合逻辑门Gate4。此时,在当前的第一列表中未查找到第四组合逻辑门Gate4,而在本次操作过程中第四组合逻辑门Gate4的输出路径未被传播过(即未被遍历过),因此,可以结束当前路径。
至此,由于第一列表中不存在组合逻辑门,则结束初步筛查候选组合逻辑门的过程,并且可以确定第二列表中的第三组合逻辑门Gate3和第五组合逻辑门Gate5为候选组合逻辑门,可以对这两个组合逻辑门进行重点检测,完成对待检测电路的组合逻辑环路检测。
在上述示例中,若采用传统的检测方法,针对5个组合逻辑门需要单独进行5次传播判断是否存在反馈环路,而采用本申请的示例性实施例的方法,仅使用了2次操作(即上述第1次操作和第2次操作)即可完成5个组合逻辑门的判断,大大减少了检测次数、检测时间。
根据本申请的示例性实施例,可以有效的减少检测次数,与每次操作只能检测1个组合逻辑门的传统检测方法相比,本申请的示例性实施例的方法可以有效的提高检测效率,达到减少检测时间的效果。
图13是根据一示例性实施例示出的一种组合逻辑电路的环路检测装置的框图。该环路检测装置应用于集成电路电子设计自动化软件,参照图13,环路检测装置包括记录单元100、确定单元200和检测单元300。
记录单元100被配置为记录待检测电路中的所有组合逻辑门。
确定单元200被配置为以组合逻辑门中的任一个未被查找的组合逻辑门为起点,按照信号向前传播的顺序,针对信号经过的每个组合逻辑门的每个输出路径,向前查找下一个电路元件,将重复查找到的组合逻辑门确定为候选组合逻辑门,直至所记录的所有组合逻辑门均被查找到,其中,电路元件为组合逻辑门或非组合逻辑门元件。
检测单元300被配置为遍历所有候选组合逻辑门,对待检测电路进行组合逻辑环路检测。
作为示例,记录单元还被配置为通过以下方式记录待检测电路中的所有组合逻辑门:按照待检测电路的信号向前传播的顺序,记录待检测电路中的所有组合逻辑门,其中,组合逻辑门中作为起点的组合逻辑门为:当前未被向前查找的组合逻辑门中在信号路径上最靠近待检测电路的信号输入端的组合逻辑门。
作为示例,确定单元还被配置为通过以下方式确定候选组合逻辑门:确定起点组合逻辑门,并且从当前记录中删除所确定的起点组合逻辑门,其中,在首次确定起点组合逻辑门时,将作为当前起点的组合逻辑门作为起点组合逻辑门,对起点组合逻辑门执行遍历输出路径的操作,查找候选组合逻辑门,其中,遍历输出路径的操作包括:沿着未遍历的输出路径向前查找下一个电路元件;响应于下一个电路元件为另一组合逻辑门,在当前记录中查找另一组合逻辑门,根据查找结果,确定下一个起点组合逻辑门;响应于不存在下一个电路元件或下一个电路元件为非组合逻辑门元件,继续执行遍历输出路径的步骤。
作为示例,确定单元还被配置为:根据起点组合逻辑门的未遍历的输出路径的数量,对起点组合逻辑门执行遍历输出路径的操作,查找候选组合逻辑门,其中,在起点组合逻辑门的未遍历的输出路径为多个的情况下,构建临时队列,以记录起点组合逻辑门。
作为示例,确定单元还被配置为:响应于起点组合逻辑门的未遍历的输出路径为多个,针对任意一个未遍历的输出路径,执行查找候选组合逻辑门的操作,并且将起点组合逻辑门加入到临时队列中;响应于起点组合逻辑门的未遍历的输出路径为仅一个,针对未遍历的输出路径,执行查找候选组合逻辑门的操作,其中,响应于起点组合逻辑门的未遍历的输出路径为仅一个且起点组合逻辑门存在于临时队列,从临时队列中删除起点组合逻辑门。
作为示例,确定单元还被配置为:响应于在当前记录中查找到另一组合逻辑门,将另一组合逻辑门确定为下一个起点组合逻辑门;响应于在当前记录中未查找到另一组合逻辑门,根据另一组合逻辑门的输出路径的遍历情况,对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作,其中,临时队列具有先进后出的数据存储结构。
作为示例,确定单元还被配置为:响应于在当前记录中未查找到另一组合逻辑门,且另一组合逻辑门的输出路径中存在已遍历的路径,则将另一组合逻辑门作为候选组合逻辑门,并且对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤,其中,另一组合逻辑门的输出路径中的已遍历的路径是指在当前起点下已遍历过,响应于在当前记录中未查找到另一组合逻辑门,且另一组合逻辑门的输出路径中不存在已遍历的路径,则对临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤,其中,在临时队列为空的情况下,将当前记录中的任一个组合逻辑门作为下一个起点组合逻辑门,直至当前记录中不存在组合逻辑门。
作为示例,确定单元还被配置为:在临时队列不为空的情况下,将临时队列中位于队尾的起点组合逻辑门从临时队列中删除。
作为示例,上述以组合逻辑门中的任一个未被查找的组合逻辑门为起点的步骤的执行次数等于待检测电路的信号输入端的数量,其中,在每次执行过程中,所确定的候选组合逻辑门为一个或多个。
作为示例,检测单元还被配置为:针对每个候选组合逻辑门,检测从候选组合逻辑门出发的每个信号路径;将从候选组合逻辑门出发且到达候选组合逻辑门本身的信号路径确定为组合逻辑环路。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图14是根据一示例性实施例示出的一种电子设备的框图。如图14所示,电子设备10包括处理器101和用于存储处理器可执行指令的存储器102。这里,处理器可执行指令在被处理器运行时,促使处理器执行如上述示例性实施例所述的环路检测方法。
作为示例,电子设备10并非必须是单个的设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备10还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的服务器。
在电子设备10中,处理器101可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器101还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器101可运行存储在存储器102中的指令或代码,其中,存储器102还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器102可与处理器101集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器102可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器102和处理器101可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器101能够读取存储在存储器102中的文件。
此外,电子设备10还可以包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备10的所有组件可经由总线和/或网络而彼此连接。
在示例性实施例中,还可提供一种计算机可读存储介质,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如上述示例性实施例所述的环路检测方法。计算机可读存储介质例如可以是包括指令的存储器,可选地,计算机可读存储介质可以是:只读存储器(ROM)、随机存取存储器(RAM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
此外,还需要说明的是,尽管上面参照具体附图描述了各步骤的若干示例,但是应理解的是,本申请的实施方式不限于示例中给出的组合,不同附图中出现的步骤可以相结合,在此不作出穷举。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由权利要求来限制。
Claims (13)
1.一种组合逻辑电路的环路检测方法,其特征在于,所述环路检测方法应用于集成电路电子设计自动化软件,其中,所述环路检测方法包括:
记录待检测电路中的所有组合逻辑门;
以所述组合逻辑门中的任一个未被查找的组合逻辑门为起点,按照信号向前传播的顺序,针对信号经过的每个组合逻辑门的每个输出路径,向前查找下一个电路元件,将重复查找到的组合逻辑门确定为候选组合逻辑门,直至所记录的所有组合逻辑门均被查找到,其中,所述电路元件为组合逻辑门或非组合逻辑门元件;
遍历所有候选组合逻辑门,对所述待检测电路进行组合逻辑环路检测。
2.根据权利要求1所述的环路检测方法,其特征在于,通过以下方式记录所述待检测电路中的所有组合逻辑门:
按照所述待检测电路的信号向前传播的顺序,记录所述待检测电路中的所有组合逻辑门,
其中,所述组合逻辑门中作为起点的组合逻辑门为:当前未被向前查找的组合逻辑门中在信号路径上最靠近所述待检测电路的信号输入端的组合逻辑门。
3.根据权利要求1或2所述的环路检测方法,其特征在于,通过以下方式确定所述候选组合逻辑门:
确定起点组合逻辑门,并且从当前记录中删除所确定的起点组合逻辑门,其中,在首次确定起点组合逻辑门时,将作为当前起点的组合逻辑门作为起点组合逻辑门,
对所述起点组合逻辑门执行遍历输出路径的操作,查找所述候选组合逻辑门,
其中,所述遍历输出路径的操作包括:
沿着未遍历的输出路径向前查找下一个电路元件;
响应于所述下一个电路元件为另一组合逻辑门,在当前记录中查找所述另一组合逻辑门,根据查找结果,确定下一个起点组合逻辑门;
响应于不存在下一个电路元件或所述下一个电路元件为非组合逻辑门元件,继续执行所述遍历输出路径的步骤。
4.根据权利要求3所述的环路检测方法,其特征在于,所述遍历输出路径的操作还包括:
根据所述起点组合逻辑门的未遍历的输出路径的数量,对所述起点组合逻辑门执行遍历输出路径的操作,查找所述候选组合逻辑门,
其中,在所述起点组合逻辑门的未遍历的输出路径为多个的情况下,构建临时队列,以记录所述起点组合逻辑门。
5.根据权利要求4所述的环路检测方法,其特征在于,所述根据所述起点组合逻辑门的未遍历的输出路径的数量,对所述起点组合逻辑门执行遍历输出路径的操作,查找所述候选组合逻辑门的步骤包括:
响应于所述起点组合逻辑门的未遍历的输出路径为多个,针对任意一个所述未遍历的输出路径,执行查找所述候选组合逻辑门的操作,并且将所述起点组合逻辑门加入到临时队列中;
响应于所述起点组合逻辑门的未遍历的输出路径为仅一个,针对所述未遍历的输出路径,执行查找所述候选组合逻辑门的操作,
其中,响应于所述起点组合逻辑门的未遍历的输出路径为仅一个且所述起点组合逻辑门存在于所述临时队列,从所述临时队列中删除所述起点组合逻辑门。
6.根据权利要求4所述的环路检测方法,其特征在于,所述根据查找结果,确定下一个起点组合逻辑门的步骤包括:
响应于在当前记录中查找到所述另一组合逻辑门,将所述另一组合逻辑门确定为下一个起点组合逻辑门;
响应于在当前记录中未查找到所述另一组合逻辑门,根据所述另一组合逻辑门的输出路径的遍历情况,对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作,
其中,所述临时队列具有先进后出的数据存储结构。
7.根据权利要求6所述的环路检测方法,其特征在于,所述对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作的步骤包括:
响应于在当前记录中未查找到所述另一组合逻辑门,且所述另一组合逻辑门的输出路径中存在已遍历的路径,则将所述另一组合逻辑门作为候选组合逻辑门,并且对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤,其中,所述另一组合逻辑门的输出路径中的已遍历的路径是指在当前起点下已遍历过,
响应于在当前记录中未查找到所述另一组合逻辑门,且所述另一组合逻辑门的输出路径中不存在已遍历的路径,则对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的步骤,
其中,在所述临时队列为空的情况下,将当前记录中的任一个组合逻辑门作为下一个起点组合逻辑门,直至当前记录中不存在组合逻辑门。
8.根据权利要求6所述的环路检测方法,其特征在于,所述对所述临时队列中位于队尾的起点组合逻辑门执行遍历输出路径的操作的步骤包括:
在所述临时队列不为空的情况下,将所述临时队列中位于队尾的起点组合逻辑门从所述临时队列中删除。
9.根据权利要求1或2所述的环路检测方法,其特征在于,所述以所述组合逻辑门中的任一个未被查找的组合逻辑门为起点的步骤的执行次数等于所述待检测电路的信号输入端的数量,
其中,在每次执行过程中,所确定的候选组合逻辑门为一个或多个。
10.根据权利要求1或2所述的环路检测方法,其特征在于,所述遍历所有候选组合逻辑门,对所述待检测电路进行组合逻辑环路检测的步骤包括:
针对每个候选组合逻辑门,检测从所述候选组合逻辑门出发的每个信号路径;
将从所述候选组合逻辑门出发且到达所述候选组合逻辑门本身的信号路径确定为组合逻辑环路。
11.一种组合逻辑电路的环路检测装置,其特征在于,所述环路检测装置应用于集成电路电子设计自动化软件,其中,所述环路检测装置包括:
记录单元,被配置为记录待检测电路中的所有组合逻辑门;
确定单元,被配置为以所述组合逻辑门中的任一个未被查找的组合逻辑门为起点,按照信号向前传播的顺序,针对信号经过的每个组合逻辑门的每个输出路径,向前查找下一个电路元件,将重复查找到的组合逻辑门确定为候选组合逻辑门,直至所记录的所有组合逻辑门均被查找到,其中,所述电路元件为组合逻辑门或非组合逻辑门元件;
检测单元,被配置为遍历所有候选组合逻辑门,对所述待检测电路进行组合逻辑环路检测。
12.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器可执行指令在被所述处理器运行时,促使所述处理器执行根据权利要求1至10中任一项所述的环路检测方法。
13.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行根据权利要求1至10中任一项所述的环路检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311478835.3A CN117250480B (zh) | 2023-11-08 | 2023-11-08 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311478835.3A CN117250480B (zh) | 2023-11-08 | 2023-11-08 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117250480A true CN117250480A (zh) | 2023-12-19 |
CN117250480B CN117250480B (zh) | 2024-02-23 |
Family
ID=89129720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311478835.3A Active CN117250480B (zh) | 2023-11-08 | 2023-11-08 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117250480B (zh) |
Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095454A (en) * | 1989-05-25 | 1992-03-10 | Gateway Design Automation Corporation | Method and apparatus for verifying timing during simulation of digital circuits |
JP2001042012A (ja) * | 1999-07-29 | 2001-02-16 | Mitsubishi Electric Corp | テストパターン生成装置、ループ切断方法、伝播経路切断方法、遅延故障検出方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2002169852A (ja) * | 2000-12-01 | 2002-06-14 | Nec Microsystems Ltd | ループ回路における発振構成箇所の検出方法 |
US20040117697A1 (en) * | 2002-12-17 | 2004-06-17 | International Business Machines Corporation | Feedback cycle detection across non-scan memory elements |
CN1741489A (zh) * | 2005-09-01 | 2006-03-01 | 西安交通大学 | 构建多机系统高可用的自愈合逻辑环故障检测与容忍方法 |
US20060075367A1 (en) * | 2004-10-01 | 2006-04-06 | Chan Terence W | RaceCheck: A Race Logic Ana,yzer Program for Digital Integrated Circuits |
CN102067087A (zh) * | 2008-06-27 | 2011-05-18 | 高通股份有限公司 | 环路控制系统及方法 |
CN103618650A (zh) * | 2013-12-05 | 2014-03-05 | 用友软件股份有限公司 | 环路检测方法及系统 |
CN104079265A (zh) * | 2014-06-23 | 2014-10-01 | 四川和芯微电子股份有限公司 | 高速时钟占空比检测系统 |
CN104765914A (zh) * | 2015-03-27 | 2015-07-08 | 国家电网公司 | 一种继电保护设备逻辑组态方法 |
CN106411316A (zh) * | 2016-09-06 | 2017-02-15 | 北京深维科技有限公司 | 一种查找表工艺映射方法 |
CN108228409A (zh) * | 2017-12-29 | 2018-06-29 | 南京国电南自维美德自动化有限公司 | 一种基于信号流的算法执行顺序生成方法 |
CN108256337A (zh) * | 2018-02-26 | 2018-07-06 | 北京阿尔山金融科技有限公司 | 智能合约漏洞检测方法、装置及电子设备 |
CN109032850A (zh) * | 2017-06-09 | 2018-12-18 | 横河电机株式会社 | 现场装置调试系统和现场装置调试方法 |
CN111429608A (zh) * | 2018-12-20 | 2020-07-17 | 夏敬懿 | 锁封装置 |
CN111898264A (zh) * | 2020-07-24 | 2020-11-06 | 贵州电网有限责任公司 | 一种基于案例预制的配电自动化现场测试方法及系统 |
CN112115667A (zh) * | 2020-08-05 | 2020-12-22 | 深圳市紫光同创电子有限公司 | Fpga布局方法、装置、电子设备和计算机可读介质 |
CN112784511A (zh) * | 2019-11-11 | 2021-05-11 | 杭州起盈科技有限公司 | 一种组合逻辑环路的自动拆除方法 |
CN112910089A (zh) * | 2021-01-25 | 2021-06-04 | 国网山东省电力公司青岛供电公司 | 一种变电站二次设备故障逻辑可视化方法及系统 |
CN114397124A (zh) * | 2022-01-11 | 2022-04-26 | 厦门安科科技有限公司 | 拆楼机中各机构的交互检测方法及检测装置 |
CN116223937A (zh) * | 2022-12-08 | 2023-06-06 | 华电电力科学研究院有限公司 | 一种异常检测方法、装置、设备以及计算机可读存储介质 |
CN116257256A (zh) * | 2022-12-01 | 2023-06-13 | 爱普(福建)科技有限公司 | 一种面向控制逻辑组态软件的逻辑链接管理方法及系统 |
CN116301877A (zh) * | 2022-12-01 | 2023-06-23 | 爱普(福建)科技有限公司 | 一种面向控制逻辑组态软件的逻辑分析管理方法及系统 |
CN116821437A (zh) * | 2023-08-30 | 2023-09-29 | 英诺达(成都)电子科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN116882332A (zh) * | 2023-08-01 | 2023-10-13 | 深圳华大九天科技有限公司 | 一种基于spice仿真验证环形振荡器子电路特征的方法 |
-
2023
- 2023-11-08 CN CN202311478835.3A patent/CN117250480B/zh active Active
Patent Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095454A (en) * | 1989-05-25 | 1992-03-10 | Gateway Design Automation Corporation | Method and apparatus for verifying timing during simulation of digital circuits |
JP2001042012A (ja) * | 1999-07-29 | 2001-02-16 | Mitsubishi Electric Corp | テストパターン生成装置、ループ切断方法、伝播経路切断方法、遅延故障検出方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2002169852A (ja) * | 2000-12-01 | 2002-06-14 | Nec Microsystems Ltd | ループ回路における発振構成箇所の検出方法 |
US20040117697A1 (en) * | 2002-12-17 | 2004-06-17 | International Business Machines Corporation | Feedback cycle detection across non-scan memory elements |
CN1508558A (zh) * | 2002-12-17 | 2004-06-30 | �Ҵ���˾ | 非扫描存储器元件上的反馈循环检测方法和系统 |
US20060075367A1 (en) * | 2004-10-01 | 2006-04-06 | Chan Terence W | RaceCheck: A Race Logic Ana,yzer Program for Digital Integrated Circuits |
CN1741489A (zh) * | 2005-09-01 | 2006-03-01 | 西安交通大学 | 构建多机系统高可用的自愈合逻辑环故障检测与容忍方法 |
CN102067087A (zh) * | 2008-06-27 | 2011-05-18 | 高通股份有限公司 | 环路控制系统及方法 |
CN103618650A (zh) * | 2013-12-05 | 2014-03-05 | 用友软件股份有限公司 | 环路检测方法及系统 |
CN104079265A (zh) * | 2014-06-23 | 2014-10-01 | 四川和芯微电子股份有限公司 | 高速时钟占空比检测系统 |
CN104765914A (zh) * | 2015-03-27 | 2015-07-08 | 国家电网公司 | 一种继电保护设备逻辑组态方法 |
CN106411316A (zh) * | 2016-09-06 | 2017-02-15 | 北京深维科技有限公司 | 一种查找表工艺映射方法 |
CN109032850A (zh) * | 2017-06-09 | 2018-12-18 | 横河电机株式会社 | 现场装置调试系统和现场装置调试方法 |
CN108228409A (zh) * | 2017-12-29 | 2018-06-29 | 南京国电南自维美德自动化有限公司 | 一种基于信号流的算法执行顺序生成方法 |
CN108256337A (zh) * | 2018-02-26 | 2018-07-06 | 北京阿尔山金融科技有限公司 | 智能合约漏洞检测方法、装置及电子设备 |
CN111429608A (zh) * | 2018-12-20 | 2020-07-17 | 夏敬懿 | 锁封装置 |
CN112784511A (zh) * | 2019-11-11 | 2021-05-11 | 杭州起盈科技有限公司 | 一种组合逻辑环路的自动拆除方法 |
CN111898264A (zh) * | 2020-07-24 | 2020-11-06 | 贵州电网有限责任公司 | 一种基于案例预制的配电自动化现场测试方法及系统 |
CN112115667A (zh) * | 2020-08-05 | 2020-12-22 | 深圳市紫光同创电子有限公司 | Fpga布局方法、装置、电子设备和计算机可读介质 |
CN112910089A (zh) * | 2021-01-25 | 2021-06-04 | 国网山东省电力公司青岛供电公司 | 一种变电站二次设备故障逻辑可视化方法及系统 |
CN114397124A (zh) * | 2022-01-11 | 2022-04-26 | 厦门安科科技有限公司 | 拆楼机中各机构的交互检测方法及检测装置 |
CN116257256A (zh) * | 2022-12-01 | 2023-06-13 | 爱普(福建)科技有限公司 | 一种面向控制逻辑组态软件的逻辑链接管理方法及系统 |
CN116301877A (zh) * | 2022-12-01 | 2023-06-23 | 爱普(福建)科技有限公司 | 一种面向控制逻辑组态软件的逻辑分析管理方法及系统 |
CN116223937A (zh) * | 2022-12-08 | 2023-06-06 | 华电电力科学研究院有限公司 | 一种异常检测方法、装置、设备以及计算机可读存储介质 |
CN116882332A (zh) * | 2023-08-01 | 2023-10-13 | 深圳华大九天科技有限公司 | 一种基于spice仿真验证环形振荡器子电路特征的方法 |
CN116821437A (zh) * | 2023-08-30 | 2023-09-29 | 英诺达(成都)电子科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
倪韬雍;金乃咏;: "基于有向图深度优先遍历的组合反馈环路检测算法", 计算机应用与软件, no. 06, 15 June 2008 (2008-06-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117250480B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7162706B2 (en) | Method for analyzing and validating clock integration properties in circuit systems | |
US10467365B1 (en) | Systems and methods for calculating common clock path pessimism for hierarchical timing analysis in an electronic design | |
US7587690B1 (en) | Method and system for global coverage analysis | |
US7707530B2 (en) | Incremental timing-driven, physical-synthesis using discrete optimization | |
KR20220148913A (ko) | 초기 단계 회로 설계에서 기계 학습 기반 메트릭 예측 | |
US20180359852A1 (en) | Modifying a Circuit Design | |
US10303833B1 (en) | Parallelizing timing-based operations for circuit designs | |
US20210350053A1 (en) | Determining and verifying metastability in clock domain crossings | |
US8245166B2 (en) | Optimal correlated array abstraction | |
US11146251B2 (en) | Performance-screen ring oscillator with switchable features | |
CN117250480B (zh) | 组合逻辑电路的环路检测方法、装置、设备及存储介质 | |
US10565338B2 (en) | Equivalency verification for hierarchical references | |
US8108821B2 (en) | Reduction of logic and delay through latch polarity inversion | |
US20140331199A1 (en) | Detecting corresponding paths in combinationally equivalent circuit designs | |
KR20220141489A (ko) | 메모리 장치의 설계에서 클록 도메인 크로싱 위반을 검출 하는 컴퓨팅 장치 및 방법 | |
JP4644142B2 (ja) | クリティカルパス推定プログラム、推定装置、推定方法、および集積回路設計プログラム。 | |
US20210064790A1 (en) | Scalable formal security verification of circuit designs | |
CN117113897B (zh) | 基于标准单元的信息关联方法、装置、设备及存储介质 | |
JP5146369B2 (ja) | 回路設計プログラム、回路設計方法および回路設計装置 | |
CN117907812A (zh) | 电路检测方法及装置、电子设备、存储介质、程序产品 | |
US9852259B2 (en) | Area and/or power optimization through post-layout modification of integrated circuit (IC) design blocks | |
US7519928B2 (en) | Method for propagating phase constants in static model analysis of circuits | |
CN118033392A (zh) | 电路检测方法及装置、电子设备、存储介质、程序产品 | |
US20240086602A1 (en) | Clock relationship based re-convergence analysis | |
JP7351189B2 (ja) | タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム |
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 |