触发器自动布局方法和装置与流程

文档序号:14519289阅读:216来源:国知局
触发器自动布局方法和装置与流程

本发明涉及半导体集成电路技术,尤其涉及一种触发器自动布局方法和装置。



背景技术:

在集成电路设计领域中,时钟系统是集成电路中重要部分,并且在高性能集成电路设计中,时钟系统分为全局时钟系统、区域时钟系统以及局部时钟系统。在局部时钟系统与集成电路的时序单元触发器进行连接,从而形成子时钟树;触发器的分布直接影响局部时钟系统的性能。局部时钟系统中要求触发器的分布具有一定的规则性或空间一致性,触发器规则化设计有利于优化局部时钟系统的总线长、减小局部时钟系统的时钟功耗,以及满足局部时钟系统的设计需求等。

现有技术中,对触发器进行布局的时候,首先对触发器进行聚类,从而将触发器划分为了多个触发器类;然后根据触发器类的位置,对各触发器类进行再次聚类,以减少触发器类的重叠现象;最后对各触发器类中的各触发器进行布局。

然而现有技术的触发器布局方法,由于对于触发器类的排布,调整方式不够完善,现有技术中对各触发器类进行多次聚类之后,依旧存在触发器类的重叠现象,进而会影响到局部时钟系统的性能,增加局部时钟系统的时钟功耗。



技术实现要素:

本发明提供一种触发器自动布局方法和装置,用以解决现有技术中对各触发器类进行多次聚类之后,依旧存在触发器类的重叠现象,进而会影响到局部时钟系统的性能,增加局部时钟系统的时钟功耗的问题。

本发明提供了一种触发器自动布局方法,包括:

根据各触发器的属性信息,对所述各触发器进行聚类分析,以将所述各触发器分为至少一个触发器类,其中,所述触发器类中包括了至少一个触发器;

移动各触发器类,以减少各触发器类之间的接触面积;

根据移动各触发器类之前各触发器类的原始坐标信息、移动各触发器类之后各触发器类的坐标信息,以及预设约束关系,确定各触发器类的移动坐标信息,以确定各触发器类的移动位置;

依据各触发器类的移动位置,移动各所述触发器类中的各触发器,以确定各所述触发器类中的触发器布局;

重复执行以上各步骤,直至各触发器类满足减少触发器类重叠的预设条件。

本发明提供了另一种触发器自动布局装置,包括:

聚类模块,用于根据各触发器的属性信息,对所述各触发器进行聚类分析,以将所述各触发器分为至少一个触发器类,其中,所述触发器类中包括了至少一个触发器;

第一移动模块,用于移动各触发器类,以减少各触发器类之间的接触面积;

位置确定模块,用于根据移动各触发器类之前各触发器类的原始坐标信息、移动各触发器类之后各触发器类的坐标信息,以及预设约束关系,确定各触发器类的移动坐标信息,以确定各触发器类的移动位置;

第二移动模块,用于依据各触发器类的移动位置,移动各所述触发器类中的各触发器,以确定各所述触发器类中的触发器布局;

重复模块,用于重复执行以上各模块中的步骤,直至各触发器类满足减少触发器类重叠的预设条件。

本发明通过根据各触发器的属性信息,对各触发器进行聚类分析,以将各触发器分为至少一个触发器类,触发器类中包括了至少一个触发器;移动各触发器类,以减少各触发器类之间的接触面积;根据移动各触发器类之前各触发器类的原始坐标信息、移动各触发器类之后各触发器类的坐标信息,以及预设约束关系,确定各触发器类的移动坐标信息,以确定各触发器类的移动位置;移动各触发器类中的各触发器,以确定各触发器类中的触发器布局;重复执行以上各步骤,直至各触发器类满足减少触发器类重叠的预设条件。从而提供了一种触发器自动布局方法,通过在对各触发器类进行聚类分析之后可以得到多各触发器类,然后去移动各触发器类之后可以减少各触发器类之间的接触面积;再通过各触发器类的移动之前的坐标信息和移动之后的坐标信息,根据预设约束关系确定出触发器类布局的目标函数的最小值,进而可以在目标函数最小值的情况下,从目标函数中可以求解除各个触发器类的移动坐标信息,然后去调整各触发器类的位置,进而再次减少各触发器类之间的接触面积,并使得各触发器类互不接触,同时调整各触发器类中的触发器的布局后可以使得每一个触发器类中的各触发器互不接触;从而本发明可以减少触发器类的重叠现象,并且使得每一个触发器类中的各触发器互不接触,增强了局部时钟系统的性能,减少了局部时钟系统的时钟功耗。

附图说明

图1为本发明实施例一提供的触发器自动布局方法的流程图;

图2为本发明实施例二提供的触发器自动布局方法的流程图;

图3为本发明实施例三提供的触发器自动布局装置的结构示意图;

