CN107622157B - 一种追踪电路时序路径连接性的方法 - Google Patents
一种追踪电路时序路径连接性的方法 Download PDFInfo
- Publication number
- CN107622157B CN107622157B CN201710831771.9A CN201710831771A CN107622157B CN 107622157 B CN107622157 B CN 107622157B CN 201710831771 A CN201710831771 A CN 201710831771A CN 107622157 B CN107622157 B CN 107622157B
- Authority
- CN
- China
- Prior art keywords
- unit
- virtual
- time sequence
- circuit
- virtual node
- 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
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
一种追踪电路时序路径连接性的方法,包括步骤:找出电路中的起始单元和终止单元;添加虚拟节点和连接边,建立保留起始单元和终止单元之间原有的时序约束关系的虚拟连接图;通过虚拟连接图进行时序路径连接性的追踪。本发明能够把电路中复杂的线网关系化简为虚拟连接图,只保留起始单元、终止单元、虚拟节点和连接信息,从而化简问题的规模,省略中间大量的组合电路单元。而添加虚拟节点的方法,可以在保证电路的起始单元、终止单元的时序连接性不变的前提下,有效地降低连接边数目,把N2数量级的内存占用量降低到线性数量级。
Description
技术领域
本发明涉及电路的分析及优化技术领域,特别是涉及到一种追踪电路时序路径连接性的方法。
背景技术
在集成电路设计当中,需要检查时序路径(I/O端口到同步单元、同步单元到同步单元、以及I/O端口之间)的时序值是否满足约束要求。随着电路规模的不断增大,设计中的单元数目达到千万量级,时序路径的总数以及时序路径上的单元数目都显著增多。如何能够有效追踪哪些同步单元或I/O端口之间具有连接性,成为EDA工具研究的关键问题。
通常情况下,在检查某个同步单元或I/O端口的电路连接性时,可以按照单元所连接的线网向前或向后依次进行搜索,直至找到同步单元或I/O端口。但是在大规模设计当中,电路连接关系非常复杂,这种方案会花费太长的时间,导致无法连续地正常操作。另外一种处理方法是利用缓存的方法,事先将同步单元之间的连接关系保存到内存中,需要检查电路连接性时直接查询以提高速度。但是这种方案会占用太多的内存,对于大规模设计往往也无法实际应用。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种追踪电路时序路径连接性的方法,通过添加辅助的虚拟节点的方式,将大规模电路中的同步单元、I/O端口之间的复杂连接性关系化简为虚拟连接图,从而在有限内存占用条件下,快速有效地实现时序路径连接性的追踪。
为实现上述目的,本发明提供的追踪电路时序路径连接性的方法,包括以下步骤:
找出电路中的起始单元和终止单元;添加虚拟节点和连接边,建立保留起始单元和终止单元之间原有的时序约束关系的虚拟连接图;通过虚拟连接图进行时序路径连接性的追踪。
进一步地,所述起始单元和终止单元,包括电路中所有的同步单元及I/O端口。
进一步地,所述添加虚拟节点和连接边,是在起始单元、终止单元之间,添加虚拟节点和连接边;以及在起始单元、虚拟节点、终止单元之间,添加虚拟节点和连接边;以及在虚拟节点、虚拟节点之间,添加虚拟节点和连接边。
进一步地,所述添加虚拟节点和连接边,是通过遍历电路的线网连接关系,找出具有时序约束关系的起始单元和终止单元,在起始单元和终止单元之间,添加虚拟节点和连接边;
其中,所述具有时序约束关系的起始单元和终止单元,是指起始单元和终止单元之间的任意两个单元之间都具有时序连接关系。
所述找出具有时序约束关系的起始单元和终止单元进一步包括以下步骤:
根据起始单元和终止单元之间的任意两个单元之间是否都具有时序连接关系,对电路的时序连接关系进行分组,分组后的每一组中的起始单元和终止单元之间的任意两个同步单元之间都具有时序连接关系。
进一步地,中所述添加虚拟节点,是通过如下公式进行判定的:
FI*FO>FI+FO,
其中,FI为添加虚拟节点之后,虚拟节点的输入端的连接边数;
FO为添加虚拟节点之后,虚拟节点的输出端的连接边数;
若满足上述公式,则添加虚拟节点。
进一步地,所述虚拟节点的输入端和虚拟节点的输出端,包括:起始单元、终止单元和虚拟节点。
进一步地,所述虚拟节点,是电路中的实际单元。
进一步地,所述虚拟连接图,包括电路的线网连接关系,所述线网连接关系存储在起始单元、终止单元和虚拟节点上。
进一步地,还包括以下步骤:将虚拟连接图缓存在内存,根据需要进行调用,用以查找时序路径连接性。
复杂的电路设计中,电路中包含的单元数目众多,通过本发明的追踪电路时序路径连接性的方法,把电路中复杂的线网关系化简为虚拟连接图,只保留起始单元、终止单元(同步单元、I/O端口)、虚拟节点和连接信息,从而化简问题的规模,省略中间大量的组合电路单元。而添加虚拟节点的方法,可以在保证电路的起始单元、终止单元的时序连接性不变的前提下,有效地降低连接边数目,把N2数量级的内存占用量降低到线性数量级。并且通过在内存中缓存连接边的信息,可以避免每次都需要重新追踪电路中单元的时序连接性,加快追踪速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的追踪电路时序路径连接性的方法流程图;
图2为根据本发明的添加虚拟节点前后电路的时序连接关系对比图;
图3为根据本发明的电路的原始的线网连接关系图;
图4为根据本发明的化简的虚拟连接图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的追踪电路时序路径连接性的方法流程图,下面将参考图1,对本发明的追踪电路时序路径连接性的方法进行详细描述。
在步骤101,读入网表,获取原始的线网连接关系,分析电路中的同步单元及I/O端口之间的时序路径,找出起始单元和终止单元。
该步骤中,起始单元和终止单元为电路中的同步单元及I/O端口。
在步骤102,基于原始的线网连接关系,选择性地添加辅助的虚拟节点及连接边,建立起始单元和终止单元之间的虚拟连接图。
该步骤中,从起始单元出发,遍历电路中复杂的组合逻辑部分,追踪到的与起始单元具有时序约束关系的终止单元,在起始单元和终止单元之间,添加辅助的虚拟节点及连接边,建立起简化的能够保留起始单元和终止单元之间原有的时序约束关系的虚拟连接图。
并且根据简化的数量级要求,可以在起始单元、虚拟节点、终止单元之间,继续添加虚拟节点,用以继续简化并保留起始单元、虚拟节点、终止单元之间的时序约束关系。当然,根据实际需求,可以选择性的仅在起始单元、虚拟节点之间或者虚拟节点、终止单元之间添加虚拟节点。并且,根据实际需求,还可以在虚拟节点、虚拟节点之间,继续选择性的添加虚拟节点。
化简的虚拟连接图,除了包含时序约束关系,还可以保留遍历原始的线网过程中传递的线网信息(例如线网的级数信息),并将线网信息保存在起始单元、终止单元和虚拟节点上,从而扩展虚拟连接图的应用场景。
在步骤103,将虚拟连接图缓存在内存中,用以进行时序路径连接性的追踪。
在实际的电路中,单元之间的连接关系比较复杂,通过加入一个虚拟节点完成连接所有的起始单元和终止单元的情况极少发生。对于如何选择性的创建虚拟节点,应用场景不同可能产生不同的侧重性,侧重角度包括查询效率、内存限制、线网数据等。
为此,本发明提出一个用以判定是否添加虚拟节点的公式,该公式如下:
FI*FO>FI+FO,
其中,FI为添加虚拟节点之后,虚拟节点的输入端的连接边数;
FO为添加虚拟节点之后,虚拟节点的输出端的连接边数。
若满足上述公式,则添加虚拟节点。并且,虚拟节点的输入端、虚拟节点的输出端不仅限于起始单元、终止单元,还可以是起始单元、虚拟节点,虚拟节点、终止单元,以及虚拟节点、虚拟节点。
对于复杂电路结构,采用上述公式取得一个内存和效率相对平衡的结果。
添加的虚拟节点可以和电路中的实际单元完全无关,也可以直接选择电路中的实际单元作为虚拟节点。
下面结合具体的实施例,详细的说明本发明的选择性地添加辅助的虚拟节点及连接边的方法及其有益效果。
图2为根据本发明的添加虚拟节点前后电路的时序连接关系对比图。如图2所示,在添加虚拟节点前,具有5个起始单元和4个终止单元,根据起始单元和终止单元之间的任意两个同步单元之间是否都具有时序连接关系,将原始的时序连接关系分为两组,分组后的每一组中的起始单元和终止单元之间的任意两个同步单元之间都具有时序连接关系,选择性的在每一组中添加虚拟节点,从而得到化简的虚拟连接图。
如图2所示,在添加虚拟节点之前,原始的时序连接关系中,含有14条边和10个节点,而在添加虚拟节点之后,虚拟的时序连接关系中,含有11条边和12个节点,添加虚拟节点会使连接边的个数会产生数量级的下降。虽然添加虚拟节点会增加节点的个数,但是节点的个数仅会呈线性增长。
下面通过含有具体数字的实施例进一步说明,添加虚拟节点会使连接边个数的产生数量级的下降。
假设起始单元集合S1中有M个元素{x1,x2,…xM},终止单元集合S2中有N个元素{y1,y2,…yN},它们两两之间有时序连接{yj∈S2:xi→yj存在连接边},初始的电路连接图包含M×N条连接边,M+N个节点。通过加入一个虚拟节点i,连接M个起始单元和N个终止单元,连接边的数目可化简至M+N条,节点个数为M+N+1。
该实施例中,若需要检查是否存在同步单元x1到同步单元y2的时序连接性,则首先将化简的虚拟连接图存储在内存中,然后在虚拟连接图中查询从同步单元x1出发的连接边{x1→i},再查询从节点i出发的连接边集合S2,因为同步单元y2∈S2,所以存在同步单元x1到同步单元y2的时序连接。
下面结合具体的实施例,详细地说明本发明的追踪电路时序路径连接性的方法的技术方案及有益效果。
图3为根据本发明的电路的原始的线网连接关系图,如图3所示,电路信号由同步单元A/B/C发出,经过组合逻辑单元传递,最终到达同步单元X/Y/Z。单元集合{A/B/C}与单元集合{X/Y/Z}中的任意两个同步单元之间都有时序联系。在需要追踪电路中同步单元X的时序连接性时,若采用现有技术中的方法,需要根据线网连接关系多次向前进行追踪,寻找所连接的单元,需要遍历中间的大量组合逻辑单元,十分耗时。
而若采用本发明的追踪电路时序路径连接性的方法,追踪电路中同步单元X的时序连接性时,只需对化简后的虚拟连接图进行查询,就可以快速的完成追踪。
首先,获取原始的线网连接关系,并找到线网中所有的同步单元。图3中所示的{A/B/C/X/Y/Z}即为全部的同步单元。
然后,从起始单元出发,遍历原始的线网,插入虚拟节点,建立起始单元与终止单元之间的虚拟时序连接关系。图3中的{X/Y/Z}不具有输出端,从具有输出端的{A/B/C}出发,根据公式{FI*FO>FI+FO},当遍历至AND门时,插入虚拟节点{i},并建立{A->i,B->I,C->i}的连接边,再继续从AND门出发向后遍历,建立{i->X,i->Y,i->Z}的连接边,从而得到起始单元{A/B/C}与终止单元{X/Y/Z}之间的化简的虚拟连接图,如图4所示。图4为根据本发明的化简的虚拟连接图。
最后,将化简的虚拟连接图中的起始单元、终止单元、虚拟节点及连接边的信息缓存到内存中,在查找同步单元X的时序连接性时,直接查询缓存中化简的虚拟连接图,得到的连接信息是X->i->{A/B/C},于是,找到与同步单元X具有时序连接关系的同步单元的集合{A/B/C}。
通过本实例可以看出,缓存中化简的虚拟连接图中所包含的连接边的数目是3+3条,而原始的线网连接关系图中所包含的连接边的数目是3×3条。当原始的线网连接关系图中所包含的连接边的数目十分巨大时,采用化简的虚拟连接图,可以极大地减少连接边的数目,从而减少所需占用的内存空间。
复杂的电路设计中,电路中包含的单元数目众多,通过本发明的追踪电路时序路径连接性的方法,把电路中复杂的线网关系化简为虚拟连接图,只保留起始单元、终止单元(同步单元、I/O端口)、虚拟节点和连接信息,从而化简问题的规模,省略中间大量的组合电路单元。而添加虚拟节点的方法,可以在保证电路的起始单元、终止单元的时序连接性不变的前提下,有效地降低连接边数目,把N2数量级的内存占用量降低到线性数量级。并且通过在内存中缓存连接边的信息,可以避免每次都需要重新追踪电路中单元的时序连接性,加快追踪速度。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种追踪电路时序路径连接性的方法,其特征在于,包括以下步骤:
(1)找出电路中的起始单元和终止单元;
(2)添加虚拟节点和连接边,建立保留起始单元和终止单元之间原有的时序约束关系的虚拟连接图;
所述步骤(2)进一步包括,在所有起始单元和终止单元之间至少可以添加一个所述虚拟节点;
步骤(2)中所述添加虚拟节点和连接边,是通过遍历电路的线网连接关系,找出具有时序约束关系的起始单元和终止单元,在起始单元和终止单元之间,添加虚拟节点和连接边;
其中,所述具有时序约束关系的起始单元和终止单元,是指起始单元和终止单元之间的任意两个单元之间都具有时序连接关系;
步骤(2)中所述添加虚拟节点,是通过如下公式进行判定的:
FI*FO>FI+FO,
其中,FI为添加虚拟节点之后,虚拟节点的输入端的连接边数;
FO为添加虚拟节点之后,虚拟节点的输出端的连接边数;
若满足上述公式,则添加虚拟节点;
(3)通过虚拟连接图进行时序路径连接性的追踪;
所述步骤(3)还包括以下步骤:
将虚拟连接图缓存在内存,根据需要进行调用,用以查找时序路径连接性。
2.根据权利要求1所述的追踪电路时序路径连接性的方法,其特征在于,步骤(1)中所述起始单元和终止单元,包括电路中所有的同步单元及I/O端口。
3.根据权利要求1所述的追踪电路时序路径连接性的方法,其特征在于,步骤(2)中所述添加虚拟节点和连接边,是在起始单元、终止单元之间,添加虚拟节点和连接边;以及在起始单元、虚拟节点、终止单元之间,添加虚拟节点和连接边;以及在虚拟节点、虚拟节点之间,添加虚拟节点和连接边。
4.根据权利要求1所述的追踪电路时序路径连接性的方法,其特征在于,所述找出具有时序约束关系的起始单元和终止单元进一步包括以下步骤:
根据起始单元和终止单元之间的任意两个单元之间是否都具有时序连接关系,对电路的时序连接关系进行分组,分组后的每一组中的起始单元和终止单元之间的任意两个同步单元之间都具有时序连接关系。
5.根据权利要求1所述的追踪电路时序路径连接性的方法,其特征在于,所述虚拟节点的输入端和虚拟节点的输出端,包括:起始单元、终止单元和虚拟节点。
6.根据权利要求1所述的追踪电路时序路径连接性的方法,其特征在于,步骤(2)中所述虚拟节点,是电路中的实际单元。
7.根据权利要求1所述的追踪电路时序路径连接性的方法,其特征在于,步骤(2)中所述虚拟连接图,包括电路的线网连接关系,所述线网连接关系存储在起始单元、终止单元和虚拟节点上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710831771.9A CN107622157B (zh) | 2017-09-15 | 2017-09-15 | 一种追踪电路时序路径连接性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710831771.9A CN107622157B (zh) | 2017-09-15 | 2017-09-15 | 一种追踪电路时序路径连接性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107622157A CN107622157A (zh) | 2018-01-23 |
CN107622157B true CN107622157B (zh) | 2020-07-10 |
Family
ID=61089576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710831771.9A Active CN107622157B (zh) | 2017-09-15 | 2017-09-15 | 一种追踪电路时序路径连接性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107622157B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102323964A (zh) * | 2011-08-16 | 2012-01-18 | 北京芯愿景软件技术有限公司 | 一种数字电路网表数据的处理方法 |
CN105718698A (zh) * | 2016-02-19 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种时序网表管理方法及装置 |
CN107005482A (zh) * | 2014-09-22 | 2017-08-01 | 沃尔廷控股公司 | 为软件定义网络,存储和计算执行操作的编译器和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4017583B2 (ja) * | 2003-10-16 | 2007-12-05 | 松下電器産業株式会社 | 半導体集積回路の設計データの回路表示方法 |
CN102768506B (zh) * | 2012-07-18 | 2015-01-07 | 复旦大学 | 带时序约束的fpga时序驱动布局方法 |
CN106300327B (zh) * | 2016-08-29 | 2019-07-26 | 三门峡速达节能新能源科技研究院 | 一种分布式mppt与集中式mppt可切换的拓扑结构与控制方法 |
-
2017
- 2017-09-15 CN CN201710831771.9A patent/CN107622157B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102323964A (zh) * | 2011-08-16 | 2012-01-18 | 北京芯愿景软件技术有限公司 | 一种数字电路网表数据的处理方法 |
CN107005482A (zh) * | 2014-09-22 | 2017-08-01 | 沃尔廷控股公司 | 为软件定义网络,存储和计算执行操作的编译器和方法 |
CN105718698A (zh) * | 2016-02-19 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种时序网表管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107622157A (zh) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
CN103714097A (zh) | 一种访问数据库的方法和装置 | |
CN101770437B (zh) | 实现同步双端口存储器ip的并行读写的装置及方法 | |
CN105320490A (zh) | 用于异步fifo电路的方法和设备 | |
CN107451146A (zh) | 利用多级缓存读取数据的方法和缓存数据的多级缓存装置 | |
CN102968339B (zh) | 基于云计算架构实现复杂事件处理的系统及其方法 | |
CN105573711B (zh) | 一种数据缓存方法及装置 | |
CN104426770A (zh) | 路由查找方法及装置、B-Tree树结构的构建方法 | |
CN106569896B (zh) | 一种数据分发及并行处理方法和系统 | |
CN104462225A (zh) | 一种数据读取的方法、装置及系统 | |
CN112380148B (zh) | 数据传输方法和数据传输装置 | |
CN104111957A (zh) | 一种分布式事务同步的方法及系统 | |
CN105227683A (zh) | 一种ldap集群数据同步方法及系统 | |
CN102023843A (zh) | 函数的调用方法、装置及智能卡 | |
CN103077147A (zh) | 一种基于链表的全功能1553b总线ip核 | |
CN103778120A (zh) | 全局文件标识生成方法、生成装置及相应的分布式文件系统 | |
CN101833513B (zh) | 一种数据帧的读取方法、装置 | |
CN102073733A (zh) | 哈希表管理方法及装置 | |
CN105302838A (zh) | 分类方法、查找方法和设备 | |
CN103347098A (zh) | RapidIO总线互联系统的网络枚举方法 | |
CN107622157B (zh) | 一种追踪电路时序路径连接性的方法 | |
CN104426774A (zh) | 一种同时支持IPv4和IPv6的高速路由查找方法及装置 | |
CN103064749A (zh) | 一种进程间通信方法 | |
CN105389394A (zh) | 基于多个数据库集群的数据请求处理方法及装置 | |
CN116457751A (zh) | 一种写数据通路结构和芯片 |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Patentee after: Beijing Huada Jiutian Technology Co.,Ltd. Address before: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Patentee before: HUADA EMPYREAN SOFTWARE Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |