CN109635470B - 模块快速摆放与调整方法 - Google Patents
模块快速摆放与调整方法 Download PDFInfo
- Publication number
- CN109635470B CN109635470B CN201811553451.2A CN201811553451A CN109635470B CN 109635470 B CN109635470 B CN 109635470B CN 201811553451 A CN201811553451 A CN 201811553451A CN 109635470 B CN109635470 B CN 109635470B
- Authority
- CN
- China
- Prior art keywords
- max
- list
- value
- storage unit
- storage units
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Generation (AREA)
Abstract
本发明揭示了一种模块快速摆放与调整方法,所述方法包括:步骤S1、获取输入数据;所述输入数据包括各存储单元的基本数据,以及各存储单元需要间隔的间隔高度、间隔宽度;存储单元的基本数据包括存储单元位置坐标、存储单元高度、存储单元宽度;步骤S2、通过计算得到各个模块对应的位置;步骤S3、根据计算得到各个模块的位置信息,排放各个模块。本发明提出的模块快速摆放与调整方法,可极快的速度调整存储单元的间距,对于上百的存储单元的调整速度在秒的量级之内,极大的提高速度,减少了项目的迭代时间。
Description
技术领域
本发明属于集成电路技术领域,涉及一种模块快速摆放与调整方法。
背景技术
随着集成电路规模的不断发展,集成电路的规模已经从最初的百万晶体管规模发展到现在的数十亿晶体管规模。集成电路设计中所使用的存储单元(memory)也从最初的几十个,发展到现在的数千个存储单元。布局作为集成电路设计当中的重要步骤,需要花费大量的时间,其中对于存储单元的摆放占用了大部分的时间。
存储单元由于其特殊性,一侧出多个需要连接的管脚,这就需要其摆放位置需要与相邻的模块空出指定的距离用于管脚绕线,对于存储单元的距离调整需要花费大量的时间。
传统的摆放方法,是使用EDA工具提供的对齐(align)功能和按照固定间距的展开(spread)功能。以下举例说明如对3x3的存储模块矩阵进行摆放时需要进行以下操作。
要求:将图1的存储模块按照3x3排列,相邻存储模块之间上下左右距离为1,并且放置在(0,0)点。
(1)将M31放置到0,0点,如图2所示;
(2)选中M31,M32,M33,让它们以下面对齐,如图3所示。
(3)选中M31,M32,M33,使其以X轴从左到右方向,间距为1排列;如图4所示。
(4)选中M31,M21,M11,使其以最左侧对齐,如图5所示。
(5)选中M31,M21,M11,使其以X轴从下到上方向,间距为1排列,如图6所示。
(6)选中M21,M22,M23,使其以最下侧对齐,如图7所示。
(7)选中M21,M22,M23,使其以X轴从左到右方向,间距为1排列,如图8所示。
(8)对于M11,M12,M13重复步骤(6)、步骤(7),至摆放成如图9所示。
以上为了简便,仅针对相同大小存储单元摆放进行了描述,真实情况下,存储单元大小不一,大大增加了复杂度,如图10。对于不规则的图形(如图10),需要更多的步骤进行摆放,花费极多的时间。
有鉴于此,如今迫切需要设计一种新的存储单元摆放方式,以便克服现有存储单元摆放方式存在的上述缺陷。
发明内容
本发明所要解决的技术问题是:提供一种模块快速摆放与调整方法,可极快的速度调整存储单元的间距,对于上百的存储单元的调整速度在秒的量级之内,极大的提高速度,减少了项目的迭代时间。
为解决上述技术问题,本发明采用如下技术方案:
一种模块快速摆放与调整方法,所述模块为正方形或长方形的存储单元;设需要对齐的坐标点横坐标为X,需要对齐的坐标点纵坐标为Y,有N个存储单元需要摆放,第N个存储单元用M.n表示,第N个存储单元左下角的横坐标为M.n.x、纵坐标为M.n.y,高度为M.n.h,宽度为M.n.w;存储单元之间需要横向调节的最小距离为SX,纵向调节的最小距离为SY;所述方法包括:
-步骤S1、将各存储单元在Y轴方向进行排列;具体包括:
步骤S101、获取所有输入存储单元左下角的横坐标的最小值M.n.x.min=MIN(M.i.x),i=1,2,…,n;
步骤S102、获取所有输入存储单元左下角的横坐标的最大值M.n.x.max=MAX(M.i.x),i=1,2,…,n;
步骤S103、设置MX变量,MX的初始值为M.n.x.min,而后以设定步长递增至M.n.x.max;
步骤S104、每得到一个新的MX值,将所有的存储单元中的值满足M.i.x<MX<M.i.x+M.i.w的存储单元M.i放到一个新列表中;
步骤S105、在MX递增到M.n.x.max后,得到了m个新列表,各个新列表分别用L.1、L.2、L.3、…、L.m表示;
步骤S106、对于每一个列表L.j中的存储单元,按照各存储单元的纵坐标进行从小到大排列,得到新的列表L.sort.j;其中,j=1,2,…,m;
步骤S107、得到所有输入存储单元左下角的纵坐标的最小值M.n.y.min=MIN(M.i.y),i=1,…,n;
步骤S108、得到所有输入存储单元左下角的纵坐标的最大值M.n.y.max=MAX(M.i.y);i=1,…,n;
步骤S109、设置MY变量,MY的初始值为M.n.y.min,而后以设定步长递增至M.n.y.max;
步骤S110、每得到一个新的MY值,将所有的存储单元的值满足M.i.y<MX<M.i.y+M.i.h的存储单元M.s,进行如下计算:
在每个列表L.sort.j中查找M.s,如果M.s在列表中的第一个位置则将要对齐的纵坐标Y,放入一个新的列表SL;如果不是第一个位置,则假设M.s在列表的第P个位置,取在列表中P-1的位置的存储单元的纵坐标值加上其高度值,放入列表SL;
步骤S111、对SL里面的值进行从大到小排列,取最大值Max(SL),若Max(SL)等于将要对齐的纵坐标Y,则将M.s.y设置为y,若不等于,则使M.s.y=Max(SL)+SY;
步骤S112、当MY计算到M.n.y.max后结束,完成对Y方向的排列;
-步骤S2、将各存储单元在X轴方向进行排列;具体包括:
步骤S201、获取所有输入存储单元左下角的纵坐标的最小值M.n.y.min=MIN(M.i.y),i=1,…,n;
步骤S202、获取所有输入存储单元左下角的纵坐标的最大值M.n.y.max=MAX(M.i.y),i=1,…,n;
步骤S203、设置MY2变量,MY2的初始值为M.n.y.min,而后以设定步长递增至M.n.y.max;
步骤S204、每得到一个新的MY2值,将所有的存储单元的值满足M.i.y<MY2<M.i.y+M.i.h的存储单元放到一个新列表中;
步骤S205、在MY2到M.n.x.max递增完成以后,得到了m2个新列表,各个新列表分别用L2.1、L2.2、L2.3、…、L2.m2表示;
步骤S206、对于每一个列表L2.j2中的存储单元,按照各存储单元的横坐标进行从小到大排列,得到新的列表L.sort.m2;其中,j2=1,2,…,m2;
步骤S207、得到所有输入存储单元左下角的横坐标的最小值M.n.x.min=MIN(M.i.x),i=1,…,n;
步骤S208、得到所有输入存储单元左下角的横坐标的最大值M.n.x.max=MAX(M.i.x);i=1,…,n;
步骤S209、设置MX2变量,MX2的初始值为M.n.x.min,而后以设定步长递增至M.n.x.max;
步骤S210、每得到一个新的MX2值,将所有的存储单元的值满足M.i.x<MY2<M.i.x+M.i.w的存储单元,满足的存储单元为M.s2,进行如下计算:
在每个列表L.sort.m2中查找M.s2,如果M.s2在列表中的第一个位置则将要对齐的横坐标X,放入一个新的列表SL2;如果不是第一个位置,则假设M.2s在列表的第P个位置,取在列表中P-1的位置的存储单元的横坐标值加上其宽度值,放入列表SL2;
步骤S211、对SL2里面的值进行从大到小排列,取最大值Max(SL2),若Max(SL2)等于将要对齐的横坐标X,则将M.s.x设置为x,若不等于,则使M.s.x=Max(SL2)+SX;
步骤S212、当MY2计算到M.n.x.max后结束,完成对X轴方向的排列。
一种模块快速摆放与调整方法,所述方法包括:
步骤S1、获取输入数据;所述输入数据包括各模块的基本数据,以及各模块需要间隔的间隔高度、间隔宽度;模块的基本数据包括模块位置坐标、模块高度、模块宽度;
步骤S2、通过计算得到各个模块对应的位置;
步骤S3、根据计算得到各个模块的位置信息,排放各个模块。
作为本发明的一种实施方式,所述步骤S2中,首先按照模块的Y坐标从下到上依次调整模块间距离,得到各个模块对应的Y坐标;然后按照模块的X坐标从左到右依次调整模块间距离,得到各个模块对应的X坐标。
作为本发明的一种实施方式,所述模块为正方形或长方形的存储单元。
作为本发明的一种实施方式,所述步骤S1中,获取的输入数据还包括模块排列的行数及列数要求;
所述步骤S2中,根据各个模块的数量、间隔高度、间隔宽度以及模块排列的行数及列数要求计算各行、各列对应模块的数量。
作为本发明的一种实施方式,所述步骤S2中,在得到各行、各列对应模块数量后,计算各个模块调整后对应的位置。
作为本发明的一种实施方式,所述步骤S3中,在通过步骤S2获取各个模块调整后对应的位置后,将各个模块原始的位置坐标放入一数组A中;
按照设定顺序计算数组A各个位置坐标距离各个调整后模块位置坐标的距离,并从中获取距离各个调整后模块距离最近的原有模块,将该原有模块作为移动至该位置的模块对象;当某原有模块被选取后,则将其从数组A中去除,用数组A中余下的数据继续对余下调整后模块位置坐标进行匹配。
本发明的有益效果在于:本发明提出的模块快速摆放与调整方法,可极快的速度调整存储单元(获其他模块)的间距,对于上百的存储单元的调整速度在秒的量级之内,极大的提高速度,减少了项目的迭代时间。
附图说明
图1至图10为现有存储单元摆放过程示意图。
图11至图15为本发明一实施例中模块快速摆放与调整方法的调节过程示意图。
图16为本发明一实施例中模块快速摆放与调整方法的流程图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。
该部分的描述只针对几个典型的实施例,本发明并不仅局限于实施例描述的范围。相同或相近的现有技术手段与实施例中的一些技术特征进行相互替换也在本发明描述和保护的范围内。
本发明揭示一种模块快速摆放与调整方法,在本发明的一个实施例中,所述模块为正方形或长方形的存储单元;设需要对齐的坐标点横坐标为X,需要对齐的坐标点纵坐标为Y,有N个存储单元需要摆放,第N个存储单元用M.n表示,第N个存储单元左下角的横坐标为M.n.x、纵坐标为M.n.y,高度为M.n.h,宽度为M.n.w;存储单元之间需要横向调节的最小距离为SX,纵向调节的最小距离为SY;可参阅图11至图15,所述方法包括:
-步骤S1、将各存储单元在Y轴方向进行排列;具体包括:
步骤S101、获取所有输入存储单元左下角的横坐标的最小值M.n.x.min=MIN(M.i.x),i=1,2,…,n;
步骤S102、获取所有输入存储单元左下角的横坐标的最大值M.n.x.max=MAX(M.i.x),i=1,2,…,n;
步骤S103、设置MX变量,MX的初始值为M.n.x.min,而后以设定步长递增至M.n.x.max;
步骤S104、每得到一个新的MX值,将所有的存储单元中的值满足M.i.x<MX<M.i.x+M.i.w的存储单元M.i放到一个新列表中;可参照图12所示。
步骤S105、在MX递增到M.n.x.max后,得到了m个新列表,各个新列表分别用L.1、L.2、L.3、…、L.m表示;
步骤S106、对于每一个列表L.j中的存储单元,按照各存储单元的纵坐标进行从小到大排列,得到新的列表L.sort.j;其中,j=1,2,…,m;
步骤S107、得到所有输入存储单元左下角的纵坐标的最小值M.n.y.min=MIN(M.i.y),i=1,…,n;
步骤S108、得到所有输入存储单元左下角的纵坐标的最大值M.n.y.max=MAX(M.i.y);i=1,…,n;
步骤S109、设置MY变量,MY的初始值为M.n.y.min,而后以设定步长递增至M.n.y.max;
步骤S110、每得到一个新的MY值,将所有的存储单元的值满足M.i.y<MX<M.i.y+M.i.h的存储单元M.s,进行如下计算:
在每个列表L.sort.j中查找M.s,如果M.s在列表中的第一个位置则将要对齐的纵坐标Y,放入一个新的列表SL;如果不是第一个位置,则假设M.s在列表的第P个位置,取在列表中P-1的位置的存储单元的纵坐标值加上其高度值,放入列表SL;可参照图13所示。
步骤S111、对SL里面的值进行从大到小排列,取最大值Max(SL),若Max(SL)等于将要对齐的纵坐标Y,则将M.s.y设置为y,若不等于,则使M.s.y=Max(SL)+SY;
步骤S112、当MY计算到M.n.y.max后结束,完成对Y方向的排列;可参照图14所示。
-步骤S2、将各存储单元在X轴方向进行排列;具体包括:
步骤S201、获取所有输入存储单元左下角的纵坐标的最小值M.n.y.min=MIN(M.i.y),i=1,…,n;
步骤S202、获取所有输入存储单元左下角的纵坐标的最大值M.n.y.max=MAX(M.i.y),i=1,…,n;
步骤S203、设置MY2变量,MY2的初始值为M.n.y.min,而后以设定步长递增至M.n.y.max;
步骤S204、每得到一个新的MY2值,将所有的存储单元的值满足M.i.y<MY2<M.i.y+M.i.h的存储单元放到一个新列表中;
步骤S205、在MY2到M.n.x.max递增完成以后,得到了m2个新列表,各个新列表分别用L2.1、L2.2、L2.3、…、L2.m2表示;
步骤S206、对于每一个列表L2.j2中的存储单元,按照各存储单元的横坐标进行从小到大排列,得到新的列表L.sort.m2;其中,j2=1,2,…,m2;
步骤S207、得到所有输入存储单元左下角的横坐标的最小值M.n.x.min=MIN(M.i.x),i=1,…,n;
步骤S208、得到所有输入存储单元左下角的横坐标的最大值M.n.x.max=MAX(M.i.x);i=1,…,n;
步骤S209、设置MX2变量,MX2的初始值为M.n.x.min,而后以设定步长递增至M.n.x.max;
步骤S210、每得到一个新的MX2值,将所有的存储单元的值满足M.i.x<MY2<M.i.x+M.i.w的存储单元,满足的存储单元为M.s2,进行如下计算:
在每个列表L.sort.m2中查找M.s2,如果M.s2在列表中的第一个位置则将要对齐的横坐标X,放入一个新的列表SL2;如果不是第一个位置,则假设M.2s在列表的第P个位置,取在列表中P-1的位置的存储单元的横坐标值加上其宽度值,放入列表SL2;
步骤S211、对SL2里面的值进行从大到小排列,取最大值Max(SL2),若Max(SL2)等于将要对齐的横坐标X,则将M.s.x设置为x,若不等于,则使M.s.x=Max(SL2)+SX;
步骤S212、当MY2计算到M.n.x.max后结束,完成对X轴方向的排列,可对照图15所示。
本发明揭示一种模块快速摆放与调整方法,在本发明的一个实施例中,请参阅图16,所述模块快速摆放与调整方法包括:
步骤S1、获取输入数据;所述输入数据包括各模块的基本数据,以及各模块需要间隔的间隔高度、间隔宽度;模块的基本数据包括模块位置坐标、模块高度、模块宽度;
步骤S2、对输入模块的坐标进行排列计算;
步骤S3、根据计算得到各个模块的位置信息,排放各个模块。
在本发明的一实施例中,所述模块为正方形或长方形的存储单元。
在本发明的一实施例中,所述步骤S1中,获取的输入数据还包括模块排列的行数及列数要求;所述步骤S2中,根据各个模块的数量、间隔高度、间隔宽度以及模块排列的行数及列数要求计算各行、各列对应模块的数量。
在本发明的一实施例中,所述步骤S2中,在得到各行、各列对应模块数量后,计算各个模块调整后对应的位置。
在本发明的一实施例中,所述步骤S2中,首先按照模块的Y坐标从下到上依次调整模块间距离,得到各个模块对应的Y坐标。然后按照模块的X坐标从左到右依次调整模块间距离,得到各个模块对应的X坐标。
在本发明的一实施例中,所述步骤S3中,在通过步骤S2获取各个模块调整后对应的位置后,将各个模块原始的位置坐标放入一数组A中。按照设定顺序计算数组A各个位置坐标距离各个调整后模块位置坐标的距离,并从中获取距离各个调整后模块距离最近的原有模块,将该原有模块作为移动至该位置的模块对象;当某原有模块被选取后,则将其从数组A中去除,用数组A中余下的数据继续对余下调整后模块位置坐标进行匹配,直至所有模块均找到其需要调整的位置,而后根据该位置进行调整。
在本发明的一个实施例中,本实施例以图形摆放作为举例。
需要将图11中各个存储单元,以X为0,Y为0来对齐;并且相邻两个存储单元之间距离为2。假设图片中所有M11的左下角X坐标为X0_M11,左下角Y坐标为Y0_M11;右下角X坐标为X1_M11,右下角Y坐标为Y1_M11,高度为H_M11,宽度为W_M11,以此类推。
则程序输入为,x=0,y=0,space=2,x_m**,y_m**,h_m**,w_m**。
(1)计算x0_m**中的最小值,使其为x0_min.
(2)计算x1_m**中的最大值,使其为x1_max.
(3)计算数值X,使X以步进数目为0.1在x0_min到x1_max的区间内递增,每次递增后,将x0_m**<X<x1_m**的存储单元放入列表。如图12所示。
(4)当取X时,将M12,M22,M32放入列表,并且依照y0的值进行从小到大依次排列。
得到列表{M32,M22,M12}.
当X从x0_min到x1_max得搜索结束后,会得到三个列表,分别是:
{M31,M21,M11}{M32,M22,M12}{M33,M23,M13}。
将这个列表命名为MEM_X_LIST,则MEM_X_LIST为包含三个列表{M31,M21,M11}{M32,M22,M12}{M33,M23,M13}的列表。
(5)计算y0_m**中的最小值,使其为y0_min。
(6)计算y1_m**中的最大值,使其为y1_max。
(7)计算数值Y,使Y以步进数目为0.1在y0_min到y1_max的区间内递增,每次递增后,取得y0_m**<Y<y1_m**存储单元。
如图13所示,则取中M32。在MEM_X_LIST当中查找包含M32的列表,则选中列表{M32,M22,M12}。若M32在列表中第一个位置,则记录Y对齐值到列表LIST,如果其在列表中的其他位置,则记录M32所在列表当中的下一个位置的M的Y1值到列表LIST。
对于列表LIST进行从大到小排序,取最大值,若最大值为Y对齐值,则设置M32的y0为Y对齐值。如果不是,设置M32的y0为最大值加上程序设定的spacing值。
(8)在Y以步进数目为0.1在y0_min到y1_max的区间内递增结束后,则完成Y方向的排列,如图14所示。
(9)同样方式执行步骤1~8,使M**向Y轴方向对齐。
(10)程序排列完成,输出存储单元坐标,如图15所示。
综上所述,本发明提出的模块快速摆放与调整方法,可极快的速度调整存储单元(获其他模块)的间距,对于上百的存储单元的调整速度在秒的量级之内,极大的提高速度,减少了项目的迭代时间。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。
Claims (1)
1.一种模块快速摆放与调整方法,其特征在于,所述模块为正方形或长方形的存储单元;设需要对齐的坐标点横坐标为X,需要对齐的坐标点纵坐标为Y,有N个存储单元需要摆放,第N个存储单元用M.n表示,第N个存储单元左下角的横坐标为M.n.x、纵坐标为M.n.y,高度为M.n.h,宽度为M.n.w;存储单元之间需要横向调节的最小距离为SX,纵向调节的最小距离为SY;所述方法包括:
-步骤S1、将各存储单元在Y轴方向进行排列;具体包括:
步骤S101、获取所有输入存储单元左下角的横坐标的最小值M.n.x.min = MIN(M.i.x),i=1,2,…,n;
步骤S102、获取所有输入存储单元左下角的横坐标的最大值M.n.x.max = MAX(M.i.x),i=1,2,…,n;
步骤S103、设置MX变量,MX的初始值为M.n.x.min, 而后以设定步长递增至M.n.x.max;
步骤S104、每得到一个新的MX值,将所有的存储单元中的值满足M.i.x< MX <M.i.x+M.i.w的存储单元M.i放到一个新列表中;
步骤S105、在MX递增到M.n.x.max后,得到了m个新列表,各个新列表分别用L.1、L.2、L.3、…、L.m表示;
步骤S106、对于每一个列表L.j中的存储单元,按照各存储单元的纵坐标进行从小到大排列,得到新的列表L.sort.j;其中,j=1,2,…,m;
步骤S107、得到所有输入存储单元左下角的纵坐标的最小值M.n.y.min = MIN(M.i.y),i=1,…,n;
步骤S108、得到所有输入存储单元左下角的纵坐标的最大值M.n.y.max = MAX(M.i.y);i=1,…,n;
步骤S109、设置MY变量,MY的初始值为M.n.y.min, 而后以设定步长递增至M.n.y.max;
步骤S110、每得到一个新的MY值,将所有的存储单元的值满足M.i.y<MY<M.i.y+M.i.h的存储单元M.s,进行如下计算:
在每个列表L.sort.j中查找M.s,如果M.s在列表中的第一个位置则将要对齐的纵坐标Y,放入一个新的列表SL;如果不是第一个位置,则假设M.s在列表的第P个位置,取在列表中P-1的位置的存储单元的纵坐标值加上其高度值,放入列表SL;
步骤S111、对SL里面的值进行从大到小排列,取最大值Max(SL),若Max(SL)等于将要对齐的纵坐标Y,则将M.s.y设置为y,若不等于,则使M.s.y= Max(SL) + SY;
步骤S112、当MY计算到M.n.y.max后结束,完成对Y方向的排列;
-步骤S2、将各存储单元在X轴方向进行排列;具体包括:
步骤S201、获取所有输入存储单元左下角的纵坐标的最小值M.n.y.min = MIN(M.i.y),i=1,…,n;
步骤S202、获取所有输入存储单元左下角的纵坐标的最大值M.n.y.max = MAX(M.i.y),i=1,…,n;
步骤S203、设置MY2变量,MY2的初始值为M.n.y.min, 而后以设定步长递增至M.n.y.max;
步骤S204、每得到一个新的MY2值,将所有的存储单元的值满足M.i.y< MY2<M.i.y+M.i.h的存储单元放到一个新列表中;
步骤S205、在MY2到M.n.x.max递增完成以后,得到了m2个新列表,各个新列表分别用L2.1、L2.2、L2.3、…、L2.m2表示;
步骤S206、对于每一个列表L2.j2中的存储单元,按照各存储单元的横坐标进行从小到大排列,得到新的列表L.sort.m2;其中,j2=1,2,…,m2;
步骤S207、得到所有输入存储单元左下角的横坐标的最小值M.n.x.min = MIN(M.i.x),i=1,…,n;
步骤S208、得到所有输入存储单元左下角的横坐标的最大值M.n.x.max = MAX(M.i.x);i=1,…,n;
步骤S209、设置MX2变量,MX2的初始值为M.n.x.min, 而后以设定步长递增至M.n.x.max;
步骤S210、每得到一个新的MX2值,将所有的存储单元的值满足M.i.x<MX2<M.i.x+M.i.w的存储单元,满足的存储单元为M.s2,进行如下计算:
在每个列表L.sort.m2中查找M.s2,如果M.s2在列表中的第一个位置则将要对齐的横坐标X,放入一个新的列表SL2;如果不是第一个位置,则假设M.2s在列表的第P个位置,取在列表中P-1的位置的存储单元的横坐标值加上其宽度值,放入列表SL2;
步骤S211、对SL2里面的值进行从大到小排列,取最大值Max(SL2),若Max(SL2)等于将要对齐的横坐标X,则将M.s.x设置为x,若不等于,则使M.s.x= Max(SL2) + SX;
步骤S212、当MY2计算到M.n.x.max后结束,完成对X轴方向的排列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811553451.2A CN109635470B (zh) | 2018-12-19 | 2018-12-19 | 模块快速摆放与调整方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811553451.2A CN109635470B (zh) | 2018-12-19 | 2018-12-19 | 模块快速摆放与调整方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109635470A CN109635470A (zh) | 2019-04-16 |
CN109635470B true CN109635470B (zh) | 2023-06-20 |
Family
ID=66075205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811553451.2A Active CN109635470B (zh) | 2018-12-19 | 2018-12-19 | 模块快速摆放与调整方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635470B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175414B (zh) * | 2019-05-30 | 2022-10-18 | 苏州浪潮智能科技有限公司 | 一种pcb设计中的零件摆放方法及工具 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020124233A1 (en) * | 2001-01-08 | 2002-09-05 | Andreev Alexander E. | Process for fast cell placement in integrated circuit design |
CN101751486A (zh) * | 2008-12-19 | 2010-06-23 | 英业达股份有限公司 | 可自动排列插入元件的布局方法 |
CN102609552A (zh) * | 2011-01-24 | 2012-07-25 | 鸿富锦精密工业(深圳)有限公司 | 用于绘制印刷电路板的零件摆放控制模组及零件摆放方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201232310A (en) * | 2011-01-27 | 2012-08-01 | Hon Hai Prec Ind Co Ltd | Component putting module for drawing printed circuit board and method thereof |
-
2018
- 2018-12-19 CN CN201811553451.2A patent/CN109635470B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020124233A1 (en) * | 2001-01-08 | 2002-09-05 | Andreev Alexander E. | Process for fast cell placement in integrated circuit design |
CN101751486A (zh) * | 2008-12-19 | 2010-06-23 | 英业达股份有限公司 | 可自动排列插入元件的布局方法 |
CN102609552A (zh) * | 2011-01-24 | 2012-07-25 | 鸿富锦精密工业(深圳)有限公司 | 用于绘制印刷电路板的零件摆放控制模组及零件摆放方法 |
Non-Patent Citations (1)
Title |
---|
可配置宏的快速FPGA布局算法;徐嘉伟等;《计算机工程》;20090820(第16期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109635470A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073047A (zh) | 光学临近效应校正方法及系统 | |
US6609242B1 (en) | Automated creation of power distribution grids for tiled cell arrays in integrated circuit designs | |
CN102915448A (zh) | 一种基于AdaBoost的三维模型自动分类方法 | |
CN109635470B (zh) | 模块快速摆放与调整方法 | |
CN110246205A (zh) | 一种平面工件自动排版方法 | |
JP3999301B2 (ja) | 露光データ作成方法 | |
WO2023173592A1 (zh) | 基于间断有限元法的集成电路互连线寄生电容提取方法 | |
CN111008513B (zh) | 一种平板显示版图物理验证中的单元矩阵合并方法 | |
CN102324086B (zh) | 一种用于不同型号探针台的Map图转换方法 | |
US6948143B2 (en) | Constrained optimization with linear constraints to remove overlap among cells of an integrated circuit | |
CN102478761A (zh) | 掩膜版制作方法及系统 | |
CN117272914B (zh) | 基于四叉树快速确定覆铜形状形成拓扑结构的方法及装置 | |
US5754443A (en) | Exposure data processing method and device | |
CN112818632A (zh) | 芯片的图形密度的分析方法、装置及电子设备 | |
US20070240089A1 (en) | Apparatus and method for correcting layout pattern data | |
US10755022B2 (en) | Electronic apparatus and layout method for integrated circuit | |
CN113096113A (zh) | 芯片标记方法、系统、电子设备及计算机可读存储介质 | |
CN116432599B (zh) | 一种用于集成电路sink管脚优化的方法和系统 | |
CN116205198B (zh) | 基于动态规划的电路示意图模块列排序方法、设备和介质 | |
JP2803630B2 (ja) | 図形処理方法および装置 | |
CN109447839A (zh) | 非零元素的随机生成及形成电力系统雅可比矩阵的方法 | |
CN115828807B (zh) | 一种基于存储单位识别的网表约简方法 | |
CN116736061B (zh) | 三极管的匹配精度检测方法、控制器及存储介质 | |
US11733603B2 (en) | Proximity correction methods for semiconductor manufacturing processes | |
CN116306459B (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 |