图4为本发明实施例四提供的触发器自动布局装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例一提供的触发器自动布局方法的流程图,如图1所示,本实施例的方法包括:

步骤101、根据各触发器的属性信息,对各触发器进行聚类分析,以将各触发器分为至少一个触发器类,其中,触发器类中包括了至少一个触发器。

在本实施例中,具体的,在局部时钟系统与集成电路的时序单元触发器进行连接之后,对触发器的排布进行调整。

具有h个触发器,各个触发器具有名字、功能信息等属性信息,h为正整数。首先根据各触发器的属性信息,对各触发器类进行聚类分析;聚类分析可以采用现有技术中的聚类算法,例如可以采用基于分割原理的聚类方法、可以采用基于分层次的聚类方法、可以采用基于密度的聚类方法、可以采用基于网格的聚类方法。举例来说,可以根据各触发器的名字,对各触发器类进行聚类分析;或者可以根据各触发器的功能信息,对各触发器类进行聚类分析。

在对各触发器类进行聚类分析之后,可以将h个触发器分为n个触发器类,n为正整数,从而将h个触发器分为各包含至少一个触发器的n个触发器类。并且,n个触发器类中的触发器的个数,各不相同,也可是相同,具体个数根据聚类分析后的情况而定。

从而步骤101完成了对各触发器类的全局优化的处理。

步骤102、移动各触发器类,以减少各触发器类之间的接触面积。

在本实施例中,具体的,在步骤101中对各触发器进行聚类分析之后形成n个触发器类,各触发器类之间会出现触发器类重叠的现象和问题,从而一个触发器类与其他的一个或多个触发器类会产生重叠,进而具有接触面积。

首先,随机移动各触发器类,以减少各触发器类之间的接触面积。此时是对各触发器类进行粗调,可以采用蒙特卡洛仿真法(montecarlosimulation)随机移动各触发器类,蒙特卡洛仿真法是一种随机算法,蒙特卡洛仿真法中具有设计合理的评分函数(scoringfunction),并且具有多次迭代过程;在蒙特卡洛仿真法的每一次迭代中,可以逐步的消除各触发器之间的重叠问题;同时,蒙特卡洛仿真法可以以一定概率逃离局部可行域(localfeasibleregion),从而得到各触发器类的坐标信息的全局最优解。蒙特卡洛仿真法可以最小代价消除尽可能多的重叠,代价包括且不限于被移动的触发器类的数目,或者触发器类被移动的距离。

步骤103、根据移动各触发器类之前各触发器类的原始坐标信息、移动各触发器类之后各触发器类的坐标信息,以及预设约束关系,确定各触发器类的移动坐标信息,以确定各触发器类的移动位置。

在本实施例中,具体的,在步骤102之后,获取在随机移动各触发器类之前各触发器类的原始坐标信息;在采用蒙特卡洛仿真法对各触发器类进行多次随机移动之后,获取随机移动各触发器类之后各触发器类的坐标信息。对于各触发器类的长度和宽度设置一个预设约束关系,根据预设约束关系、随机移动各触发器类之前各触发器类的原始坐标信息、随机移动各触发器类之后各触发器类的坐标信息,对各触发器类进行细调,从而再次调整各触发器类的位置,进而确定出调整后的各触发器类的移动坐标信息;根据确定出的各触发器类的移动坐标信息,移动各触发器类,从而确定各触发器类的移动位置。从而进一步的减少各触发器类之间的接触面积。

步骤104、依据各触发器类的移动位置,移动各触发器类中的各触发器,以确定各触发器类中的触发器布局。

在本实施例中,具体的,执行了步骤103之后减少了各触发器类之间的接触面积,但是各触发器类中的触发器之间可能存在着接触或重叠的问题。从而最后依据各触发器类的移动位置,移动各触发器类中的各触发器,保证各触发器类中的各触发器互不重叠且互不接触,从而确定了触发器类中的触发器布局。

步骤105、重复执行以上各步骤,直至各触发器类满足减少触发器类重叠的预设条件。

在本实施例中,具体的,重复步骤101-步骤104中的所有步骤,直至各触发器类满足预设条件。其中,预设条件包括:第t次重复;或者,各触发器类之间的接触面积为零;或者,各触发器类的总线长达到预设总线长。

具体来说,在重复执行了步骤101-步骤104t次之后,不再重复执行步骤101-步骤104,此时完成了对各触发器类的聚类、各触发器类的位置调整、以及各触发器类中的各触发器的位置调整。或者,在计算出各触发器类之间的接触面积为零的时候,不再重复执行步骤101-步骤104。或者,在计算出各触发器类的总线长达到预设总线长之后,不再重复执行步骤101-步骤104。

