《电工电子类虚拟实验快速自动布线方法.pdf》由会员分享,可在线阅读,更多相关《电工电子类虚拟实验快速自动布线方法.pdf(18页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102346795A43申请公布日20120208CN102346795ACN102346795A21申请号201110276597922申请日20110916G06F17/50200601G09B9/0020060171申请人华中科技大学地址430074湖北省武汉市洪山区珞喻路1037号72发明人于俊清欧阳星明刘宇环唐九飞冉啟皓74专利代理机构华中科技大学专利中心42201代理人李佑宏54发明名称电工电子类虚拟实验快速自动布线方法57摘要本发明公开了一种应用于电工电子类虚拟实验平台的自动布线算法,包括1初始化实验平台信息;2利用步骤1建立的实验平台信息,找到任一起点到任意一。
2、个接线柱的布线路径,生成导线起点的源路径;3利用起点和终点生成路径结果;4获得导线形状,完成布线操作。该方法不仅克服了手动布线方式操作繁琐和布线结果杂乱的缺点,同时保证了一定的用户交互体验,不仅保证了虚拟实验操作要求的实时性,在布线过程中的时间消耗和空间消耗都比其他传统方法小,而且操作方式具有方便直观的特点。该方法具有较强的平台通用性和可移植性,可运行于多种平台上。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书12页附图3页CN102346815A1/2页21一种电工电子类虚拟实验平台中的快速自动布线方法,包括如下步骤1初始化实验平台信息,具体为11读入实验。
3、台布局,获取平台上已经布有的器件以及已有连线信息,获取实验平台宽度和高度,以建立布线数据结构;12根据获取的宽度和高度,将实验台区域划分成MN个相等大小的网格,为这些网格建立一个MN的DIJKSTRA表,每个网格对应表中相同位置的一项,每个网格抽象为一个DIJKSTRANODE类型的对象,其中M,N均为正整数;2利用步骤1建立的实验平台信息,找到任一起点到任意一个接线柱的布线路径,生成导线起点的源路径;3利用起点和终点生成路径结果,具体为建立一个新的DIJKSTRA表,同时遍历两张DIJKSTRA表,在找到两张表中使得到起点和终点同时具有最短距离的公共点;将该公共点作为导线起点接线柱和终点接线。
4、柱的公共终点,分别利用步骤2找到两条路径,将这两条路径组合起来按顺序存入路径数组中就得到了最终的导线路径;4获得导线形状,完成布线操作根据上述步骤获得每条导线路径,并记录下每条导线经过路径的形状,从而获得导线形状,完成布线操作。2根据权利要求1所述的方法,其特征在于,所述的步骤2中生成导线起点的源路径的具体过程为21建立布线起点的DIJKSTRA表建立一个先进先出队列来处理所有未被初始化的点,从布线起点开始将其右、左、上、下四个点依次加入到该队列中,再以相同方法考虑队列中第一个点,将与该第一个点相邻且未被考虑的点加入队列尾部,对该队列第一个点的DIJKSTRANODE信息赋值,该第一个点信息处。
5、理完毕后就将其自身从队列UNCALCLIST中移除,如此循环反复直至平台上所有网格点均处理完毕;22寻找布线起点对应的单源路径将路径上当前终点加入一个数组中并暂存终点坐标,再用这个终点坐标减去该点处DIJKSTRANODE类型的TRACK值,回退到路径上前一个点的坐标,比较两个点的TRACK,若他们的横坐标或纵坐标之一不相同则说明导线的运动方向发生了变化,将变化点的坐标加入到路径数组中,找到一个拐点,重复上面的过程,直到回退点的TRACK值与起点的轨迹值相等,就从终点回找到了起点,从而完成源路径的生成。3根据权利要求1或2所述的方法,其特征在于,所述步骤4具体过程为41首先,建立两个路径方向值。
6、和形状值的映射关系;然后,从路径起点出发,依次按照映射关系得到路径上每个点的导线形状值;最后,根据当前路径方向和路径上下一个点的路径方向,从所有可能的组合中选取匹配的形状值,获取当前布线通过该点产生的导线形状42将原有导线形状和新导线形状组合成新的形状状态当前步骤产生的新形状与实验平台上相关网格位置中原有的形状组合,得到该条布线路径上的最终形状。4根据权利要求13之一所述的方法,其特征在于,每个DIJKSTRANODE类型的对象包权利要求书CN102346795ACN102346815A2/2页3含DIJKSTRA算法所需要的所有信息,包括路径长度DISTANCE、该网格处的权值WEIGHT、。
7、该网格是否已被计算BECONSIDERED、网格点坐标COORDINATE和该点在路径上的方向TRACK。权利要求书CN102346795ACN102346815A1/12页4电工电子类虚拟实验快速自动布线方法技术领域0001本发明属于虚拟实验技术领域,具体是一种电工电子类虚拟实验平台中的快速自动布线方法。背景技术0002虚拟实验是以现代教育理论为指导,以计算机仿真技术、多媒体技术和网络技术为依托而建立的一种新型实验教学系统。它利用计算机模拟真实的实验环境,通过信息网络共享分布式的实验设备,为实验教学提供了一种全新的教学模式。电工电子类虚拟实验数字电路与逻辑、模拟电子技术、微机原理、单片机原理。
8、及应用、可编程逻辑器件是用虚拟的实验平台来代替真实的实验设备平台,本质上是硬件实验环境的软件模拟。实验过程中,用导线连接各个独立的器件,最终使各个器件成为一个整体实验电路的布线操作,是计算机虚拟实验系统重要、不可或缺的组成部分。目前现有的系统大多采用手动布线的方法,即由实验者从布线起点出发逐步根据鼠标的位置指定当前布线通过的路线,重复这一过程直到目标点到达布线终点,就完成了一次布线操作。手动布线的优点是实现简单,布线过程完全由用户控制,对用户来说更加直观,但其存在以下多个方面的不足00031布线速度慢、耗时多。在布线起点和终点两点间需要由操作者手工逐段画出路径,布线前需要先观察确定一条大致的绕。
9、开所有器件障碍的布线路径,布线的过程中也要时刻观察以确定当前布线的路径段确保绕开所有障碍和冲突。这样在实验元器件较多、实验平台较为复杂的情况下需要耗费许多不必要的时间和精力。00042布线路径较长。手动布线操作一般不能保证所布的路线是最短路线,当实验器件较多、实验台布局较复杂时布线结果大多较杂乱,占据实验台大部分的位置。00053布线结果不够整齐美观。手动布线难以对所有的布线情况考虑周全,经常会出现不整齐美观的现象如线条间的间距可能大小不一,会从总体上影响对设计结果的观察,从总体上破坏了版面的设计,更严重的是可能会引起电信号的互相干扰。00064布线操作较为复杂。手动布线操作过于繁琐,使得实验。
10、者不能将注意力集中在实验方案和实验程序的设计上,影响虚拟实验平台的预期教学效果。0007由于手动布线存在以上所述种种问题,为了适应计算机辅助设计发展的需要,自动布线相关技术应运而生。经过多年的研究与发展,计算机自动布线问题的理论、技术和方法都有了巨大的进步,并在电子辅助设计中扮演着越来越重要的作用。实际的自动布线的方法中,用户只需要指定布线起点和终点,即可由系统自动生成一条连接这两点间的布线路径。自动布线的效果取决于所采用的布线算法,并没有固定的解决模式,其可以归结为对需要布线的平台的搜索以寻找一条最合适的路径的问题,它本质上属于NP完全问题,目前并没有一个通用的解决方案,实际中一般按照系统需。
11、求选择合适的布线算法满足自身系统的需要。0008布线问题与最短路径问题存在许多相似之处。首先,布线操作是在固定的实验平台区域上进行的,最短路径的求解也是在一个固定的区域内进行的;其次,布线时需要实说明书CN102346795ACN102346815A2/12页5验者先指定一个端点作为布线开始端点,再指定另一个端点作为布线结束端点。起始端点可看作最短路径问题中两个顶点中的一个,结束端点则可相应的看作是最短路径问题中两个顶点中的另外一个;最后,布线的目标是要找出连接布线开始端点和结束端点的一条路径,该路径必须绕过台面上所有的元器件,并且路径只能走横线或竖线而不能走斜线。而最短路径问题是要从一个顶点。
12、开始寻找一条路径绕过所有权值非常大的点类似于障碍物,最后达到另一顶点。关于最短路径问题的求解,现有的方法可以归纳为两类迷宫MAZERUNNING算法和线搜索LINESEARCHING算法。00091迷宫算法。0010迷宫MAZE是一个矩形区域,它仅有一个入口和一个出口,迷宫内部包含有多个不能穿越的障碍物。迷宫问题是指寻找一条路径,该路径从迷宫入口进入,沿着通道行走,同时要求绕开所有不能通行的障碍。行走的路线只能是水平或者垂直的,不能沿着斜线行进也不能跳跃,即只能沿着当前位置方格的上下左右四个相邻的方格移动,直到走到出口为止。00111959年MOORE提出迷宫最短路径算法,1961年LEE首次。
13、将MOORE提出的迷宫最短路径算法成功用于解决自动布线问题。LEE氏算法的基本思想可以描述为波的传播过程的模拟。在一个存在障碍的湖面上,若需寻找连接A、B两点的最小路径,可以在A点投下一枚石子,然后观察所引起的水波传播情况。假定“水波”传播时没有能量损失,当遇到障碍物时,“水波”会产生反射,最先到达的目标点波所经过的路径必定是一条最短距离。而且只要两点间有通路存在,则自A点扩散出去的波一定能传播到达B点,这个过程可以在计算机上描述。00122线搜索算法。0013迷宫算法在时间和空间上较低效,因此人们提出线搜索算法错误未找到引用源。,其基本思想是先构造一个代表障碍和结点位置的图,然后在图中寻找最。
14、短路径得到原网格点中的最短路径。线探索法不用存储各网点信息,只须存储障碍物的外形尺寸和连接线宽度及端点坐标。在基于网格的线探索中,探索线端点及回溯处理时的步长都以网格为单位计算;在无网格线探索方案中,坐标以最小设计精度为单位,探索线端点则根据障碍的几何尺寸及探索线与障碍之间的允许最小间隙而计算,回溯处理以线间最小距离为步长,并结合障碍的几何尺寸灵活调整探索起点及探索方向。0014通常线探索法使用双向搜索法,例如HIGTOWER算法,其算法描述如下生成两个空表SLIST和DLIST,并用于存放源点和目标点产生的逃避线,该线不能穿越障碍区如果SLIST与DLIST中线段相交则结束。否则交替使用SL。
15、IST和DLIST中线段上的“逸出点”产生新的直线,新的SLISTDLIST要与原SLISTDLIST相交。若探索结束则可以通过从目标点回溯到源点找到一条路径。为了提高搜索的效率可以对搜索的顺序给定一些规则或与网格相结合,比较有代表性的是MIKAMI算法和JSOUKUP算法。0015上述方法在一定范围内可以达到自动布线的目的,然而,在指定区域内实现两点的连接并不困难,但当问题规模扩大,或者加上多种线约束之后,布线问题的难度也随之上升。比如实际系统中,经常存在着多个点组成的网络,这个网络中邻近的点之间的信号传输距离需要满足某些条件的限制如信号线不能交叉,或者某些区域的器件障碍导致该区域不能布线,。
16、同时布线还应考虑当前布线可能对之后的线网布局造成的影响等。此时如何从众说明书CN102346795ACN102346815A3/12页6多可行的布线方案中找出一种最合理的解决办法使问题变得更加复杂。一般布线问题的最优路线均为最短路线,故大多布线问题的求解都可以归结于最短路径求解问题。最短路径问题是图论的重要课题之一,归结为求加权图GV,E,W中两给定顶点之间的最短路径,即在出发点和目标点之间找出总代价最低的路径,其关键点是寻找到合适的路径寻优算法。路径寻优算法一方面要完成探索最低代价的路径,另一方面要做到尽可能快、尽可能少占用内存,即尽可能降低算法的时间复杂度和空间复杂度。通常求最短路径是在一。
17、个连通图中进行,各个节点由有向或无向的连线连接,而障碍物群中最短路径指的是图中两点通过一条折线或曲线相连,不与任一障碍物发生碰撞,且这条折线或曲线的路径长度或者代价最小。0016经典的最短路径问题只涉及单目标优化,常考虑获得最短的花费时间或距离。但单一的目标函数往往很难准确描述实际问题,因为复杂的现实问题一般有多个目标函数需要优化,这样引出了多目标最短路径问题。多目标的引入使得问题的求解与单目标条件下有所不同,由于各个目标之间通常都存在着冲突,针对某个目标具有优势的解对于另一个目标来说可能并不是优化的,这样造成多目标最短路径问题一般不存在单一的优化解,而是一个优化解集也称为PARETO解集,相。
18、应的问题难度也随之大大增加。00173DIJKSTRA迪杰斯特拉算法0018DIJKSTRA迪杰斯特拉算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。DIJKSTRA算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。DIJKSTRA一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN,CLOSE表的方式。发明内容0019本发明提供一种电工电子类虚拟实验平台中的快速自动布线方法,采用交互式布线法,综合考虑尽量减少连线路径长度和连线拐角数,尽量利。
19、用连线空间,在不影响可读性的前提下尽量利用已有路径,可以保证连线清晰,疏密合理,电路图的整体结构趋于最佳,从而提高虚拟实验系统的用户体验。0020为实现本发明的目的,采用的技术方案如下0021步骤1初始化实验平台信息,具体为002211读入实验台布局,获取平台上已经布有的器件以及已有连线等信息,获取实验平台宽度和高度属性,以建立布线数据结构。002312将实验台区域划分成MN个相等大小的网格,为这些网格建立一个MN的DIJKSTRA表,每个网格对应表中相同位置的一项。0024每个网格抽象为一个DIJKSTRANODE类型的对象,它包含DIJKSTRA算法所需要的所有信息,包括路径长度DISTA。
20、NCE、该网格处的权值WEIGHT、该网格是否已被计算BECONSIDERED、网格点坐标COORDINATE和该点在路径上的方向TRACK。0025步骤2生成导线起点的源路径。利用步骤1建立的平台信息,找到某个起点一般是实验平台上的接线柱到另一个接线柱的布线路径,具体为002621建立布线起点的DIJKSTRA表。说明书CN102346795ACN102346815A4/12页70027建立一个先进先出队列UNCALCLIST来处理所有未被初始化的点,从布线起点开始将其右、左、上、下四个点依次加入到队列中,再以相同方法考虑队列中第一个点,将其相邻且未被考虑的点加入队列尾部。将队列第一个点的D。
21、IJKSTRANODE信息依照该点的实际情况完成赋值,该点信息处理完毕后就将其自身从UNCALCLIST队列中移除。如此反复下去直到从导线起点出发,平台上所有网格点均按照上述方法处理完毕。0028步骤22寻找布线起点对应的单源路径。0029将当前终点加入数组并暂存终点坐标,再用这个坐标减去该点处DIJKSTRANODE的TRACK值,回退到路径上前一个点的坐标。比较两个点的TRACK,若他们的横坐标或纵坐标之一不相同则说明导线的运动方向发生了变化,将变化点的坐标加入到路径数组中,找到一个拐点。这样重复上面的过程,直到回退点的TRACK值与起点的轨迹值相等,就从终点回找到了起点,从而完成路径的生。
22、成。0030此步骤中当前布线终点即为确定布线起点后当前鼠标所在位置的网格点,不一定要求是接线柱,目的是生成一个预览路径方便用户随时观察布线情况。0031步骤3利用起点和终点生成路径结果。0032只利用导线起点的DIJKSTRA表得到的并不是两个接线柱间的最短的路径,完成一次布线操作还需要以导线的终点接线柱为初始点再建立一个新的DIJKSTRA表,该表的结构和创建过程与之前讨论的结构相同。分析两表可知,两张表存在一个唯一的公共点使得该点到起点和终点同时具有最短距离,故需要同时遍历两张表直到找到这个点。将该公共点作为导线起点接线柱和终点接线柱的公共终点,分别利用步骤2中的算法找到两条路径,将这两条。
23、路径组合起来按顺序存入路径数组中就得到了最终的导线路径。0033为了随时能够跟随用户鼠标的位置获得当前的预览路径,由起点生成的单源路径一般是按整个平台的信息来初始化的,这时已经得到了大量的路径信息,但这些信息并不能保证是两个接线柱间的路径是最优最短的。从终点出发建立DIJKSTRA表的过程若也按全平台的信息进行运算会导致计算量过大,影响算法的执行速度;同时,获得起点和终点后意味着自动布线的大体区域可以在算法初始时获得,即使该区域被用尽,也只需要按一定的策略逐步扩展区域使得自动布线有路径可走。因此,为了减小运算量、提高布线速度,可以根据起点和终点位置获得布线区域,在此区域内执行自动布线算法,若在。
24、区域内无法找到合适的路径,则逐步扩大搜索区域,直到找到路径为止;扩展区域最大为实验平台的全布线区域。0034步骤4设定实验平台的导线信息。0035按照前述步骤获得每条导线路径后,还需要记录下每条导线经过路径的形状,以便正确设定实验平台的全局导线信息。每个形状可以用一个整型常量表示,这些形状均定义为全局常量。根据这些信息即可由步骤5获取导线形状。0036步骤5获取导线形状。布线过程中路径的行进方向只有从左到右、从右到左、从上到下、从下到上四种,由此可得到多种导线的形状,复杂的形状都是由简单形状有序叠加得到的。003751获取当前布线通过该点产生的导线形状。主要方法是根据当前路径方向和路径上下一个。
25、点的路径方向做逻辑判断,从所有可能的组合中选取匹配的形状值。该步骤需要建立两个路径方向值和形状值的映射关系来支持,具体应从路径起点出发,依次按照说明书CN102346795ACN102346815A5/12页8此映射关系一次得到路径上每个点的导线形状值。起点和终点的形状值作为特殊值处理,并不需要经过映射,直接获取即可。003852将原有导线形状和新导线形状组合成新的形状状态。该步骤即是步骤51获取的当前步骤产生的新形状与实验平台上相关网格位置中原有的形状组合,得到该条布线路径上的最终形状,组合规则也是一个映射关系。每次完成一条导线的布线,就用该导线路径上所有网格点新得到的形状状态代替旧的形状状。
26、态。该步骤主要目的是随时更新平台信息,确保状态信息的一致性。0039步骤6存储导线对象的数据结构和信息。实验台上成功添加一条导线后,不仅要画出导线的图形,还要存储必要的相关信息供以提供给其他功能模块使用。保存信息结束,即完成了一次自动布线操作。0040电工电子类虚拟实验系统允许用户在虚拟实验环境中实现设计、搭建和演示实验结果等主动实验功能,在实验方案搭建的过程中,器件间的导线连接是必不可少的重要环节,导线连接时采用的布线算法是衡量实验方案图好坏的一个决定性因素。布线过程是实验者主动实验的过程,一方面他们希望在布线过程中随时预览导线的路径并在每条导线连接后立刻看到布线结果,另一方面走线路径要能够。
27、快速自动生成,还要满足正确、易读、美观和有效利用实验平台空间等要求。本发明的方法既保证了在用户容许的时间内完成布线操作,又能够在用户交互的同时自动完成寻找路径、设定信息、存储导线信息等相关操作,用户只需利用鼠标点击指定布线起点并拖动鼠标即可观察到路径随着鼠标位置的变化而变化,方便直观。点击布线终点后即生成最终布线路径,结果美观。该方法使用面向对象的思想设计和实现,具有较强的平台通用性,可运行于多种平台上。0041本发明对经典的最短路径求取方法进行改进,以经典DIJKSTRA算法为基础,对对布线实验台上的各个逻辑网格点进行初始化以确定它们的权值大小,然后网格点为基础构建一个邻接矩阵来存放这些网格。
28、点的信息,最后根据上述基础找到起点和终点间路径上的所有中间点,将起点、所有中间点以及终点依次连接起来就构成了一条布线路径。由于上述特点,本发明在虚拟实验平台的实际应用中具有很好的结果,可按照用户的实验需求完成自动布线,并能在用户可接受的时间内搜索到较好的路径,满足虚拟实验平台实时性的要求。附图说明图1为建立导线起点DIJKSTRA表的流程图;图2为利用单个DIJKSTRA表生成导线路径的流程图;图3为自动布线方法的流程图;图4为布线模块功能结构图。具体实施方式0042下面结合附图和具体实施例对本发明作进一步详细说明。0043数字逻辑虚拟实验平台的操作状态切换是通过改变其工作模式实现的,在布线模。
29、式下选择导线颜色后,就可以在实验台区域内进行布线,包括导线的添加、删除和移动等操作,布线模块功能结构图如图4。00441确定操作状态为布线状态,选取导线颜色,即开始进入布线操作,并初始化平说明书CN102346795ACN102346815A6/12页9台信息。004511读入实验台布局。根据实验平台上的实验方案搭建情况,获取平台上已经布有的器件以及有连线等信息,数字逻辑虚拟实验平台区域默认大小设定为15001500象素。004612设定每个网格大小为1212象素,这样将实验台划分为125125个相等大小的网格。建立一个125125的DIJKSTRA表,该表为一个二维数组,每个元素都是一个DI。
30、JKSTRANODE类型数据,为表述方便,下文中的坐标均指的是相对网格的坐标,如象素点12,12的坐标为1,1。将其属性DISTANCE置0,权值WEIGHT置0,所有点初始都未计算,BECONSIDERED置为FALSE,网格点坐标COORDINATE为所有网格的相对坐标,点在路径上的方向TRACK置为0,0。根据DIJKSTRA算法的思想,将实验操作面板上有障碍的点和不能布线的点一般是布线后会产生不符合布线规则形状的点的权值设为无穷大,无穷大可以用计算机所能表示的最大INT型变量值0X1FFFFFFF表示。另外,为了尽可能减少拐角,给拐角处的权值额外增加一定的量,即在原有权值的基础上加上一。
31、个固定的增量。下表1给出了五种权值的设计以及它们的意义。0047表1权值设计表004800490050按照表1的规则即可设定每一项相对于当前起点的权值。另外,为了得到拐点的位置,还需要用到成员TRACK。它是一个POINT点类型的变量,存储当前点是由路径上的上一个点经过何种方向的路径到该点的。方向信息可以用一个简单的全局静态数组表示EXDIRARRAY1,0,1,0,0,1,0,1,0,0;该数组的每个元素依次表示向右、向左、向上、向下运动和保持原位置不动。每个点先确定当前权值是除CRANKEL_WEIGHT的哪一种,再比较当前点运动方向与前一点运动方向是否相同,相同则不做任何操作,若不同就要。
32、在之前设定权值的基础上加一个CRANKEL_WEIGHT。00512生成导线起点的单源路径。点击鼠标确定某布线起点,若点击的点不是接线柱,则不予处理;若是接线柱,则利用步骤1建立的平台信息生成导线起点的单源路径。005221建立布线起点的DIJKSTRA表。假设布线起点坐标为5,5。依次将点5,5,6,5,5,5,5,4,5,6加入UNCALCLIST中。将队列第一个点5,5的DIJKSTRANODE信息依照该点的实际情况完成赋值,该点信息处理完毕后就将其自身从UNCALCLIST队列说明书CN102346795ACN102346815A7/12页10中移除。用同样方法考虑队列中第二个点6,5。
33、,将将不重复的点7,5,6,4,6,6加入队列,完成点6,5处DIJKSTRANODE的赋值。如此反复下去直到从导线起点出发,平台上所有网格点均按照上述方法处理完毕。图1为该处理过程的流程图。0053对每个点的赋值处理方式如下0054STEP1记录当前的坐标值。将坐标与EXDIRII0,1,2,3相加得到新的坐标,I增加1。0055STEP2若新坐标点超出平台范围、权值为INFINITE_WEIGHT或已被考虑过,转STEP1;否则转STEP3。0056STEP3比较新坐标处的导线形状与I值判断布线是否符合规则。若合乎规则,将新坐标处DIJKSTRANODE的COORDINATE成员置为当前坐。
34、标;变量BECONSIDERED值设为TRUE;如果EXDIRI与上一步的TRACK值不同,WEIGHT值就加上一个CRANKEL_WEIGHT;TRACK置为当前EXDIRI的值;DISTANCE为上一步的DISTANCE与当前点的权值WEIGHT之和;将该DIJKTRANODE加入到起点的UNCALCLIST队列中。若不合乎规则,则暂不考虑该点,留作其他扩展路径处理,转STEP1。0057STEP4重复STEP1STEP3直到I3,使得一个点的上、下、左、右四个方向的相邻点均被扩展。005822寻找布线起点对应的单源路径。假定此步骤的布线终点为平台上的某点,利用一个数组PIER存储最终路径。
35、点。将当前终点加入数组PIER并暂存终点坐标,假定坐标为7,7。用这个坐标减去该点处DIJKSTRANODE的TRACK值0,1,回退到路径上前一个点的坐标7,6,这两个点的TRACK相同,则继续回退直到点7,5。由于点7,5的TRACK值变成了1,0,说明导线的运动方向发生了变化,那么将变化点坐标7,5加入到路径数组中,找到一个拐点。这样重复上面的过程,直到回退点的TRACK值与起点的轨迹值相等,最终找到的路径点为5,5,7,5和7,7。当然上述举例是比较简单的情况,实际过程中起点和终点间可能存在大量障碍物,路径也比此情况复杂,但由于采用了自动寻路的方法且各种信息步骤21中均已初始化完成,并。
36、不妨碍快速地寻找到路径。0059图2为利用单个DIJKSTRA表生成路径的流程图。00603利用起点和终点生成路径结果。同样假设布线终点坐标为7,7,且该终点为接线柱,此时点击终点就相当于确认一次布线操作。以布线终点7,7出发,按照步骤21相同的方式0061建立一个新的DIJKSTRA表,该表代表由终点出发寻找最短路径的依据。同时遍历两张DIJKSTRA表直到找到一个同时到起点和终点均具有最短路径的公共点。将该公共点作为导线起点接线柱和终点接线柱的公共点,分别利用步骤22中的方法重复找到两条路径,分析知这两条路径分别为5,5,7,5和7,7,7,5将这两条路径组合起来按顺序存入路径数组PIER。
37、中就得到了最终寻找到的布线路径。0062为减小运算量,提高寻路速度,确定布线终点同时需获取布线起点和终点间的相对布线区域。该区域为一个矩形区域,它的对角点即为布线起点和终点,布线终点的DIJKSTRA表只需在此区域内建立。由于布线起点已获取了平台的所有信息,大多布线均能在此区域内寻找到路径。少数情况下,此区域内无法找到路径,则将此区域往上、下、左、右四个方向均扩展10格,在新的区域建立布线终点的DIJKSTRA表。由于原有区域的点均已说明书CN102346795ACN102346815A8/12页11计算,此时只需计算扩展的区域内的点,利用扩展后的区域再次寻找路径。重复以上过程,知道全平台均扩。
38、展完毕,若最后均无法找到路径,则说明两点间的障碍导致两点无法用导线连接,此种情况一般属于人为器件放置不合理造成的,大多情况下均可寻找到连接起点和终点的最短路径。00634记录每条导线经过路径的形状,导线路径上的所有坐标点均需要设置形状信息。每个形状可以用一个整型常量表示,根据形状即可直接获取该坐标处的权值信息。导线形状信息如表2所示。0064表2导线形状表00650066如果一个网格点之前已经有相同起始或结束接线柱的导线通过,那么该点导线形状的初始权值设为LOW_WEIGHT。如果该点是拐点,就在其初始值的基础上加一个CRANKEL_WEIGHT。另外,通过定义元素个数为125125的二维数组。
39、CELLLINESTYLE来记录说明书CN102346795ACN102346815A9/12页12每个网格点形状的权值。同时,为了快速判断一个坐标点处已有的导线路径是否可以重复利用,定义了全局的三维数组CELLLINES来记录每个网格点上的导线信息,该数组的第一、二维元素表示网格坐标值,第三维元素存储所有通过该点的导线信息。00675获取导线形状。本实验平台中布线过程中路径的行进方向只有从左到右、从右到左、从上到下、从下到上四种,称为寻路的目标方向,即目标方向只能是水平或垂直的,每个方向均用一个整形变量表示,如表3所示。0068表3路径方向定义一览表0069路径方向变量名值从左到右LEFTT。
40、ORIGHT0从右到左RIGHTTOLEFT1从上到下UPTODOWN2从下到上DOWNTOUP3未知方向UNKNOWNDIRECTION40070按照路径生成算法获得布线路径后,就可以根据路径中每个点的坐标位置关系很快确定出路径的行进方向。007151获取当前布线通过该点产生的导线形状,该形状属于表2中序号03,811中某一种。此步骤需要枚举所有导线当前方向和下一方向的情况,建立两个路径方向值和导线形状值的映射关系,该映射关系如表4所示。0072表4路径方向和导线形状的映射关系表0073说明书CN102346795ACN102346815A10/12页130074007552将原有导线形状和。
41、新导线形状组合成新的形状状态,即将获得形状与CELLLINESTYLE数组中记录的该坐标位置的形状组合,得到最终形状。组合规则也是一个映射关系,如表5所示,该步骤需要利用表2中的信息。0076表5原有导线形状、新导线形状与最终形状状态的映射关系表00770078说明书CN102346795ACN102346815A11/12页1400796一次布线操作后,所布导线对平台信息的修改已在自动布线过程中自动完成。另外需要存储导线对象LINE作为其他模块调用导线或实验台载入所有导线的依据。具体说明书CN102346795ACN102346815A12/12页15需要保存导线路径点和导线颜色、导线起点和终点等信息。说明书CN102346795ACN102346815A1/3页16图1说明书附图CN102346795ACN102346815A2/3页17图2图3说明书附图CN102346795ACN102346815A3/3页18图4说明书附图CN102346795A。