一种PCB设计中的零件摆放方法及工具与流程

文档序号:18545722发布日期:2019-08-27 21:38阅读:592来源:国知局
一种PCB设计中的零件摆放方法及工具与流程

本发明涉及pcb(printedcircuitboard,印刷电路板)设计技术领域,具体地说是一种pcb设计中的零件摆放方法及工具。



背景技术:

在pcb设计的前期,需要将原理图导入cadence软件,由于主板上元件数量很多,原理图往往被分成几百页,接下来需要对每页上的零件进行摆放。

目前零件摆放多采用人工在cadence软件上逐个摆放,由于每页上的元件混在一起,摆放元件时需要逐一挑选,效率极低,例如对于200页的原理图,往往需要两三天的摆放时间。

现有专利号为2018114509918的专利申请公开了一种pcb设计中零件摆放方法及装置,通过参考现有pcb板的零件摆放方式,来对应实现目标pcb板零件的摆放,虽然实现了自动摆放,但摆放过程中需要对每个零件进行逐一对比,同样花费较多时间,效率低。



技术实现要素:

本发明实施例中提供了一种pcb设计中的零件摆放方法及工具,以解决现有pcb设计中零件摆放效率低的问题。

为了解决上述技术问题,本发明实施例公开了如下技术方案:

本发明第一方面提供了一种pcb设计中的零件摆放方法,包括以下步骤:

导入原理图,获取原理图中所有的零件;

对原理图的每页创建一个数组,将零件顺序放入数组内;

设置摆放规则,按照数组内零件的排列顺序,计算每页的页宽;

根据所述页宽和当前页的零件尺寸,计算零件坐标,并按照坐标位置摆放零件。

进一步地,所述将零件顺序放入数组内的具体过程为:

遍历数组内每个零件的bbox,计算零件的高度和宽度;

按照宽度由大到小的顺序,将每页的零件排列在各自数组中。

进一步地,所述摆放规则包括每页的摆放位置,每页零件的摆放行数、摆放列数及摆放顺序。

进一步地,所述摆放规则具体为:

按照导入原理图的总页数,将页数均分在outline的两侧,每侧包括若干列,每列的页宽相同;

设置零件的摆放列数,每页零件按照在数组中的顺序逐行摆放。

进一步地,所述按照数组内零件的排列顺序,计算每页的页宽的具体过程为:

计算每页中各行零件的最大宽度和max_n,比较当前页所在列每页的max_n,得到最大值max;

当前列中每页的页宽不小于所述最大值max。

进一步地,所述根据所述页宽和当前页的零件尺寸,计算零件坐标的具体过程为:

根据页宽和当前行零件的宽度和,计算当前行相邻零件的间距;

除每页的第一行外,根据当前行最高零件的尺寸值确定当前行零件的纵坐标值。

本发明第二方面提供了一种pcb设计中的零件摆放工具,所述工具包括:

零件获取模块,用于从导入的原理图中获取所有的零件;

零件预处理模块,用于在每页创建一个数组,将零件顺序放入数组内;

摆放规则设定模块,用于设定原理图中的每页及每页中零件的摆放规则;

计算摆放模块,用于根据摆放规则,计算每页的最大摆放宽度及各零件的摆放坐标。

进一步地,所述工具还包括封装模块,所述封装模块用于将所述零件获取模块、零件预处理模块、摆放规则设定模块和计算摆放模块进行封装,并设置调用指令。

本发明第三方面提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述调用指令时,所述存储控制器执行所述方法。

本发明第四方面提供了一种存储控制器,包括处理器、存储器和总线;

所述处理器和所述存储器通过总线连接;

当控制所述存储器的存储控制器运行时,所述处理器执行所述存储器存储的调用指令,使所述存储控制器执行所述方法。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

1、利用cadence软件的二次开发功能,设置摆放规则,分别对导入原理图中的每页及每页中的零件进行摆放,并自动计算每个零件的坐标,整个过程无需人工参与即可实现,且借助现有pcb板作为参考,对于包含200页原理图的设计,仅需半个小时即可摆放完成,大大提高工作效率,缩短pcb的设计时间,提升工作质量。

2、将零件摆放的各功能模块进行封装,并设置调用指令,加入cadence等pcb设计软件中,实际操作中只要点击相应命令即可实现零件的快速准确摆放,简化工作复杂度,提高效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明所述方法实施例的流程示意图;

图2是利用本发明所述方法所形成的原理图各页摆放示意图;

图3是利用本发明所述方法所形成的每页中零件摆放示意图;

图4是本发明所述工具实施例1的结构示意图;

图5是本发明所述工具实施例2的结构示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

目前市场上使用的pcb设计软件中,cadence软件不仅有强大的功能,还提供了开放式的二次开发接口,本发明利用cadence软件的二次开发功能,基于skill语言来实现。

