一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种布线方案确定方法、装置、电子设备及存储介质与流程

2022-02-22 03:40:37 来源:中国专利 TAG:


1.本技术涉及集成电路布线技术领域,具体而言,涉及一种布线方案确定方法、装置、电子设备及存储介质。


背景技术:

2.绕线是集成电路后端设计中重要的一环,其任务是将芯片中所有等效节点通过金属互联线连接起来。给定节点位置与连接关系,绕线算法需要在满足一定的约束条件(例如设计规则与布线资源)的前提下,确定网络的拓扑结构与具体的走线线段,并在可布线的基础上,追求优化目标(如最小化总线长与最大化时序松弛)。对于多引脚网络,绕线算法通常加入一些额外的中间节点,精心放置的中间节点通常能增大线网的公共绕线部分,从而减少线网总长度。
3.随着设计越发复杂,布局阻塞块与宏单元进一步挤压布线资源,找到合适的平衡位置放置中间节点的难度进一步增大。
4.综上,现有技术存在布线方案较难确定的问题。


技术实现要素:

5.本技术的目的在于提供一种布线方案确定方法、装置、电子设备及存储介质,以解决现有技术中存在的布线方案较难确定的问题。
6.为了实现上述目的,本技术实施例采用的技术方案如下:
7.第一方面,本技术实施例提供一种布线方案确定方法,所述方法包括:
8.获取待布线数据,其中,所述待布线数据包括多个布线对象与配置文件,且每个所述布线对象均包括位置信息;
9.对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出所述配置文件的范围,并将每种推进方案作为备选方案;
10.依据所述配置文件中的控制策略从所述备选方案中选取目标方案,并将所述目标方案中重叠的布线对象合并为新的布线对象;
11.重复执行对每个布线对象按单位长度推进的步骤,直至确定出布线终点,以确定出布线方案,其中,所述布线方案包括布线终点与布线路径。
12.可选地,对每个布线对象按单位长度推进的步骤包括:
13.对每个所述布线对象按单位长度沿横向与纵向推进;
14.所述将每种推进方案作为备选方案的步骤的包括:
15.将沿横向推进的方案作为第一备选方案,将沿纵向推进的方案作为第二备选方案。
16.可选地,将所述目标方案中重叠的布线对象合并为新的布线对象的步骤之后,所述方法还包括:
17.将所述目标方案中重叠的布线对象对删除;
18.所述确定出布线终点的步骤包括:
19.当剩余的布线对象为一个时,将剩余的布线对象的位置信息作为所述布线终点的位置信息。
20.可选地,对每个布线对象按单位长度推进的步骤包括:
21.将所述布线对象的位置作为起点位置,沿横向与纵向推进一个单位长度,并将推进后的位置作为基点位置;
22.当所述基点位置未与其余任一布线对象推进后的基点位置重叠且未超出配置文件的范围时,将所述基点位置作为起点位置,沿横向与纵向推进一个单位长度,直至与另一布线对象重叠或超出所述配置文件的范围。
23.可选地,所述配置文件还包括布线方式信息,在对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出所述配置文件的范围,并将每种推进方案作为备选方案的步骤之后,所述方法还包括:
24.当所述备选方案中未包含目标方案时,依据所述配置文件更换布线方式信息,直至确定出目标方案。
25.可选地,所述配置文件中的控制策略包括:
26.当重叠对的数量相同时,选取路径最短的备选方案作为目标方案;或
27.当路径长度相同时,选取重叠对的数量最多的备选方案作为目标方案;或
28.选取路径长度/重叠对数最小值的备选方案作为目标方案;或
29.选取转交数量/重叠对数最小值的备选方案作为目标方案。
30.可选地,所述配置文件包括布线边界位置与障碍位置,所述对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出所述配置文件的范围的步骤包括:
31.对每个布线对象同步按单位长度推进,直至达到所述边界位置或所述障碍位置。
32.第二方面,本技术实施例还提供了一种布线方案确定装置,所述装置包括:
33.信息获取单元,用于获取待布线数据,其中,所述待布线数据包括多个布线对象与配置文件,且每个所述布线对象均包括位置信息;
34.数据处理单元,用于对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出所述配置文件的范围,并将每种推进方案作为备选方案;
35.数据处理单元,还用于依据所述配置文件中的控制策略从所述备选方案中选取目标方案,并将所述目标方案中重叠的布线对象合并为新的布线对象;
36.数据处理单元,还用于重复执行对每个布线对象按单位长度推进的步骤,直至确定出布线终点,以确定出布线方案,其中,所述布线方案包括布线终点与布线路径。
37.第三方面,本技术实施例还提供了一种电子设备,包括:存储器,用于存储一个或多个程序;处理器;当所述一个或多个程序被所述处理器执行时,实现上述的布线方案确定方法。
38.第四方面,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的布线方案确定方法。
39.相对于现有技术,本技术具有以下有益效果:
40.本技术实施例提供了一种布线方案确定方法、装置、电子设备及存储介质,首先获取待布线数据,其中,待布线数据包括多个布线对象与配置文件,且每个布线对象均包括位
置信息,对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出配置文件的范围,并将每种推进方案作为备选方案,依据所述配置文件中的控制策略从备选方案中选取目标方案,并将目标方案中重叠的两个布线对象合并为新的布线对象,重复执行对每个布线对象按单位长度推进的步骤,直至确定出布线终点,以确定出布线方案,其中,所述布线方案包括布线终点与布线路径。一方面,本技术能够快速的依据布线对象与配置文件确定出布线方案。另一方面,本技术采用对每个布线对象进行布线方案的试探推进方式,使得布线的对象能够实现横纵平衡的绕线,具有更好的平衡性,有利于后续的时序优化与的收敛。
41.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
42.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
43.图1为本技术实施例提供的电子设备的模块示意图。
44.图2为本技术实施例提供的布线方案确定方法的流程示意图。
45.图3为本技术实施例提供的布线方案确定装置的流程示意图。
46.图中:
47.100-电子设备;101-处理器;102-存储器;103-通信接口;200-布线方案确定装置;210-信息获取单元;220-数据处理单元。
具体实施方式
48.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
49.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
51.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
52.正如背景技术中所述,现有技术中存在布线方案较难确定的问题。例如,一些特殊的绕线任务,如时钟树布线,在普通绕线问题的基础上,对网络的平衡性提出了额外的要
求。一个时钟布线问题包含一个根节点(root,即终点)和s-1个时钟接收点(sinks),要求时间信号从根节点出发到达所有接收点的时延差尽量小。一棵零时延差的时钟树称为零时滞树。通常绕线算法根据线长估计时延,自顶向下或自底向上的确定中间节点的位置,构建时钟树。
53.绕线算法不仅要确定绕线的位置、长度,还要确定布线段所处的金属层。通常一个金属层只放置同一个方向(横向或纵向)的走线,相邻非同向走线段由通孔连接。考虑到不同金属层电参数的非一致性,基于线长估计的时延与实际情况往往存在着偏差,且由于环境、工艺等条件的扰动,这种偏差往往难以准确估计。随着时钟信号频率的不断提高与多模多角分析的不断普及,时滞给时序收敛带来的挑战越发严峻。同时,随着设计越发复杂,布局阻塞块与宏单元进一步挤压布线资源,找到合适的平衡位置放置中间节点的难度进一步增大。
54.有鉴于此,本技术提供了一种布线方案确定方法,通过布线对象同步按单位长度推进的方式,确定出所有布线对象的布线方案。
55.需要说明的是,本技术提供的布线方案确定方法应用于电子设备中,请参阅图1,该电子设备100可以包括存储器102、处理器101和通信接口103,该存储器102、处理器101和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
56.存储器102可用于存储软件程序及模块,如本技术实施例提供的定位装置对应的程序指令或模块,处理器101通过执行存储在存储器102内的软件程序及模块,从而执行各种功能应用以及数据处理,进而执行本技术实施例提供的定位方法的步骤。该通信接口103可用于与其他节点设备进行信令或数据的通信。
57.其中,存储器102可以是,但不限于,随机存取存储器102(random access memory,ram),只读存储器102(read only memory,rom),可编程只读存储器102(programmable read-only memory,prom),可擦除只读存储器102(erasable programmable read-only memory,eprom),电可擦除可编程只读存储器102(electric erasable programmable read-only memory,eeprom)等。
58.处理器101可以是一种集成电路芯片,具有信号处理能力。该处理器101可以是通用处理器101,包括中央处理器101(central processing unit,cpu)、网络处理器101(network processor,np)等;还可以是数字信号处理器101(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
59.可以理解,图1所示的结构仅为示意,电子设备100还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
60.下面对本技术提供的布线方案确定方法进行示例性说明:
61.作为一种可选的实现方式,请参阅图2,本技术提供的布线方案确定方法包括:
62.s102,获取待布线数据,其中,待布线数据包括多个布线对象与配置文件,且每个布线对象均包括位置信息。
63.s104,对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出配置文件的范围,并将每种推进方案作为备选方案。
64.s106,依据所述配置文件中的控制策略从备选方案中选取目标方案,并将目标方案中重叠的布线对象合并为新的布线对象。
65.s108,重复执行对每个布线对象按单位长度推进的步骤,直至确定出布线终点,以确定出布线方案,其中,所述布线方案包括布线终点与布线路径。
66.其中,本技术实现方式采用横纵平衡式绕线,实现同步按单位长度推进,线网都是由一系列长度相同且方向相同的布线段组成。因为方向相同的布线段可以安排在同一金属层,所以在实际芯片中,由金属布线层电参数的非一致性带来的时滞可以得到较好的控制。尤其有利于多模多角分析中时序的优化与收敛。
67.需要说明的是,本技术提供的布线对象,即指多个布线的起点,例如,在某一10*10大小的电路板中,需要进行绕线的点包括点a(0,0)、b(0,1)、c(1,1),d(1,0),则点a、b、c以及d均为布线对象,且每个布线对象具备有对应的位置信息,本技术采用坐标的方式表征布线对象的位置信息。其中,在定位位置信息时,其坐标轴可根据需要设置,例如,可以将电路板的中心位置作为坐标轴的原点,也可以将电路板的端点作为坐标轴的原点,在此不做限定。
68.配置文件可以包括系统预设的数据与用户设置的数据,例如,系统预设的数据可以包括电路板的大小、障碍的位置、大小,所处的布线层等。其中,电路板一般包括多层,每层布线层可以进行分别布线,同时,每个布线层具有一定的大小,布线区域不能超过该区域,障碍表示在布线时无法涉及的区域,例如,该区域设置有电子器件,则布线时需要绕过该障碍进行布线。
69.用户设置的数据包括走线的形式等,例如,走线采用直线走线或采用非直线走线,非直线走线包括是否使用折返线段、是否使用折线更新布线方案,是否接受不平衡的布线方案等。
70.当然地,在一些实现方式中,预设的数据与用户设置的数据也可分离设置,即配置文件仅包含用户设置的相关参数,预设的数据存储于其它的数据库中。
71.在获取了布线数据后,可对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出配置文件的范围,并将每种推进方案作为备选方案。
72.例如,布线对象包括x(0,0)与布线兑现y(2,0),则当x(0,0)向右推进一个单位长度,且y(2,0)同步向左推进一个单位长度时,则对象x与对象y均能推进到(1,0)的位置,并在此位置重叠,则该可以作为一种备选方案。
73.可以理解地,经过该推进方式后,可以得到多个备选方案,然后根据配置文件给出的选择策略从备选方案中确较优方案作为目标方案,并将目标方案中的一个或多个布线对象对合并为新的布线对象。需要说明的是,本技术所述的布线对象对,指两个能够经过推进重叠的布线对象,例如,对象x与对象y均能推进到(1,0)的位置重叠,则对象x与对象y组成一个布线对象对。
74.还需要说明的是,作为的一种实现方式,配置文件中的控制策略包括但不限于:
75.第一种:当重叠对的数量相同时,选取路径最短的备选方案作为目标方案。
76.第二种:当路径长度相同时,选取重叠对的数量最多的备选方案作为目标方案。
77.第三种:选取路径长度/重叠对数最小值的备选方案作为目标方案。
78.第四种:选取转交数量/重叠对数最小值的备选方案作为目标方案。
79.例如,布线对象x与布线对象y之间在推进过程中有重叠的点,且该备选方案中,推进了两次;布线对象x与布线对象z之间在推进过程中也有重叠的点,且该备选方案中,推进了三次,假设使用最短路径作为选择策略,则在确定目标方案时,会将包括布线对象x与布线对象y的备选方案的作为目标方案,以使确定出的新的布线对象的路径最短。然后重复执行对每个布线对象按单位长度推进的步骤,直至确定出布线方案。
80.作为一种实现方式,s104的步骤包括:
81.s1041,对每个所述布线对象按单位长度沿横向与纵向推进。
82.将每种推进方案作为备选方案的步骤的包括:
83.s1042,将沿横向推进的方案作为第一备选方案,将沿纵向推进的方案作为第二备选方案。
84.可以理解地,本技术所述的横向推进,可以指向左或者向右推进,纵向推进可以指向上或者向下推进。通过将横向推进的所有方案作为第一备选方案,将纵向推进的所有方案作为第二备选方案的方式,可以对数据进行分类,便于确定出目标方案。
85.在一种可选的实现方式中,将目标方案中的两个布线对象合并为新的布线对象的步骤之后,方法还包括:
86.将目标方案中的两个布线对象删除;
87.确定出布线终点的步骤包括:
88.当剩余的布线对象为一个时,将剩余的布线对象的位置信息作为布线终点的位置信息。
89.换言之,在确定布线方案时,实际以一轮接一轮迭代的方式确定,且随着每一轮迭代,布线对象的数量将会减少,直至布线对象减少至1个,此时布线对象的位置即为布线中点的位置。进而确定出了布线方案,其中,布线方案包括布线终点与布线路径。
90.例如,当布线对象包括a、b、c以及d四个时,经过第一轮目标方案的确定后,由对象a与对象b确定了新的布线对象e,其中,布线对象e到布线对象a、布线对象b的长度一致;由对象c与对象d确定了新的布线对象f,其中,布线对象f到布线对象c、布线对象d的长度一致。则在第一轮迭代之后,得到了新的布线对象e与布线对象f,并且,系统还会自动删除原有的布线对象a、b、c以及d,布线对象的数量由4个变成2个,然后再进行下一轮迭代,即依据新的布线对象e与f继续确定目标方案,并得到新的布线对象g,同时删除布线对象e与f。此时,布线对象仅剩余g,则将g的位置信息作为布线终点的位置信息,并将其与布线过程的路径进行整合,形成最终的布线方案。
91.在此基础上,在s102的步骤之后,该方法还包括:
92.s103,判断布线对象的数量是否大于一个,如果是,则执行对每个布线对象同步按单位长度推进的步骤。如果否,则退出。
93.即在每次进行目标方案的迭代过程中,系统均会判断布线对象的数量是否大于一个,并以此为依据确定是否得到布线终点。
94.作为一种实现方式,s104的步骤包括:
95.s1043,将布线对象的位置作为起点位置,沿横向与纵向推进一个单位长度,并将
推进后的位置作为基点位置;
96.s1044,当基点位置未与其余任一布线对象推进后的基点位置重叠且未超出配置文件的范围时,将基点位置作为起点位置,沿横向与纵向推进一个单位长度,直至与另一布线对象重叠或超出配置文件的范围。
97.以布线对象的位置作为起点,向四周推进,以横向推进为例,将出现向右推进一个单位长度和向左推进一个单位长度两种备选方案,若此时尚未满足要求,则继续向前推进;向前推进时,以向右推进的备选方案为例,可再向右或纵向(向上或向下)推进,直至与另一布线对象重叠或超出配置文件的范围。
98.例如,以布线对象a(0,0)为例,向右推进的一个单位长度,推进后的基点位置为(1,0),当第一次推进后,与其它布线对象并未重叠,则需要进行第二次推进,此时,以基点位置(1,0)为基础,向上、向下、向右分别推进,分别得到新的基点位置(1,1)、(2,0)(1,-1),然后以此类推,直至布线对象重叠,或超出配置文件的范围。
99.在一种实现方式中,当在推进过程中,出现两个布线对象重叠的备选方案时,则结束继续推进的流程,原因在于,由于本技术以路径最短的方案作为目标方案,一旦出现两个布线对象重叠的备选方案时,则即使再继续推进,再次出现布线对象重叠的方案,则由于推进次时的增加,其路劲长度也相应增加,换言之,最终仍会选择两个布线对象最早重叠的备选方案作为目标方案。因此,为了减少系统的运算量,当出现两个布线对象重叠的备选方案时,则结束继续推进的流程。
100.此外,本技术提供的配置文件可以包括布线边界位置与障碍位置,对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出配置文件的范围的步骤包括:
101.对每个布线对象同步按单位长度推进,直至达到边界位置或障碍位置。
102.例如,若(1,0)处于障碍位置中,若此时布线对象的在推进,推进一个单位长度后达到(1,0),则表示此次推进已经进入障碍位置,当次推进并不合法。
103.作为一种可选的实现方式,当配置文件还包括布线方式信息,例如用户定义的布线方式等。在对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出配置文件的范围,并将每种推进方案作为备选方案的步骤之后,方法还包括:
104.当备选方案中未包含目标方案时,依据配置文件更换布线方式信息,直至确定出目标方案。
105.当在某一次推进时,并没有确定出布线对象能够实现重叠的方案,则表示在横向或者纵向上无法确定出目标方案,此时需要更换布线方式,例如,增加折线布线方式,或者增加斜线布线方式等。
106.需要说明的是,作为一种实现方式,本技术提供的电子设备中,可以包括多个数据库,存储不同的数据。例如,数据库包括布线资源数据库、布线对象数据库、布线流程配置文件、备选布线方案数据库以及已定布线方案数据库,其中,
107.布线资源数据库包含集成电路设计的布局信息,包括设计的大小,障碍的位置、大小、所属布线层等。
108.布线对象数据库包含所有未确定布线方案的布线对象。每个布线对象包括它们的初始位置以及可能被接受的布线方案,这些布线方案从同一的初始位置出发,经过一系列位于相同布线层、长度相同的布线线段,到达不同的终点。
109.已定布线方案数据库包含所有确定的布线方案,表示为终点各不相同的一系列线网。
110.布线流程配置文件根据使用者的设定生成。设定包括是否使用折返线段,是否使用折线更新布线方案,是否接受不平衡的布线方案。根据设定生成更新备选方案数据库的流程。
111.备选布线方案数据库由布线对象数据库初始化,根据布线流程配置文件更新其中布线对象的可能布线方案。和在不同的布线层推进布线对象的所有布线方案,每次推进一个单位,并与布线资源数据库通信,查询此次推进是否合法(若布线对象的终点进入障碍区域或超出设计区域则为不合法)。当数据库出现一对或多对布线对象存在布线方案的终点到达同一位置,或查询发现此次推进造成某个布线对象的所有可能布线方案都不合法时,停止更新。若某次更新中至少一个备选布线方案数据库出现了布线方案可合并(即终点到达同一位置)的一对或多对布线对象,则可用备选布线方案数据库更新布线对象数据库和已定布线方案数据库。若两个备选布线方案数据库都满足更新条件,则根据一定策略选择一个。对于所选备选方案数据库中布线方案合并的布线对象对,将对应布线方案固定后加入已定布线方案数据库,将原始对象从布线对象数据库中删除,并以终点合并位置作为初始位置构建新的布线对象加入布线对象数据库;对于未能合并的布线对象,用备选布线方案数据库中的可能布线方案更新其在布线对象数据库中的方案。若两个备选方案数据库都不满足更新条件,则重新初始化备选布线方案数据库和,并根据布线流程配置文件选择新的布线手段进行更新。
112.下面进行举例说明布局完成后获得设计的布局信息,其中布线区域为10
×
10的正方形区域,坐标系原点位于正方形的中心处,有四个待布线的时钟接收点,该四个点即为布线对象,且位置分别为(-2,3),(2,3),(-2,-3),(4,-3),并且无障碍,即该正方形区域内均可进行布局。
113.首先进行全局初始化行为,根据这四个时钟接收点的位置信息初始化布线对象数据库,初始化后,该数据库内存在4个对象及其初始位置,尚无可能被接受的布线方案;初始化布线资源数据库,因无障碍,所以只有布线区域信息;根据使用者设定:不使用折返线段、使用折线、接受不平衡布线方案,得到对应的布线流程配置文件为:先使用直线段进行尝试(默认),再使用折线段进行尝试,如不成功可接受不平衡的布线方案。拷贝当前布线对象数据库对备选布线方案数据库进行初始化。
114.全局初始化后,因布线对象数据库此时包含四个对象,因此开始第一轮迭代,根据流程配置文件,使用直线段更新备选方案数据库,拷贝布线对象数据库中布线对象及其可能被接受的布线方案信息,对备选布线方案数据库进行更新。
115.更新备选方案数据库:假设备选方案数据库在横向布线层更新备选方案,备选方案数据库在纵向布线层更新备选方案。以初始位置为(-2,3)的布线对象在备选方案数据库中的更新为例描述备选方案数据库的更新过程:
116.因此时布线对象尚无可能被接受的布线方案,因此从初始位置分别向左右方向推进,有两个布线方案[(-2,3),(-2-,3)]和[(-2,3),(-2 ,3)]。
[0117]
两次推进后,两个备选方案的终点分别到达(-4,3)和(0,3)。此时,初始位置为(2,3)的布线对象也有一个布线方案的终点到达(0,3)位置,因此对备选方案数据库的更新结
束。
[0118]
在备选方案数据库中该布线对象的两个布线方案分别为[(-2,3),(-2,3-)]和[(-2,3),(-2,3 )]。推进三次后,一个布线方案的终点到达(-2,0),同时,初始位置为(-2,-3)的布线对象也有一个布线方案的终点达到该位置,存在可合并的布线对象,更新结束。
[0119]
决定方案接受与否:此时,两个备选方案数据库都满足更新条件,各有一对布线对象可合并。而其中,其中一个备选方案数据库的推进步数要少于另一个备选方案数据库,因此选择接步数较少的备选方案数据库。
[0120]
在确定目标推进方案后,更新布线对象数据库与已定布线方案数据库,对于合并的布线对象对,删除原对象,加入新对象并保存布线方案:从布线对象数据库中删除初始位置为(-2,3)和(2,3)的布线对象,并加入初始位置为(0,3)的布线对象;将对应的布线方案[(-2,3),(0,3)]和[(2,3),(0,3)]加入已定布线方案数据库。
[0121]
对于未能合并的布线对象,更新其布线方案:以初始位置为(-2,-3)的对象为例,此时布线资源数据库内该对象无任何布线方案,更新后布线对象数据库内该对象包含两个布线方案[(-2,-3),(0,-3)]和[(-2,-3),(-4,-3)]。
[0122]
第一轮迭代结束后布线对象数据库里包含三个布线对象,不满足结束条件,开始新一轮迭代。主要流程与第一轮迭代无差别,以备选方案数据库中的初始位置为(-2,-3)的布线对象为例说明备选方案数据库的第二次更新。
[0123]
初始化后该对象有两个布线方案:[(-2,-3),(0,-3)]和[(-2,-3),(-4,-3)],备选方案数据库从已有布线方案的终点开始在纵向布线层推进布线方案,因此两个布线方案将扩展为四个[(-2,-3),(0,-3),(0,-3 )]、[(-2,-3),(0,-3),(0,-3-)]、[(-2,-3),(-4,-3),(-4,-3 )]、[(-2,-3),(-4,-3),(-4,-3-)]。
[0124]
推进三步后,其中一个布线方案终点到达(0,0),为[(-2,-3),(0,-3),(0,0)],与另一布线对象终点合并,更新结束。
[0125]
本轮迭代备选布线方案数据库同样有一对可合并的布线对象对,且只需推进1步,代价更低,因此接受备选布线方案数据。
[0126]
第二轮迭代后,布线对象库包含两个对象,已定布线方案数据库新加入两个布线方案:[(-2,-3),(0,-3),(1,-3)]和[(4,-3),(2,-3),(1,-3)]。
[0127]
第三轮迭代后,已定布线方案数据库中加入[(1,-3),(1,0)],[(0,3),(1,3),(1,0)],布线资源数据库只剩一个初始位置为(1,0)的对象,程序结束。
[0128]
本发明通过更新两个备选布线方案数据库,在不同的布线层对布线对象的备选布线方案进行试探推进,并根据一定的策略选择是否接受此次试探以及接受哪一个备选方案,实现了横纵平衡的绕线。与现有绕线算法相比,本技术提供的横纵平衡的布线具有更好的平衡性。在一些特殊绕线任务,如时钟树布线中,这种平衡性的提升有利于后续时序优化与收敛,具有极大意义。
[0129]
并且,由于对每一个布线对象构建一系列可能被接受的布线方案。对于某一个布线对象,其所有布线方案起点都是相同的,从同一起点经过一系列位于相同布线层、长度相同的线段到达不同的终点。对于某一时刻的布线对象数据库或备选布线方案数据库,从全局所有的终点回溯到其对应的初始时钟接收点的路径也都是由位于相同布线层且长度相同的布线线段构成的,效果更好。
[0130]
基于上述实现方式,请参阅图3,本技术提供了一种布线方案确定装置200,该装置包括:
[0131]
信息获取单元210,用于获取待布线数据,其中,待布线数据包括多个布线对象与配置文件,且每个布线对象均包括位置信息。
[0132]
可以理解地,通过信息获取单元210可以执行上述的s102。
[0133]
数据处理单元220,用于对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出配置文件的范围,并将每种推进方案作为备选方案。
[0134]
可以理解地,通过数据处理单元220可以执行上述的s104。
[0135]
数据处理单元220,还用于从备选方案中确定两个布线对象的路径最短的方案作为目标方案,并将目标方案中的两个布线对象合并为新的布线对象。
[0136]
可以理解地,通过数据处理单元220可以执行上述的s106。
[0137]
数据处理单元220,还用于重复执行对每个布线对象按单位长度推进的步骤,直至确定出布线方案。
[0138]
可以理解地,通过数据处理单元220可以执行上述的s108。
[0139]
可以理解地,上述的方法步骤均可以对应一个功能模块,以执行对应的步骤,在此不做赘述。
[0140]
综上所述,本技术实施例提供了一种布线方案确定方法、装置、电子设备及存储介质,首先获取待布线数据,其中,待布线数据包括多个布线对象与配置文件,且每个布线对象均包括位置信息,对每个布线对象同步按单位长度推进,直至与另一布线对象重叠或超出配置文件的范围,并将每种推进方案作为备选方案,依据所述配置文件中的控制策略从备选方案中选取目标方案,并将目标方案中重叠的两个布线对象合并为新的布线对象,重复执行对每个布线对象按单位长度推进的步骤,直至确定出布线终点,以确定出布线方案,其中,所述布线方案包括布线终点与布线路径。一方面,本技术能够快速的依据布线对象与配置文件确定出布线方案。另一方面,本技术采用对每个布线对象进行布线方案的试探推进方式,使得布线的对象能够实现横纵平衡的绕线,具有更好的平衡性,有利于后续的时序优化与的收敛。
[0141]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
[0142]
对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其它的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献