举例来说,在重复步骤101-步骤104中的所有步骤数次之后,确定各触发器类之间的接触面积为零,则完成整个方法的步骤,确定出最终的各触发器类、以及各触发器类中的各触发器的坐标信息,确定出各触发器类、以及各触发器类中的各触发器的布局。

本实施例通过根据各触发器的属性信息,对各触发器进行聚类分析,以将各触发器分为至少一个触发器类,触发器类中包括了至少一个触发器;移动各触发器类,以减少各触发器类之间的接触面积;根据移动各触发器类之前各触发器类的原始坐标信息、移动各触发器类之后各触发器类的坐标信息,以及预设约束关系,确定各触发器类的移动坐标信息,以确定各触发器类的移动位置;移动各触发器类中的各触发器,以确定各触发器类中的触发器布局;重复执行以上各步骤,直至各触发器类满足减少触发器类重叠的预设条件。从而提供了一种触发器自动布局方法,通过在对各触发器类进行聚类分析之后可以得到多各触发器类,然后去移动各触发器类之后可以减少各触发器类之间的接触面积;再通过各触发器类的移动之前的坐标信息和移动之后的坐标信息,根据预设约束关系确定出触发器类布局的目标函数的最小值,进而可以在目标函数最小值的情况下,从目标函数中可以求解除各个触发器类的移动坐标信息,然后去调整各触发器类的位置,进而再次减少各触发器类之间的接触面积,并使得各触发器类互不接触,同时调整各触发器类中的触发器的布局后可以使得每一个触发器类中的各触发器互不接触;从而本发明可以减少触发器类的重叠现象,并且使得每一个触发器类中的各触发器互不接触,增强了局部时钟系统的性能,减少了局部时钟系统的时钟功耗。

图2为本发明实施例二提供的触发器自动布局方法的流程图,在实施例一的基础上,如图2所示,本实施例的方法,步骤102,包括:

步骤1021、随机移动各触发器类的位置,确定移动之后各个触发器类的类重叠个数pi。

在本实施例中,具体的,采用蒙特卡洛仿真法对各触发器类的位置进行粗调。具体来说,首先随机移动各触发器类的位置,此时各触发器类随机移动一次,然后计算出随机移动之后的各个触发器类的类重叠个数pi,i的取值为1至n之间的正整数;类重叠个数pi为各触发器类与其他触发器类之间产生接触面积的其他触发器类的个数。对于每一个触发器类,都计算出它的类重叠个数pi。

举例来说,对于第1个触发器类,它与第2个触发器类、第3个触发器类之间都有接触面积,都产生了接触,从而第1个触发器类的类重叠个数p1=2;对于第2个触发器类,它与第1个触发器类、第4个触发器类、第5个触发器类之间都有接触面积,都产生了接触,从而第2个触发器类的类重叠个数p2=3;依次类推,对于每个触发器类计算出它的类重叠个数。

步骤1022、随机选取第k个触发器类,根据第k个触发器类在当前移动之前的坐标信息(xk0,yk0),以及第k个触发器类在当前移动之后的坐标信息(xk,yk),确定第k个触发器类的当前移动距离|xk+xk0|+|yk+yk0|。

在本实施例中,具体的,在n个触发器类中随机的选取一个触发器类第k个触发器类,k的取值为1至n之间的正整数,可知,k为随机选取的一个位于1至n之间的正整数。可以获取在步骤1021随机移动各触发器类的位置之前各触发器类的坐标信息,并且步骤1021只会随机移动一次各触发器类,从而可以获取到第k个触发器类在当前移动之前的坐标信息(xk0,yk0);在步骤1021随机移动各触发器类的位置之后,第k个触发器类在当前移动之后的坐标信息(xk,yk)。从而根据距离计算的方式,可以计算出第k个触发器类的当前移动距离|xk+xk0|+|yk+yk0|。

步骤1023、根据各个触发器类的类重叠个数pi,以及第k个触发器类的当前移动距离|xk-xk0|+|yk-yk0|,确定评分值

在本实施例中,具体的,可以依据步骤1021中确定出的各个触发器类的类重叠个数pi,计算出类重叠个数之和在蒙特卡洛仿真法中提供了一个评分函数,结合本实施例中的触发器类中的具体参数,可以依据类重叠个数之和步骤1022中随机选取的第k个触发器类的当前移动距离|xk-xk0|+|yk-yk0|,得到评分函数的评分值

其中,t1为预先设定的第一权重值,t2为预先设定的第二权重值。并且,j为取值在1至m之间的正整数,m为正整数。

步骤1024、若hj小于hj-1,则根据第j次随机移动各触发器类之后各触发器类的坐标信息,移动各触发器类,其中,i∈[1,n],j∈[1,m],k∈[1,n],n、m、i、j、k为正整数,t1为第一权重值,t2为第二权重值,n为触发器类的类个数。

