用于机电集成产品中基于橡皮筋的三维电路自动布线方法

文档序号:10725237阅读:296来源:国知局
用于机电集成产品中基于橡皮筋的三维电路自动布线方法
【专利摘要】用于机电集成产品中基于橡皮筋的三维电路自动布线方法,属于机电一体化技术领域。三角网格化;初始三维搜索图创建;采用修正后A*算法逐条进行最短路径搜索;每搜索到一条线路,对三维搜索图做相应更新,避免后续搜索的线路与该线路相交;更新分为两部分:线路所在起始和终止三角形边上点相邻信息更新、线路经过边上点以及相邻信息的更新;A*算法搜索后线路经过的一系列三角形形成的区域构成一条通道;采用通道算法找到每条线路相应的橡皮筋,橡皮筋为线路起点、终点以及所绕障碍点连成的折线;为每条橡皮筋创建相应的Spokes,保证线路之间或线路距障碍物的最短距离,得到拓展橡皮筋,即最后搜索得到的三维线路。
【专利说明】
用于机电集成产品中基于橡皮筋的三维电路自动布线方法
技术领域
[0001]本发明属于机电一体化技术领域,涉及三维电路自动布线设计方法,尤其是涉及一种用于机电集成产品中基于橡皮筋的三维电路自动布线方法。
【背景技术】
[0002]在机电一体化领域,一种创新性的工艺技术3D_MID(Three Dimens1nal-MoldedInterconnect Devices,三维模塑互连器件或三维机电集成器件)技术[1],抛弃传统的电路板,直接在三维基体材料上集成机械和电子功能,为利用有限空间全新地设计机电一体化器件开辟了更为广阔的道路。这种直接在材料上集成机械和电子功能的方式,涉及对三维电路设计的要求。
[0003]布线问题是NP难题。自动布线是MID设计中的最主要功能,所谓自动布线就是依据一定的程序算法,让设计软件程序根据用户设定的相关参数和布线规则,自动在各个元件之间进行连线,实现元器件之间的电气连接关系,进而快速完成MID产品的布线工作。
[0004]几何布线算法能够搜索到精确的线路,并且能够解决搜索效率低和搜索空间大的问题。由于几何布线算法的搜索通常局限于规则的几何网格结构上,不规则的几何实体上搜索线路时几何算法就表现出很强的局限性[2]。目前电路板的发展趋势为不规则,需要电子元件被放在不规则分方向,因此几何布线的搜索方式越来越难满足现代电路布线的需求。几何布线的另一个缺点反应在搜索效率较低,搜索网格空间较大。拓扑布线算法的实现通常基于三角网格化搜索区域。基于三角网格化得到的隐性搜索图的信息存储量远远小于基于网格的搜索空间,因此拓扑布线的搜索效率可以达到很高。另外,拓扑布线搜索线路结果需要存储的中间节点较少,而几何布线搜索线路结果信息量占据空间较大。
[0005]为了满足机电一体化器件设计的要求,一些开发者基于现存二维布线算法提出了以下几种三维几何布线算法:面展开寻找最短路径[3]、网格化寻找最短路径和无网格的自动布线算法[4]。这些三维布线算法布线方向受限,灵活性及实用性有待提高;面展开方式未真正突破三维空间的限制;三维布线基体结构不规则或者含有曲面时,几何布线算法不适用;几何布线算法由于网格划分较为细致,需要的存储空间较大,搜索效率也较低。
[0006]目前,存在一种拓扑布线算法,也即是橡皮筋布线算法l^t3Rivest最先提出可以将线路看作具有弹性的橡皮筋。Leiserson和Maley正式将这种橡皮筋的概念转换为橡皮筋草图[6],以约束点为拐点构成的折线。一个橡皮筋草图从整体上规划出多条线路的最终布线效果,相当于全局布线。然后,橡皮筋草图可以被转换为规整的几何线路,满足布线规则和拓扑关系,以完成详细布线。加利福尼亚大学的一个实验室开发出SURF布线系统,完成二维橡皮筋布线。SURF布线系统主要通过以下几步获得最终的布线结果:全局布线,局部布线,添加Spokem以及几何布线。SURF布线系统在PCB平面布线中效果较好,但是它仍然没有突破三维实体结构的限制,无法实现三维基体上的自动布线。

