CN111428436A - 一种程序化分析集成电路线路结构的方法 - Google Patents
一种程序化分析集成电路线路结构的方法 Download PDFInfo
- Publication number
- CN111428436A CN111428436A CN201910017585.0A CN201910017585A CN111428436A CN 111428436 A CN111428436 A CN 111428436A CN 201910017585 A CN201910017585 A CN 201910017585A CN 111428436 A CN111428436 A CN 111428436A
- Authority
- CN
- China
- Prior art keywords
- circuit
- starting
- data structure
- submodule
- signal
- 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
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种程序化分析集成电路结构的方法,包括以下步骤:根据待整理的电路网表,通过程序分析得到电路结构的统计特征信息;确定一个起始器件集合,所述起始器件集合是电路分析人员根据电路结构特征,从原始网表中得到的属于同一个子电路模块的器件;把所述起始器件集合作为一个起始电路子模块看待,得到起始子模块的输入端信号集合和起始子模块输出端信号集合;对起始子模块的输入端信号集合中的每个信号进行循环分析,将针对每次分析得到的器件求并集,得到属于同一个子电路模块的所有器件。
Description
技术领域
本发明属于集成电路逆向分析技术领域,具体涉及一种程序化分析集成电路线路结构的方法。
背景技术
在集成电路的逆向分析技术中,数字电路的分析整理是一个重要分支。而数字电路的分析整理,因为其规模大,逻辑结构复杂的原因,对分析整理造成的挑战越来越大。
现代集成电路的数字设计,都是基于硬件语言例如Verilog,VHDL(Very-High-Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)等进行描述,然后通过综合工具进行逻辑综合,再通过后端布局布线工具进行布局排版的方式形成最终电路。因为经过了多层EDA工具的处理和优化,最终实现的数字电路版图上,已经完全找不到最初设计者在使用硬件语言进行描述时候的模块化,层次化信息。而逆向分析工程师,为了从最终版图信息中理解出电路的功能,遇到的一个很大的阻碍就是,复杂的数字逻辑没有了层次化,模块化的信息,如果要理解数字电路的功能,就必须先完成网表的层次化和模块化,否则分析理解根本无从下手。
从图形视图来看,分析整理之前的数字电路网表状态如图1所示,完全是一些看似无规则的基本单元的组合,所有基本单元之间的连线,构成了如蛛网一般复杂且无法理解的网络互联关系。而集成电路的数字分析工程师,需要从上述类型的杂乱电路出发,进行理解分析,将这些器件按照逻辑功能进行划分,从而得到如图2所示的划分为一个个子模块的逻辑电路功能块。每个模块内部,都是相对简单明了,易于理解的子电路模块,举个例子:如图3所示的数据流选择结构。
为了达到以上目的,集成电路的数字分析工程师需要耗费大量的时间和精力进行整理分析。而目前业界没有任何EDA(Electronics Design Automation,电子设计自动化)工具可以实现数字电路网表的程序化分层分块整理。
发明内容
本发明要解决的技术问题是提供一种程序化分析集成电路线路结构的方法。
为解决上述技术问题,本发明采用如下的技术方案:
一种程序化分析集成电路结构的方法,包括以下步骤:
根据待整理的电路网表,通过程序分析得到电路结构的统计特征信息;
确定一个起始器件集合,所述起始器件集合是电路分析人员根据电路结构特征,从原始网表中得到的属于同一个子电路模块的器件;
把所述起始器件集合作为一个起始电路子模块看待,得到起始子模块的输入端信号集合和起始子模块输出端信号集合;
对起始子模块的输入端信号集合中的每个信号进行循环分析,将针对每次分析得到的器件求并集,得到属于同一个子电路模块的所有器件。
优选地,所述电路结构的统计特征信息包括:
每条电路连线所连接节点个数,其中连接节点个数的含义为一条电路连线所连接的所有的基本单元的个数;
每条电路连线所驱动的所有器件的基本单元类型;
每条电路连线的驱动器件的名称。
优选地,所述对起始子模块的输入端信号集合中的每个信号进行循环分析具体如下:
从选定的信号作为起点,根据数字电路网表的连接关系,反向递推建立起一个数据结构:从选定的信号出发,在数字电路网表中找到该信号的驱动器件,继而找到该驱动器件的所有输入信号,然后从这些输入信号开始,再重复上述过程,从而找到下一级的驱动信号,如此重复上述过程,直到达到预设的层级数目,最终形成的数据结构是一个金字塔型的数据结构,该数据结构中的每个数据项数字电路网表中的一个基本单元或者是一些特殊标记;
对上述金字塔型数据结构进行分析,从数据结构的最底层开始,对每个数据项进行循环分析,查找所作的特殊标记,如果找到一个IM驱动标记,则从该标记出发,到上一层查找被IM驱动标记对应的器件驱动的器件,然后再从这个器件的输出开始,再到更上一层查找被这个器件驱动的器件,如此循环直到递推到金字塔型数据结构的最顶端。
采用本发明具有如下的有益效果:本发明设计了一种辅助集成电路数字分析工程师进行数字电路网表的分析整理方法,使用该方法进行数字电路网表的分析整理,可以极大的提高数字电路网表的分析整理效率。相比于传统的分析整理方式,该发明所述方法的优点为:1)程序化辅助分析,分析整理速度大幅度提高;2)避免了传统的人工分析过程可能出现的各种失误,节省调试时间。
附图说明
图1为现有技术中分析整理之前的数字电路网表状态图;
图2为现有技术中分析之后的一个个子模块的逻辑电路功能块;
图3所示为一示例的数据流选择结构图;
图4为本发明实施例的程序化分析集成电路线路结构的方法中起始子模块的输入端信号集合和起始子模块输出端信号集合图;
图5为本发明实施例的程序化分析集成电路线路结构的方法中所示的一个金字塔型的数据结构。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1和图2,本发明公开了一种程序化分析集成电路线路结构的方法,包括以下步骤:
第一步,根据待整理的电路网表,通过程序分析得到电路结构的统计特征信息,该信息包括以下几种类型:
每条电路连线所连接节点个数。上述描述中,连接节点个数的含义为:一条电路连线所连接的所有的基本单元的个数。
每条电路连线所驱动的所有器件的基本单元类型(reference name)
每条电路连线的驱动器件的名称(instant name)。
第二步,确定一个起始器件集合,该集合是电路分析人员根据电路结构特征,从原始网表中得到的属于同一个子电路模块的器件。例如,如果某一组MUX(Multiplex,多路选择器)器件,使用了同一个控制信号进行选择,则我们可以认为所有被这个控制信号选择的MUX器件是在逻辑上紧密联系的,因此在概率上有很大可能是属于一个子功能模块的。而在我们的发明中,可以通过第一步产生的各种电路结构统计信息,给电路分析人员指出最有可能的分析方向。例如,如果某条net上连接了16个器件,而这16个器件都是同一类型的MUX,那么这16个MUX就可以作为一个起始器件集合对待。
第三步,把这个起始器件集合作为一个电路子模块看待,得到起始子模块的输入端信号集合和起始子模块输出端信号集合,如图4所示:
为了方便后续描述,把起始子模块命名为IM(INITIAL MODULE,起始电路子模块),起始子模块的输入端信号集合命名为IM.I(INITIAL MODULE INPUT,起始电路子模块的输入信号),起始子模块的输出端信号集合命名为IM.O(INITIALMODULE OUTPUT,起始电路子模块的输出信号)。
第四步,对IM.I集合中的每个信号进行循环分析。分析方法如第五步至第六步所述。
第五步,从选定的信号作为起点,根据数字电路网表的连接关系,反向递推建立起一个如下图所示的数据结构。
建立该数据结构的方法为:从选定的信号出发,在数字电路网表中找到该信号的驱动器件,继而找到该驱动器件的所有输入信号,然后从这些输入信号开始,再重复上述过程,从而找到下一级的驱动信号,如此重复上述过程,直到达到预设的层级数目。很显然,最终形成的数据结构是如图5中所示的一个金字塔型的数据结构。该数据结构中的每个数据项,是数字电路网表中的一个基本单元或者是一些特殊标记。
产生该数据结构的过程中,会遇到以下特殊情况:
特殊情况1:信号的驱动端来自于其它已经完成整理的子电路模块,这种情况下,直接停止这一路数据结构的递推。
特殊情况2:信号的驱动端来自于IM.O集合,这种情况下,要停止这一路数据结构的递推,而且在停止的同时要在数据结构中做出标记,为了方便表述,该标记被称作为IM驱动标记。
第六步,对上述金字塔型数据结构进行分析,从数据结构的最底层开始,对每个数据项进行循环分析,查找第五步中特殊情况2下所作的IM驱动标记,如果找到一个IM驱动标记,则从该标记出发,到上一层查找被IM驱动标记对应的器件驱动的器件,然后再从这个器件的输出开始,再到更上一层查找被这个器件驱动的器件,如此循环直到递推到金字塔型数据结构的最顶端。过程中记录下所有器件(图中2#器件),这些被记录下来的器件,在逻辑结构上肯定是和IM紧密相关的。
以上分析过程中所得到的器件集合,所代表的现实意义可以表述为:一组有紧密逻辑关系的基本单元的输出,在经过了一系列逻辑操作之后,又返回来影响了自身的逻辑状态。因此可以确定这些逻辑单元有很大概率是属于同一个子功能的。
第七步,把第五步和第六步的分析过程,应用到IM.I集合中的每个信号,将针对每次分析得到的器件求并集,得到的,就是属于同一个子电路模块的所有器件。
在实际数字电路设计中,状态机,加法器等很多基本电路结构,都有以上特征。因此,通过这种方法可以高效的整理出相当多的子模块电路单元。
通过以上本发明实施例的方法,通过建立的规则分析数字集成电路的网表,从杂乱无序的网表中,以程序化的方式提取出逻辑紧密相关的部分,形成一个个利于集成电路逆向分析工程师理解的子模块。从一组有紧密逻辑关系的基本单元集合IM出发,计算得到这一组逻辑单元所对应的所有输入信号集合IM.I和输出信号集合IM.O。从IM.I集合出发,建立起金字塔型的数据结构,并从这些数据结构中分析出逻辑上和IM集合中的器件有紧密逻辑关系的器件集合。不仅可以从IM.I出发,建立金子塔型的数据结构,从IM.O集合出发,同样可以建立起金字塔型的数据结构。此种方式类似于技术方案中描述的方式,不同之处只是从另一个方向上建立金字塔数据结构,能够达到同样的目的。无论从IM.O集合出发还是从IM.I集合出发,集合中的每个元素,都对应有一个金字塔型的数据结构,并通过该结构确定出一定数量的基本单元。最后要通过将每个元素确定的单元求并集的方式,最终得到属于同一个子电路模块的所有基本单元。本发明所述的方法,完全填补了当前数字电路网表进行层次化,模块化整理的空白,当前业内进行数字电路网表的层次化和模块化,基本完全是依靠国外的大型EDA工具,靠手工操作一个个基本单元来完成。使用本发明所述的方法,通过程序化方法实现,可以极大的减轻集成电路逆向分析工程师的人工工作量,提高数字电路网表进行层次化,模块化整理的速度。
应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。
Claims (3)
1.一种程序化分析集成电路结构的方法,其特征在于,包括以下步骤:
根据待整理的电路网表,通过程序分析得到电路结构的统计特征信息;
确定一个起始器件集合,所述起始器件集合是电路分析人员根据电路结构特征,从原始网表中得到的属于同一个子电路模块的器件;
把所述起始器件集合作为一个起始电路子模块看待,得到起始子模块的输入端信号集合和起始子模块输出端信号集合;
对起始子模块的输入端信号集合中的每个信号进行循环分析,将针对每次分析得到的器件求并集,得到属于同一个子电路模块的所有器件。
2.如权利要求1所述的程序化分析集成电路结构的方法,其特征在于,所述电路结构的统计特征信息包括:
每条电路连线所连接节点个数,其中连接节点个数的含义为一条电路连线所连接的所有的基本单元的个数;
每条电路连线所驱动的所有器件的基本单元类型;
每条电路连线的驱动器件的名称。
3.如权利要求1或2所述的程序化分析集成电路结构的方法,其特征在于,所述对起始子模块的输入端信号集合中的每个信号进行循环分析具体如下:
从选定的信号作为起点,根据数字电路网表的连接关系,反向递推建立起一个数据结构:从选定的信号出发,在数字电路网表中找到该信号的驱动器件,继而找到该驱动器件的所有输入信号,然后从这些输入信号开始,再重复上述过程,从而找到下一级的驱动信号,如此重复上述过程,直到达到预设的层级数目,最终形成的数据结构是一个金字塔型的数据结构,该数据结构中的每个数据项数字电路网表中的一个基本单元或者是一些特殊标记;
对上述金字塔型数据结构进行分析,从数据结构的最底层开始,对每个数据项进行循环分析,查找所作的特殊标记,如果找到一个IM驱动标记,则从该标记出发,到上一层查找被IM驱动标记对应的器件驱动的器件,然后再从这个器件的输出开始,再到更上一层查找被这个器件驱动的器件,如此循环直到递推到金字塔型数据结构的最顶端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910017585.0A CN111428436B (zh) | 2019-01-09 | 2019-01-09 | 一种程序化分析集成电路线路结构的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910017585.0A CN111428436B (zh) | 2019-01-09 | 2019-01-09 | 一种程序化分析集成电路线路结构的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111428436A true CN111428436A (zh) | 2020-07-17 |
CN111428436B CN111428436B (zh) | 2023-09-15 |
Family
ID=71545668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910017585.0A Active CN111428436B (zh) | 2019-01-09 | 2019-01-09 | 一种程序化分析集成电路线路结构的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111428436B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115358175A (zh) * | 2022-10-18 | 2022-11-18 | 北京智芯微电子科技有限公司 | 电路形式化模型简化方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523660A (zh) * | 2003-02-17 | 2004-08-25 | 上海芯华微电子有限公司 | 集成电路设计的双向技术系统 |
WO2011156234A1 (en) * | 2010-06-08 | 2011-12-15 | Delon Levi | Systems and methods for circuit design, synthesis, simulation, and modeling |
US20120054702A1 (en) * | 2010-08-31 | 2012-03-01 | International Business Machines Corporation | Techniques for Employing Retiming and Transient Simplification on Netlists That Include Memory Arrays |
EP2472420A1 (en) * | 2010-12-28 | 2012-07-04 | POLYTEDA Software Corporation Limited | Method of recognition and insert of the logical schemes |
CN103123656A (zh) * | 2011-11-21 | 2013-05-29 | 上海华虹Nec电子有限公司 | 对简化电路网表进行负载反标的方法 |
CN103699422A (zh) * | 2013-12-25 | 2014-04-02 | 哈尔滨工业大学 | 使用Perl语言对电路verilog网表描述进行可测性设计的系统及方法 |
CN105718698A (zh) * | 2016-02-19 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种时序网表管理方法及装置 |
CN107784185A (zh) * | 2017-11-17 | 2018-03-09 | 青岛海信电器股份有限公司 | 一种门级网表中伪路径的提取方法、装置及终端设备 |
-
2019
- 2019-01-09 CN CN201910017585.0A patent/CN111428436B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523660A (zh) * | 2003-02-17 | 2004-08-25 | 上海芯华微电子有限公司 | 集成电路设计的双向技术系统 |
WO2011156234A1 (en) * | 2010-06-08 | 2011-12-15 | Delon Levi | Systems and methods for circuit design, synthesis, simulation, and modeling |
US20120054702A1 (en) * | 2010-08-31 | 2012-03-01 | International Business Machines Corporation | Techniques for Employing Retiming and Transient Simplification on Netlists That Include Memory Arrays |
EP2472420A1 (en) * | 2010-12-28 | 2012-07-04 | POLYTEDA Software Corporation Limited | Method of recognition and insert of the logical schemes |
CN103123656A (zh) * | 2011-11-21 | 2013-05-29 | 上海华虹Nec电子有限公司 | 对简化电路网表进行负载反标的方法 |
CN103699422A (zh) * | 2013-12-25 | 2014-04-02 | 哈尔滨工业大学 | 使用Perl语言对电路verilog网表描述进行可测性设计的系统及方法 |
CN105718698A (zh) * | 2016-02-19 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种时序网表管理方法及装置 |
CN107784185A (zh) * | 2017-11-17 | 2018-03-09 | 青岛海信电器股份有限公司 | 一种门级网表中伪路径的提取方法、装置及终端设备 |
Non-Patent Citations (1)
Title |
---|
潘伟涛;邱智亮;: "基于压缩式改进迷宫算法的同构子电路提取" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115358175A (zh) * | 2022-10-18 | 2022-11-18 | 北京智芯微电子科技有限公司 | 电路形式化模型简化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111428436B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103324774B (zh) | 一种基于时钟规划偏差算法的处理器性能优化方法 | |
US7159202B2 (en) | Methods, apparatus and computer program products for generating selective netlists that include interconnection influences at pre-layout and post-layout design stages | |
CN107895087B (zh) | 可编程逻辑电路模块级仿真配码自动生成的方法及系统 | |
CN109376378B (zh) | 一种快速提取白车身安装点刚度结果的前后处理方法 | |
CN101692209A (zh) | 一种采用fpga内嵌sram仿真tcam的电路设计方法及装置 | |
CN110580393A (zh) | 一种门级网表修改后的快速收敛建立时间的方法 | |
CN102982205A (zh) | 一种用于数字电路设计的固定极性转换方法 | |
CN105701294B (zh) | 实现芯片复杂工程修改的方法及系统 | |
CN117131834A (zh) | 芯片设计重组方法、电子设备和介质 | |
CN111428436A (zh) | 一种程序化分析集成电路线路结构的方法 | |
CN111046624A (zh) | 芯片模块接口时钟结构的构建方法、装置、设备及介质 | |
CN101458301B (zh) | 自动测试设备实现匹配测试的方法 | |
Amar et al. | Diagnosis of large combinational networks | |
US7409650B2 (en) | Low power consumption designing method of semiconductor integrated circuit | |
Signorini et al. | Present and future of I/O-buffer behavioral macromodels | |
CN110489814B (zh) | 一种通过在代码中提取数据流辅助芯片布局规划的方法 | |
CN100588981C (zh) | 现场可编程门阵列多路选择器验证方法 | |
CN1510733A (zh) | 面向工艺移植的晶体管级集成电路优化方法 | |
CN117131824A (zh) | 自动生成芯片设计rtl代码的方法、电子设备和介质 | |
CN115544926A (zh) | 一种基于xmg组合电路的等价性验证装置及方法 | |
CN110874517A (zh) | 一种快速验证fpga互连线连接正确的方法 | |
CN103530479B (zh) | 基于Perl的EDIF网表级电路的部分可测性设计系统及部分可测性设计方法 | |
CN103631560A (zh) | 基于可逆逻辑的4位阵列乘法器 | |
CN115705446A (zh) | 集成电路的后仿真方法和装置 | |
CN105677960A (zh) | 一种Auto-DC自动化综合设计实现方法 |
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 |