在本实施例中,具体的,由于会多次随机移动各触发器类的位置,从而依次执行步骤1021、步骤1022、步骤1023之后,会得到不同的评分值hj,j∈[1,m];在执行了一次步骤1021、步骤1022、步骤1023之后,比较hj与hj-1之间的大小。若hj小于hj-1,说明第j次随机移动各触发器类之后,各触发器类之间的重叠减少了,从而可以根据第j次随机移动各触发器类之后各触发器类的坐标信息,移动各触发器类。

步骤1025、若hj大于hj-1,则确定q是否小于若确定q小于则根据第j次随机移动各触发器类之后各触发器类的坐标信息,移动各触发器类;其中,q为[0,1]之间的随机数。

在本实施例中,具体的,在1至m以内随机选取正整数p,若hj大于hj-1,那么继续确定q是否小于若确定q小于则根据第j次随机移动各触发器类之后各触发器类的坐标信息,移动各触发器类;若确定q大于等于则不移动各触发器类。其中,q为[0,1]之间的随机数。

步骤1026、重复执行m次以上步骤,得到评分值的最小值hm。

在本实施例中,具体的,重复执行步骤1021、步骤1022、步骤1023、步骤1024、步骤1025,在重复执行了以上步骤m次之后,可以而确定得到评分值的一个最小值hm。其中,在重复执行m次以上步骤的过程中,会随机选取几次过程,来执行步骤1025,从而以一定概率逃离局部可行域,搜索全局最优解。

步骤1021至步骤1026为蒙特卡洛仿真法应用到触发器类中的过程,可以通过多次随机移动各触发器类,确定出评分函数的评分值,步骤1021至步骤1026可以实现以各触发器类的最小移动距离,消除尽可能多的触发器类的重叠,实现触发器类的粗调。

步骤103,包括:

步骤1031、根据各触发器类在m次随机移动之前的原始坐标信息(xc0,yc0)、以及m次随机移动之后的坐标信息(xc,yc),确定各触发器类的移动距离之和其中,各触发器类的x轴移动距离约束条件devxc≥|xc-xc0|,各触发器类的y轴移动距离约束条件devyc≥|yc-yc0|。

在本实施例中,具体的,在步骤1026之后,完成了对触发器类的粗调,减小了触发器类的接触面积,消除的部分的触发器类的重叠现象和问题。然后,可以获取到各触发器类在m次随机移动之前的原始坐标信息(xc0,yc0)、以及各触发器类在m次随机移动之后的坐标信息(xc,yc)。其中,c为1至n的正整数。

根据各触发器类在m次随机移动之前的原始坐标信息(xc0,yc0)、各触发器类在m次随机移动之后的坐标信息(xc,yc),可以计算出各触发器类在x轴移动距离约束条件devxc≥|xc-xc0|,并计算出各触发器类在y轴移动距离约束条件devyc≥|yc-yc0|;然后,计算出各触发器类的移动距离之和

步骤1032、根据各触发器类之间的路径分布,确定最小化的总线长,其中,各触发器类之间的路径的总线长的约束条件为dwle≥wewle,we为线长权重值,wle为路径e的线长,e为触发器类之间的路径的集合,dwle为路径e的线长的松弛变量。

在本实施例中,基本原理为在局部时钟系统与集成电路的时序单元触发器进行连接之后,通过松弛变量dwle增加约束,实现对总线长最小化的优化,具体约束展开如下:dwle≥we(xi-xj+yi-yj)、dwle≥we(xj-xi+yi-yj)、dwle≥we(xi-xj+yj-yi)、dwle≥we(xj-xi+yj-yi);其中,dwle为路径e的线长的松弛变量,i∈n,j∈n,e=(i,j)∈e。

步骤1033、根据各触发器类的实际尺寸、以及各触发器类的需求尺寸上限,确定各触发器类的需求系数之和

其中,步骤1033,具体包括:根据各触发器类的实际尺寸(hc,wc),各触发器类的需求尺寸上限确定各触发器类的需求系数其中,h′c、w′c分别为触发器类的单位高度和单位宽度,为第c个触发器类在水平方向的路径个数,为第c个触发器类在竖直方向的路径个数;

根据各触发器类的需求系数rc,确定各触发器类的需求系数之和

在本实施例中,具体的,各触发器类具有实际尺寸,实际尺寸为触发器类的宽度和高度;同时,各触发器类具有各自的需求尺寸上限,需求尺寸上限为预先限定的各触发器类的最大尺寸。分别将各触发器类的实际尺寸、以及各触发器类的需求尺寸上限进行比值计算之后,可以分别确定出各触发器类的需求系数rc,进行求和计算之后可以得到各触发器类的需求系数之和