【发明内容】

[0007]本发明的主要目的在于克服现有技术中的不足,提供一种用于机电集成产品中基于橡皮筋的三维电路自动布线方法。该方法可突破三维基体上布线面的限制,在降低存储空间的同时提高搜索效率及提升线路布通率。
[0008]本发明所述的一种用于机电集成产品中基于橡皮筋的三维电路自动布线方法,包括如下步骤:
[0009]1.—种用于机电集成产品中基于橡皮筋的三维电路自动布线方法,其特征在于,包括如下步骤:
[0010]I)三角网格化
[0011 ] 获取MID(Mechatronic integrated devices)机电集成产品几何布线基体的边界拓扑信息以及电子元件的设计和布局信息,分别实现每个面上的约束Delaunay三角剖分,包括不规则表面和曲面,维护三角剖分后的点列表、边列表以及三角形列表;
[0012]2)初始三维搜索图创建
[0013]初始搜索图的创建主要通过找到三角形的边上中点,然后添加各中点之间的连接关系;主要分为两个过程,首先实现每个面上搜索图的创建,然后创建相邻面之间边界边处的相邻关系:其中
[0014]2.1)面上搜索图的创建:针对每个面,该面剖分后三角网格生成一边
[0015]列表,以边为主线,采用散列表(hash表)存储每条边的相关信息,搜索图存储的hash函数:该边信息的存储位置=边的编号,这样可以直接根据边的编号信息定位该边相邻信息的存储位置,极大地提高了边信息的搜索速度;针对每条边,采用邻接表存储边存在的点并且为其创建指针,指向与其相邻的其他点索引;
[0016]2.2)相邻面之间边界边处的相邻关系的创建:边界边所属两个面上三
[0017]角网格对其编号不同,也既是面边界边在存储搜索图的hash表中占据两个存储空间;通过在hash表中的相应两个空间中添加必须的相邻信息,完成相邻面之间边界边处的相邻关系的创建,实现三维搜索图,从而真正摆脱路径搜索中面的限制,实现真正意义上基于三维网格的搜索;
[0018]3)采用修正后A*算法逐条进行最短路径搜索;每搜索到一条线路,对三维搜索图做相应的更新,避免后续搜索的线路与该线路相交;
[0019]更新时,主要分为两个部分:线路所在起始和终止三角形边上点相邻信息更新、线路经过边上点以及相邻信息的更新;其中
[0020]3.1)起始和终止三角形边上点相邻信息的更新方法如下:
[0021]删除三角形各边上点之间的相邻关系,在线路起始(终止)点对边,也即是线路经过第一条边,添加新点,并且创建新添加点与起始(终止)三角形其他两条边上点之间的相邻关系;
[0022]3.2)线路经过边上点以及相邻信息的更新方法如下:
[0023]3.2.1)找到线路经过的第一个点(记为:P)所在边(记为:E1);
[0024]3.2.2)找到点P经过的边(El)的编号(记为:numl),边的编号决定了该边信息在hash表中的存储位置;
[0025]3.2.3)如果El为面上边界边,那么转步骤3.2.4);否则,转步骤3.2.5);
[0026]3.2.4)Ε1为边界边时,找到与numl相应的另一个编号(记为:num2)。由于边界边所在两个面三角剖分时,对其所定义的编号不同,因此边界边在hash表中存储占据两个空间,从而对边界边信息的更新也需要考虑hash表中两处的更新;
[0027]3.2.5)计算边El上其他点距离点P的最近距离,来计算该边上需要添加的新点位置,假设为P5、P6;
[0028]3.2.6)处理numl和num2(若num2非空)上点P的相关信息。逐个处理与点P之间有相邻关系的点P’,创建P’和P5或者P6之间的相邻关系,并且删除P点和P’点之间的相邻关系;
[0029]3.2.7)提取线路经过的下一个点P;若下一个点为空,则转步骤3.2.8);否则,转步骤3.2.2);
[0030]3.2.8)结束;
[0031]4)A*算法搜索后线路(记为:Path)经过的一系列三角形形成的区域构成一条通道;采用通道算法找到每条线路相应的橡皮筋,橡皮筋为线路起点、终点以及所绕障碍点连成的折线;
[0032]5)为每条橡皮筋创建相应的Spokes,保证线路之间或线路距障碍物的最短距离,得到拓展橡皮筋,即本发明的方法最后搜索得到的三维线路;主要过程如下:
[0033]5.l)Spokes长度确定:Spokes的长度决定了线路远离约束点的距离,当有多条线路绕过同一约束点时,线路距离这一约束点的距离由内到外应该逐倍增加;橡皮筋所经过的点信息、边信息、以及搜索图中各边上点信息可以被获取,因此我们可以通过以下几个步骤判断各橡皮筋需要添加的spokes长度:
[0034]5.1.I)为搜索图数据结构点信息中添加标记位:bool ispassed,并初始化为0,代表点未被跨越;
[0035]5.1.2)A*算法搜索结束过,逆向构造线路时,将线路经过点的ispassed标记位置为I,代表该点已被跨越;
[0036]5.1.3)通道算法结束后,确定橡皮筋经过的拐点,那么在每个拐点P处判断点P所在的边上有几个点满足以下两个条件:一、该点有线路经过;二、该点在点P和该条橡皮筋所对应的线路在该边经过的点之间;假设有η个,则该条线路在该点spokes的长度应该为(η+1)*D;
[OO37 ] 5.2) Spoke s位置坐标计算:三维空间中任意面上点的Spoke s的计算;
[0038]5.3) Spokes的选择:选择Spokes时主要需遵循的原则是,添加Spokes后得到的拓展橡皮筋位于通道的内部,因此可根据橡皮筋上点在通道的左边界还是右边界,来确定合适的Spokes相对通道的位置,根据点在相应通道上的相应位置,橡皮筋经过的点主要分为ENDPOINT,LEFT和RIGHT三类,边界边上的点或者是线路起始和终止点被定义为ENDPOINT,此时不需要添加spokes,因为线路直接穿过他们即可,LEFT和RIGHT分别说明该点在通道的左边界和右边界,那么为了保证拓展橡皮筋在通道内部,则需要满足拓展橡皮筋位于该点的右侧和左侧;至此,完成所述一种用于机电集成产品中基于橡皮筋的三维电路自动布线。
[0039]与现有技术比较,本发明有益效果如下:
[0040]可实现任意面的三角网格划分,适用于规则面、不规则面以及曲面,为后续三维搜索图的创建提供支持。可实现三维搜索图的创建,统一各面上三角剖分后网格信息,摆脱三维实体面的限制,解决复杂线路跨面布线的问题,达到真正意义上的三维布线。
【附图说明】
[0041]图1为待采用本发明实施例所述三维电路自动布线方法的机电集成产品结构示意图。
[0042]图2为本发明实施例所述三维电路自动布线方法中的三角网格和三维搜索图。
[0043]图3为本发明实施例所述三维电路自动布线方法中的一条线路的搜索结果以及搜索图的更新图。
[0044]图4为本发明实施例所述三维电路自动布线方法中的橡皮筋和拓展橡皮筋的生成效果图。
[0045]图中的各标记表示:1-1代表三维布线基体,1-2代表三维坐标系,1-3代表LED,1-4代表电阻器,1-5代表电容器,2-1代表Delaunay三角剖分,2-2代表初始三维搜索图,3-1代表A*算法搜索出最短路径,3-2代表更新后搜索图,4-1代表橡皮筋,4-2代表拓展橡皮筋。
【具体实施方式】
[0046]以下实施例将对本发明作进一步的描述。
[0047]本发明实施例中假设设计者已经完成了机电集成产品的逻辑电路的设计、基体三维机械结构设计及电子元件的导入以及布局,如图1所示。
[0048]下面给出该机电集成产品中基于橡皮筋的三维电路自动布线方法,包括的步骤如前述,下面给出对应相关步骤的效果展示图及说明。
[0049]I)获取图1所示产品布线基体的边界拓扑信息以及电子元件的设计和布局信息,分别实现每个面上的约束De I aunay三角剖分,完成三角网格化,效果如图2中标记2_ I所示虚线所示。
[0050]2)基于I)中约束Dealunay三角剖分,进一步创建相邻三角形边上中点的相邻关系,并且实现相邻面之间边界边处相邻关系的创建,构成初始三维搜索图,如图2中2-2所示实线所示。
[0051]3)采用修正后A*算法在三维搜索图上完成最短路径的搜索。由于三维搜索图中表达了面以及各面之间的拓扑关系,线路搜索时不需要考虑布线基体几何面的限制,实现了三维基体表面上真正的最短路径搜索。图3中,标记3-1所示粗实线展示了该实例利用本方法得到的一条线路的搜索结果,该线路的影响区域如标记3-2所示,同时影响区域内细实线为搜索完成后搜索图更新后效果。
[0052]4)图3中,修正后A*算法搜索后得到的线路,如标记3-1所示粗实线,经过的一系列三角形形成的区域构成一条布线通道。采用通道算法找到每条线路相应的橡皮筋,也既是通道内的最短路径。橡皮筋为线路起点、终点以及所绕障碍点连成的折线,如图4中标记4-1所示。
[0053]5)橡皮筋搜索完成后,最后为其添加Spokes,用来保证拓扑布线算法中线路距离约束点的最小间距。图4中标记4-2为利用本发明方法最终得到的拓展橡皮筋,即在三维实体上实现的最短路径,从而完成MID机电集成产品基于橡皮筋的三维自动布线方法。
[0054]综上,本发明实施例解决了目前三维电路设计中存在的主要问题,突破三维实体结构的限制,布线方向较灵活,可用于不规则实体上布线,并且降低了存储空间,提升了搜索效率与布通率。
【主权项】
1.用于机电集成产品中基于橡皮筋的三维电路自动布线方法,其特征在于,包括如下步骤: .1)三角网格化 获取MID(Mechatronic integrated devices)机电集成产品几何布线基体的边界拓扑信息以及电子元件的设计和布局信息,分别实现每个面上的约束Delaunay三角剖分,包括不规则表面和曲面,维护三角剖分后的点列表、边列表以及三角形列表; .2)初始三维搜索图创建 初始搜索图的创建主要通过找到三角形的边上中点,然后添加各中点之间的连接关系;主要分为两个过程,首先实现每个面上搜索图的创建,然后创建相邻面之间边界边处的相邻关系:其中,. 2.1)面上搜索图的创建:针对每个面,该面剖分后三角网格生成一边 列表,以边为主线,采用散列表(hash表)存储每条边的相关信息,搜索图存储的hash函数:该边信息的存储位置=边的编号,这样可以直接根据边的编号信息定位该边相邻信息的存储位置,极大地提高了边信息的搜索速度;针对每条边,采用邻接表存储边存在的点并且为其创建指针,指向与其相邻的其他点索引;. 2.2)相邻面之间边界边处的相邻关系的创建:边界边所属两个面上三 角网格对其编号不同,也既是面边界边在存储搜索图的hash表中占据两个存储空间;通过在hash表中的相应两个空间中添加必须的相邻信息,完成相邻面之间边界边处的相邻关系的创建,实现三维搜索图,从而真正摆脱路径搜索中面的限制,实现真正意义上基于三维网格的搜索;. 3)采用修正后A*算法逐条进行最短路径搜索;每搜索到一条线路,对三维搜索图做相应的更新,避免后续搜索的线路与该线路相交; 更新时,主要分为两个部分:线路所在起始和终止三角形边上点相邻信息更新、线路经过边上点以及相邻信息的更新;其中,. 3.1)起始和终止三角形边上点相邻信息的更新方法如下: 删除三角形各边上点之间的相邻关系,在线路起始(终止)点对边,也即是线路经过第一条边,添加新点,并且创建新添加点与起始(终止)三角形其他两条边上点之间的相邻关系; .3.2)线路经过边上点以及相邻信息的更新方法如下:. 3.2.1)找到线路经过的第一个点(记为:P)所在边(记为:E1); . 3.2.2)找到点P经过的边(EI)的编号(记为:numI ),边的编号决定了该边信息在hash表中的存储位置;. 3.2.3)如果EI为面上边界边,那么转步骤3.2.4);否则,转步骤3.2.5); . 3.2.4)E1为边界边时,找到与numl相应的另一个编号(记为:num2)。由于边界边所在两个面三角剖分时,对其所定义的编号不同,因此边界边在hash表中存储占据两个空间,从而对边界边信息的更新也需要考虑hash表中两处的更新; . 3.2.5)计算边El上其他点距离点P的最近距离,来计算该边上需要添加的新点位置,假设为P5、P6; . 3.2.6)处理numl和num2(若num2非空)上点P的相关信息。逐个处理与点P之间有相邻关系的点P’,创建P’和P5或者P6之间的相邻关系,并且删除P点和P’点之间的相邻关系; .3.2.7)提取线路经过的下一个点P;若下一个点为空,则转步骤3.2.8);否则,转步骤.3.2.2); . 3.2.8)结束; . 4)A*算法搜索后线路(记为:Path)经过的一系列三角形形成的区域构成一条通道;采用通道算法找到每条线路相应的橡皮筋,橡皮筋为线路起点、终点以及所绕障碍点连成的折线;. 5)为每条橡皮筋创建相应的Spokes,保证线路之间或线路距障碍物的最短距离,得到拓展橡皮筋,即本发明的方法最后搜索得到的三维线路;主要过程如下: . 5.1)Spokes长度确定:Spokes的长度决定了线路远离约束点的距离,当有多条线路绕过同一约束点时,线路距离这一约束点的距离由内到外应该逐倍增加;橡皮筋所经过的点信息、边信息、以及搜索图中各边上点信息可以被获取,因此我们可以通过以下几个步骤判断各橡皮筋需要添加的spokes长度: . 5.1.1)为搜索图数据结构点信息中添加标记位:boolispassed,并初始化为0,代表点未被跨越; . 5.1.2)A*算法搜索结束过,逆向构造线路时,将线路经过点的ispassed标记位置为I,代表该点已被跨越; .5.1.3)通道算法结束后,确定橡皮筋经过的拐点,那么在每个拐点P处判断点P所在的边上有几个点满足以下两个条件:一、该点有线路经过;二、该点在点P和该条橡皮筋所对应的线路在该边经过的点之间;假设有η个,则该条线路在该点spokes的长度应该为(n+l)*D; . 5.2)Spoke s位置坐标计算:三维空间中任意面上点的Spoke s的计算; . 5.3)Spokes的选择:选择Spokes时主要需遵循的原则是,添加Spokes后得到的拓展橡皮筋位于通道的内部,因此可根据橡皮筋上点在通道的左边界还是右边界,来确定合适的Spokes相对通道的位置,根据点在相应通道上的相应位置,橡皮筋经过的点主要分为ENDPOINT,LEFT和RIGHT三类,边界边上的点或者是线路起始和终止点被定义为ENDPOINT,此时不需要添加spokes,因为线路直接穿过他们即可,LEFT和RIGHT分别说明该点在通道的左边界和右边界,那么为了保证拓展橡皮筋在通道内部,则需要满足拓展橡皮筋位于该点的右侧和左侧;至此,完成所述用于机电集成产品中基于橡皮筋的三维电路自动布线。
【文档编号】G06F17/50GK106096118SQ201610395649
【公开日】2016年11月9日
【申请日】2016年6月6日 公开号201610395649.7, CN 106096118 A, CN 106096118A, CN 201610395649, CN-A-106096118, CN106096118 A, CN106096118A, CN201610395649, CN201610395649.7
【发明人】卓勇, 展慧娴, 陈俊发, 潘俊浩, 吴志洋
【申请人】厦门大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1