CN112784511B - 一种组合逻辑环路的自动拆除方法 - Google Patents
一种组合逻辑环路的自动拆除方法 Download PDFInfo
- Publication number
- CN112784511B CN112784511B CN201911092917.8A CN201911092917A CN112784511B CN 112784511 B CN112784511 B CN 112784511B CN 201911092917 A CN201911092917 A CN 201911092917A CN 112784511 B CN112784511 B CN 112784511B
- Authority
- CN
- China
- Prior art keywords
- logic
- input
- cone
- loop
- combination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种组合逻辑环路的自动拆除方法,包括以下步骤:S10,采用递归方式,搜索网表中的组合逻辑环路;S20,针对已搜索到的组合逻辑环路中的一个组合逻辑门,生成其输入组合逻辑锥;S30,由输出向输入方向,遍历生成的输入组合逻辑锥,基于锥内每个组合逻辑门的自身逻辑特性,生成组合逻辑锥输出与输入之间关系的逻辑表达式;S40,对逻辑表达式进行卡诺化简;S50,对组合逻辑环路中的每一个组合逻辑门,重复S20‑40直至拆除组合逻辑环路。本发明对数字电路网表进行分析,自动查找数字电路网表中存在的组合逻辑环路,并通过自动逻辑分析删除无效的器件或输入。
Description
技术领域
本发明属于电子电路领域,具体涉及一种组合逻辑环路的自动拆除方法。
背景技术
在集成电路的逆向分析技术中,数字电路的分析整理是一个重要分支。在分析整理数字电路时,常常会遇到逻辑器件网表中存在组合逻辑环路的情况。很多当前主流的分析工具,如时序分析、逻辑等效检查等分析软件,都对其无能为力。通常我们只能通过人工干预的方式设置各种约束条件,才能让工具软件得以正常运行。而当组合逻辑环路的数量比较多时,这种人工操作会变得非常耗时甚至是无法实现的。
在数字集成电路设计中,真正有效的组合逻辑环路其实很少出现,我们在分析电路时遇到的这些组合逻辑环路绝大多数都是无效的,即这些环路中的某一处或几处在物理上是连接的但在逻辑上是断开的,对芯片工作不会产生任何影响。大量存在的这种无效的组合逻辑环路会打乱芯片之间的正常连接关系,严重影响对网表进行模块化分析。
图1所示为一个简单的组合逻辑环路,其中gate5-gate6-dff1构成的环路中包含触发器,属于正常的数字电路设计;gate1-gate2-gate3-gate4-gate5由纯粹的组合逻辑门组成,就是我们要研究的组合逻辑环路。通常这个环路的某一处或几处经过逻辑分析可以被打断,但这种人工的逻辑分析常常需要耗费大量时间。
将上图稍加修改,参见图2,便构成了一个典型的无效组合逻辑环路,无论输入信号net1和net5是1或0,net2总是为0。所以图中的两个组合逻辑门nand2和nor2都是无效的,删除后就可以打断这个组合逻辑环路。但是在真实的电路中,组合逻辑环路会包含更多的器件,逻辑也更加复杂,人工查找和分析的工作量常常是难以承受的。
发明内容
鉴于以上存在的技术问题,本发明用于提供一种对数字电路网表进行分析,自动查找数字电路网表中存在的组合逻辑环路,并通过自动逻辑分析删除无效的器件或输入的方法。
采用如下的技术方案:
S10,采用递归方式,搜索网表中的组合逻辑环路;
S20,针对已搜索到的组合逻辑环路中的一个组合逻辑门,生成其输入组合逻辑锥;
S30,由输出向输入方向,遍历生成的输入组合逻辑锥,基于锥内每个组合逻辑门的自身逻辑特性,生成组合逻辑锥输出与输入之间关系的逻辑表达式;
S40,对逻辑表达式进行卡诺化简;
S50,对组合逻辑环路中的每一个组合逻辑门,重复S20-40直至拆除组合逻辑环路。
优选地,所述采用递归方式,搜索网表中的组合逻辑环路包括以下步骤:
S11,起始点为网表输入端、触发器输出端和锁存器输出端;
S12,结束点为网表输出端、触发器输入端和锁存器输入端;
S13,选择一个起始点出发开始搜索;
S14,得到该点的所有负载器件;
S15,选择一个负载器件,将其记入当前搜索列表,得到其所有输出;
S16,选择一个输出,重复S14-16,直至到达结束点,或者S15时发现该负载器件已经存在于搜索列表中;
S17,根据搜索列表,搜索当前器件下一个输出,或退回上一个负载器件,或搜索下一个起始点,直至完成整个网表的搜索。
优选地,所述针对已搜索到的组合逻辑环路中的一个组合逻辑门,生成其输入组合逻辑锥包括以下步骤:
S21,将一组合逻辑门加入组合逻辑锥,并得到其所有输入;
S22,选择一个输入,判断其所有负载是否在组合逻辑锥内;
S23,是,且此输入的驱动器件为组合逻辑门,则将其加入组合逻辑锥;
S24,否,则暂时保存该输入,在其后的搜索中若能将其所有负载加入组合逻辑锥,仍将此输入的驱动器件加入组合逻辑锥;
S25,继续搜索下一个输入;若有新的驱动器件被加入组合逻辑锥,则继续遍历其所有输入,直至无法加入更多器件。
优选地,所述对逻辑表达式进行卡诺化简包括以下步骤:
S41,分析化简后的逻辑表达式,查找是否存在组合逻辑锥的输入不在表达式右端;
S42,是,则将该输入从组合逻辑锥内的器件输入端删除,用固定电平0或1来替代;
S43,根据组合逻辑门的自身逻辑特性,基于固定输入电平进行器件的化简;
S44,若删除的输入或器件是属于组合逻辑环路的路径,则组合逻辑环路便已被拆除。
采用本发明具有如下的有益效果:完全填补了当前数字电路网表中组合逻辑环路分析整理的空白,当前业内针对组合逻辑环路缺乏自动化的处理方法,基本完全是依靠人工进行处理,或是人工逻辑分析化简,或是置之不理只在必要时人工加约束处理,给数字电路网表分析工作造成极大的障碍。使用本发明所述的方法,通过程序化方法实现,可以极大的减轻集成电路逆向分析工程师的人工工作量,提高处理组合逻辑环路的速度和准确性。
本发明提供的数字集成电路中组合逻辑环路的自动拆除方法,对数字电路网表的进行分析,可以自动查找数字电路网表中存在的组合逻辑环路,并通过自动逻辑分析删除无效的器件或输入,从而达到拆除组合逻辑环路的目的。相比于现有技术中的分析整理方法,至少具有以下优点:
1.程序化自动分析,分析整理速度大幅度提高;
2.避免了传统的人工分析过程可能出现的失误,节省debug时间。
附图说明
图1为本发明一示例的组合逻辑环路示意图;
图2为图1修改后的组合逻辑环路示意图;
图3为本发明实施例的一种组合逻辑环路的自动拆除方法的步骤流程图图;
图4为本发明实施例的一种组合逻辑环路的自动拆除方法的S10具体步骤流程图;
图5为本发明实施例的一种组合逻辑环路的自动拆除方法的S20具体步骤流程图;
图6为本发明实施例的一种组合逻辑环路的自动拆除方法的S20中组合逻辑锥的示意图;
图7为本发明实施例的一种组合逻辑环路的自动拆除方法的S40具体步骤流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图3,本发明公开了一种组合逻辑环路的自动拆除方法,
包括以下步骤:
S10,采用递归方式,搜索网表中的组合逻辑环路;
S20,针对已搜索到的组合逻辑环路中的一个组合逻辑门,生成其输入组合逻辑锥;
S30,由输出向输入方向,遍历生成的输入组合逻辑锥,基于锥内每个组合逻辑门的自身逻辑特性,生成组合逻辑锥输出与输入之间关系的逻辑表达式;
S40,对逻辑表达式进行卡诺化简;
S50,对组合逻辑环路中的每一个组合逻辑门,重复S20-40直至拆除组合逻辑环路。
S10具体实施例
参见图4,S10,采用递归方式,搜索网表中的组合逻辑环路包括以下步骤:
S11,起始点为网表输入端、触发器输出端和锁存器输出端;
S12,结束点为网表输出端、触发器输入端和锁存器输入端;
S13,选择一个起始点出发开始搜索;
S14,得到该点的所有负载器件;
S15,选择一个负载器件,将其记入当前搜索列表,得到其所有输出;
S16,选择一个输出,重复S14-16,直至到达结束点,或者S15时发现该负载器件已经存在于搜索列表中;
S17,根据搜索列表,搜索当前器件下一个输出,或退回上一个负载器件,或搜索下一个起始点,直至完成整个网表的搜索。
S20具体实施例
参见图5,S20,针对已搜索到的组合逻辑环路中的一个组合逻辑门,生成其输入组合逻辑锥包括以下步骤:
S21,将一组合逻辑门加入组合逻辑锥,并得到其所有输入;
S22,选择一个输入,判断其所有负载是否在组合逻辑锥内;
S23,是,且此输入的驱动器件为组合逻辑门,则将其加入组合逻辑锥;
S24,否,则暂时保存该输入,在其后的搜索中若能将其所有负载加入组合逻辑锥,仍将此输入的驱动器件加入组合逻辑锥;
S25,继续搜索下一个输入;若有新的驱动器件被加入组合逻辑锥,则继续遍历其所有输入,直至无法加入更多器件。
参见图6,虚线框内为一个组合逻辑锥,输入A、B、C经过框内器件产生了输出Y。
具体实施例中,S30,生成组合逻辑锥输出与输入之间关系的逻辑表达式为Y=(~A&B&~C)|(A&~C)|(B&C)|(A&~B&C)。
S40具体实施例
参见图7,S40,对逻辑表达式进行卡诺化简包括以下步骤:
S41,分析化简后的逻辑表达式,查找是否存在组合逻辑锥的输入不在表达式右端,上述具体实施例中S30的逻辑表达式可以化简为Y=A|B,
S42,是,则将该输入从组合逻辑锥内的器件输入端删除,如上式中的输入C便不再化简后的表达式右端,可用固定电平0或1来替代;
S43,根据组合逻辑门的自身逻辑特性,基于固定输入电平进行器件的化简,如具体实施例:一个非门输入固定为0,则可以删除此非门,并将其输出固定为1;
S44,若删除的输入或器件是属于组合逻辑环路的路径,则组合逻辑环路便已被拆除。
通过上述方法,从网状的数字电路结构中,搜索出所有存在的组合逻辑环路,对通过递归方法找到的组合逻辑环路进行遍历,对其中每一个组合逻辑门按照前述方法生成输入组合逻辑锥,并生成组合逻辑锥相对应的逻辑表达式;对生成的每一个逻辑表达式进行卡诺化简,比较组合逻辑锥输入和逻辑表达式右端,删除逻辑表达式右端不存在的组合逻辑锥输入,用固定电平0或1加以替代;对输入为固定电平的组合逻辑门基于其自有逻辑特性进行再次化简、删除。组合逻辑环路在删除上述输入和器件的同时,被自动拆除。
应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。
Claims (1)
1.一种组合逻辑环路的自动拆除方法,其特征在于,包括以下步骤:
S10,采用递归方式,搜索网表中的组合逻辑环路;
S20,针对已搜索到的组合逻辑环路中的一个组合逻辑门,生成其输入组合逻辑锥;
S30,由输出向输入方向,遍历生成的输入组合逻辑锥,基于锥内每个组合逻辑门的自身逻辑特性,生成组合逻辑锥输出与输入之间关系的逻辑表达式;
S40,对逻辑表达式进行卡诺化简;
S50,对组合逻辑环路中的每一个组合逻辑门,重复S20-40直至拆除组合逻辑环路;
所述采用递归方式,搜索网表中的组合逻辑环路包括以下步骤:
S11,起始点为网表输入端、触发器输出端和锁存器输出端;
S12,结束点为网表输出端、触发器输入端和锁存器输入端;
S13,选择一个起始点出发开始搜索;
S14,得到该点的所有负载器件;
S15,选择一个负载器件,将其记入当前搜索列表,得到其所有输出;
S16,选择一个输出,重复S14-16,直至到达结束点,或者S15时发现该负载器件已经存在于搜索列表中;
S17,根据搜索列表,搜索当前器件下一个输出,或退回上一个负载器件,或搜索下一个起始点,直至完成整个网表的搜索;
所述针对已搜索到的组合逻辑环路中的一个组合逻辑门,生成其输入组合逻辑锥包括以下步骤:
S21,将一组合逻辑门加入组合逻辑锥,并得到其所有输入;
S22,选择一个输入,判断其所有负载是否在组合逻辑锥内;
S23,是,且此输入的驱动器件为组合逻辑门,则将其加入组合逻辑锥;
S24,否,则暂时保存该输入,在其后的搜索中若能将其所有负载加入组合逻辑锥,仍将此输入的驱动器件加入组合逻辑锥;
S25,继续搜索下一个输入;若有新的驱动器件被加入组合逻辑锥,则继续遍历其所有输入,直至无法加入更多器件;
所述对逻辑表达式进行卡诺化简包括以下步骤:
S41,分析化简后的逻辑表达式,查找是否存在组合逻辑锥的输入不在表达式右端;
S42,是,则将该输入从组合逻辑锥内的器件输入端删除,用固定电平0或1来替代;
S43,根据组合逻辑门的自身逻辑特性,基于固定输入电平进行器件的化简;
S44,若删除的输入或器件是属于组合逻辑环路的路径,则组合逻辑环路便已被拆除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911092917.8A CN112784511B (zh) | 2019-11-11 | 2019-11-11 | 一种组合逻辑环路的自动拆除方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911092917.8A CN112784511B (zh) | 2019-11-11 | 2019-11-11 | 一种组合逻辑环路的自动拆除方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112784511A CN112784511A (zh) | 2021-05-11 |
CN112784511B true CN112784511B (zh) | 2023-09-22 |
Family
ID=75749573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911092917.8A Active CN112784511B (zh) | 2019-11-11 | 2019-11-11 | 一种组合逻辑环路的自动拆除方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112784511B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117250480B (zh) * | 2023-11-08 | 2024-02-23 | 英诺达(成都)电子科技有限公司 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85102414A (zh) * | 1985-04-01 | 1987-05-27 | 李亚明 | 逻辑化简计算纸 |
JPH0250541A (ja) * | 1988-08-11 | 1990-02-20 | Omron Tateisi Electron Co | バス型lan |
US5600796A (en) * | 1993-05-21 | 1997-02-04 | Toyota Jidosha Kabushiki Kaisha | Token ring fault recovery system for automatically restoring network which includes a transmit possible and receive impossible token holding station |
CN105095607A (zh) * | 2015-09-15 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 一种针对asic设计中网表逻辑冗余的优化方法及系统 |
CN106411316A (zh) * | 2016-09-06 | 2017-02-15 | 北京深维科技有限公司 | 一种查找表工艺映射方法 |
CN108073105A (zh) * | 2016-11-18 | 2018-05-25 | 中国科学院沈阳计算技术研究所有限公司 | 基于异构双处理器冗余结构的安全plc装置和实现方法 |
JP2018137519A (ja) * | 2017-02-20 | 2018-08-30 | 日本電信電話株式会社 | リングノード装置、リングネットワークシステム、及びリングネットワーク変更方法 |
CN109408916A (zh) * | 2018-10-11 | 2019-03-01 | 南京国电南自维美德自动化有限公司 | 一种图形逻辑组态的识别方法 |
-
2019
- 2019-11-11 CN CN201911092917.8A patent/CN112784511B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85102414A (zh) * | 1985-04-01 | 1987-05-27 | 李亚明 | 逻辑化简计算纸 |
JPH0250541A (ja) * | 1988-08-11 | 1990-02-20 | Omron Tateisi Electron Co | バス型lan |
US5600796A (en) * | 1993-05-21 | 1997-02-04 | Toyota Jidosha Kabushiki Kaisha | Token ring fault recovery system for automatically restoring network which includes a transmit possible and receive impossible token holding station |
CN105095607A (zh) * | 2015-09-15 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 一种针对asic设计中网表逻辑冗余的优化方法及系统 |
CN106411316A (zh) * | 2016-09-06 | 2017-02-15 | 北京深维科技有限公司 | 一种查找表工艺映射方法 |
CN108073105A (zh) * | 2016-11-18 | 2018-05-25 | 中国科学院沈阳计算技术研究所有限公司 | 基于异构双处理器冗余结构的安全plc装置和实现方法 |
JP2018137519A (ja) * | 2017-02-20 | 2018-08-30 | 日本電信電話株式会社 | リングノード装置、リングネットワークシステム、及びリングネットワーク変更方法 |
CN109408916A (zh) * | 2018-10-11 | 2019-03-01 | 南京国电南自维美德自动化有限公司 | 一种图形逻辑组态的识别方法 |
Non-Patent Citations (3)
Title |
---|
"Boolean decomposition based on cyclic chains";E. Dubrova et al;Proceedings IEEE International Conference on Computer Design;第504-509页 * |
"一种组合逻辑环转化方法";邸志雄等;西安电子科技大学学报;第41卷(第1期);第75-80页 * |
频率牵引和增益调节相组合的跟踪算法研究;雷明东;李鹏;欧汉文;;现代防御技术(第05期);第141-148页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112784511A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739766B (zh) | 一种快速搭建fpga数字仿真模型的系统及方法 | |
US7739098B2 (en) | System and method for providing distributed static timing analysis with merged results | |
US7707530B2 (en) | Incremental timing-driven, physical-synthesis using discrete optimization | |
US20020176288A1 (en) | Semiconductor integrated circuit device and test method thereof | |
US20080120587A1 (en) | Integrated circuit design system, integrated circuit design program, and integrated circuit design method | |
US5587919A (en) | Apparatus and method for logic optimization by redundancy addition and removal | |
US20070079266A1 (en) | Method and computer program for analysis of an integrated circuit design to identify and resolve a problematic structure characterized by multiple rule violations using a design closure knowledge base and a physical design database | |
CN112784511B (zh) | 一种组合逻辑环路的自动拆除方法 | |
US6484292B1 (en) | Incremental logic synthesis system for revisions of logic circuit designs | |
US20050188336A1 (en) | System and method for waiving a verification check | |
JP2000207440A (ja) | 半導体集積回路の設計検証装置、方法及び記憶媒体 | |
US7594203B2 (en) | Parallel optimization using independent cell instances | |
US20070234253A1 (en) | Multiple mode approach to building static timing models for digital transistor circuits | |
US11574101B2 (en) | Techniques for providing optimizations based on categories of slack in timing paths | |
US10372855B2 (en) | Scan cell selection for partial scan designs | |
KR101705444B1 (ko) | 소팅 연산을 적용한 해쉬 조인 방법, 이를 실행시키는 컴퓨터 프로그램 및 기록매체 | |
US7913213B2 (en) | Tool and method for automatically identifying minimum timing violation corrections in an integrated circuit design | |
US20160328506A1 (en) | Selectively loading design data for logical equivalency check | |
US6253356B1 (en) | System and method for improving logic synthesis in logic circuits | |
US8701062B2 (en) | Apparatus and method for generating a netlist using non-uniquified module during logic synthesis stage | |
CN116431582B (zh) | 一种自动化扩展硬件设计电路资源的方法 | |
US9495496B2 (en) | Non-invasive insertion of logic functions into a register-transfer level (‘RTL’) design | |
CN112632879B (zh) | 一种将电路图用高级硬件描述语言重构的自动化方法 | |
US11475200B2 (en) | Circuit layout techniques | |
JP2018041129A (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 |