具体来说,各触发器类分别具有实际尺寸(hc,wc),其中,hc为第c个触发器类在水平方向上、即在x轴方向上的高度,wc为第c个触发器类在竖直方向上、即在y轴方向上的宽度。预先设定了各触发器类的需求尺寸上限其中,h′c、w′c分别为触发器类的单位高度和单位宽度,各个触发器类的单位高度可以相同、也可以不同,各个触发器类的单位宽度可以相同、也可以不同;并且,为第c个触发器类在水平方向的路径个数,为第c个触发器类在竖直方向的路径个数,可以通过计算而得。然后根据各触发器类的实际尺寸(hc,wc),各触发器类的需求尺寸上限可以分别计算出各触发器类的需求系数再根据各触发器类的需求系数rc进行求和计算,计算出各触发器类的需求系数之和

步骤1034、根据各触发器类的移动距离之和、各触发器类的总线长、各触发器类的需求系数之和,确定触发器类布局的目标函数其中,α为第三权重值,β为第四权重值,γ为第五权重值,为松弛变量之和。

在本实施例中,具体的,根据步骤1031中计算出的各触发器类的移动距离之和步骤1032中计算出的各触发器类的松弛变量之和以及步骤1033中计算出的各触发器类的需求系数之和可以得到触发器类布局的目标函数其中,用于约束所有路径的总线长,从而实现总线长最小化优化。

其中,在目标函数中已经具有了约束条件:各触发器类的x轴移动距离约束条件devxc≥|xc-xc0|以及各触发器类的y轴移动距离约束条件devyc≥|yc-yc0|。在目标函数中,α为第三权重值,β为第四权重值,γ为第五权重值。

步骤1035、根据预设约束关系,确定在触发器类布局的目标函数的最小值情况下,各个触发器类的移动坐标信息。

其中,步骤1035的具体实施方式包括:

根据各个触发器类的实际尺寸,确定各个触发器类之间的第一预设约束关系|xa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb)/2,以及各个触发器类之间的第二预设约束关系|xa-xb|+|ya-yb|≥min(|ya0-yb0|+(wa+wb)/2,|xa0-xb0|+(ha+hb)/2),其中,(ha,wa)、(hb,wb)分别为第a、b个触发器类的实际尺寸,原始坐标信息(xa0,ya0)、坐标信息(xa,ya)分别为第a个触发器类在m次随机移动之前和移动之后的坐标信息,原始坐标信息(xb0,yb0)、坐标信息(xb,yb)分别为第b个触发器类在m次随机移动之前和移动之后的坐标信息;

在第一预设约束关系和第二预设约束关系的约束下,确定在触发器类布局的目标函数的最小值情况下,各个触发器类的移动坐标信息(xa,ya);

其中,a∈[1,n],b∈[1,n],a、b为正整数。

或者,步骤1035的另一种具体实施方式包括:

根据各个触发器类的实际尺寸,确定各个触发器类之间的第一预设约束关系|xa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb)/2,以及各个触发器类之间的第三预设约束关系hc≥h′cnc,wc≥w′cnc,其中,nc为第c个触发器类中的触发器的个数;

在第一预设约束关系和第三预设约束关系的约束下,确定在触发器类布局的目标函数的最小值情况下,各个触发器类的移动坐标信息(xa,ya)。

在本实施例中,具体的,首先确定一个预设约束关系,在预设约束关系,以及各触发器类的x轴移动距离约束条件、各触发器类的y轴移动距离约束条件、各触发器类之间的路径个数的约束条件下,计算出触发器类布局的目标函数的最小值;确定出在目标函数最小值的情况下,从目标函数中可以得到各个触发器类的移动坐标信息,该移动坐标信息,作为移动各触发器类位置的信息。

具体来说,根据各个触发器类的实际尺寸,确定出各个触发器类之间的第一预设约束关系|xa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb)/2。其中,(ha,wa)为第a个触发器类的实际尺寸,ha为第a个触发器类在水平方向上的高度,wa为第a个触发器类在垂直方向上的宽度,同样的,(hb,wb)为第b个触发器类的实际尺寸。(xa,ya)为第a个触发器类在步骤1026进行了m次随机移动之后的坐标信息(xa,ya),(xb,yb)分别为第b个触发器类在步骤1026进行了m次随机移动之后的坐标信息(xb,yb)。a为1至n之间的正整数,b为1至n之间的正整数。

对于第一预设约束关系,a、b需要取值到1至n之间的所有的正整数,从而第一预设约束关系对于所有的触发器类都约束限制到。

并且,根据各个触发器类的实际尺寸,确定出各个触发器类之间的第二预设约束关系|xa-xb|+|ya-yb|≥min(|ya0-yb0|+(wa+wb)/2,|xa0-xb0|+(ha+hb)/2)。其中,(xa0,ya0)为第a个触发器类在步骤1026进行了m次随机移动之前原始坐标信息(xa0,ya0),(xb0,yb0)为第b个触发器类在步骤1026进行了m次随机移动之前的原始坐标信息(xb0,yb0)。