如图1示,本发明的pcb设计中的零件摆放方法包括以下步骤:

s1,导入原理图,获取原理图中所有的零件;

s2,对原理图的每页创建一个数组,将零件顺序放入数组内;

s3,设置摆放规则,按照数组内零件的排列顺序,计算每页的最大摆放宽度;

s4,根据所述最大摆放宽度和当前页的零件尺寸,计算零件坐标,并按照坐标位置摆放零件。

步骤s1中,利用cadence自带的quickplace功能导入所有零件,获取所有零件,放在数列list_a中,遍历数列list_a,排除pcb板中自带的结构件,筛选出需要摆放的零件放在list_b中。

步骤s2中,遍历list_b中的零件,根据零件所在原理图中的页数对其分类,每一页创建一个数组work,将零件放在数组work中,例如:

work[1]=list();

work[2]=list();

……

work[n]=list();

n表示原理图的页数。遍历数组work,分别获取每个零件的bbox,计算出零件的高度和宽度,若零件当前的高度大于宽度,为了便于摆放,将零件旋转90度。bbox是零件的一个属性,表征零件的最大外框。将零件按照宽度从大到小的顺序摆放到各自数组中,例如:

work_a[1]=list();

work_a[2]=list();

……

work_a[n]=list()。

步骤s3中,摆放规则包括每页的摆放位置,每页零件的摆放行数、摆放列数及摆放顺序。本实施例设置的具体规则为:按照导入原理图的总页数,将页数均分在outline的两侧,每侧包括若干列,每列的页宽相同;设置零件的摆放列数,每页零件按照在数组中的顺序逐行摆放,outline是cadence的工作界面,可理解为画布。

如图2、3所示,分别以原理图200页和每页摆放10个零件为例进行摆放示意,按照导入原理图的总页数200,将其均分在outline两侧,每侧两列,每列包含50页,同一列的页宽相同。同一列页宽的计算过程为:计算本列每页中各行零件的最大宽度和max_n,比较每页的max_n,得到当前列中零件最大宽度和max,设置当前列中的页宽不小于最大值max。图2中分别以每列中当前零件最大宽度和作为当前列的页宽:max_a、max_b、max_c、和max_d、分别表示对应列中零件最大宽度和。图2中d表示相邻列的间隔,s表示同一列相邻列的间隔。间隔d和s的值可通过初设参数设置来确定。

步骤s4中,根据页宽和当前行零件的宽度和,计算当前相邻零件的间距,除第一行外,根据当前行最高零件的尺寸值确定当前行零件的纵坐标。

如图3所示,以数组work_a[1]为例,首先计算第一行零件的间隔d,第一行零件的宽度和为width1,页宽以max_a为例,则相邻零件的间隔d=(max_a-width1)/10;以outline的起始坐标(a1,a2)为例,则第一页第一行第一个零件的坐标位置为(a1-(2*d+max_b+max_a),a2),第二个零件的坐标位置为(a1-(2*d+max_b+max_a)+d,a2),第三个零件的坐标位置为(a1-(2*d+max_b+max_a)+2d,a2),以此类推,得到第一行所有零件的坐标值;为防止各行间零件摆放时出现的重叠,先确定当前行与上一行的行间距,然后按照第一行零件坐标的确定方法,依次确定相邻零件的间隔d2及各个零件的坐标:查找第二行零件中最高零件高度sd,则第二行第一个零件坐标(a1-(2*d+max_b+max_a),a2-sd),第二个零件坐标(a1-(2*d+max_b+max_a)+d2,a2-sd),第三个零件坐标a1-(2*d+max_b+max_a)+2d2,a2-sd),以此类推,确定每个零件的坐标值并按照坐标位置摆放零件。

如图4所示,本发明pcb设计中的零件摆放工具包括依次连接的零件获取模块1、零件预处理模块2、摆放规则设定模块3和计算摆放模块4。零件获取模块1用于从导入的原理图中获取所有的零件;零件预处理模块2用于在每页创建一个数组,将零件顺序放入数组内;摆放规则设定模块3用于设定原理图中的每页及每页中的零件的摆放规则;计算摆放模块4用于根据摆放规则,计算每页的页宽及各零件的摆放坐标。本工具中的各模块能够实现上述方法实施例的功能。

如图5所示,零件摆放工具还包括封装模块5,封装模块5将零件获取模块1、零件预处理模块2、摆放规则设定模块3和计算摆放模块4进行封装,并设置调用指令,在使用时,只需调用该指令,工具会自动进行零件摆放,并显示如2和图3所示的结果。

本发明还提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述调用指令时,存储控制器执行上述摆放方法。

本发明还提供了一种存储控制器,包括处理器、存储器和总线;处理器和所述存储器通过总线连接;当控制所述存储器的存储控制器运行时,处理器执行所述存储器存储的调用指令,使存储控制器执行上述摆放方法。

以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。

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