CN103259526A - 时钟网络的构建方法和装置 - Google Patents
时钟网络的构建方法和装置 Download PDFInfo
- Publication number
- CN103259526A CN103259526A CN2013102180907A CN201310218090A CN103259526A CN 103259526 A CN103259526 A CN 103259526A CN 2013102180907 A CN2013102180907 A CN 2013102180907A CN 201310218090 A CN201310218090 A CN 201310218090A CN 103259526 A CN103259526 A CN 103259526A
- Authority
- CN
- China
- Prior art keywords
- sequential
- devices
- main line
- laying
- clock
- 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
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种时钟网络的构建方法和装置。其中,时钟网络的构建方法包括:获取时钟网络末端的位置信息,其中,时钟网络末端为时钟网络中用于布设时序器件的线或点;当时钟网络末端为用于布设时序器件的线时,以时钟网络末端为对称轴,确定时序器件的布设区域;当时钟网络末端为用于布设时序器件的点时,以时钟网络末端为中心,确定时序器件的布设区域;以及在布设区域内布设时序器件。通过本发明,解决了现有技术中构建时钟网络的资源代价高或设计周期长的问题,进而达到了降低构建时钟网络的资源代价、缩短构建周期的效果。
Description
技术领域
本发明涉及时序电路领域,具体而言,涉及一种时钟网络的构建方法和装置。
背景技术
时钟信号用于时序电路设计中的同步,统一指挥时序电路中的时序器件(比如:触发器、锁存器、计数器、移位寄存器和储存器等)在何时进行相应的状态变化。一般的时钟信号处理方法是将其从某处公共时钟源传递到时序器件的时钟入口点,在此过程中需要保证时钟信号的完整性和一致性。在大规模集成电路中,由于时序器件数目多,分布范围广,目前通常采用分布式的时钟缓冲网络来分发和传播时钟信号,即,在时钟传播路径中插入多个串联或并联的时钟缓冲器或反相器,对时钟信号进行多次波形整形和中继,进而将时钟信号转化为层次化的多级时钟分布网络。
时钟延迟(clock latency)指的是从时钟源点到时序器件时钟入口点的延迟值,是一个绝对值;而时钟偏差(clock skew)是一个相对值,它指的是两个时序器件间的时钟延迟的差值。时钟偏差会影响到两个相关时序器件间的数据路径的性能,甚至功能。比如在建立时间(setup time)分析时,电路工作的最小时钟周期必须满足数据路径延迟与其相关的时钟偏差之和;而在保持时间(hold time)分析时,两个时序器件间的数据路径延迟不得小于其时钟偏差,否则将产生数据冲突导致电路出错。
对于整个时钟分布网络(clock distribution network)而言,时钟偏差指的是时序电路中任意两个时序器件间的时钟延迟差的最大值。在传统的电路设计中,时钟偏差是衡量时钟分布网络设计好坏的最主要参数之一。因此,目前的时钟树(也叫时钟缓冲树)综合优化(clock tree synthesis and optimization)工具大多以缩小时钟偏差作为主要优化目标,基于时序器件布局(placement)后结果,在不改变时序器件位置的前提下,通过调整时钟缓冲树拓扑结构、缓冲尺寸与位置等方法,以尽量小的面积、时钟功耗等实现代价来满足设计要求。
考虑到工艺(process)、电压(voltage)和温度波动(temperature variation)的影响,各支时钟路径上的时序器件和时钟线延迟变化不同,不同类型时序器件的延迟变化也不同,使得时钟分布网络的时钟偏差增大,进而可能导致电路的工作性能降低甚至出现错误。这种现象随着集成电路工艺尺寸缩小而变得愈发严重。因此,若对时钟分布网络的时钟偏差有较严格要求,如高主频电路设计等,目前多采用具有高度逻辑和物理对称性的规则时钟结构来实现时钟分布,如H树(H-tree)、时钟网格(clock grid)等。
但是发明人发现,现有技术中在对时钟分布网络进行设计时,通常是先进行时序器件布局,然后再进行时钟树(即,时钟网络)综合优化。在时序器件布局阶段,一般仅将时序器件作为一个普通的单元对待,而不考虑时序器件需要接收的时钟信号相比于其它信号具有的特殊性;而在时钟树综合优化阶段,是基于已经固定的所有时序器件的位置,然后通过增加时钟缓冲和连接时钟走线的方式将时钟信号传播到时序器件的时钟端口。此种简单地将“时序器件布局”与“时钟树综合优化”划分为两个独立的阶段,进行时钟分布网络的设计,没有综合考虑这两者的相互作用,要么需要更多的资源代价(如面积、功耗等)来满足时钟分布性能需求,要么可能需要在时钟器件布局和时钟树综合优化之间多次迭代,将花费更长的设计时间。
针对相关技术中构建时钟网络的资源代价高或设计周期长的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种时钟网络的构建方法和装置,以解决现有技术中构建时钟网络的资源代价高或设计周期长的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种时钟网络的构建方法,包括:获取时钟网络末端的位置信息,其中,时钟网络末端为时钟网络中用于布设时序器件的线或点;当时钟网络末端为用于布设时序器件的线时,以时钟网络末端为对称轴,确定时序器件的布设区域;当时钟网络末端为用于布设时序器件的点时,以时钟网络末端为中心,确定时序器件的布设区域;以及在布设区域内布设时序器件。
进一步地,时序器件的数量为n,n为大于或等于2的自然数,在布设区域内布设时序器件之前,构建方法还包括:按照时序器件的逻辑属性对n个时序器件进行逻辑聚类,得到m个时序器件组,其中,m为大于或等于2的自然数;在布设区域内布设时序器件包括:在布设区域内布设m个时序器件组,其中,同一个时序器件组中的多个时序器件之间的相对位置满足第一预设条件,和/或同一个时序器件组中的多个时序器件之间的相对距离满足第二预设条件。
进一步地,在在布设区域内布设m个时序器件组之后,构建方法还包括:分别确定每个时序器件的可移动范围,其中,时序器件di的可移动范围为以时序器件di为中心,并且距离时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,di∈{d1,d2…dn},{d1,d2…dn}为n个时序器件的编号的集合;以及在时序器件di的可移动范围内调整时序器件di的位置,以缩短n个时序器件相互之间的距离。
进一步地,n个时序器件由种子时序器件和非种子时序器件组成,在时序器件di的可移动范围内调整时序器件di的位置包括:按照每个时序器件的可移动范围的大小对n个时序器件进行排序,得到时序器件队列;获取位于时序器件队列的队头或队尾处的时序器件,得到种子时序器件;以及调整各个非种子时序器件的位置,使各个非种子时序器件均以种子时序器件为中心聚集。
进一步地,在在布设区域内布设m个时序器件组之后,构建方法还包括:确定每个时序器件的可移动范围,其中,时序器件di的可移动范围为以时序器件di为中心,并且距离时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,di∈{d1,d2…dn},{d1,d2…dn}为n个时序器件的编号的集合;确定每个时序器件组的可移动范围,其中,时序器件组Dj的可移动范围为时序器件组Dj中多个时序器件的可移动范围的交集,Dj∈{D1,D2…Dm},{D1,D2…Dm}为m个时序器件组的编号的集合;以及以组为单位在时序器件组Dj的可移动范围内调整时序器件组Dj的位置,以缩短m个时序器件组相互之间的距离。
进一步地,m个时序器件组由种子时序器件组和非种子时序器件组组成,以组为单位在时序器件组Dj的可移动范围内调整时序器件组Dj的位置包括:按照每个时序器件组的可移动范围的大小对m个时序器件组进行排序,得到时序器件组队列;获取位于时序器件组队列的队头或队尾处的时序器件组,得到种子时序器件组;以及调整各个非种子时序器件组的位置,以使各个非种子时序器件组均以种子时序器件组为中心聚集。
进一步地,时钟网络的结构为时钟网格结构,时钟网络末端为时钟网格的网格干线,以时钟网络末端为对称轴,确定时序器件的布设区域包括:确定第一边界和第二边界,其中,第一边界和第二边界为距离网格干线的垂直距离均为第二预设距离的两条边界;以及确定第一边界和第二边界之间的区域为时序器件的布设区域。
进一步地,网格干线的数量为x,x为大于或等于2的自然数,确定第一边界和第二边界包括:确定每条网格干线的第一边界和第二边界,其中,网格干线Lp的第一边界与第二边界为距离网格干线Lp的垂直距离均为第二预设距离的两条边界,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合,确定第一边界和第二边界之间的区域为时序器件的布设区域包括:确定每条网格干线的子布设区域,其中,网格干线Lp的子布设区域为网格干线Lp的第一边界和第二边界之间的区域;以及确定x条网格干线的子布设区域的集合为布设区域。
进一步地,时钟网络的结构为时钟网格结构,时钟网络末端为时钟网格的网格干线,以时钟网络末端为对称轴,确定时序器件的布设区域包括:确定布设点,其中,布设点为距离网格干线的垂直距离小于或等于第二预设距离的点;以及确定布设点的集合为时序器件的布设区域。
进一步地,网格干线的数量为x,x为大于或等于2的自然数,确定布设点包括:确定每条网格干线的布设点,其中,网格干线Lp的布设点为距离网格干线Lp的垂直距离小于或等于第二预设距离的点,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合,确定布设点的集合为布设区域包括:确定每条网格干线的子布设区域,其中,网格干线Lp的子布设区域为网格干线Lp的布设点的集合;以及确定x条网格干线的子布设区域的集合为布设区域。
进一步地,时钟网络包括全局时钟、局部时钟和局部时钟缓冲单元,全局时钟通过局部时钟缓冲单元向局部时钟传播时钟信号,时钟网络末端为局部时钟缓冲单元,以时钟网络末端为中心,确定时序器件的布设区域包括:确定布设点,其中,布设点为以局部时钟缓冲单元为中心,并且距离局部时钟缓冲单元的曼哈顿距离小于或等于第三预设距离的点;以及确定布设点的集合为布设区域。
进一步地,局部时钟缓冲单元的数量为y,y为大于或等于2的自然数,确定布设点包括:确定每个局部时钟缓冲单元的布设点,其中,局部时钟缓冲单元Oq的布设点为距离局部时钟缓冲单元Oq的曼哈顿距离小于或等于第三预设距离的点,Oq∈{O1,O2…Oy},{O1,O2…Oy}为y个局部时钟缓冲单元的编号的集合,确定布设点的集合为布设区域包括:确定每个局部时钟缓冲单元的子布设区域,其中,局部时钟缓冲单元Oq的子布设区域为局部时钟缓冲单元Oq的布设点的集合;以及确定y个局部时钟缓冲单元的子布设区域的集合为布设区域。
为了实现上述目的,根据本发明的另一方面,提供了一种时钟网络的构建装置,该时钟网络的构建装置用于执行本发明上述内容所提供的任一种时钟网络的构建方法。
为了实现上述目的,根据本发明的另一方面,提供了一种时钟网络的构建装置,包括:获取单元,用于获取时钟网络末端的位置信息,其中,时钟网络末端为时钟网络中用于布设时序器件的线或点;第一确定单元,用于当时钟网络末端为用于布设时序器件的线时,以时钟网络末端为对称轴,确定时序器件的布设区域,或当时钟网络末端为用于布设时序器件的点时,以时钟网络末端为中心,确定时序器件的布设区域;以及布设单元,用于在布设区域内布设时序器件。
进一步地,时序器件的数量为n,n为大于或等于2的自然数,构建装置还包括:聚类单元,用于按照时序器件的逻辑属性对n个时序器件进行逻辑聚类,得到m个时序器件组,其中,m为大于或等于2的自然数;布设单元包括:布设子单元,用于在布设区域内布设m个时序器件组,其中,同一个时序器件组中的多个时序器件之间的相对位置满足第一预设条件,和/或同一个时序器件组中的多个时序器件之间的相对距离满足第二预设条件。
进一步地,构建装置还包括:第二确定单元,用于分别确定每个时序器件的可移动范围,其中,时序器件di的可移动范围为以时序器件di为中心,并且距离时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,di∈{d1,d2…dn},{d1,d2…dn}为n个时序器件的编号的集合;以及第一调整单元,用于在时序器件di的可移动范围内调整时序器件di的位置,以缩短n个时序器件相互之间的距离。
进一步地,n个时序器件由种子时序器件和非种子时序器件组成,第一调整单元包括:第一排序子单元,用于按照每个时序器件的可移动范围的大小对n个时序器件进行排序,得到时序器件队列;第一获取子单元,用于获取位于时序器件队列的队头或队尾处的时序器件,得到种子时序器件;以及第一调整子单元,用于调整各个非种子时序器件的位置,使各个非种子时序器件均以种子时序器件为中心聚集。
进一步地,构建装置还包括:第三确定单元,用于确定每个时序器件的可移动范围,其中,时序器件di的可移动范围为以时序器件di为中心,并且距离时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,di∈{d1,d2…dn},{d1,d2…dn}为n个时序器件的编号的集合;第四确定单元,用于确定每个时序器件组的可移动范围,其中,时序器件组Dj的可移动范围为时序器件组Dj中多个时序器件的可移动范围的交集,Dj∈{D1,D2…Dm},{D1,D2…Dm}为m个时序器件组的编号的集合;以及第二调整单元,用于以组为单位在时序器件组Dj的可移动范围内调整时序器件组Dj的位置,以缩短m个时序器件组相互之间的距离。
进一步地,m个时序器件组由种子时序器件组和非种子时序器件组组成,第二调整单元包括:第二排序子单元,用于按照每个时序器件组的可移动范围的大小对m个时序器件组进行排序,得到时序器件组队列;第二获取子单元,用于获取位于时序器件组队列的队头或队尾处的时序器件组,得到种子时序器件组;以及第二调整子单元,用于调整各个非种子时序器件组的位置,以使各个非种子时序器件组均以种子时序器件组为中心聚集。
进一步地,时钟网络的结构为时钟网格结构,时钟网络末端为时钟网格的网格干线,第一确定单元包括:第一确定子单元,用于确定第一边界和第二边界,其中,第一边界和第二边界为距离网格干线的垂直距离均为第二预设距离的两条边界;以及第二确定子单元,用于确定第一边界和第二边界之间的区域为时序器件的布设区域。
进一步地,网格干线的数量为x,x为大于或等于2的自然数,第一确定子单元包括:第一确定模块,用于确定每条网格干线的第一边界和第二边界,其中,网格干线Lp的第一边界与第二边界为距离网格干线Lp的垂直距离均为第二预设距离的两条边界,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合,第二确定子单元包括:第二确定模块,用于确定每条网格干线的子布设区域,其中,网格干线Lp的子布设区域为网格干线Lp的第一边界和第二边界之间的区域;以及第三确定模块,用于确定x条网格干线的子布设区域的集合为布设区域。
进一步地,时钟网络的结构为时钟网格结构,时钟网络末端为时钟网格的网格干线,第一确定单元包括:第三确定子单元,用于确定布设点,其中,布设点为距离网格干线的垂直距离小于或等于第二预设距离的点;以及第四确定子单元,用于确定布设点的集合为时序器件的布设区域。
进一步地,网格干线的数量为x,x为大于或等于2的自然数,第三确定子单元包括:第四确定模块,用于确定每条网格干线的布设点,其中,网格干线Lp的布设点为距离网格干线Lp的垂直距离小于或等于第二预设距离的点,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合,第四确定子单元包括:第五确定模块,用于确定每条网格干线的子布设区域,其中,网格干线Lp的子布设区域为网格干线Lp的布设点的集合;以及第六确定模块,用于确定x条网格干线的子布设区域的集合为布设区域。
进一步地,时钟网络包括全局时钟、局部时钟和局部时钟缓冲单元,全局时钟通过局部时钟缓冲单元向局部时钟传播时钟信号,时钟网络末端为局部时钟缓冲单元,第一确定单元包括:第五确定子单元,用于确定布设点,其中,布设点为以局部时钟缓冲单元为中心,并且距离局部时钟缓冲单元的曼哈顿距离小于或等于第三预设距离的点;以及第六确定子单元,用于确定布设点的集合为布设区域。
进一步地,局部时钟缓冲单元的数量为y,y为大于或等于2的自然数,第五确定子单元包括:第七确定模块,用于确定每个局部时钟缓冲单元的布设点,其中,局部时钟缓冲单元Oq的布设点为距离局部时钟缓冲单元Oq的曼哈顿距离小于或等于第三预设距离的点,Oq∈{O1,O2…Oy},{O1,O2…Oy}为y个局部时钟缓冲单元的编号的集合,第六确定子单元包括:第八确定模块,用于确定每个局部时钟缓冲单元的子布设区域,其中,局部时钟缓冲单元Oq的子布设区域为局部时钟缓冲单元Oq的布设点的集合;以及第九确定模块,用于确定y个局部时钟缓冲单元的子布设区域的集合为布设区域。
通过本发明,采用获取时钟网络中时钟网络末端的位置信息;确定以时钟网络末端所在位置为参考位置确定时序器件的布设区域,其中,时序器件为时钟网络中的时序器件;以及在布设区域内布设时序器件。通过获取时钟网络末端的位置信息,并在以时钟网络末端所在位置为中心的预设范围内布设时序器件,实现了以时钟网络的结构为基础来安排时序器件的全局布局,布局阶段就对时序器件的可布设区域作限定来优化时钟网络,此种构建时钟网络的方式避免了将“时序器件布局”与“时钟树综合优化”独立进行所带来的弊端,解决了现有技术中构建时钟网络的资源代价高或设计周期长的问题,进而达到了降低构建时钟网络的资源代价、缩短构建周期的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的时钟网络的构建方法的流程图;
图2是本发明实施例的时钟网络的构建方法中确定布设区域的第一示意图;
图3是本发明实施例的时钟网络的构建方法中确定布设区域的第二示意图;
图4是本发明实施例的时钟网络的构建方法中对时序器件进行物理聚类的流程图;
图5是根据本发明实施例的时钟网络的构建装置的示意图;以及
图6是根据本发明优选实施例的时钟网络的构建装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供了一种时钟网络的构建方法,以下对本发明实施例所提供的时钟网络的构建方法进行具体介绍:
图1是根据本发明实施例的时钟网络的构建方法的流程图,如图1所示,该方法包括如下的步骤S101至步骤S103:
S101:获取时钟网络末端的位置信息;
时钟分布网络(简称时钟网络)一般分为全局时钟和局部时钟,全局时钟的作用是将时钟源产生的时钟信号分发到全局时钟覆盖区域内的各个局部时钟,局部时钟则是在局部时钟覆盖区域内将时钟信号传播到时序器件上。如果全局时钟采用时钟网格方式向局部时钟分发时钟信号,则时钟网络的结构为时钟网格结构,对于时钟网格结构的时钟网络来说,时钟网络末端即是时钟网格的网格干线,即,时钟网络末端为时钟网络中用于布设时序器件的线;如果全局时钟通过局部时钟缓冲单元向局部时钟分发时钟信号,则时钟网络末端即是局部时钟缓冲单元,即,时钟网络末端为时钟网络中用于布设时序器件的点。
S102:确定时序器件的布设区域;
对于时钟网络末端为网格干线的情况,则确定以网格干线为中心轴,对称地分布在距离中心轴一定距离以内的范围为多个时序器件的布设区域;对于时钟网络末端为局部时钟缓冲单元的情况,则确定以局部时钟缓冲单元为中心点,对称地分布在距离中心点一定距离以内的范围为多个时序器件的布设区域。其中,时序器件数量的多少是由时钟网络所服务的时序电路来决定的,一般而言,时序电路越复杂所需要的时序器件越多。
以下分别针对不同时钟网络结构,举例说明确定时序器件布设区域的具体方式:
对于时钟网络的结构为时钟网格结构的情况,可以采用下述方式一和方式二来确定时序器件的布设区域,图2中黑色粗线条为时钟网格的网格干线,这些网络干线即为时钟网络末端,确定出的布设区域如图2中网格干线两侧的阴影部分所示。对于通过局部时钟缓冲单元向局部时钟传播时钟信号的时钟网络结构的情况,可以采用如下所述的方式三来确定时序器件的布设区域,图3中黑色粗块状为局部时钟缓冲单元,这些局部时钟缓冲单元即为时钟网络末端,确定出的布设区域如图3中局部时钟缓冲单元周围的阴影部分所示,具体地:
方式一:确定第一边界和第二边界,其中,第一边界和第二边界为距离网格干线的垂直距离均为第二预设距离的两条边界,然后确定第一边界和第二边界之间的区域为布设区域。也可以先确定出距离网格干线的垂直距离为第二预设距离的一条直线为第一边界,然后确定关于这个网格干线与其第一边界轴对称的一条直线,为这个网格干线的第二边界,第二预设距离的确定因具体设计而异,需要综合考虑性能、拥塞度和功耗等方面因素。当时钟网络对优化程度要求较高时,可以将第二预设距离设置较小些,这种情况会使得时序器件布设相对紧密,因此第二预设距离还需满足不能导致芯片性能较难满足、拥塞度过高等;当时钟网络对优化程度要求相对较弱时,可以将第二预设距离设置较大些。
对于网格干线为多条的情况,假设网格干线的数量为x,x为大于或等于2的自然数,则确定每条网格干线的第一边界和第二边界,其中,网格干线Lp的第一边界与第二边界为距离网格干线Lp的垂直距离均为第二预设距离的两条边界,同样,可以先确定出距离网格干线Lp的垂直距离为第二预设距离的一条直线为网格干线Lp的第一边界,然后确定关于网格干线Lp与其第一边界轴对称的一条直线,为网格干线Lp的第二边界,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合。然后,确定每条网格干线的子布设区域,其中,网格干线Lp的子布设区域为网格干线Lp的第一边界和第二边界之间的区域;最后,确定x条网格干线的子布设区域的集合为布设区域。
方式二:确定布设点,其中,布设点为距离网格干线的垂直距离小于或等于第二预设距离的点;然后确定布设点的集合为布设区域。
对于网格干线为多条的情况,假设网格干线的数量为x,x为大于或等于2的自然数,则确定每条网格干线的布设点,其中,网格干线Lp的布设点为距离网格干线Lp的垂直距离小于或等于第二预设距离的点,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合。然后,确定每条网格干线的子布设区域,其中,网格干线Lp的子布设区域为网格干线Lp的布设点的集合;最后,确定x条网格干线的子布设区域的集合为布设区域。
方式三:确定布设点,其中,布设点为以局部时钟缓冲单元为中心,并且距离局部时钟缓冲单元的曼哈顿距离小于或等于第三预设距离的点;然后确定布设点的集合为布设区域。由于绝大多数芯片走线只由横向走线与纵向走线组成,因此布设点通常分布在以局部时钟缓冲单元为中心的菱形区域内。而第三预设距离的确定与第二预设距离的确定相同,因具体设计而异,需要综合考虑性能、拥塞度和功耗等方面因素。当第三预设距离设置较小时,时序器件布设相对紧密,可能会导致芯片性能较难满足、拥塞度过高等问题,但时钟网络实现代价小;当第三预设距离设置较大时,时钟网络得到的优化力度相对减弱。
对于局部时钟缓冲单元为多个的情况,假设局部时钟缓冲单元的数量为y,y为大于或等于2的自然数,则确定每个局部时钟缓冲单元的布设点,其中,局部时钟缓冲单元Oq的布设点为距离局部时钟缓冲单元Oq的曼哈顿距离小于或等于第三预设距离的点,Oq∈{O1,O2…Oy},{O1,O2…Oy}为y个局部时钟缓冲单元的编号的集合,然后确定每个局部时钟缓冲单元的子布设区域,其中,局部时钟缓冲单元Oq的子布设区域为局部时钟缓冲单元Oq的布设点的集合。最后,确定y个局部时钟缓冲单元的子布设区域的集合为布设区域。
S103:在布设区域内布设时序器件,并完成局部时钟网络构建。
布设区域内的任意一点均能够作为时序器件的布设点,对多个时序器件进行布设包括:将所有时序器件放置在布设区域内的布设点上,并满足布局规范和时序要求。之后,通过直接布线或多级缓冲树方式连接各个时序器件的时钟端,形成局部时钟网络,由此得到构建的整体时钟网络。
本发明实施例的构建方法通过获取时钟网络中时钟网络末端的位置信息,并以时钟网络末端所在位置为参考位置确定时序器件的布设位置,实现了以时钟网络的结构为基础来安排时序器件的全局布局,布局阶段就对时序器件的可布设区域作限定来优化时钟网络,时序器件的布设区域受到限制;而传统的布局方法是以时序器件连线的总长度为主要优化目标,时序器件的布设位置没有特殊的限定,在布设过程中,可以根据其连线的长度、路径时序、周边拥塞程度等情况决定,时序器件的布设范围可以遍布整个布局空间。综上所述,本发明实施例的构建时钟网络的方式避免了将“时序器件布局”与“时钟树综合优化”独立进行所带来的弊端,解决了现有技术中构建时钟网络的资源代价高或设计周期长的问题,进而达到了降低构建时钟网络的资源代价、缩短构建周期的效果。
优选地,在步骤S103之前,本发明实施例的时钟网络的构建方法还包括对时序器件进行逻辑聚类,然后基于逻辑聚类后的时序器件构建时钟网络,具体地,以时序器件的数量为n来具体说明基于聚类后的时序器件构建时钟网络的方法,其中,n为大于或等于2的自然数:
首先,按照每个时序器件的逻辑属性对n个时序器件进行逻辑聚类,得到m个时序器件组,其中,m为大于或等于2的自然数,所谓按照每个时序器件的逻辑属性对n个时序器件进行逻辑聚类即是将具有逻辑等同性的时序器件划分为一组,而对于逻辑等同性的判定与时序器件的基本逻辑信息直接相关。具体涉及时序器件类型、时钟门控使能信号、前级扇入时序器件及逻辑级数、后级扇出时序器件及逻辑级数、总线等信息。在本发明实施例中,可以通过对n个时序器件进行两两对比,来进行逻辑等同性判断,其中,只要两个时序器件(以下称作时序器件甲和时序器件乙)满足以下条件中的多条(多少条由具体设计指定,条数越多,同一个时序器件组内逻辑相似性就越高,但时序器件组数量就越多,聚类效果就越不明显,需要折中考虑),即确定这两个时序器件具有逻辑等同性:
1)时序器件类型相同或相近,所谓类型相同是指这时序器件甲的功能与时序器件乙的功能相同,并且时序器件甲的端口数量与时序器件乙的端口数量相同,所述类型相近是时序器件甲的功能和时序器件乙的功能相同,但是二者的端口数量之差在误差范围内,该误差范围由时序电路的精确来决定,若精度高,则误差范围小,反之则大。
2)时钟门控使能信号相同或相近,所述时钟门控使能信号相同是指时序器件甲的使能信号形成逻辑与时序器件乙的使能信号形成逻辑相同,所谓使能信号形成逻辑就是生成时钟门控使能信号的逻辑,所谓时钟门控使能信号相近是指时序器件甲的使能信号形成逻辑与时序器件乙的使能信号形成逻辑不相同,但是,二者的使能信号形成逻辑中的各项逻辑子项中相同项数超过一个阈值,该阈值同样由时序电路的精确来决定,若精度高,则阈值大,反之则小。
3)前级扇入时序器件相同,且逻辑级数差不超过某个阈值。前级扇入时序器件指的是参与前级逻辑运算,并为本时序器件产生数据输入信号的那些时序器件,包括数据输入端口和数据使能端口等。
4)后级扇出时序器件相同,且逻辑级数差不超过某个阈值。后级扇出时序器件指的是使用本时序器件产生的数据输出信号来进行计算,并用来储存计算结果的那些时序器件。
5)同属于一组总线,即,时序器件甲与时序器件乙连接于时钟网络中的一组总线上。
其次,在对n个时序器件进行逻辑聚类,划分出m个时序器件组后,步骤S103中相应地则以组为单位来布设m个时序器件组,所谓以组为单位,则是在布设过程中保证同一个时序器件组中的多个时序器件满足以下条件a和条件b中的至少之一:
条件a:同一个时序器件组中的多个时序器件之间的相对位置满足第一预设条件,该第一预设条件为相对位置不变,即,同一个时序器件组中的多个时序器件之间的相对位置保持不变。
条件b:同一个时序器件组中的多个时序器件之间的相对距离满足第二预设条件,该第二预设条件为距离值尽量小,即,同一个时序器件组中多个时序器件之间的相对距离尽量小,所谓尽量小是指时序器件之间的相对距离在满足工艺设计规则的前提下,保证时序器件之间的布线密度最大。
通过先对多个时序器件进行逻辑聚类,实现了在布设过程中具有逻辑等同性的时序器件能够维持预设位置关系,对具有逻辑等同性的时序器件之间的相互位置进行约束,能够进一步降低时序器件的整体布线长,进而降低时序信号的反转率,降低时序器件的功耗。
更优选地,在布设区域内以单个时序器件为单位,或以时序器件组为单位对时序器件进行布设后,本发明实施例的时钟网络构建方法还包括对时序器件进行物理聚类,所谓物理聚类指的是:在时序器件布局之后,通过调整时序器件的局部位置,使得时序器件彼此靠近相互聚集,形成时序器件物理位置的局部性。本发明实施例中,时序器件物理聚类的流程在图4中示出,如图4所示:
首先,确定每个时序器件的可移动范围(即,步骤S401),对于任意一个时序器件而言,这个时序器件的可移动范围需要满足:当在其可移动范围内对这个时序器件的布设点进行调整时,时序器件的时序和拥塞度情况不会发生变化。本发明实施例中,假设n个时序器件的编号依次为d1,d2…dn,即,{d1,d2…dn}为n个时序器件的编号的集合,则对于任意一个时序器件di而言,这个时序器件di的可移动范围为以时序器件di为中心,并且距离时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,其中,di∈{d1,d2…dn}。
其次,在确定出的可移动范围内相应地调整各个时序器件的布设位置,以使n个时序器件相互聚集,缩短n个时序器件相互之间的距离,即,在时序器件di的可移动范围内调整时序器件di的布设位置,具体为:
第一,按照每个时序器件的可移动范围的大小对n个时序器件进行排序,得到时序器件队列(即,步骤S402)。
第二,获取位于时序器件队列的队头或队尾处的时序器件,得到种子时序器件a(即,步骤S403),其中,若步骤S402中在对时序器件进行排序时,是按照从大到小的顺序排列的,则种子时序器件a为队尾的时序器件。若步骤S402中在对时序器件进行排序时,是按照从小到大的顺序排列的,则种子时序器件a为队头的时序器件。
第三,调整每个非种子时序器件的位置,使每个非种子时序器件均以种子时序器件a为中心聚集,具体地,首先,获取到与种子时序器件a之间的距离最近的时序器件b(即,步骤S404),在时序器件b的可移动范围内移动时序器件b,使其尽可能地靠近时序器件a(即,步骤S405),确定时序器件b的位置,并将这个时序器件b标记为已处理(即,步骤S406)。然后,重复执行以上步骤S404至S406,直至时序器件队列中的时序器件均已标记为已处理(即,步骤S407)。
通过确定每个时序器件的可移动范围、然后在各个时序器件的各自可移动范围内相应地调整各个时序器件的最终布设点,达到了对时钟网络的空间聚集性进行提高。
进一步地,上述对时序器件进行物理聚类的方法步骤中,还可以以时序器件组为单位进行聚类,所谓以时序器件组为单位进行聚类是指,在确定出每个时序器件的可移动范围之后,确定每一组时序器件组内多个时序器件的可移动范围的交集为这个时序器件组的可移动范围,然后,以组为单位在确定出的时序器件组的可移动范围内,对应调整各个时序器件组的布设位置,调整过程中控制同一个时序器件组中的多个时序器件之间的相对位置不变。假设m个时序器件组的编号依次为D1,D2…Dm,即,{D1,D2…Dm}为m个时序器件组的编号的集合,则对于任意一个时序器件组Dj而言,时序器件组Dj的可移动范围为时序器件组Dj中多个时序器件的可移动范围的交集,其中,Dj∈{D1,D2…Dm}。然后,在时序器件组Dj的可移动范围内调整时序器件组Dj的布设位置,以使m个时序器件组相互聚集,缩短m个时序器件组相互之间的距离,调整过程中控制时序器件组Dj中的多个时序器件之间的相对位置不变。具体为:
第一,按照每个时序器件组的可移动范围的大小对m个时序器件组进行排序,得到时序器件组队列。
第二,获取位于时序器件组队列的队头或队尾处的时序器件组,得到种子时序器件组A。其中,若在对时序器件组进行排序时,是按照从大到小的顺序排列的,则种子时序器件组A为队尾的时序器件组。若在对时序器件组进行排序时,是按照从小到大的顺序排列的,则种子时序器件组A为队头的时序器件组。
第三,调整每个非种子时序器件组的位置,以使各个非种子时序器件组均以种子时序器件组A为中心聚集,具体地,步骤一:获取到与种子时序器件组A之间的距离最近的时序器件组B;步骤二:在时序器件组B的可移动范围内移动时序器件组B内的每一个时序器件,使时序器件组B内的所有时序器件均尽可能地靠近时序器件组A;步骤三:确定时序器件组B内各个时序器件的位置,并将这个时序器件组B标记为已处理。然后,重复执行以上步骤一至步骤三,直至时序器件组队列中的时序器件组均已标记为已处理。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种时钟网络的构建装置,该构建装置主要用于执行本发明实施例上述内容所提供的时钟网络的构建方法,以下对本发明实施例所提供的时钟网络的构建装置进行具体介绍:
图5是根据本发明实施例的时钟网络的构建装置的示意图,如图5所示,该时钟网络的构建装置主要包括获取单元10、第一确定单元20和布设单元30,具体地:
获取单元10用于获取时钟网络中始终网络末端的位置信息,时钟分布网络(简称时钟网络)一般分为全局时钟和局部时钟,全局时钟的作用是将时钟源产生的时钟信号分发到全局时钟覆盖区域内的各个局部时钟,局部时钟则是在局部时钟覆盖区域内将时钟信号传播到时序器件上。如果全局时钟采用时钟网格方式向局部时钟分发时钟信号,则时钟网络的结构为时钟网格结构,对于时钟网格结构的时钟网络来说,时钟网络末端即是时钟网格的网格干线;如果全局时钟通过局部时钟缓冲单元向局部时钟分发时钟信号,则时钟网络末端即是局部时钟缓冲单元。
第一确定单元20用于确定时序器件的布设区域,对于时钟网络末端为网格干线的情况,第一确定单元20则确定以网格干线为中心轴,对称地分布在距离中心轴一定距离以内的范围为多个时序器件的布设区域;对于时钟网络末端为局部时钟缓冲单元的情况,第一确定单元20则确定以局部时钟缓冲单元为中心点,对称地分布在距离中心点一定距离以内的范围为多个时序器件的布设区域。其中,时序器件数量的多少是由时钟网络所服务的时序电路来决定的,一般而言,时序电路越复杂所需要的时序器件越多。
针对不同的时钟网络结构,第一确定单元20的具体组成不同,以下分别针对不同时钟网络结构,举例说明第一确定单元20的组成:
对于时钟网络的结构为时钟网格结构的情况,第一确定单元20主要由以下两种结构组成方式:
方式一:第一确定单元包括第一确定子单元和第二确定子单元,第一确定子单元用于确定第一边界和第二边界,其中,第一边界和第二边界为距离网格干线的垂直距离均为第二预设距离的两条边界,第二确定子单元用于确定第一边界和第二边界之间的区域为布设区域。第一确定子单元也可以先确定出距离网格干线的垂直距离为第二预设距离的一条直线为第一边界,然后确定关于这个网格干线与其第一边界轴对称的一条直线,为这个网格干线的第二边界,第二预设距离的确定因具体设计而异,需要综合考虑性能、拥塞度和功耗等方面因素。当时钟网络对优化程度要求较高时,可以将第二预设距离设置较小些,这种情况会使得时序器件布设相对紧密,因此第二预设距离还需满足不能导致芯片性能较难满足、拥塞度过高等;当时钟网络对优化程度要求相对较弱时,可以将第二预设距离设置较大些。
对于网格干线为多条的情况,假设网格干线的数量为x,x为大于或等于2的自然数,第一确定子单元包括第一确定模块,第二确定子单元包括第二确定模块和第三确定模块,具体地,第一确定模块用于确定每条网格干线的第一边界和第二边界,其中,网格干线Lp的第一边界与第二边界为距离网格干线Lp的垂直距离均为第二预设距离的两条边界,同样,可以先确定出距离网格干线Lp的垂直距离为第二预设距离的一条直线为网格干线Lp的第一边界,然后确定关于网格干线Lp与其第一边界轴对称的一条直线,为网格干线Lp的第二边界,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合。第二确定模块用于确定每条网格干线的子布设区域,其中,网格干线Lp的子布设区域为网格干线Lp的第一边界和第二边界之间的区域;第三确定模块用于确定x条网格干线的子布设区域的集合为布设区域。
方式二:第一确定单元包括第三确定子单元和第四确定子单元,第三确定子单元用于确定布设点,其中,布设点为距离网格干线的垂直距离小于或等于第二预设距离的点;第四确定子单元用于确定布设点的集合为布设区域。
对于网格干线为多条的情况,假设网格干线的数量为x,x为大于或等于2的自然数,第三确定子单元包括第四确定模块,第四确定子单元包括第五确定模块和第六确定模块,第四确定模块用于确定每条网格干线的布设点,其中,网格干线Lp的布设点为距离网格干线Lp的垂直距离小于或等于第二预设距离的点,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合。第五确定模块用于确定每条网格干线的子布设区域,其中,网格干线Lp的子布设区域为网格干线Lp的布设点的集合;第六确定模块用于确定x条网格干线的子布设区域的集合为布设区域。
对于通过局部时钟缓冲单元向局部时钟传播时钟信号的时钟网络结构的情况,第一确定单元20主要包括第五确定子单元和第六确定子单元,具体地:
第五确定子单元用于确定布设点,其中,布设点为以局部时钟缓冲单元为中心,并且距离局部时钟缓冲单元的曼哈顿距离小于或等于第三预设距离的点;第六确定子单元用于确定布设点的集合为布设区域。由于绝大多数芯片走线只由横向走线与纵向走线组成,因此布设点通常分布在以局部时钟缓冲单元为中心的菱形区域内。而第三预设距离的确定与第二预设距离的确定相同,因具体设计而异,需要综合考虑性能、拥塞度和功耗等方面因素。当第三预设距离设置较小时,时序器件布设相对紧密,可能会导致芯片性能较难满足、拥塞度过高等问题,但时钟网络实现代价小;当第三预设距离设置较大时,时钟网络得到的优化力度相对减弱。
对于局部时钟缓冲单元为多个的情况,假设局部时钟缓冲单元的数量为y,y为大于或等于2的自然数,第五确定子单元包括第七确定模块,第六确定子单元包括第八确定模块和第九确定模块,第七确定模块用于确定每个局部时钟缓冲单元的布设点,其中,局部时钟缓冲单元Oq的布设点为距离局部时钟缓冲单元Oq的曼哈顿距离小于或等于第三预设距离的点,Oq∈{O1,O2…Oy},{O1,O2…Oy}为y个局部时钟缓冲单元的编号的集合,第八确定模块用于确定每个局部时钟缓冲单元的子布设区域,其中,局部时钟缓冲单元Oq的子布设区域为局部时钟缓冲单元Oq的布设点的集合。第九确定模块用于确定y个局部时钟缓冲单元的子布设区域的集合为布设区域。
布设单元30用于在布设区域内布设时序器件,第一确定单元20所确定出的布设区域内的任意一点,均能够作为布设单元30布设时序器件的布设点,布设单元30将所有时序器件放置在布设区域内的布设点上,之后,布线连接各个时序器件,得到构建的时钟网络。
本发明实施例的构建装置通过获取时钟网络中时钟网络末端的位置信息,并以时钟网络末端所在位置为参考位置确定时序器件的布设区域,实现了以时钟网络的结构为基础来安排时序器件的全局布局,布局阶段就对时序器件的可布设区域作限定来优化时钟网络,时序器件的布设区域受到限制;而传统的布局方法是以时序器件连线的总长度为主要优化目标,时序器件的布设位置没有特殊的限定,在布设过程中,可以根据其连线的长度、路径时序、周边拥塞程度等情况决定,时序器件的布设范围可以遍布整个布局空间。综上所述,本发明实施例的构建时钟网络的方式避免了将“时序器件布局”与“时钟树综合优化”独立进行所带来的弊端,解决了现有技术中构建时钟网络的资源代价高或设计周期长的问题,进而达到了降低构建时钟网络的资源代价、缩短构建周期的效果。
优选地,如图6所示,本发明实施例的时钟网络的构建装置还包括聚类单元40,该聚类单元40用于按照时序器件的逻辑属性对n个时序器件进行逻辑聚类,得到m个时序器件组,具体地,聚类单元40对n个时序器件进行逻辑聚类的方法为:
按照每个时序器件的逻辑属性对n个时序器件进行逻辑聚类,得到m个时序器件组,其中,m为大于或等于2的自然数,所谓按照每个时序器件的逻辑属性对n个时序器件进行逻辑聚类即是将具有逻辑等同性的时序器件划分为一组,而对于逻辑等同性的判定与时序器件的基本逻辑信息直接相关。具体涉及时序器件类型、时钟门控使能信号、前级扇入时序器件及逻辑级数、后级扇出时序器件及逻辑级数、总线等信息。在本发明实施例中,可以通过对n个时序器件进行两两对比,来进行逻辑等同性判断,其中,只要两个时序器件(以下称作时序器件甲和时序器件乙)满足以下条件中的多条(多少条由具体设计指定,条数越多,同一个时序器件组内逻辑相似性就越高,但时序器件组数量就越多,聚类效果就越不明显,需要折中考虑),即确定这两个时序器件具有逻辑等同性:
1)时序器件类型相同或相近,所谓类型相同是指这时序器件甲的功能与时序器件乙的功能相同,并且时序器件甲的端口数量与时序器件乙的端口数量相同,所述类型相近是时序器件甲的功能和时序器件乙的功能相同,但是二者的端口数量之差在误差范围内,该误差范围由时序电路的精确来决定,若精度高,则误差范围小,反之则大。
2)时钟门控使能信号相同或相近,所述时钟门控使能信号相同是指时序器件甲的使能信号形成逻辑与时序器件乙的使能信号形成逻辑相同,所谓使能信号形成逻辑就是生成时钟门控使能信号的逻辑,所谓时钟门控使能信号相近是指时序器件甲的使能信号形成逻辑与时序器件乙的使能信号形成逻辑不相同,但是,二者的使能信号形成逻辑中的各项逻辑子项中相同项数超过一个阈值,该阈值同样由时序电路的精确来决定,若精度高,则阈值大,反之则小。
3)前级扇入时序器件相同,且逻辑级数差不超过某个阈值。前级扇入时序器件指的是参与前级逻辑运算,并为本时序器件产生数据输入信号的那些时序器件,包括数据输入端口和数据使能端口等。
4)后级扇出时序器件相同,且逻辑级数差不超过某个阈值。后级扇出时序器件指的是使用本时序器件产生的数据输出信号来进行计算,并用来储存计算结果的那些时序器件。
5)同属于一组总线,即,时序器件甲与时序器件乙连接于时钟网络中的一组总线上。
在本发明优选实施例的时钟网络的构建装置中,布设单元30包括布设子单元,该布设子单元用于在聚类单元40划分出m个时序器件组后,以组为单位来布设m个时序器件组,所谓以组为单位,则是在布设过程中保证同一个时序器件组中的多个时序器件满足以下条件a和条件b中的至少之一:
条件a:同一个时序器件组中的多个时序器件之间的相对位置满足第一预设条件,该第一预设条件为相对位置不变,即,同一个时序器件组中的多个时序器件之间的相对位置保持不变。
条件b:同一个时序器件组中的多个时序器件之间的相对距离满足第二预设条件,该第二预设条件为距离值尽量小,即,同一个时序器件组中多个时序器件之间的相对距离尽量小,所谓尽量小是指时序器件之间的相对距离在满足工艺设计规则的前提下,保证时序器件之间的布线密度最大。
通过聚类单元先对多个时序器件进行逻辑聚类,实现了在布设过程中具有逻辑等同性的时序器件能够维持预设位置关系,对具有逻辑等同性的时序器件之间的相互位置进行约束,能够进一步降低时序器件的整体布线长,进而降低时序信号的反转率,降低时序器件的功耗。
更优选地,在布设区域内以单个时序器件为单位,或以时序器件组为单位对时序器件进行布设后,本发明实施例的时钟网络构建装置还包括对时序器件进行物理聚类的部件,所谓物理聚类指的是:在时序器件布局之后,通过调整时序器件的局部位置,使得时序器件彼此靠近相互聚集,形成时序器件物理位置的局部性。采用不同的物理聚类方式时,本发明实施例所提供的构建装置的结构组成不同,以下具体说明:
以单个时序器件为最小单元对时序器件进行物理聚类的情况,时钟网络的构建装置还包括第二确定单元和第一调整单元,第二确定单元用于确定每个时序器件的可移动范围,对于任意一个时序器件而言,这个时序器件的可移动范围需要满足:当在其可移动范围内对这个时序器件的布设点进行调整时,时序器件的时序和拥塞度情况不会发生变化。本发明实施例中,假设n个时序器件的编号依次为d1,d2…dn,即,{d1,d2…dn}为n个时序器件的编号的集合,则对于任意一个时序器件di而言,这个时序器件di的可移动范围为以时序器件di为中心,并且距离时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,其中,di∈{d1,d2…dn}。第一调整单元用于在确定出的可移动范围内相应地调整各个时序器件的布设位置,以使n个时序器件相互聚集,缩短n个时序器件相互之间的距离,即,在时序器件di的可移动范围内调整时序器件di的布设位置,第一调整单元主要包括第一排序子单元、第一获取子单元和第一调整子单元,其中,第一排序子单元用于按照每个时序器件的可移动范围的大小对n个时序器件进行排序,得到时序器件队列。第一获取子单元用于获取位于时序器件队列的队头或队尾处的时序器件,得到种子时序器件a,其中,若第一排序子单元在对时序器件进行排序时,是按照从大到小的顺序排列的,则种子时序器件a为队尾的时序器件。若第一排序子单元在对时序器件进行排序时,是按照从小到大的顺序排列的,则种子时序器件a为队头的时序器件。第一调整子单元用于调整每个非种子时序器件的位置,使每个非种子时序器件均以种子时序器件a为中心聚集,具体地,首先,获取到与种子时序器件a之间的距离最近的时序器件b,在时序器件b的可移动范围内移动时序器件b,使其尽可能地靠近时序器件a,确定时序器件b的位置,并将这个时序器件b标记为已处理。然后,对队列中与种子时序器件a之间的距离次近的时序器件进行调整,以此类推,直至时序器件队列中的时序器件均已标记为已处理。
通过确定每个时序器件的可移动范围、然后在各个时序器件的各自可移动范围内相应地调整各个时序器件的最终布设点,达到了对时钟网络的空间聚集性进行提高。
以时序器件组为最小单元对时序器件进行物理聚类的情况,时钟网络的构建装置还包括第三确定单元、第四确定单元和第二调整单元,第三确定单元与第二确定单元的功能相同,用于确定每个时序器件的可移动范围,第四确定单元用于确定每一组时序器件组内多个时序器件的可移动范围的交集为这个时序器件组的可移动范围,第二调整单元则用于以组为单位在确定出的时序器件组的可移动范围内,对应调整各个时序器件组的布设位置,调整过程中控制同一个时序器件组中的多个时序器件之间的相对位置不变。假设m个时序器件组的编号依次为D1,D2…Dm,即,{D1,D2…Dm}为m个时序器件组的编号的集合,则对于任意一个时序器件组Dj而言,时序器件组Dj的可移动范围为时序器件组Dj中多个时序器件的可移动范围的交集,其中,Dj∈{D1,D2…Dm}。第二调整单元主要包括第二排序子单元、第二获取子单元和第二调整子单元,其中,第二排序子单元用于按照每个时序器件组的可移动范围的大小对m个时序器件组进行排序,得到时序器件组队列。第二获取子单元用于获取位于时序器件组队列的队头或队尾处的时序器件组,得到种子时序器件组A。其中,若在对时序器件组进行排序时,是按照从大到小的顺序排列的,则种子时序器件组A为队尾的时序器件组。若在对时序器件组进行排序时,是按照从小到大的顺序排列的,则种子时序器件组A为队头的时序器件组。第二调整子单元用于调整每个非种子时序器件组的位置,以使各个非种子时序器件组均以种子时序器件组A为中心聚集,具体地,步骤一:获取到与种子时序器件组A之间的距离最近的时序器件组B;步骤二:在时序器件组B的可移动范围内移动时序器件组B内的每一个时序器件,使时序器件组B内的所有时序器件均尽可能地靠近时序器件组A;步骤三:确定时序器件组B内各个时序器件的位置,并将这个时序器件组B标记为已处理。然后,重复执行以上步骤一至步骤三,直至时序器件组队列中的时序器件组均已标记为已处理。
显然,本领域的技术人员应该明白,上述的本发明的各单元或各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种时钟网络的构建方法,其特征在于,包括:
获取时钟网络末端的位置信息,其中,所述时钟网络末端为所述时钟网络中用于布设时序器件的线或点;
当所述时钟网络末端为用于布设所述时序器件的线时,以所述时钟网络末端为对称轴,确定所述时序器件的布设区域;
当所述时钟网络末端为用于布设所述时序器件的点时,以所述时钟网络末端为中心,确定时序器件的布设区域;以及
在所述布设区域内布设所述时序器件。
2.根据权利要求1所述的构建方法,其特征在于,所述时序器件的数量为n,n为大于或等于2的自然数,
在所述布设区域内布设所述时序器件之前,所述构建方法还包括:按照所述时序器件的逻辑属性对n个时序器件进行逻辑聚类,得到m个时序器件组,其中,m为大于或等于2的自然数;
在所述布设区域内布设所述时序器件包括:在所述布设区域内布设所述m个时序器件组,其中,同一个所述时序器件组中的多个时序器件之间的相对位置满足第一预设条件,和/或同一个所述时序器件组中的多个时序器件之间的相对距离满足第二预设条件。
3.根据权利要求2所述的构建方法,其特征在于,在在所述布设区域内布设所述m个时序器件组之后,所述构建方法还包括:
分别确定每个所述时序器件的可移动范围,其中,时序器件di的可移动范围为以所述时序器件di为中心,并且距离所述时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,di∈{d1,d2…dn},{d1,d2…dn}为所述n个时序器件的编号的集合;以及
在所述时序器件di的可移动范围内调整所述时序器件di的位置,以缩短所述n个时序器件相互之间的距离。
4.根据权利要求3所述的构建方法,其特征在于,所述n个时序器件由种子时序器件和非种子时序器件组成,在所述时序器件di的可移动范围内调整所述时序器件di的位置包括:
按照每个所述时序器件的可移动范围的大小对所述n个时序器件进行排序,得到时序器件队列;
获取位于所述时序器件队列的队头或队尾处的时序器件,得到所述种子时序器件;以及
调整各个非种子时序器件的位置,使各个所述非种子时序器件均以所述种子时序器件为中心聚集。
5.根据权利要求2所述的构建方法,其特征在于,在在所述布设区域内布设所述m个时序器件组之后,所述构建方法还包括:
确定每个所述时序器件的可移动范围,其中,时序器件di的可移动范围为以所述时序器件di为中心,并且距离所述时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,di∈{d1,d2…dn},{d1,d2…dn}为n个所述时序器件的编号的集合;
确定每个所述时序器件组的可移动范围,其中,时序器件组Dj的可移动范围为所述时序器件组Dj中多个时序器件的可移动范围的交集,Dj∈{D1,D2…Dm},{D1,D2…Dm}为所述m个时序器件组的编号的集合;以及
以组为单位在所述时序器件组Dj的可移动范围内调整所述时序器件组Dj的位置,以缩短所述m个时序器件组相互之间的距离。
6.根据权利要求5所述的构建方法,其特征在于,所述m个时序器件组由种子时序器件组和非种子时序器件组组成,以组为单位在所述时序器件组Dj的可移动范围内调整所述时序器件组Dj的位置包括:
按照每个所述时序器件组的可移动范围的大小对所述m个时序器件组进行排序,得到时序器件组队列;
获取位于所述时序器件组队列的队头或队尾处的时序器件组,得到所述种子时序器件组;以及
调整各个非种子时序器件组的位置,以使各个所述非种子时序器件组均以所述种子时序器件组为中心聚集。
7.根据权利要求1所述的构建方法,其特征在于,所述时钟网络的结构为时钟网格结构,所述时钟网络末端为所述时钟网格的网格干线,以所述时钟网络末端为对称轴,确定所述时序器件的布设区域包括:
确定第一边界和第二边界,其中,所述第一边界和所述第二边界为距离所述网格干线的垂直距离均为第二预设距离的两条边界;以及
确定所述第一边界和所述第二边界之间的区域为所述时序器件的布设区域。
8.根据权利要求7所述的构建方法,其特征在于,所述网格干线的数量为x,x为大于或等于2的自然数,
确定第一边界和第二边界包括:
确定每条所述网格干线的第一边界和第二边界,其中,网格干线Lp的第一边界与第二边界为距离所述网格干线Lp的垂直距离均为所述第二预设距离的两条边界,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条所述网格干线的编号的集合,
确定所述第一边界和所述第二边界之间的区域为所述时序器件的布设区域包括:
确定每条网格干线的子布设区域,其中,所述网格干线Lp的子布设区域为所述网格干线Lp的第一边界和第二边界之间的区域;以及
确定x条网格干线的子布设区域的集合为所述布设区域。
9.根据权利要求1所述的构建方法,其特征在于,所述时钟网络的结构为时钟网格结构,所述时钟网络末端为所述时钟网格的网格干线,以所述时钟网络末端为对称轴,确定所述时序器件的布设区域包括:
确定布设点,其中,所述布设点为距离所述网格干线的垂直距离小于或等于第二预设距离的点;以及
确定所述布设点的集合为所述时序器件的布设区域。
10.根据权利要求9所述的构建方法,其特征在于,所述网格干线的数量为x,x为大于或等于2的自然数,
确定布设点包括:
确定每条所述网格干线的布设点,其中,网格干线Lp的布设点为距离所述网格干线Lp的垂直距离小于或等于所述第二预设距离的点,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合,
确定所述布设点的集合为所述布设区域包括:
确定每条所述网格干线的子布设区域,其中,所述网格干线Lp的子布设区域为所述网格干线Lp的布设点的集合;以及
确定所述x条网格干线的子布设区域的集合为所述布设区域。
11.根据权利要求1所述的构建方法,其特征在于,所述时钟网络包括全局时钟、局部时钟和局部时钟缓冲单元,所述全局时钟通过所述局部时钟缓冲单元向所述局部时钟传播时钟信号,所述时钟网络末端为所述局部时钟缓冲单元,以所述时钟网络末端为中心,确定所述时序器件的布设区域包括:
确定布设点,其中,所述布设点为以所述局部时钟缓冲单元为中心,并且距离所述局部时钟缓冲单元的曼哈顿距离小于或等于第三预设距离的点;以及
确定所述布设点的集合为所述布设区域。
12.根据权利要求11所述的构建方法,其特征在于,所述局部时钟缓冲单元的数量为y,y为大于或等于2的自然数,
确定布设点包括:
确定每个所述局部时钟缓冲单元的布设点,其中,局部时钟缓冲单元Oq的布设点为距离所述局部时钟缓冲单元Oq的曼哈顿距离小于或等于所述第三预设距离的点,Oq∈{O1,O2…Oy},{O1,O2…Oy}为y个局部时钟缓冲单元的编号的集合,
确定所述布设点的集合为所述布设区域包括:
确定每个所述局部时钟缓冲单元的子布设区域,其中,所述局部时钟缓冲单元Oq的子布设区域为所述局部时钟缓冲单元Oq的布设点的集合;以及
确定所述y个局部时钟缓冲单元的子布设区域的集合为所述布设区域。
13.一种时钟网络的构建装置,其特征在于,包括:
获取单元,用于获取时钟网络末端的位置信息,其中,所述时钟网络末端为所述时钟网络中用于布设时序器件的线或点;
第一确定单元,用于当所述时钟网络末端为用于布设所述时序器件的线时,以所述时钟网络末端为对称轴,确定所述时序器件的布设区域,或当所述时钟网络末端为用于布设所述时序器件的点时,以所述时钟网络末端为中心,确定所述时序器件的布设区域;以及
布设单元,用于在所述布设区域内布设所述时序器件。
14.根据权利要求13所述的构建装置,其特征在于,所述时序器件的数量为n,n为大于或等于2的自然数,
所述构建装置还包括:聚类单元,用于按照所述时序器件的逻辑属性对n个时序器件进行逻辑聚类,得到m个时序器件组,其中,m为大于或等于2的自然数;
所述布设单元包括:布设子单元,用于在所述布设区域内布设所述m个时序器件组,其中,同一个所述时序器件组中的多个时序器件之间的相对位置满足第一预设条件,和/或同一个所述时序器件组中的多个时序器件之间的相对距离满足第二预设条件。
15.根据权利要求14所述的构建装置,其特征在于,所述构建装置还包括:
第二确定单元,用于分别确定每个所述时序器件的可移动范围,其中,时序器件di的可移动范围为以所述时序器件di为中心,并且距离所述时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,di∈{d1,d2…dn},{d1,d2…dn}为所述n个时序器件的编号的集合;以及
第一调整单元,用于在所述时序器件di的可移动范围内调整所述时序器件di的位置,以缩短所述n个时序器件相互之间的距离。
16.根据权利要求15所述的构建装置,其特征在于,所述n个时序器件由种子时序器件和非种子时序器件组成,所述第一调整单元包括:
第一排序子单元,用于按照每个所述时序器件的可移动范围的大小对所述n个时序器件进行排序,得到时序器件队列;
第一获取子单元,用于获取位于所述时序器件队列的队头或队尾处的时序器件,得到所述种子时序器件;以及
第一调整子单元,用于调整各个非种子时序器件的位置,使各个所述非种子时序器件均以所述种子时序器件为中心聚集。
17.根据权利要求14所述的构建装置,其特征在于,所述构建装置还包括:
第三确定单元,用于确定每个所述时序器件的可移动范围,其中,时序器件di的可移动范围为以所述时序器件di为中心,并且距离所述时序器件di的曼哈顿距离小于或等于第一预设距离的点的集合,di∈{d1,d2…dn},{d1,d2…dn}为n个所述时序器件的编号的集合;
第四确定单元,用于确定每个所述时序器件组的可移动范围,其中,时序器件组Dj的可移动范围为所述时序器件组Dj中多个时序器件的可移动范围的交集,Dj∈{D1,D2…Dm},{D1,D2…Dm}为所述m个时序器件组的编号的集合;以及
第二调整单元,用于以组为单位在所述时序器件组Dj的可移动范围内调整所述时序器件组Dj的位置,以缩短所述m个时序器件组相互之间的距离。
18.根据权利要求17所述的构建装置,其特征在于,所述m个时序器件组由种子时序器件组和非种子时序器件组组成,所述第二调整单元包括:
第二排序子单元,用于按照每个所述时序器件组的可移动范围的大小对所述m个时序器件组进行排序,得到时序器件组队列;
第二获取子单元,用于获取位于所述时序器件组队列的队头或队尾处的时序器件组,得到所述种子时序器件组;以及
第二调整子单元,用于调整各个非种子时序器件组的位置,以使各个所述非种子时序器件组均以所述种子时序器件组为中心聚集。
19.根据权利要求13所述的构建装置,其特征在于,所述时钟网络的结构为时钟网格结构,所述时钟网络末端为所述时钟网格的网格干线,所述第一确定单元包括:
第一确定子单元,用于确定第一边界和第二边界,其中,所述第一边界和所述第二边界为距离所述网格干线的垂直距离均为第二预设距离的两条边界;以及
第二确定子单元,用于确定所述第一边界和所述第二边界之间的区域为所述时序器件的布设区域。
20.根据权利要求19所述的构建装置,其特征在于,所述网格干线的数量为x,x为大于或等于2的自然数,
所述第一确定子单元包括:
第一确定模块,用于确定每条所述网格干线的第一边界和第二边界,其中,网格干线Lp的第一边界与第二边界为距离所述网格干线Lp的垂直距离均为所述第二预设距离的两条边界,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条所述网格干线的编号的集合,
所述第二确定子单元包括:
第二确定模块,用于确定每条网格干线的子布设区域,其中,所述网格干线Lp的子布设区域为所述网格干线Lp的第一边界和第二边界之间的区域;以及
第三确定模块,用于确定x条网格干线的子布设区域的集合为所述布设区域。
21.根据权利要求13所述的构建装置,其特征在于,所述时钟网络的结构为时钟网格结构,所述时钟网络末端为所述时钟网格的网格干线,所述第一确定单元包括:
第三确定子单元,用于确定布设点,其中,所述布设点为距离所述网格干线的垂直距离小于或等于第二预设距离的点;以及
第四确定子单元,用于确定所述布设点的集合为所述时序器件的布设区域。
22.根据权利要求21所述的构建装置,其特征在于,所述网格干线的数量为x,x为大于或等于2的自然数,
所述第三确定子单元包括:
第四确定模块,用于确定每条所述网格干线的布设点,其中,所述网格干线Lp的布设点为距离所述网格干线Lp的垂直距离小于或等于所述第二预设距离的点,Lp∈{L1,L2…Lx},{L1,L2…Lx}为x条网格干线的编号的集合,
所述第四确定子单元包括:
第五确定模块,用于确定每条所述网格干线的子布设区域,其中,所述网格干线Lp的子布设区域为所述网格干线Lp的布设点的集合;以及
第六确定模块,用于确定所述x条网格干线的子布设区域的集合为所述布设区域。
23.根据权利要求13所述的构建装置,其特征在于,所述时钟网络包括全局时钟、局部时钟和局部时钟缓冲单元,所述全局时钟通过所述局部时钟缓冲单元向所述局部时钟传播时钟信号,所述时钟网络末端为所述局部时钟缓冲单元,所述第一确定单元包括:
第五确定子单元,用于确定布设点,其中,所述布设点为以所述局部时钟缓冲单元为中心,并且距离所述局部时钟缓冲单元的曼哈顿距离小于或等于第三预设距离的点;以及
第六确定子单元,用于确定所述布设点的集合为所述布设区域。
24.根据权利要求23所述的构建装置,其特征在于,所述局部时钟缓冲单元的数量为y,y为大于或等于2的自然数,
所述第五确定子单元包括:
第七确定模块,用于确定每个所述局部时钟缓冲单元的布设点,其中,局部时钟缓冲单元Oq的布设点为距离所述局部时钟缓冲单元Oq的曼哈顿距离小于或等于所述第三预设距离的点,Oq∈{O1,O2…Oy},{O1,O2…Oy}为y个局部时钟缓冲单元的编号的集合,
所述第六确定子单元包括:
第八确定模块,用于确定每个所述局部时钟缓冲单元的子布设区域,其中,所述局部时钟缓冲单元Oq的子布设区域为所述局部时钟缓冲单元Oq的布设点的集合;以及
第九确定模块,用于确定所述y个局部时钟缓冲单元的子布设区域的集合为所述布设区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310218090.7A CN103259526B (zh) | 2013-06-03 | 2013-06-03 | 时钟网络的构建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310218090.7A CN103259526B (zh) | 2013-06-03 | 2013-06-03 | 时钟网络的构建方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103259526A true CN103259526A (zh) | 2013-08-21 |
CN103259526B CN103259526B (zh) | 2016-09-07 |
Family
ID=48963264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310218090.7A Active CN103259526B (zh) | 2013-06-03 | 2013-06-03 | 时钟网络的构建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103259526B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605863A (zh) * | 2013-11-27 | 2014-02-26 | 中国人民解放军国防科学技术大学 | 集成电路时钟网格主干尺寸的规划方法 |
CN103617322A (zh) * | 2013-11-27 | 2014-03-05 | 中国人民解放军国防科学技术大学 | 基于驱动窗口的集成电路时钟网格驱动优化方法 |
CN105404352A (zh) * | 2014-09-11 | 2016-03-16 | 北京华大九天软件有限公司 | 一种检查时钟树综合结果瓶颈从而提高综合质量的方法 |
CN105868431A (zh) * | 2015-01-22 | 2016-08-17 | 京微雅格(北京)科技有限公司 | 基于锚点的布线方法 |
CN105930591A (zh) * | 2016-04-26 | 2016-09-07 | 东南大学 | 寄存器聚类在时钟树综合中的实现方法 |
CN106934080A (zh) * | 2015-12-29 | 2017-07-07 | 京微雅格(北京)科技有限公司 | 一种高性能时钟信号驱动寄存器的布局方法 |
CN108133094A (zh) * | 2017-12-14 | 2018-06-08 | 中国电子科技集团公司第四十七研究所 | 用于反熔丝的现场可编程门阵列的布局布线显示方法 |
CN108256189A (zh) * | 2018-01-06 | 2018-07-06 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计高效时钟树物理位置优化方法 |
CN109446708A (zh) * | 2018-11-12 | 2019-03-08 | 北京华大九天软件有限公司 | 一种检查时钟路径的方法 |
CN109933857A (zh) * | 2019-02-19 | 2019-06-25 | 天津飞腾信息技术有限公司 | 感知集成电路布局信息的时钟树主干拓扑生成方法及系统 |
CN112257375A (zh) * | 2020-10-26 | 2021-01-22 | 海光信息技术股份有限公司 | 用于集成电路设计的布局调整方法、装置和电子设备 |
CN114896941A (zh) * | 2022-07-15 | 2022-08-12 | 飞腾信息技术有限公司 | 一种时钟树的布局优化方法、优化装置和相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1186280A (zh) * | 1996-12-27 | 1998-07-01 | 冲电气工业株式会社 | 互连布局方法 |
JP2003296387A (ja) * | 1994-08-03 | 2003-10-17 | Matsushita Electric Ind Co Ltd | 半導体集積回路の設計方法 |
US20100213982A1 (en) * | 2003-10-10 | 2010-08-26 | Steven Teig | Method and system for distributing clock signals on non manhattan semiconductor integrated circuits |
CN102254067A (zh) * | 2011-07-05 | 2011-11-23 | 重庆大学 | 基于下料特征的大规模零件分组优化方法 |
-
2013
- 2013-06-03 CN CN201310218090.7A patent/CN103259526B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003296387A (ja) * | 1994-08-03 | 2003-10-17 | Matsushita Electric Ind Co Ltd | 半導体集積回路の設計方法 |
CN1186280A (zh) * | 1996-12-27 | 1998-07-01 | 冲电气工业株式会社 | 互连布局方法 |
US20100213982A1 (en) * | 2003-10-10 | 2010-08-26 | Steven Teig | Method and system for distributing clock signals on non manhattan semiconductor integrated circuits |
CN102254067A (zh) * | 2011-07-05 | 2011-11-23 | 重庆大学 | 基于下料特征的大规模零件分组优化方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617322A (zh) * | 2013-11-27 | 2014-03-05 | 中国人民解放军国防科学技术大学 | 基于驱动窗口的集成电路时钟网格驱动优化方法 |
CN103605863B (zh) * | 2013-11-27 | 2016-04-13 | 中国人民解放军国防科学技术大学 | 集成电路时钟网格主干尺寸的规划方法 |
CN103605863A (zh) * | 2013-11-27 | 2014-02-26 | 中国人民解放军国防科学技术大学 | 集成电路时钟网格主干尺寸的规划方法 |
CN105404352A (zh) * | 2014-09-11 | 2016-03-16 | 北京华大九天软件有限公司 | 一种检查时钟树综合结果瓶颈从而提高综合质量的方法 |
CN105404352B (zh) * | 2014-09-11 | 2018-05-11 | 北京华大九天软件有限公司 | 一种检查时钟树综合结果瓶颈从而提高综合质量的方法 |
CN105868431B (zh) * | 2015-01-22 | 2018-12-21 | 京微雅格(北京)科技有限公司 | 基于锚点的布线方法 |
CN105868431A (zh) * | 2015-01-22 | 2016-08-17 | 京微雅格(北京)科技有限公司 | 基于锚点的布线方法 |
CN106934080A (zh) * | 2015-12-29 | 2017-07-07 | 京微雅格(北京)科技有限公司 | 一种高性能时钟信号驱动寄存器的布局方法 |
CN105930591A (zh) * | 2016-04-26 | 2016-09-07 | 东南大学 | 寄存器聚类在时钟树综合中的实现方法 |
CN108133094A (zh) * | 2017-12-14 | 2018-06-08 | 中国电子科技集团公司第四十七研究所 | 用于反熔丝的现场可编程门阵列的布局布线显示方法 |
CN108256189A (zh) * | 2018-01-06 | 2018-07-06 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计高效时钟树物理位置优化方法 |
CN108256189B (zh) * | 2018-01-06 | 2021-08-03 | 嘉兴倚韦电子科技有限公司 | 集成电路半定制后端设计高效时钟树物理位置优化方法 |
CN109446708A (zh) * | 2018-11-12 | 2019-03-08 | 北京华大九天软件有限公司 | 一种检查时钟路径的方法 |
CN109446708B (zh) * | 2018-11-12 | 2020-04-07 | 北京华大九天软件有限公司 | 一种检查时钟路径的方法 |
CN109933857A (zh) * | 2019-02-19 | 2019-06-25 | 天津飞腾信息技术有限公司 | 感知集成电路布局信息的时钟树主干拓扑生成方法及系统 |
CN109933857B (zh) * | 2019-02-19 | 2023-07-04 | 飞腾信息技术有限公司 | 感知集成电路布局信息的时钟树主干拓扑生成方法及系统 |
CN112257375A (zh) * | 2020-10-26 | 2021-01-22 | 海光信息技术股份有限公司 | 用于集成电路设计的布局调整方法、装置和电子设备 |
CN112257375B (zh) * | 2020-10-26 | 2023-10-10 | 海光信息技术(苏州)有限公司 | 用于集成电路设计的布局调整方法、装置和电子设备 |
CN114896941A (zh) * | 2022-07-15 | 2022-08-12 | 飞腾信息技术有限公司 | 一种时钟树的布局优化方法、优化装置和相关设备 |
CN114896941B (zh) * | 2022-07-15 | 2022-10-25 | 飞腾信息技术有限公司 | 一种时钟树的布局优化方法、优化装置和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103259526B (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103259526A (zh) | 时钟网络的构建方法和装置 | |
US11480993B2 (en) | Methods for optimizing circuit performance via configurable clock skews | |
Sewell et al. | Swizzle-switch networks for many-core systems | |
CN100414552C (zh) | 估计电路时钟树的抖动并合成抖动意识和偏差意识时钟树 | |
US8205182B1 (en) | Automatic synthesis of clock distribution networks | |
US9582635B2 (en) | Optimizing IC performance using sequential timing | |
CN103095285A (zh) | 可配置的时间借用触发器 | |
CN103080938A (zh) | 用于同时切换噪声优化的方法和装置 | |
US6651232B1 (en) | Method and system for progressive clock tree or mesh construction concurrently with physical design | |
CN106250577A (zh) | 用于执行有关位于与不同的时钟域关联的电路之间的同步区域的寄存器重定时操作的方法 | |
CN106170741A (zh) | 用于集成电路的逻辑模块的时钟分配架构及其操作方法 | |
US10262096B2 (en) | Component placement with repacking for programmable logic devices | |
US7013449B2 (en) | Method of designing custom circuit device using scheduling clock cycles | |
CN106096070A (zh) | 使用去填充和再填充操作来实现集成电路设计 | |
CN102637217B (zh) | 基于云计算平台的大规模集成电路布线系统 | |
US20040196081A1 (en) | Minimization of clock skew and clock phase delay in integrated circuits | |
US7392495B1 (en) | Method and system for providing hybrid clock distribution | |
CN107967372A (zh) | 一种fpga总体布局合法化方法 | |
US20140047402A1 (en) | Lsi design method and lsi design device | |
US11709521B1 (en) | Synchronous clock domain crossing skew optimization and multi-clock buffer (MBUFG) | |
US20150178436A1 (en) | Clock assignments for programmable logic device | |
JP2001267429A (ja) | レイアウト設計装置およびレイアウト設計方法 | |
US10878152B1 (en) | Single-bit latch optimization for integrated circuit (IC) design | |
He et al. | PDPR: Fine-grained placement for dynamic partially reconfigurable FPGAs | |
JP2009188093A (ja) | 半導体集積回路の設計装置、方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100190 No. 10 South Road, Zhongguancun Academy of Sciences, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP03 | Change of name, title or address |