同样的,对于第二预设约束关系,a、b需要取值到1至n之间的所有的正整数,从而第二预设约束关系对于所有的触发器类都约束限制到。

也可以根据各个触发器类的实际尺寸,确定出各个触发器类之间的第三预设约束关系hc≥h′cnc,wc≥w′cnc。其中,nc为第c个触发器类中的触发器的个数;h′c、w′c分别为触发器类的单位高度和单位宽度,各个触发器类的单位高度可以相同、也可以不同,各个触发器类的单位宽度可以相同、也可以不同。

同样的,对于第三预设约束关系,a、b需要取值到1至n之间的所有的正整数,从而第三预设约束关系对于所有的触发器类都约束限制到。

在第一预设约束关系、第二预设约束关系的约束下,同时在各触发器类的x轴移动距离约束条件、各触发器类的y轴移动距离约束条件、各触发器类之间的路径个数的约束条件下,计算出在触发器类布局的目标函数的最小值。进而在目标函数最小值的情况下,从目标函数中可以求解除各个触发器类的移动坐标信息(xa,ya),得到所有触发器类的移动坐标信息。

或者,在第一预设约束关系、第三预设约束关系的约束下,同时在各触发器类的x轴移动距离约束条件、各触发器类的y轴移动距离约束条件、各触发器类之间的路径个数的约束条件下,计算出在触发器类布局的目标函数的最小值。进而在目标函数最小值的情况下,从目标函数中可以求解除各个触发器类的移动坐标信息(xa,ya),得到所有触发器类的移动坐标信息。

步骤1036、根据各个触发器类的移动坐标信息,移动各触发器类;其中,c∈[1,n],e∈e,c为正整数。

在本实施例中,具体的,根据步骤1035中确定出的各个触发器类的移动坐标信息,移动各触发器类,从而调整了各触发器类的位置,进一步的减少各触发器类之间的接触面积,使得各触发器类之间不再重叠。

步骤1031至步骤1036为更加细化的调整各触发器类的位置的步骤。从而步骤1021至步骤1026、步骤1031至步骤1036,完成了对各触发器类的布局合法化的处理。

步骤104,具体包括:

采用网络流方法,依据各触发器类的移动位置,移动各触发器类中的各触发器,确定各触发器类中的触发器布局。

在本实施例中,具体的,采用网络流的计算方法,依据各触发器类的移动位置,移动各个触发器类中的各触发器,从而调整了各个触发器类中的各个触发器的位置。其中,网络流是一种现有的可以用于计算触发器类的位置的方法。采用网络流的方式,可以使得各触发器类中的各触发器不产生重叠或解除,从而调整了各触发器类中的各触发器的布局。步骤104完成了对触发器的局部优化的处理。

本实施例通过随机移动各触发器类的位置,计算出各个触发器类的类重叠个数、以及随机选择的第k个触发器类的当前移动距离,可以得到一个评分函数的评分值,比较当前移动之后得到的评分值与上次移动之后得到的评分值的大小,从而确定移动各触发器类,以上过程需要经过多次循环迭代;通过设定各触发器类的x轴移动距离约束条件、各触发器类的y轴移动距离约束条件、各触发器类之间的路径个数的约束条件,并设定各个触发器类之间的第一预设约束关系、第二预设约束关系以及第三预设约束关系,可以根据各触发器类的移动距离之和、各触发器类的总线长、各触发器类的需求系数之和,确定触发器类布局的目标函数,进而在第一预设约束关系和第二预设约束关系的约束下,或者在第一预设约束关系和第三预设约束关系的约束下,确定在触发器类布局的目标函数的最小值情况下的各个触发器类的移动坐标信息,进而移动各触发器类;并采用网络流方法,移动各触发器类中的各触发器的位置;以上所有步骤需要在经过多次循环迭代,直至各触发器类之间的接触面积为零或各触发器类的总线长达到预设总线长后停止。从而本实施例可以通过触发器类聚类,而完成对触发器的全局优化的处理;通过多次随机移动触发器类,并在约束条件和约束关系下确定出触发器类布局的目标函数的最小值,进而可以在目标函数最小值的情况下,从目标函数中可以求解除各个触发器类的移动坐标信息,然后去调整各触发器类的位置,完成触发器类的布局合法化的处理,进而减少各触发器类之间的接触面积,并使得各触发器类互不接触;并采用网络流方式,调整各触发器类中的各触发器的位置,可以使得每一个触发器类中的各触发器互不接触,完成布局优化的处理。本实施例可以减少触发器类的重叠现象,并且使得每一个触发器类中的各触发器互不接触,增强了局部时钟系统的性能,减少了局部时钟系统的时钟功耗。

图3为本发明实施例三提供的触发器自动布局装置的结构示意图,如图1所示,本实施例的装置包括:

