公开/公告号CN106815650A
专利类型发明专利
公开/公告日2017-06-09
原文格式PDF
申请/专利权人 中国科学院微电子研究所;
申请/专利号CN201510850245.8
申请日2015-11-27
分类号G06Q10/04;G06F17/50;
代理机构北京维澳专利代理有限公司;
代理人周放
地址 100029 北京市朝阳区北土城西路3号
入库时间 2023-06-19 02:28:50
法律状态公告日
法律状态信息
法律状态
2020-08-18
授权
授权
2017-07-04
实质审查的生效 IPC(主分类):G06Q10/04 申请日:20151127
实质审查的生效
2017-06-09
公开
公开
技术领域
本发明涉及半导体制造领域,特别涉及一种自动优化片上系统层次化模块布局的方法及系统。
背景技术
片上系统(System On Chip,SOC)设计技术始于20世纪90年代中期,随着半导体工艺技术的发展,集成电路IC设计者能够将愈来愈复杂的功能集成到单硅片上,SOC正是IC向集成系统IS转变的大方向下产生的。由于SOC可以充分利用已有的设计积累,显著地提高了特定应用集成电路(Application Specific Integrated Circuit,ASIC)的设计能力,因此发展非常迅速,引起了工业界和学术界的关注。
在集成电路片上系统(SOC)的层次化设计过程中,自动布局实现了在层次上自下而上进行布局,其存在的问题是通过平面规划计算的下层各子模块的几何约束,在某些情况下或许并不适合某些子模块,例如,某些子模块的布局与平面规划指定的尺寸(几何约束)相差很大,而其他模块的布局又比较严格的遵循了平面规划指定的尺寸(几何约束)要求,参考图1所示。在这种情况下会导致上层布局存在一些未利用面积,造成不必要的芯片面积浪费。
发明内容
本发提供一种自动优化片上系统层次化模块布局的方法及系统,解决通过现有技术进行SOC层次化模块布局时存在一些未利用面积,造成不必要的芯片面积浪费的问题。
本发明提供了一种自动优化片上系统层次化模块布局的方法,包括步骤:
(1)读入待优化电路模块及其各子模块的布局和各子模块的几何约束;
(2)搜寻各子模块根据所述几何约束进行布局引起的各空白空间;
(3)搜索引起空白空间的子模块,将该子模块作为待调整子模块;
(4)通过调整待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除该待调整子模块引起的空白空间;
(5)根据调整后各子模块的几何尺寸重新布局待优化电路模块;
重复上述步骤(1)至步骤(5)直至删除所有空白空间。
优选地,所述搜寻各子模块根据所述几何约束进行布局引起的空白空间包括:
收集各子模块的顶点;
对所有顶点作水平线和垂直线;
获取所有水平线和垂直线围成的矩形空间内未包含任意一个子模块的任意部分的各矩形空间,将未包含任意一个子模块的任意部分的各矩形空间作为空白空间。
优选地,所述搜索引起空白空间的子模块,将该子模块作为待调整子模块包括:
从所述空白空间的任意一边界朝向对面边界进行外推法,直至遇到阻碍外推的子模块,将阻碍外推的子模块作为待调整子模块。
优选地,所述通过调整待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除该待调整子模块引起的空白空间包括:
从各空白空间中选取一个空白空间作为待处理空白空间;
当所述待处理空白空间在垂直方向的值小于相应待调整子模块在垂直方向的值,调整相应待调整子模块在垂直方向的几何约束,使得该子模块的上边沿/下边沿与待处理空白空间的上边沿/下边沿接近同一水平线和/或当所述待处理空白空间在水平方向的值小于相应待调整子模块在水平方向的值,调整相应待调整子模块在水平方向的几何约束使得该子模块的右边沿/左边沿与待处理空白空间的左边沿/右边沿接近同一垂直线,并根据各待调整子模块在调整前后所占面积不变原则,调整被调整后的待调整子模块在水平方向/垂直方向的长度;
对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸;
删除所述待处理空白空间。
优选地,所述方法还包括:
搜寻各子模块根据所述几何约束进行布局引起的各空白空间之后,对各空白空间按照大小进行排序;
所述从各空白空间中选取一个空白空间作为待处理空白空间包括:将最大的空白空间作为待处理空白空间。
优选地,所述方法还包括:
将该子模块作为待调整子模块之后,搜索引起所述待调整子模块引起空白空间的所有子模块,构成待调整子模块队列;
调整所述待调整子模块队列中各待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除所述待调整子模块引起的空白空间。
优选地,所述方法还包括:
搜寻各子模块根据所述几何约束进行布局引起的各空白空间之后,滤除小于设定阈值的空白空间。
优选地,所述方法还包括:
通过调整待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除该待调整子模块引起的空白空间之后,判断是否还存在空白空间,若是,则选取另一个空白空间作为待处理空白空间,若否,则根据调整后各子模块的几何尺寸重新布局待优化电路模块。
一种自动优化片上系统层次化模块布局的系统,包括:
读入模块,用于读入待优化电路模块及其各子模块的布局和各子模块的几何约束;
空白空间搜寻模块,用于搜寻各子模块根据所述几何约束进行布局引起的各空白空间;
待调整子模块搜索模块,用于搜索引起空白空间的子模块,将该子模块作为将该子模块作为待调整子模块;
调整模块,用于通过调整待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除该待调整子模块引起的空白空间;
布局模块,用于根据调整后各子模块的几何尺寸重新布局待优化电路模块;
第一判断模块,用于判断是否还存在空白空间,当判断结果为是,继续优化片上系统层次化模块布局,当判断结果为否,将当前片上系统层次化模块布局作为输出结果。
优选地,所述空白空间搜寻模块包括:
顶点收集单元,用于收集各子模块的顶点;
做线单元,用于对所有顶点作水平线和垂直线;
空白空间获取单元,用于获取所有水平线和垂直线围成的矩形空间内未包含任意一个子模块的任意部分的各矩形空间,将未包含任意一个子模块的任意部分的各矩形空间作为空白空间。
优选地,所述待调整子模块搜索模块具体用于从所述空白空间的任意一边界朝向对面边界进行外推法,直至遇到阻碍外推的子模块,将阻碍外推的子模块作为待调整子模块。
优选地,所述调整模块包括:
选取单元,用于从各空白空间中选取一个空白空间作为待处理空白空间;
几何约束调整单元,用于当所述待处理空白空间在垂直方向的值小于相应待调整子模块在垂直方向的值,调整相应待调整子模块在垂直方向的几何约束,使得该子模块的上边沿/下边沿与待处理空白空间的上边沿/下边沿接近同一水平线和/或当所述待处理空白空间在水平方向的值小于相应待调整子模块在水平方向的值,调整相应待调整子模块在水平方向的几何约束使得该子模块的右边沿/左边沿与待处理空白空间的左边沿/右边沿接近同一垂直线,并根据各待调整子模块在调整前后所占面积不变原则,调整被调整后的待调整子模块在水平方向/垂直方向的长度;
几何尺寸获取单元,用于对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸;
删除单元,用于删除所述待处理空白空间。
优选地,所述系统还包括:
排序模块,与所述空白空间搜寻模块相连接,用于对各空白空间按照大小进行排序;
选取单元具体用于将最大的空白空间作为待处理空白空间。
优选地,所述系统还包括:
滤除模块,与所述空白空间搜寻模块相连接,用于滤除小于设定阈值的空白空间。
优选地,所述系统还包括:
第二判断模块,用于判断通过调整待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除该待调整子模块引起的空白空间之后是否还存在空白空间,若是,则选取另一个空白空间作为待处理空白空间,若否,则根据调整后各子模块的几何尺寸重新布局待优化电路模块。
本发明提供的一种自动优化片上系统层次化模块布局的方法及系统,通过对读入的待优化电路模块及其子模块的布局和各子模块的几何约束进行搜寻,得到由上述几何约束不合适而导致的各空白空间,然后搜索引起空白空间的待调整子模块,并通过对该待调整子模块的几何约束进行调整,获得在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除该空白空间,最终根据调整后各子模块的几何尺寸重新布局待优化电路模块。由于本发明提供的方法能自动搜寻因子模块的几何尺寸不合适引起的空白空间,并自动搜索引起该空白空间的待调整子模块,然后调整该待调整子模块的几何约束并根据其对子模块进行布局得到子模块几何尺寸以消除空白空间,解决现有技术造成不必要的芯片面积浪费的问题,从而能提升芯片面积的有效利用率,降低成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据现有技术进行SOC层次化模块布局的示意图;
图2为根据本发明提供的一种自动优化SOC层次化模块布局的方法的流程图;
图3至图4为根据本发明提供的方法获取的空白空间的示意图;
图5为根据本发明提供的方法获取待调整子模块的示意图;
图6至图21为根据本发明提供方法的各实施例的逻辑图;
图22为根据本发明提供的一种自动优化SOC层次化模块布局的系统的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。
现有技术对电路模块按照SOC的层次化进行布局时,由于通过平面规划计算的各子模块的几何约束并不适合所有子模块,使得按照平面规划计算得到的几何约束对所有子模块进行布局时,常常会出现一些空白空间,当将这样存在较多空白空间的模块集成于芯片上时,造成不必要的芯片面积浪费。为此需要根据当前布局结果对子模块的几何约束进行自动调整,以实现自动优化SOC层次化模块布局的目的。
本发明提供的一种自动优化片上系统层次化模块布局的方法及系统,由于在读入待优化电路模块及其各子模块的布局和各子模块的几何约束,能自动搜寻因子模块的几何约束不合适引起的空白空间,并自动搜索引起该空白空间的待调整子模块,然后调整该待调整子模块的几何约束并根据其对子模块进行布局得到子模块几何尺寸,以消除空白空间,解决现有技术造成不必要的芯片面积浪费的问题,从而能提升芯片面积的有效利用率,降低成本。
为了更好的理解本发明的技术方案和技术效果,以下将结合流程图和具体的实施例进行详细的描述,流程图如图5所示。
步骤S01,读入待优化电路模块及其各子模块的布局和各子模块的几何约束。
在本实施中,所述待优化电路模块可以包括:电源模块、D/A转换模块、频率合成模块等能集成于芯片上的电路模块。各子模块布局于平面体系,而非自由系,各子模块之间以及与电路模块之间存在一定的联系;这种联系对各子模块之间的位置关系及大小形成几何学上的限制,这种几何学上的限制称为几何约束。在本实施例中,所述几何约束主要包括:各子模块在垂直方向上的值以及长度,各子模块在水平方向上的值以及长度。
步骤S02,搜寻各子模块根据所述几何约束进行布局引起的各空白空间。
在本实施例中,所述搜寻各子模块根据所述几何约束进行布局引起的各空白空间可以包括:收集各子模块的顶点;对所有顶点作水平线和垂直线;获取所有水平线和垂直线围成的矩形空间内未包含任意一个子模块的任意部分的各矩形空间,将未包含任意一个子模块的任意部分的各矩形空间作为空白空间;在另一些实施例中,所述方法还包括:在获取空白空间后,滤除小于设定阈值的空白空间。其中,所述设定阈值可以是指定值,也可以是根据一定规则获取的值,例如:该设定阈值可以是待优化电路模块的各子模块中面积最小的面积值,还可以是各子模块下层次的各子模块中面积最小的面积值。将小于该设定阈值的空白空间滤除。在实际应用中,模块之间根据设计规则和引出连线的需求,需要在模块之间保留一定的间距,因此会引入一些必须保留的面积,优选地,所述设定阈值应当为该层次模块中面积最小的面积值与外围保留间距所引入的面积值之和。
在一个具体实施例中,所述待优化电路模块A的各子模块为Ai,首先收集各子模块Ai的四个顶点构成顶点序列QP;然后对各定点序列QP中每一个顶点Pi过该点作水平线HLi和垂直线VLi;接着获取任意两个点对应的两对线HLi、VLi、HLj和VLj构成一个矩形空间;最终检查各矩阵空间是否包含任意一个子模块的任意部分,将未包含任意一个子模块的任意部分的各矩形空间作为空白空间FSi。如图3至图4所示,空白空间包括:FS1、FS2、FS3、FS4。其中,i,j为1,2,3…等正整数。
需要说明的是,在实际应用中,可以将所示空白空间构成队列QFS,以便于计算机自动对各空白空间进行处理。
步骤S03,搜索引起空白空间的子模块,将该子模块作为将该子模块作为待调整子模块。
在本实施例中,所述搜索引起空白空间的子模块,将该子模块作为将该子模块作为待调整子模块包括:从所述空白空间的任意一边界朝向对面边界进行外推法,直至遇到阻碍外推的子模块,将阻碍外推的子模块作为待调整子模块。
在实际应用中,可以从所述空白空间的任意一边界为基准进行外推法,将该子模块作为待调整子模块,例如,参考图5所示,可以采用以下任意一种或多种:
1)空白空间左边界外推法直至遇到阻碍外推的子模块,如图5中空白空间FSi左边界外推得到子模块A1;
2)空白空间右边界外推法直至遇到阻碍外推的子模块,如图5中空白空间FSi右边界外推得到子模块A4;
3)空白空间上边界外推法直至遇到阻碍外推的子模块,如图5中空白空间FSi上边界外推得到子模块A5、A6;
4)空白空间下边界外推法直至遇到阻碍外推的子模块,如图5中空白空间FSi下边界外推得到子模块A2、A3。
在实际应用中,获得待调整子模块之后,搜索引起所述待调整子模块引起空白空间的所有子模块,构成待调整子模块队列,以便于计算机对引起空白空间的所有子模块进行自动处理。
在一个具体实施例中,搜索引起空白空间FSi的子模块,将该子模块作为待调整子模块,优选地,将所示待调整子模块归入一个集合中,形成待调整子模块集合QAi={Ai|i=1,2,...}。
进一步的,搜寻各子模块根据所述几何约束进行布局引起的各空白空间之后,对各空白空间按照大小进行排序,即对待调整子模块集合QAi进行排序。
步骤S04,通过调整待调整子模块的几何约束,以去除该待调整子模块引起的空白空间。
在本实施例中,调整待调整子模块的几何约束依赖于该待调整子模块和空白空间的位置关系。
所述通过调整待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除该待调整子模块引起的空白空间包括:
从各空白空间中选取一个空白空间作为待处理空白空间;当所述待处理空白空间在垂直方向的值小于相应待调整子模块在垂直方向的值,调整相应待调整子模块在垂直方向的几何约束,使得该子模块的上边沿/下边沿与待处理空白空间的上边沿/下边沿接近同一水平线和/或当所述待处理空白空间在水平方向的值小于相应待调整子模块在水平方向的值,调整相应待调整子模块在水平方向的几何约束使得该子模块的右边沿/左边沿与待处理空白空间的左边沿/右边沿接近同一垂直线,并根据各待调整子模块在调整前后所占面积不变原则,调整被调整后的待调整子模块在水平方向/垂直方向的长度;对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸;删除所述待处理空白空间。
进一步的,所述从各空白空间中选取一个空白空间作为待处理空白空间包括:将最大的空白空间作为待处理空白空间。
在实际应用中,可以调整所述待调整子模块队列中各待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除所述待调整子模块引起的空白空间。
当然,为了提高自动优化效率,本实施例还可以在调整待调整子模块的几何约束,去除该待调整子模块引起的空白空间之后,判断是否还存在空白空间,若是,则选取另一个空白空间作为待处理空白空间,若否,则根据调整后各子模块的几何约束重新布局待优化电路模块。
以图5所示的布局为例,对调整待调整子模块的几何约束进行说明:图5中以阴影标注的区域为该待优化电路模块的最大空白空间FSi,空白空间左边界外推法直至遇到阻碍外推的子模块,如图10中A1,A1在Y方向的几何约束应调整为接近YL(A1)-[YTR(A1)-YBL(FSi)],其中YL(A1)为A1的Y方向长度,YTR(A1)为A1的右上角的Y坐标值,YBL(FSi)为空白空间FSi的左下角Y坐标值。需要注意的是YTR(A1)〉YTL(FSi)时,不对A1进行调整。
空白空间右边界外推法直至遇到阻碍外推的子模块,如图10中的A4,A4在Y方向的几何约束应调整为接近YL(A4)-[YTL(A4)-YBR(FSi)],其中YL(A4)为A4的Y方向长度,YTL(A4)为A4的左上角的Y坐标值,YBR(FSi)为空白空间FSi的右下角Y坐标值。需要注意的是YTL(A4)〉YTR(FSi)时,不对A4进行调整。
空白空间上边界外推法直至遇到阻碍外推的子模块,如图10中的A5,A5在Y方向的几何约束应调整为接近YL(A5)+[YBR(A5)-YBR(FSi)],其中YL(A5)为A5的Y方向长度,YBR(A5)为A5的右下角的Y坐标值,YBR(FSi)为空白空间FSi的右下角Y坐标值。需要注意的是YBR(A5)<YBR(FSi)时,不对A5进行调整。
实施例一
在本实施例中,如图6所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.若上述队列QFS为空,则转向步骤10结束电路模块A的布局优化,否则转向执行步骤4;
4.从上述队列QFS中选取空白空间FSi;
5.搜索引起空白空间FSi的子模块Ai;
6.根据子模块Ai在模块A内造成的空白空间FSi对子模块Ai几何约束进行自动调整;
7.在新的几何约束下重新布局子模块Ai;
8.在空白空间队列QFS中删除FSi;
9.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
10.结束电路模块A的布局优化。
实施例二
在本实施例中,如图7所示,与实施例一所不同的是:增加步骤3对QFS内的空白空间按从大到小进行排序,步骤5为从上述队列QFS中选取最大空白空间FSi,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.对空白空间队列QFS中的空白空间按从大到小的顺序进行排序;
4.若上述队列QFS为空,则转向步骤11结束电路模块A的布局优化,否则转向执行步骤5;
5.从上述队列QFS中选取最大的空白空间FSi;
6.搜索引起空白空间FSi的子模块Ai;
7.根据子模块Ai在模块A内造成的面积浪费对子模块Ai几何约束进行自动调整;
8.在新的几何约束下重新布局子模块Ai;
9.在空白空间队列QFS中删除FSi;
10.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
11.结束电路模块A的布局优化。
实施例三
在本实施例中,如图8所示,与实施例一所不同的是,增加步骤3滤除队列QFS中面积大小可忽略的空白空间,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.滤除队列QFS中面积大小可忽略的空白空间;
4.若上述队列QFS为空,则转向步骤11结束电路模块A的布局优化,否则转向执行骤5;
5.从上述队列QFS中选取空白空间FSi;
6.搜索引起空白空间FSi的子模块Ai;
7.根据子模块Ai在模块A内造成的面积浪费对子模块Ai几何约束进行自动调整;
8.在新的几何约束下重新布局子模块Ai;
9.在空白空间队列QFS中删除FSi;
10.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
11.结束电路模块A的布局优化。
其中,所述设定阈值如上文所述,在此不再详述。
实施例四
在本实施例中,如图9所示,与实施例一所不同的是:增加步骤2针对空白空间进行排序,增加步骤3滤除队列QFS中面积大小可忽略的空白空间,对空白空间选取按取最大值原则进行,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.对空白空间队列QFS中的空白空间按从大到小的顺序进行排序;
4.滤除队列QFS中面积大小可忽略的空白空间;
5.若上述队列QFS为空,则转向步骤12结束电路模块A的布局优化,否则转向执行步骤6;
6.从上述队列QFS中选取最大的空白空间FSi;
7.搜索引起空白空间FSi的子模块Ai;
8.根据子模块Ai在模块A内造成的面积浪费对子模块Ai几何约束进行自动调整;
9.在新的几何约束下重新布局子模块Ai;
10.在空白空间队列QFS中删除FSi;
11.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
12.结束电路模块A的布局优化。
实施例五
在本实施例中,如图10所示,不同于实施例一,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.若上述队列QFS为空,则转向步骤10结束电路模块A的布局优化,否则转向执行步骤4;
4.从上述队列QFS中选取空白空间FSi;
5.搜索引起空白空间FSi的所有子模块Ai,构成子模块队列QAi;
6.选取子模块队列QAi一未调整的子模块Ai几何约束自动调整;
7.在新的几何约束下重新布局子模块Ai,若子模块队列QAi中所有子模块均已完成重新布局,则转向步骤8,否则转向步骤6;
8.在空白空间队列QFS中删除FSi;
9.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
10.结束电路模块A的布局优化。
实施例六
在本实施例中,如图11所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.对空白空间队列QFS中的空白空间按面积从大到小的顺序进行排序;
4.若上述队列QFS为空,则转向步骤11结束电路模块A的布局优化,否则转向执行步骤5;
5.从上述队列QFS中选取最大的空白空间FSi;
6.搜索引起空白空间FSi的所有子模块Ai,构成子模块队列QAi;
7.选取子模块队列QAi未调整的子模块Ai几何约束自动调整;
8.在新的几何约束下重新布局子模块Ai,若子模块队列QAi中所有子模块均已完成重新布局,则转向步骤9,否则转向步骤7;
9.在空白空间队列QFS中删除FSi;
10.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
11.结束电路模块A的布局优化。
实施例七
在本实施例中,如图12所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.滤除队列QFS中面积大小可忽略的空白空间;
4.若上述队列QFS为空,则转向步骤11结束电路模块A的布局优化,否则转向执行步骤5;
5.从上述队列QFS中选取空白空间FSi;
6.搜索引起空白空间FSi的所有子模块Ai,构成子模块队列QAi;
7.选取子模块队列QAi未调整的子模块Ai几何约束自动调整;
8.在新的几何约束下重新布局子模块Ai,若子模块队列QAi中所有子模块均已完成重新布局,则转向步骤9,否则转向步骤7;
9.在空白空间队列QFS中删除FSi;
10.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
11.结束电路模块A的布局优化。
实施例八
在本实施例中,如图13所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.对空白空间队列QFS中的空白空间按从大到小的顺序进行排序;
4.滤除队列QFS中面积大小可忽略的空白空间;
5.若上述队列QFS为空,则转向步骤12结束电路模块A的布局优化,否则转向执行步骤6;
6.从上述队列QFS中选取最大的空白空间FSi;
7.搜索引起空白空间FSi的所有子模块Ai,构成子模块队列QAi;
8.选取子模块队列QAi未调整的子模块Ai几何约束自动调整;
9.在新的几何约束下重新布局子模块Ai,若子模块队列QAi中所有子模块均已完成重新布局,则转向步骤10,否则转向步骤8;
10.在空白空间队列QFS中删除FSi;
11.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
12.结束电路模块A的布局优化。
实施例九
在本实施例中,如图14所示,与实施例一所不同的是:在重新布局电路模块A之前对所有引起待处理空白空间的所有子模块Ai均作处理,然后才对电路模块A在顶层重新布局,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.若上述队列QFS为空,则转向步骤11结束电路模块A的布局优化,否则转向执行步骤4;
4.从上述队列QFS中选取空白空间FSi;
5.搜索引起空白空间FSi的子模块Ai;
6.根据子模块Ai在电路模块A内造成的面积浪费对子模块Ai几何约束进行自动调整;
7.在新的几何约束下重新布局子模块Ai;
8.在空白空间队列QFS中删除FSi,
9.若空白空间队列QFS为空,转为执行步骤11,否则转为执行步骤4;
10.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
11.结束电路模块A的布局优化。
实施例十
在本实施例中,如图15所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.对空白空间队列QFS中的空白空间按从大到小的顺序进行排序;
4.若上述队列QFS为空,则转向步骤12结束电路模块A的布局优化,否则转向执行步骤5;
5.从上述队列QFS中选取最大的空白空间FSi;
6.搜索引起空白空间FSi的子模块Ai;
7.根据子模块Ai在模块A内造成的面积浪费对子模块Ai几何约束进行自动调整;
8.在新的几何约束下重新布局子模块Ai;
9.在空白空间队列QFS中删除FSi;
10.若空白空间队列FS为空,转为执行步骤11,否则转为执行步骤5;
11.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
12.结束电路模块A的布局优化。
实施例十一
在本实施例中,如图16所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.滤除队列QFS中面积大小可忽略的空白空间;
4.若上述队列QFS为空,则转向步骤12结束电路模块A的布局优化,否则转向执行步骤5;
5.从上述队列QFS中选取空白空间FSi;
6.搜索引起空白空间FSi的子模块Ai;
7.根据子模块Ai在电路模块A内造成的面积浪费对子模块Ai几何约束进行自动调整;
8.在新的几何约束下重新布局子模块Ai;
9.在空白空间队列QFS中删除FSi;
10.若空白空间队列QFS为空,转为执行步骤11,否则转为执行步骤5;
11.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
12.结束电路模块A的布局优化。
实施例十二
在本实施例中,如图17所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.对空白空间队列QFS中的各空白空间FS按从大到小的顺序进行排序;
4.滤除队列QFS中面积大小可忽略的空白空间;
5.若上述队列QFS为空,则转向步骤13结束电路模块A的布局优化,否则转向执行步骤6;
6.从上述队列QFS中选取最大的空白空间FSi;
7.搜索引起空白空间FSi的子模块Ai;
8.根据子模块Ai在电路模块A内造成的面积浪费对子模块Ai几何约束进行自动调整;
9.在新的几何约束下重新布局子模块Ai;
10.在空白空间队列QFS中删除FSi;
11.若空白空间队列QFS为空,转为执行步骤12,否则转为执行步骤6;
12.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
13.结束电路模块A的布局优化。
实施例十三
在本实施例中,如图18所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.若上述队列QFS为空,则转向步骤11结束电路模块A的布局优化,否则转向执行步骤4;
4.从上述队列QFS中选取空白空间FSi;
5.搜索引起空白空间FSi的所有子模块Ai,构成子模块队列QAi;
6.选取子模块队列QAi未调整的子模块Ai几何约束自动调整;
7.在新的几何约束下重新布局子模块Ai,若子模块队列QAi中所有子模块均已完成重新布局,则转向步骤8,否则转向步骤6;
8.在空白空间队列QFS中删除FSi;
9.若空白空间队列QFS为空,转为执行步骤11,否则转为执行步骤4;
10.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
11.结束电路模块A的布局优化。
实施例十四
在本实施例中,如图19所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.对空白空间队列QFS中的空白空间按面积从大到小的顺序进行排序;
4.若上述队列QFS为空,则转向步骤12结束电路模块A的布局优化,否则转向执行步骤5;
5.从上述队列QFS中选取最大的空白空间FSi;
6.搜索引起空白空间FSi的所有子模块Ai,构成子模块队列QAi;
7.选取子模块队列QAi未调整的子模块Ai几何约束自动调整;
8.在新的几何约束下重新布局子模块Ai,若子模块队列QAi中所有子模块均已完成重新布局,则转向步骤9,否则转向步骤7;
9.在空白空间队列QFS中删除FSi;
10.若空白空间队列FS为空,转为执行步骤11,否则转为执行步骤5;
11.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
12.结束电路模块A的布局优化。
实施例十五
在本实施例中,如图20所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.滤除队列QFS中面积大小可忽略的空白空间;
4.若上述队列QFS为空,则转向步骤12结束电路模块A的布局优化,否则转向执行步骤5;
5.从上述队列QFS中选取空白空间FSi;
6.搜索引起空白空间FSi的所有子模块Ai,构成子模块队列QAi;
7.选取子模块队列QAi未调整的子模块Ai几何约束自动调整;
8.在新的几何约束下重新布局子模块Ai,若子模块队列QAi中所有子模块均已完成重新布局,则转向步骤9,否则转向步骤7;
9.在空白空间队列QFS中删除FSi;
10.若空白空间队列FS为空,转为执行步骤11,否则转为执行步骤4;
11.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
12.结束电路模块A的布局优化。
实施例十六
在本实施例中,如图21所示,一种自动优化SOC层次化模块布局方法具体包括以下步骤:
1.读入电路模块A及其子模块的布局和各子模块设计约束;
2.在电路模块A的布局上搜寻空白空间FS,构成队列QFS;
3.对空白空间队列QFS中的空白空间按从大到小的顺序进行排序;
4.滤除队列QFS中面积大小可忽略的空白空间;
5.若上述队列QFS为空,则转向步骤13结束电路模块A的布局优化,否则转向执行步骤6;
6.从上述队列QFS中选取最大的空白空间FSi;
7.搜索引起空白空间FSi的所有子模块Ai,构成子模块队列QAi;
8.选取子模块队列QAi未调整的子模块Ai几何约束自动调整;
9.在新的几何约束下重新布局子模块Ai,若子模块队列QAi中所有子模块均已完成重新布局,则转向步骤10,否则转向步骤8;
10.在空白空间队列QFS中删除FSi;
11.若空白空间队列FS为空,转为执行步骤12,否则转为执行步骤6;
12.在A模块的顶层重新布局电路模块A,并转为执行步骤1;
13.结束电路模块A的布局优化。
在本发明实施例中通过在读入待优化电路模块及其各子模块的布局和各子模块的几何约束之后,自动搜寻因子模块的几何尺寸不合适引起的空白空间,并自动搜索引起该空白空间的待调整子模块,然后调整该待调整子模块的几何约束并对子模块重新进行布局以消除空白空间,最终对所述待优化电路模块进行重新布局,解决现有技术造成不必要的芯片面积浪费的问题,从而能提升芯片面积的有效利用率,降低生产成本。
相应地,本发明还提供了一种自动优化片上系统层次化模块布局的系统,包括:
读入模块201,用于读入待优化电路模块及其各子模块的布局和各子模块的几何约束;
空白空间搜寻模块202,用于搜寻各子模块根据所述几何约束进行布局引起的各空白空间;
待调整子模块搜索模块203,用于搜索引起空白空间的子模块,将该子模块作为待调整子模块;
调整模块204,用于通过调整待调整子模块的几何约束,对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸,以去除该待调整子模块引起的空白空间;
布局模块205,用于根据调整后各子模块的几何尺寸重新布局待优化电路模块;
第一判断模块206,用于判断是否还存在空白空间,当判断结果为是,继续优化片上系统层次化模块布局,当判断结果为否,将当前片上系统层次化模块布局作为输出结果。
在实际应用中,所述空白空间搜寻模块202包括:
顶点收集单元,用于收集各子模块的顶点;
做线单元,用于对所有顶点作水平线和垂直线;
空白空间获取单元,用于获取所有水平线和垂直线围成的矩形空间内未包含任意一个子模块的任意部分的各矩形空间,将未包含任意一个子模块的任意部分的各矩形空间作为空白空间;
进一步地,为了提高优化效率,可以滤除面积小于一定阈值的空白空间,所述系统还包括:滤除模块301,与所述空白空间搜寻模块202相连接,用于滤除小于设定阈值的空白空间。
在实际应用中,该系统为了获取所述待调整子模块,所述待调整子模块搜索模块203具体用于从所述空白空间的任意一边界朝向对面边界进行外推法,直至遇到阻碍外推的子模块,将阻碍外推的子模块作为待调整子模块。
在本实施例中,本系统基于几何约束调整待调整子模块,以消除空白空间。所述调整模块204包括:
选取单元,用于从各空白空间中选取一个空白空间作为待处理空白空间;
几何约束调整单元,用于当所述待处理空白空间在垂直方向的值小于相应待调整子模块在垂直方向的值,调整相应待调整子模块在垂直方向的几何约束,使得该子模块的上边沿/下边沿与待处理空白空间的上边沿/下边沿接近同一水平线和/或当所述待处理空白空间在水平方向的值小于相应待调整子模块在水平方向的值,调整相应待调整子模块在水平方向的几何约束使得该子模块的右边沿/左边沿与待处理空白空间的左边沿/右边沿接近同一垂直线,并根据各待调整子模块在调整前后所占面积不变原则,调整被调整后的待调整子模块在水平方向/垂直方向的长度;
几何尺寸获取单元,用于对待调整子模块在调整后几何约束下进行布局得到该待调整子模块的几何尺寸;
删除单元,用于删除所述待处理空白空间。
进一步地,本系统可以对所述空白空间的大小进行排序,以便于优先处理造成最大面积浪费的空白空间,因此,所述系统还包括:
排序模块302,与所述空白空间搜寻模块相连接,用于对各空白空间按照大小进行排序;
选取单元具体用于将最大的空白空间作为待处理空白空间。
此外,为了提升系统效率,本系统在调整模块204之后,可以通过一个判断模块判断待引起调整子模块引起空白空间的子模块是否都进行了几何约束调整,所述系统还包括:
第二判断模块303,用于判断调整待调整子模块的几何约束,去除该待调整子模块引起的空白空间之后是否还存在空白空间,若是,则选取另一个空白空间作为待处理空白空间,若否,则根据调整后各子模块的几何约束重新布局待优化电路模块。
当然,该系统还可以进一步包括存储模块(未图示),用于保存搜索结果,如空白空间及待调整子模块相关信息等。这样,以方便对待优化电路模块布局进行计算机自动处理,并存优化后电路模块布局结果相关信息等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可。尤其,对于实施例二而言,由于其是本发明提供的方法的另一种示例,所以描述得比较简单,相关之处参见实施例一的部分说明即可。以上所描述的实施例仅仅是示意性的,本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
机译: 一组X射线检测器的模块化布局和一组X射线检测器的模块化布局,这些X射线检测器在层析成像系统中的旋转磁盘上支持相反的X射线源
机译: 无噪音的模块化住房系统,例如该计算机具有多层冷却系统,该系统的金属底板具有比铝更高的导热系数,并且在铝的一侧上带有或不带有散热片
机译: 无噪音的模块化住房系统,例如该计算机具有多层冷却系统,该系统的金属底板具有比铝更高的导热系数,并且在铝的一侧上带有或不带有散热片