本发明涉及pcb设计领域,特别是涉及基于cadence设计软件设计不规则平行线的方法。
背景技术:
目前,市场上有多款pcb设计软件,cadence作为业界应用最广泛的软件,不仅是它拥有强大的功能和多款相关软件做支撑,还因为它提供了开放式的二次开发接口和较为完善的开发语言库,用户可根据自身的需要进行二次开发。skill语言是cadence软件内置的一种基于c语言和lisp语言的高级编程语言,cadence为skill语言提供了丰富的交互式函数,研究skill语言继而编写工具,投入应用可以大大提高工作效率。
在pcb设计过程中,为了保证信号质量,需要对net走线保持等间距平行走线,而现有的方式都是根据拉出第一条走线,然后分段等间距复制第一条走线的线段,然后再调整线段。
如图1所示的走线ad,为pcb设计中比较常见的一种走线形式,其呈现状态为多条线段(ab、bc、cd)组成的不规则走线,现有技术的线段设计中,依次根据线段ab复制‘a‘b,根据线段bc复制‘b‘c,根据线段cd复制‘c‘d,三条线间距都是同样距离,最终绘制出不规则走线ad的平行走线‘a‘d。
结合上述操作可知,现有的技术方案在连接处(图中‘b、’c处)需要手动调整线段长度,使其线段‘a’b的终点与线段‘b‘c的起点为同一个点,如果不是同一个点容易造成线路断路,或者造成线路有锐角,而且,整个设计耗时耗力,工作效率低。
技术实现要素:
本发明实施例中提供了基于cadence设计软件设计不规则平行线的方法,以解决现有技术中不规则平行线设计过程繁琐的问题,提高了设计效率。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
本发明提供了基于cadence设计软件设计不规则平行线的方法,所述的方法包括:
s1:选取布线区;
s2:在布线区绘制不规则走线区域;
s3:获取不规则走线区域的起点、终点及边框节点坐标;
s4:获取s3中坐标并添加到数列point中;
s5:遍历数列point中的节点坐标,对point中的节点坐标进行排序使边框转化为依次首尾相接的若干线段;
s6:确定边框中最长的两条不规则平行线;
s7:选取s6中,两条平行线中每一组相对应的节点并连接;
s8:依据设计走线的条数,将s7中连接的线段等分并获取等分点的坐标;
s9:删除全部连线;
s10:重新连接步骤s6中的两条不规则平行线;
s11:按照走线起点到终点的方向依次连接等分点,使其形成若干条与步骤s11中不规则平行线相平行的走线。
进一步的,步骤s2的具体实现方法为:通过allegro内部addconnect命令,绘制一条线宽为(n-1)*s n*w的走线,其中,n为设计走线的条数,s为任意两条相邻设计走线之间的间距,w为每条设计走线的线宽。
进一步的,步骤s3中,所述的起点坐标为走线起始位置线段的中点,所述的终点坐标为走线结束位置线段的中点,所述的边框节点坐标包括边框端点和转折点的坐标。
进一步的,步骤s3中,所述边框的选取方法为:通过api接口函数axlpolyfromdb获取步骤s2中走线的轮廓,通过alxdb2path函数把轮廓转化为path,基于转换后的path,获取每条线段的strend参数值,得到线段的起点终点。
进一步的,步骤s7的具体实现方法为:
按照从起点到终点的方向,基于相同排序方法,分别对两条不规则平行线的全部节点进行排序,连接每一组排序序号相同的点,连接完成后,任意两条连接线段不相交。
进一步的,步骤s8中,若设计走线的条数为n,则将s7中连接的线段(n-1)等分。
进一步的,步骤s11的具体实现方法为:
选取同属于步骤s8中同一条线段上的等分点,以其中一条不规则平行线为基准,按照从近到远的顺序,对选取的等分点进行排序;
重复上述操作,直至全部等分点均完成排序;
选择序号相同的等分点,按照走线起点到终点的方向依次连接。
上述技术方案的有益效果在于:
本发明首先绘制一个不规则走线区域,基于该区域获取边界及其节点,从而绘制出两条平行边界之间的若干不规则平行线,相比于现有技术中线段拖动复制的复杂操作,该设计不仅能简化不规则走线的绘制时间,提高设计效率。
与此同时,该设计还能能根据设计走线的条数、间隔和宽度灵活调整且该发明是利用allegro相应指令,通过接口函数把走线转化成shape,然后通过接口函数把shape转化为path,再得到shape的轮廓,并基于该轮廓的节点坐标,通过节点连线绘制平行线,因此当设计走线的条数增加时,不会增加设计时间,而现有技术的复制手段,每增加一条走线,都会增加更多的工作量。
附图说明
了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为pcb设计中一种常见不规则走线及其平行线的示意图;
图2为本发明一种实施例提供的方法的流程图;
图3为本发明实施例中不规则走线区域的示意图;
图4为本发明实施例中边框获取的示意图;
图5为为本发明实施例中等分点获取的示意图;
图6为本发明实施例中最终设计走线的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
参见图2,作为本发明一种可实现的实施例,提供了基于cadence设计软件设计不规则平行线的方法,所述的方法包括以下实现过程:
1)根据设计的预留区域,选择pcb板上预留的布线区,并在布线区绘制不规则走线区域。
基于cadence设计软件,结合对于不规则走线区域的绘制要求,具体的操作方法为:通过allegro内部addconnect命令,绘制一条线宽为(n-1)*s n*w的走线,其中,n为设计走线的条数,且n为大于2的自然数,s为任意两条相邻设计走线之间的间距,w为每条设计走线的线宽。
2)获取不规则走线区域的起点、终点及边框节点坐标。其中,所述的起点坐标为走线起始位置线段的中点,所述的终点坐标为走线结束位置线段的中点,所述的边框节点坐标包括边框端点和转折点的坐标。
同样的,基于cadence设计软件,对于所述边框的选取,其具体操作方法为:通过api接口函数axlpolyfromdb获取步骤s2中走线的轮廓,通过alxdb2path函数把轮廓转化为path,基于转换后的path,获取每条线段的strend参数值,得到线段的起点终点。
3)对于步骤2)中获取的坐标,包括起点、终点及边框节点坐标,需要全部添加到数列point中。
4)遍历数列point中的节点坐标,对point中的节点坐标进行排序使边框转化为依次首尾相接的若干线段。该步骤中,由于已经获取了全部线段的起点和终点坐标,对于相邻的两条线段而言,其中一条线段的起点坐标,会和另一条线段的终点坐标相同,以此为判断标准,就能将全部的坐标实现顺序排序,并使边框转化为依次首尾相接的若干线段。
5)确定边框中最长的两条不规则平行线。该过程中,如果将整个不规则区域当成一个异形的四边形,那么将会存在两条规则的平行对边和两条不规则的平行对边,这里之所以说最长的两条不规则平行线,是因为在命令执行时,可能会将边框的一部分作为执行对象。
6)对于边框中最长的两条不规则平行线,按照从起点到终点的方向,基于相同排序方法,分别对两条不规则平行线的全部节点进行排序,其中,序号相同的点即为一组相对应的节点,每一组对应的节点都需要单独连接,当连接完成后,任意两条连接线段是不相交的。
7)依据设计走线的条数,将步骤6)中连接的线段等分,其具体的执行方法为:若设计走线的条数为n,则将线段(n-1)等分,其中,n为大于2的自然数。
8)删除全部连线,仅保留全部的坐标点,包括边框节点和等分点。
9)重新连接边框中最长的两条不规则平行线,这两条不规则平行线,既是最终设计走线中的其中两条,也是后续步骤进行连线的参考对象。
10)按照走线起点到终点的方向依次连接等分点,使其形成若干条与不规则平行线相平行的走线。
该步骤的具体实现方法为:
首先,选取同属于步骤6)中同一条线段上的等分点,并以其中一条不规则平行线为基准,按照从近到远的顺序,对选取的等分点进行排序,得到每一个等分点的排序序号。
然后,重复上述操作,得到全部等分点的排序序号。
最后,排序完成后,会有若干组排序序号相同的等分点,选择序号相同的等分点,按照走线起点到终点的方向依次连接,就能得到若干条不规则平行线,这些得到的平行线,加上步骤9)中的两条不规则平行线,就组成了全部的设计走线。
需要注意的是,利用坐标点得到的设计走线,实质上是真正布线中走线的中心线。
为了更好的阐述上述方法,假设以平行走线为三条为例,间距为s,每条线宽为w,结合该具体的例子进行描述。
首先,通过allegro内部“addconnect”命令,手动画一条线宽为2s 3w的线段l,如图3所示。
其次,通过api接口函数axlpolyfromdb获取线段的轮廓(figure),通过alxdb2path函数把轮廓转化为path,得到如图4所示线段。
第三,获取每条线段的strend参数值,得到线段的起点终点,放在数列point中,point=list(((x1,y1)(x2,y2))((x4,y4)(x5,y5))((x3,y3)(x4,y4))((x2,y2)(x3,y3))……),获取线段l的起点终点i(xi,yi),j(xj,yj)。
第四,遍历数列point中的点,对point中的点进行排序使其每条线段的起点终点连接,pointa=list(((x3,y3)(x4,y4))((x4,y4)(x5,y5))((x5,y5)(x6,y6))((x6,y6)(x7,y7))……((x2,y2)(x3,y3)))。
第五,根据线段l的起始点,对pointa中的点进行重新排序,顺序为a、b、c、d、e、f、g、h(根据xi=(xa xg)/2),yi=((ya yg)/2),则a、b、c、d为一组,e、f、g、h为另一组。
第六,分别求出线段bg、线段cf的中心坐标m、n,则i、m、n、j为一组,如图5所示。
第七,删掉所有的线段,根据求解的坐标点(a、b、c、d),(e、f、g、h),(i、m、n、j),通过alxdbcreateline函数,并根据坐标在相应得层面画出走线,如图6所示。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1.基于cadence设计软件设计不规则平行线的方法,其特征在于,所述的方法包括:
s1:选取布线区;
s2:在布线区绘制不规则走线区域;
s3:获取不规则走线区域的起点、终点及边框节点坐标;
s4:获取s3中坐标并添加到数列point中;
s5:遍历数列point中的节点坐标,对point中的节点坐标进行排序使边框转化为依次首尾相接的若干线段;
s6:确定边框中最长的两条不规则平行线;
s7:选取不规则两条平行线中每一组相对应的节点并连接;
s8:依据设计走线的条数,将s7中连接的线段等分并获取等分点的坐标;
s9:删除全部连线;
s10:重新连接步骤s6中的两条不规则平行线;
s11:按照走线起点到终点的方向依次连接等分点,使其形成若干条与步骤s11中不规则平行线相平行的走线。
2.根据权利要求1所述的基于cadence设计软件设计不规则平行线的方法,其特征在于,步骤s2的具体实现方法为:通过allegro内部addconnect命令,绘制一条线宽为(n-1)*s n*w的走线,其中,n为设计走线的条数,s为任意两条相邻设计走线之间的间距,w为每条设计走线的线宽。
3.根据权利要求1所述的基于cadence设计软件设计不规则平行线的方法,其特征在于,步骤s3中,所述的起点坐标为走线起始位置线段的中点,所述的终点坐标为走线结束位置线段的中点,所述的边框节点坐标包括边框端点和转折点的坐标。
4.根据权利要求1所述的基于cadence设计软件设计不规则平行线的方法,其特征在于,步骤s3中,所述边框的选取方法为:通过api接口函数axlpolyfromdb获取步骤s2中走线的轮廓,通过alxdb2path函数把轮廓转化为path,基于转换后的path,获取每条线段的strend参数值,得到线段的起点终点。
5.根据权利要求1所述的基于cadence设计软件设计不规则平行线的方法,其特征在于,步骤s7的具体实现方法为:
按照从起点到终点的方向,基于相同排序方法,分别对两条不规则平行线的全部节点进行排序,连接每一组排序序号相同的点。
6.根据权利要求1所述的基于cadence设计软件设计不规则平行线的方法,其特征在于,步骤s8中,若设计走线的条数为n,则将s7中连接的线段(n-1)等分。
7.根据权利要求1所述的基于cadence设计软件设计不规则平行线的方法,其特征在于,步骤s11的具体实现方法为:
选取同属于步骤s8中同一条线段上的等分点,以其中一条不规则平行线为基准,按照从近到远的顺序,对选取的等分点进行排序;
重复上述操作,直至全部等分点均完成排序;
选择序号相同的等分点,按照走线起点到终点的方向依次连接。
技术总结