聚类模块31,用于根据各触发器的属性信息,对各触发器进行聚类分析,以将各触发器分为至少一个触发器类,其中,触发器类中包括了至少一个触发器;

第一移动模块32,用于移动各触发器类,以减少各触发器类之间的接触面积;

位置确定模块33,用于根据移动各触发器类之前各触发器类的原始坐标信息、移动各触发器类之后各触发器类的坐标信息,以及预设约束关系,确定各触发器类的移动坐标信息,以确定各触发器类的移动位置;

第二移动模块34,用于依据各触发器类的移动位置,移动各触发器类中的各触发器,以确定各触发器类中的触发器布局;

重复模块35,用于重复执行以上各模块中的步骤,直至各触发器类满足减少触发器类重叠的预设条件。

其中,预设条件,包括:第t次重复;或者,各触发器类之间的接触面积为零;或者,各触发器类的总线长达到预设总线长。

本实施例的触发器自动布局装置可执行本发明实施例一提供的触发器自动布局方法,其实现原理相类似,此处不再赘述。

本实施例通过根据各触发器的属性信息,对各触发器进行聚类分析,以将各触发器分为至少一个触发器类,触发器类中包括了至少一个触发器;移动各触发器类,以减少各触发器类之间的接触面积;根据移动各触发器类之前各触发器类的原始坐标信息、移动各触发器类之后各触发器类的坐标信息,以及预设约束关系,确定各触发器类的移动坐标信息,以确定各触发器类的移动位置;移动各触发器类中的各触发器,以确定各触发器类中的触发器布局;重复执行以上各步骤,直至各触发器类满足减少触发器类重叠的预设条件。从而提供了一种触发器自动布局方法,通过在对各触发器类进行聚类分析之后可以得到多各触发器类,然后去移动各触发器类之后可以减少各触发器类之间的接触面积;再通过各触发器类的移动之前的坐标信息和移动之后的坐标信息,根据预设约束关系确定出触发器类布局的目标函数的最小值,进而可以在目标函数最小值的情况下,从目标函数中可以求解除各个触发器类的移动坐标信息,然后去调整各触发器类的位置,进而再次减少各触发器类之间的接触面积,并使得各触发器类互不接触,同时调整各触发器类中的触发器的布局后可以使得每一个触发器类中的各触发器互不接触;从而本发明可以减少触发器类的重叠现象,并且使得每一个触发器类中的各触发器互不接触,增强了局部时钟系统的性能,减少了局部时钟系统的时钟功耗。

图4为本发明实施例四提供的触发器自动布局装置的结构示意图,在实施例三的基础上,如图4所示,本实施例的装置,第一移动模块32,包括:

第一移动子模块321,用于随机移动各触发器类的位置,确定移动之后各个触发器类的类重叠个数pi;

距离确定子模块322,用于随机选取第k个触发器类,根据第k个触发器类在当前移动之前的坐标信息(xk0,yk0),以及第k个触发器类在当前移动之后的坐标信息(xk,yk),确定第k个触发器类的当前移动距离|xk+xk0|+|yk+yk0|;

评分子模块323,用于根据各个触发器类的类重叠个数pi,以及第k个触发器类的当前移动距离|xk-xk0|+|yk-yk0|,确定评分值

第二移动子模块324a,用于若hj小于hj-1,则根据第j次随机移动各触发器类之后各触发器类的坐标信息,移动各触发器类,其中,i∈[1,n],j∈[1,m],k∈[1,n],n、m、i、j、k为正整数,t1为第一权重值,t2为第二权重值,n为触发器类的类个数;

重复子模块325,用于重复执行m次以上步骤,得到评分值的最小值hm。

还包括:第四移动子模块324b,用于:

若hj大于hj-1,则确定q是否小于

若确定q小于则根据第j次随机移动各触发器类之后各触发器类的坐标信息,移动各触发器类;

其中,q为[0,1]之间的随机数。

位置确定模块33,包括:

距离之和确定子模块331,用于根据各触发器类在m次随机移动之前的原始坐标信息(xc0,yc0)、以及m次随机移动之后的坐标信息(xc,yc),确定各触发器类的移动距离之和其中,各触发器类的x轴移动距离约束条件devxc≥|xc-xc0|,各触发器类的y轴移动距离约束条件devyc≥|yc-yc0|;

约束确定子模块332,用于根据各触发器类之间的路径分布,确定最小化的总线长,其中,各触发器类之间的路径的总线长的约束条件为dwle≥wewle,we为总线权重值,wle为路径e的线长,e为触发器类之间的路径的集合,dwle为路径e的线长的松弛变量;

系数确定子模块333,用于根据各触发器类的实际尺寸、以及各触发器类的需求尺寸上限,确定各触发器类的需求系数之和

函数确定子模块334,用于根据各触发器类的移动距离之和、各触发器类的总线长、各触发器类的需求系数之和,确定触发器类布局的目标函数其中,α为第三权重值,β为第四权重值,γ为第五权重值,为松弛变量之和;

坐标确定子模块335,用于根据预设约束关系,确定在触发器类布局的目标函数的最小值情况下,各个触发器类的移动坐标信息;

第三移动子模块336,用于根据各个触发器类的移动坐标信息,移动各触发器类;

其中,c∈[1,n],e∈e,c为正整数。

其中,dwle具有线性规划约束条件dwle≥we(xi-xj+yi-yj)、dwle≥we(xj-xi+yi-yj)、dwle≥we(xi-xj+yj-yi)、dwle≥we(xj-xi+yj-yi);

其中,i∈n,j∈n,e=(i,j)∈e。

系数确定子模块333,具体用于:

根据各触发器类的实际尺寸(hc,wc),各触发器类的需求尺寸上限确定各触发器类的需求系数其中,h′c、w′c分别为触发器类的单位高度和单位宽度,为第c个触发器类在水平方向的路径个数,为第c个触发器类在竖直方向的路径个数;

根据各触发器类的需求系数rc,确定各触发器类的需求系数之和

坐标确定子模块335,具体用于:

根据各个触发器类的实际尺寸,确定各个触发器类之间的第一预设约束关系|xa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb)/2,以及各个触发器类之间的第二预设约束关系|xa-xb|+|ya-yb|≥min(|ya0-yb0|+(wa+wb)/2,|xa0-xb0|+(ha+hb)/2),其中,(ha,wa)、(hb,wb)分别为第a、b个触发器类的实际尺寸,原始坐标信息(xa0,ya0)、坐标信息(xa,ya)分别为第a个触发器类在m次随机移动之前和移动之后的坐标信息,原始坐标信息(xb0,yb0)、坐标信息(xb,yb)分别为第b个触发器类在m次随机移动之前和移动之后的坐标信息;

在第一预设约束关系和第二预设约束关系的约束下,确定在触发器类布局的目标函数的最小值情况下,各个触发器类的移动坐标信息(xa,ya);

其中,a∈[1,n],b∈[1,n],a、b为正整数。

或者,坐标确定子模块335,具体用于:

根据各个触发器类的实际尺寸,确定各个触发器类之间的第一预设约束关系|xa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb)/2,以及各个触发器类之间的第三预设约束关系hc≥h′cnc,wc≥w′cnc,其中,nc为第c个触发器类中的触发器的个数;

在第一预设约束关系和第三预设约束关系的约束下,确定在触发器类布局的目标函数的最小值情况下,各个触发器类的移动坐标信息(xa,ya)。

第二移动模块34,具体用于:

采用网络流方法,依据各触发器类的移动位置,移动各触发器类中的各触发器,确定各触发器类中的触发器布局。

本实施例的触发器自动布局装置可执行本发明实施例一提供的触发器自动布局方法,其实现原理相类似,此处不再赘述。

本实施例通过随机移动各触发器类的位置,计算出各个触发器类的类重叠个数、以及随机选择的第k个触发器类的当前移动距离,可以得到一个评分函数的评分值,比较当前移动之后得到的评分值与上次移动之后得到的评分值的大小,从而确定移动各触发器类,以上过程需要经过多次循环迭代;通过设定各触发器类的x轴移动距离约束条件、各触发器类的y轴移动距离约束条件、各触发器类之间的路径个数的约束条件,并设定各个触发器类之间的第一预设约束关系、第二预设约束关系以及第三预设约束关系,可以根据各触发器类的移动距离之和、各触发器类的总线长、各触发器类的需求系数之和,确定触发器类布局的目标函数,进而在第一预设约束关系和第二预设约束关系的约束下,或者在第一预设约束关系和第三预设约束关系的约束下,确定在触发器类布局的目标函数的最小值情况下的各个触发器类的移动坐标信息,进而移动各触发器类;并采用网络流方法,移动各触发器类中的各触发器的位置;以上所有步骤需要在经过多次循环迭代,直至各触发器类之间的接触面积为零或各触发器类的总线长达到预设总线长后停止。从而本实施例可以通过触发器类聚类,而完成对触发器的全局优化的处理;通过多次随机移动触发器类,并在约束条件和约束关系下确定出触发器类布局的目标函数的最小值,进而可以在目标函数最小值的情况下,从目标函数中可以求解除各个触发器类的移动坐标信息,然后去调整各触发器类的位置,完成触发器类的布局合法化的处理,进而减少各触发器类之间的接触面积,并使得各触发器类互不接触;并采用网络流方式,调整各触发器类中的各触发器的位置,可以使得每一个触发器类中的各触发器互不接触,完成布局优化的处理。本实施例可以减少触发器类的重叠现象,并且使得每一个触发器类中的各触发器互不接触,增强了局部时钟系统的性能,减少了局部时钟系统的时钟功耗。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1