芯片布局方法、装置、设备及存储介质与流程

文档序号:32007187发布日期:2022-11-02 13:49阅读:154来源:国知局
芯片布局方法、装置、设备及存储介质与流程

1.本技术实施例涉及芯片布局领域,尤其涉及一种芯片布局方法、装置、设备及存储介质。


背景技术:

2.相关技术中,传统芯片布局设计需依赖资深的设计人员利用电子设计自动化(electronic design automation,eda)工具做多轮迭代,以找到在不违反布局密度和布线拥塞等约束条件的情况下,得到综合考虑功率、性能和面积等指标,尽可能让各项指标最小化的布局图。这样,整个布局过程通常需要海量的计算资源,进而导致其难以被广泛应用。


技术实现要素:

3.本技术实施例提供一种芯片布局技术方案。
4.本技术实施例的技术方案是这样实现的:
5.本技术实施例提供一种芯片布局方法,所述方法包括:获取待布局芯片中的至少两个组件;获取第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息,所述评估信息包括对所述芯片板上所述已摆放组件对应的布局图进行性能评估得到的信息;所述n为大于1的整数;基于所述第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息,对第n轮在所述芯片板上相邻摆放的两个组件之间的距离进行调整,直至所述第n轮的评估信息指示所述芯片板上的布局图满足预设布局指标;将满足所述预设布局指标对应的所述芯片板上的布局图,确定为所述待布局芯片的目标布局图。
6.本技术实施例提供一种芯片布局装置,所述装置包括:第一获取模块,用于获取待布局芯片中的至少两个组件;第二获取模块,用于获取第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息,所述评估信息包括对所述芯片板上所述已摆放组件对应的布局图进行性能评估得到的信息;所述n为大于1的整数;调整模块,用于基于所述第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息,对第n轮在所述芯片板上相邻摆放的两个组件之间的距离进行调整,直至所述第n轮的评估信息指示所述芯片板上的布局图满足预设布局指标;确定模块,用于将满足所述预设布局指标对应的所述芯片板上的布局图,确定为所述待布局芯片的目标布局图。
7.本技术实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时能够实现上述的芯片布局方法。
8.本技术实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现上述的芯片布局方法。
9.本技术实施例提供一种芯片布局方法、装置、设备及存储介质;其中,所述芯片布局方法包括:首先,获取待布局芯片中的至少两个组件;这样,获取到待布局芯片中需要进行布局走线的至少两个组件,为后续进行多轮布局提供基础;其次,获取第n-1轮在芯片板
上已摆放组件的位置信息和所述第n-1轮的评估信息,所述评估信息包括对所述芯片板上所述已摆放组件对应的布局图进行性能评估得到的信息;所述n为大于1的整数;这样,可以实现后续将获取的上一轮已摆放组件的位置信息以及上一轮摆放之后得到的布局反馈信息,作为下一轮组件摆放的参考;然后,基于第n-1轮在芯片板上已摆放组件的位置信息和第n-1轮的评估信息,对第n轮在芯片板上相邻摆放的两个组件之间的距离进行调整,直至所述第n轮的评估信息指示所述芯片板上的布局图满足预设布局指标;这样,基于上一轮已摆放组件的位置信息以及上一轮摆放之后得到的布局反馈信息,对当前轮的相邻摆放的两个组件之间的摆放距离,即相对位置关系进行调整,即能够使得当前轮在芯片板上位置摆放更加合理,即能够使得当前轮相对于上一轮来说,芯片板上摆放的相邻组件之间的距离更加紧凑;如此,一直迭代直至后续芯片板上摆放的组件更加紧凑,且对应的布局满足预设布局指标;最后,将满足预设布局指标对应的芯片板上的布局图,确定为待布局芯片的目标布局图;这样,可以通过多轮迭代摆放,其中上一轮已摆放组件的位置信息和上一轮最终摆放结束之后对应的布局反馈信息,对当前轮摆放组件的摆放位置进行调整,即对当前轮在芯片板上相邻摆放的两个组件之间的距离进行调整,使得当前轮在芯片板上待摆放组件会倾向于离已摆放组件距离更近;如此,能够在加速芯片布局设计的迭代速度的基础上,实现更优的芯片布局,如组件之间的排布更加合理,同时能够降低芯片布局设计时所依赖的算力。
10.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
11.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
12.图1为本技术实施例提供的第一种芯片布局方法的流程示意图;
13.图2为本技术实施例提供的第二种芯片布局方法的流程示意图;
14.图3为本技术实施例提供的第三种芯片布局方法的流程示意图;
15.图4a为本技术实施例提供的芯片板上摆放组件的概率分布示意图;
16.图4b为本技术实施例提供的芯片板上摆放一个组件之后所对应的概率分布示意图;
17.图4c为本技术实施例提供的芯片板上摆放第二个组件时所对应的摆放概率示意图;
18.图5a为本技术实施例提供的对待布局芯片进行第一轮组件摆放的示意图;
19.图5b为本技术实施例提供的对待布局芯片进行第二轮组件摆放的示意图;
20.图6为本技术实施例提供的一种芯片布局装置的组成结构示意图;
21.图7为本技术实施例提供的一种计算机设备的组成机构示意图。
具体实施方式
22.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本技术实施例,但不用来限制本技术实施例的范围。
23.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
24.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
25.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术实施例的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术实施例。
26.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
27.1)芯片布局:是芯片设计过程中最关键且最耗时的步骤之一。布局任务需要将电路图(netlist)中的各类组件,包括宏元件(macro)如触发器、算术逻辑单元等和标准元件(standard cell)即逻辑门放置到芯片板的对应位置。
28.2)强化学习:又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题;其中,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价,而不是告诉强化学习系统如何去产生正确的动作。由于外部环境提供的信息很少,强化学习系统必须靠自身的经历进行学习。通过这种方式,强化学习系统在动作-评价的环境中获得知识,改进后续动作以适应环境。
29.3)迭代:迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
30.下面说明本技术实施例提供的芯片布局的设备的示例性应用,本技术实施例提供的设备可以实施为能够运行代码的笔记本电脑,平板电脑,台式计算机,相机,移动设备(例如,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为终端或服务器时示例性应用。
31.该方法可以应用于计算机设备,该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。
32.本技术实施例提供一种芯片布局方法,如图1所示,为本技术实施例提供的第一种芯片布局方法的流程示意图;结合图1所示步骤进行以下说明:
33.步骤s101,获取待布局芯片中的至少两个组件。
34.在一些实施例中,待布局芯片可以指代微电路、微芯片或晶片,其为需制造在半导
体晶圆表面上的一种电路;同时待布局芯片可以是模拟集成电路或数字集成电路,还可以是混合信号集成电路,即模拟和数字集成在一个芯片上。
35.在一些实施例中,获取待布局芯片中的至少两个组件,可以是芯片布局装置响应于外界输入的电路图获取的,也可以是对待布局芯片对应的电路图进行解析得到的;其中,至少两个组件可以包括待布局芯片中的宏元件和标准元件,还可以仅指代待布局芯片中的宏元件。
36.这里,待布局芯片中的宏元件和标准元件,可以基于元件的面积参数来区分,即可以将待布局芯片中的元件按照元件的面积参数来区分,将元件的面积参数大于预设面积阈值的元件,确定为宏元件,同时将元件的面积参数小于或等于预设面积阈值的元件,确定为标准元件;其中,该预设面积阈值可以是由eda工具确定的,也可以是基于待布局芯片的属性确定的。示例性地,可以将电阻或电容等面积较小的元件确定为标准元件,并将触发器或存储器等面积较大的元件确定为宏元件;还可以将静态随机存取存储器(static random-access memory,sram)确定为宏元件,并将或非门(nor gate)确定为标准元件。
37.在一些实施例中,待布局芯片其对应的处理信号可以是模拟信号,也可以是数字信号,同时待布局芯片可以基于使用功能和应用场景进行划分。
38.这里,因单个芯片上有数百万或数十亿个组件,因此难以单独定位和连接芯片中的每个组件;且实际应用中芯片太小,难以焊接和连接。进而设计人员使用专用编程语言来创建小型电路元件并将它们组合起来,从而逐步增加芯片上组件的尺寸和密度,以满足应用需求,即为芯片布局。
39.在一些实施例中,待布局芯片中的至少两个组件,可以包括晶体管、电阻、电容或触发器等。
40.步骤s102,获取第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息。
41.在一些实施例中,所述评估信息包括对所述芯片板上所述已摆放组件对应的布局图进行性能评估得到的信息;所述n为大于1的整数。
42.在一些实施例中,可以将待布局芯片中的至少两个组件,在芯片板上进行多轮次的摆放;其中,每一轮次的摆放为按照预设摆放顺序,将至少两个组件摆放至芯片板上;这里,芯片板的尺寸可以随实际需求而定,或芯片板的尺寸是基于待布局芯片的属性确定的;同时待布局芯片的属性可以指代待布局芯片的功能参数等。
43.这里,在将至少两个组件在芯片板上摆放时,不同轮次在芯片板上已摆放组件的数量可以相同,也可以不同;示例性地,第一轮在芯片板上已摆放组件,包括至少两个组件中的三个组件,第二轮在芯片板上已摆放组件,包括至少两个组件中的四个组件;其中,第二轮在芯片板上已摆放组件中的四个组件,包括第一轮在芯片板上已摆放组件中三个组件。
44.在一些实施例中,将至少两个组件在芯片板上进行多轮次的摆放,即当前轮摆放的组件的数量,大于或等于上一轮摆放的组件的数量,其进行多轮次的摆放直至在芯片板上摆放有待布局芯片中的至少两个组件对应的全部组件,且其对应的摆放布局需满足预设布局指标。
45.在一些实施例中,在对待布局芯片中的至少两个组件进行多轮次的迭代摆放过程
中,获取任一轮,即第n-1轮在芯片板上已摆放组件的位置信息和第n-1轮的评估信息;其中,第n-1轮在芯片板上已摆放组件的位置信息,即包括第n-1轮在芯片板上的每一已摆放组件的位置信息;同时第n-1轮的评估信息,即为对第n-1轮在芯片板上已摆放组件对应的布局图进行性能评估得到的信息,这里,第n-1轮在芯片板上已摆放组件对应的布局图,即为第n-1轮摆放在芯片板上的已摆放组件进行走线布局,得到对应的布局图。
46.在一些实施例中,对相关布局图的性能进行评估得到信息,可以是使用预设布局指标对相关布局图的性能进行评估;这里的评估,可以指代在性能、功耗以及面积等中的一个或多个方面进行评估。
47.在一些实施例中,评估信息可以使用数字进行表示,例如:0.9、0.3或0.2等,还可以使用文字进行表示,例如:通过,未通过等进行表示。
48.步骤s103,基于所述第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息,对第n轮在所述芯片板上相邻摆放的两个组件之间的距离进行调整,直至所述第n轮的评估信息指示所述芯片板上的布局图满足预设布局指标。
49.在一些实施例中,可以将获取的第n-1轮在芯片板上已摆放组件的位置信息,以及第n-1轮的评估信息,作为下一轮,即第n轮在芯片板上相邻摆放的两个组件之间的距离的反馈信息。
50.这里,可以基于第n-1轮已摆放组件的位置信息,和第n-1轮摆放之后得到的布局对应的评估信息,对第n轮相邻摆放的两个组件之间的距离进行调整;其中,可以是将第n轮相邻摆放的两个组件之间的距离缩小,或扩大,这里的缩小或扩大可以是相对于是第n-1轮相邻摆放的两个组件之间的距离来说的。
51.在一些实施例中,基于第n-1轮在芯片板上已摆放组件的位置信息和第n-1轮的评估信息,对第n轮在芯片板上相邻摆放的两个组件之间的距离进行调整,直至获得的第n轮的评估信息指示芯片板上的布局图满足预设布局指标;即通过多轮迭代调整,直至获得的评估信息满足预设布局指标,即在芯片板上摆放的已摆放组件对应的布局图的性能满足预设布局指标。
52.在一些实施例中,可以基于第n-1轮在芯片板上已摆放组件的位置信息和第n-1轮的评估信息,缩小第n轮在芯片板上第j组件与第k组件之间的摆放距离;这里,缩小第n轮在芯片板上第j组件与第k组件之间的摆放距离时,需考虑到第j组件与第k组件之间的电磁干扰;其中,第j组件为在第n-1轮在芯片板上第j个已摆放组件;j为大于1的整数,k为小于j的正整数。
53.步骤s104,将满足所述预设布局指标对应的所述芯片板上的布局图,确定为所述待布局芯片的目标布局图。
54.在一些实施例中,可以将满足该预设布局指标对应的芯片板上的布局图,确定为目标布局图;这里,通过上述步骤的多轮迭代调整,得到的在不违反布局密度和布线拥塞等约束条件的情况下,综合考虑功率、性能和面积等指标,尽可能让各项指标最小化的布局图;其中,满足该预设布局指标对应的芯片板上的布局图,即为对对应的芯片板上的每一已摆放组件进行走线,得到的布局图;且这里在芯片板上的已摆放组件即包括待布局芯片中的至少两个组件。
55.在一些实施例中,待布局芯片为一逻辑电路的情况下,将逻辑电路映射至物理电
路的过程中,即进行芯片布局设计时,可以首先对逻辑电路中包括的元器件,即组件进行确定,即获取该逻辑电路中包括的多个组件,以便后续对其进行走线布局;其次,对该多个组件在芯片板上进行多轮放置以实现后续的组件布局的环节中,可以获取第n-1轮在芯片板上已摆放组件的位置信息和第n-1轮的评估信息,评估信息包括对芯片板上已摆放组件对应的布局图进行性能评估得到的信息;n为大于1的整数;这样可以实现后续将获取的上一轮已成功组件的位置信息以及上一轮摆放之后得到的布局反馈信息,作为下一轮组件摆放的参考;然后,基于第n-1轮在芯片板上已摆放组件的位置信息和第n-1轮的评估信息,对第n轮在芯片板上相邻摆放的两个组件之间的距离进行调整,直至获得的第n轮的评估信息指示芯片板上的布局图满足预设布局指标;这样,基于上一轮已摆放组件的位置信息以及上一轮摆放之后得到的布局反馈信息,对当前轮的摆放距离进行调整,即能够使得当前轮在芯片板上位置摆放更加合理,即能够使得当前轮相对于上一轮来说,芯片板上摆放组件之间的距离更加紧凑,即待摆放组件离已摆放组件的距离更近;如此,一直迭代直至后续芯片板上摆放的组件之间的距离更加紧凑,且对应的布局满足预设布局指标;最后,将满足预设布局指标对应的芯片板上的布局图,确定为待布局芯片的目标布局图;这样,通过多轮迭代摆放,其中,上一轮已摆放组件的位置信息和上一轮最终摆放结束之后对应的布局反馈信息,对当前轮摆放组件的摆放位置进行调整,即对当前轮在芯片板上相邻摆放的两个组件之间的距离进行调整,使得当前轮在芯片板上摆放的组件会倾向于离已摆放组件距离更近;如此,能够在加速芯片布局设计的迭代速度的基础上,实现更优的芯片布局,如组件之间的排布更加紧凑且合理,同时能够降低芯片布局设计时所依赖的算力。
56.本技术实施例提供的芯片布局方法,首先,获取待布局芯片中的至少两个组件;这样,获取到待布局芯片中需要进行布局走线的至少两个组件,为后续进行多轮布局提供基础;其次,获取第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息,所述评估信息包括对所述芯片板上所述已摆放组件对应的布局图进行性能评估得到的信息;所述n为大于1的整数;这样,可以实现后续将获取的上一轮已摆放组件的位置信息以及上一轮摆放之后得到的布局反馈信息,作为下一轮组件摆放的参考;然后,基于第n-1轮在芯片板上已摆放组件的位置信息和第n-1轮的评估信息,对第n轮在芯片板上相邻摆放的两个组件之间的距离进行调整,直至所述第n轮的评估信息指示所述芯片板上的布局图满足预设布局指标;这样,基于上一轮已摆放组件的位置信息以及上一轮摆放之后得到的布局反馈信息,对当前轮的相邻摆放的两个组件之间的摆放距离,即相对位置关系进行调整,即能够使得当前轮在芯片板上位置摆放更加合理,即能够使得当前轮相对于上一轮来说,芯片板上摆放的相邻组件之间的距离更加紧凑,即离已有的摆放更近;如此,一直迭代直至后续芯片板上摆放的组件更加紧凑,且对应的布局满足预设布局指标,即迭代收敛;最后,将满足预设布局指标对应的芯片板上的布局图,确定为待布局芯片的目标布局图;这样,可以通过多轮迭代摆放,其中上一轮已摆放组件的位置信息和上一轮最终摆放结束之后对应的布局反馈信息,对当前轮摆放组件的摆放位置进行调整,即对当前轮在芯片板上相邻摆放的两个组件之间的距离进行调整,使得当前轮在芯片板上待摆放组件会倾向于离已摆放组件距离更近;如此,能够在加速芯片布局设计的迭代速度的基础上,实现更优的芯片布局,如组件之间的排布更加紧凑且合理,同时能够降低芯片布局设计时所依赖的算力。
57.在一些实施例中,首先,获取待布局芯片对应的电路图,即获取包括多个组件以及
多个组件之间连接关系的电路图,为后续获取至少两个组件提供基础;然后,确定电路图中对应的原始组件集合,即将电路图中包括的原始组件进行提取,并在该原始组件集合中,确定属性信息满足预设属性的至少两个组件;这里,即对待布局芯片中的组件进行筛选过滤,得到优先进行走线布局的组件,例如待布局芯片的宏元件;其中,因待布局芯片中的宏元件其相对于其他组件来说,尺寸较大且数量较少,可优先对其进行布局;如此,能够提高后续待布局芯片的整体布局的速度和精度,即上述步骤s101可以通过以下步骤s201至步骤s203来说,如图2所示,为本技术实施例提供的第二种芯片布局方法的流程示意图,结合图1和图2所示的步骤进行以下说明:
58.步骤s201,获取所述待布局芯片对应的电路图。
59.在一些实施例中,可响应于外界输入的信息,得到待布局芯片对应的电路图;这里,电路图内部待布局芯片所对应的多个元器件,以及多个元器件之间的连接关系。
60.步骤s202,确定所述电路图中的原始组件集合。
61.在一些实施例中,确定该电路图中的原始组件集合,其中,该原始组件集合包括但不限于:电阻、电容器、电位器、电子管、机电元件、连接器等;其中,该原始组件集合中原始组件的数量和种类,可随待布局芯片的功能来确定。
62.步骤s203,在所述原始组件集合中,确定属性信息满足预设属性的所述至少两个组件。
63.在一些实施例中,在原始组件集合中,确定属性信息满足预设属性的至少两个组件,即从中筛选属性信息满足预设属性的组件,这里可以是将宏元件从原始组件集合中筛选。
64.在一些实施例中,在原始组件集合中,属性信息可以指代组件的面积信息,例如,可以在原始组件集合中,将面积大于预设面积的至少两个组件筛选出来。这里需指出,实际应用过程中,对于待布局芯片来说,面积较大,如面积大于预设面积的至少两个组件,在原始组件集合中所占数量较少,而面积较小,如面积小于或等于预设面积的组件,在原始组件集合中所占数量较多。如:待布局芯片中涉及的存储组件通常数量较少且面积较大,而相关电阻或电容则数量较多且面积较小。
65.在一些实施例中,在原始组件集合中,属性信息可以指代组件尺寸对应的长宽比,例如,可以在原始组件集合中,确定组件尺寸对应的长宽比满足于预设长宽比,如大于预设长宽比数值的至少两个组件。
66.在一些实施例中,可以是在原始组件集合中,确定组件尺寸对应的长宽比大于预设长宽比,且组件的面积大于预设面积阈值的至少两个组件。这里,该属性信息即包括组件的长宽比和组件的面积。
67.在一些实施例中,首先,可以对获取的第n-1轮在芯片板上已摆放组件的位置信息进行评估,得到第n-1轮在芯片板上每一已摆放组件的摆放得分;这样,能够实现对第n-1轮在芯片板上每一已摆放组件的摆放位置进行评估,即可以采用第n-1轮在芯片板上每一已摆放组件的摆放得分,表征第n-1轮在芯片板上每一已摆放组件的摆放合理性;然后将第n-1轮在芯片板上每一已摆放组件的摆放得分和第n-1轮的评估信息,作为下一轮即第n轮进行组件摆放的过程中的参考信息,即将第n-1轮在芯片板上每一已摆放组件的摆放得分和第n-1轮的评估信息,反馈至第n轮在芯片板上进行组件摆放的过程中;这样,能够对应地调
整第n轮相邻摆放的两个组件之间的相对位置关系;例如,可以实现第n轮在芯片板上目标组件对应的面积,小于第n-1轮在芯片板上已摆放组件对应的面积;目标组件为第n轮在芯片版上已摆放组件中与第n-1轮在芯片板上已摆放组件相同的组件;如此,经过多次迭代,即将上述步骤进行多次重复,直至得到评估信息满足预设布局指标的芯片板上的布局图。即上述实施例提供的步骤s103可以通过以下步骤s301和步骤s302的方式来实现,如图3所示,为本技术实施例提供的第三种芯片布局的流程示意图,结合图1和图3所示的步骤进行以下说明:
68.步骤s301,对所述第n-1轮在芯片板上已摆放组件的位置信息进行评估,得到所述第n-1轮在所述芯片板上每一已摆放组件的摆放得分。
69.在一些实施例中,可以对获取的第n-1轮在芯片板上已摆放组件的位置信息进行评估,进而得到第n-1轮在芯片板上每一已摆放组件的摆放得分,这里的摆放得分可以用于表征第n-1轮在芯片板上每一已摆放组件的摆放合理性。
70.在一些实施例中,第n-1轮在芯片板上每一已摆放组件的摆放得分可以使用数字进行表示,例如:0.9表示摆放较为合理,0.1表示摆放不太合理等。
71.在一些实施例中,可以采用至少两个组件的摆放顺序,对第n-1轮在芯片板上每一已摆放组件的位置信息进行分析,进而获得第n-1轮在芯片板上每一已摆放组件对应的起始摆放区域和结束摆放区域;例如,按照摆放顺序,对应地分析得到每一已摆放组件摆放至芯片板之前和之后各自对应的区域,进而基于该区域,得到第n-1轮在芯片板上每一已摆放组件对应的起始摆放区域和结束摆放区域;然后,可基于该结束摆放区域和起始摆放区域,对第n-1轮在芯片板上每一已摆放组件的位置信息进行评估,以得到第n-1轮每一已摆放组件在芯片板上的摆放得分。这样,基于摆放之前的起始摆放区域和摆放之后的结束摆放区域,对已摆放的位置信息进行评估,得到对应的摆放得分,即能够较为便捷且精准地确定出第n-1轮每一摆放组件的摆放合理性;即上述步骤s301可以通过以下步骤s3011和步骤s3012的方式来实现(图中未示出):
72.步骤s3011,采用所述至少两个组件的摆放顺序,对所述第n-1轮在所述芯片板上每一已摆放组件的位置信息进行分析,得到所述第n-1轮在所述芯片板上每一已摆放组件对应的起始摆放区域和结束摆放区域。
73.在一些实施例中,摆放顺序可以是事先设定好的,也可以是基于至少两个组件之间的连接关系等来确定。示例性地,可以基于至少两个组件中每一组件在待布局芯片中对应的功能,确定每一组件的摆放序号;例如:首先,可以将实现供电功能所对应组件的进行摆放;其次,对实现计时功能所对应的组件进行摆放;然后,对实现存储功能的组件进行摆放,依次类推。
74.在一些实施例中,采用至少两个组件的摆放顺序,对第n-1轮在芯片板上每一已摆放组件的位置信息进行分析,即基于该摆放顺序,得到第n-1轮在芯片板上每一已摆放组件在摆放之前,该芯片板上预留的可摆放组件的区域,即起始摆放区域,以及每一已摆放组件在芯片板上摆放之后,该芯片板上预留的可摆放组件的区域,即结束摆放区域。
75.在一些实施例中,该结束摆放区域的面积小于起始摆放区域的面积。
76.在一些实施例中,可以是采用摆放顺序,对第n-1轮在芯片板上每一已摆放组件的位置信息进行分析,获得第n-1轮在芯片板上第i组件摆放之前对应的第一已摆放区域以及
摆放之后对应的第二已摆放区域;这样,确定第i组件摆放之前对应的第一已摆放区域以及摆放之后对应的第二已摆放区域,可以为后续摆放第i组件提供摆放基础,同时能够较为精准地确定第i组件对应的起始摆放区域和结束摆放区域;然后,采用第i组件的尺寸,对第一已摆放区域进行调整,得到第n-1轮第i组件在芯片板上的起始摆放区域,以及采用第i+1组件的尺寸,对第二已摆放区域进行调整,得到第n-1轮在芯片板上第i组件的结束摆放区域;这样,可以避免相邻摆放组件在芯片板上的摆放位置存在重叠的现象,即能够提高第n-1轮每一组件的摆放效率和精准度,即上述步骤s3011可以通过以下过程来实现:
77.第一步,采用所述摆放顺序,对所述第n-1轮在所述芯片板上每一已摆放组件的位置信息进行分析,获得所述第n-1轮在所述芯片板上第i组件摆放之前对应的第一已摆放区域以及摆放之后对应的第二已摆放区域。
78.在一些实施例中,所述第i组件为所述已摆放组件中第i个被摆放的组件;所述i为大于等于1的整数;
79.在一些实施例中,采用摆放顺序,对第n-1轮在芯片板上每一已摆放组件的位置信息进行分析,获得第n-1轮在芯片板上第i组件摆放之前对应的第一已摆放区域以及摆放之后对应的第二已摆放区域。
80.这里,第一已摆放区域和第二已摆放区域均为芯片板上已摆放有组件的区域,其中,第二已摆放区域的面积要大于第一已摆放区域。
81.在一些实施例中,在i为1的情况下,第一已摆放区域可以指代芯片板上的所有区域。
82.第二步,采用所述第i组件的尺寸,对所述第一已摆放区域进行调整,得到所述第n-1轮第i组件在所述芯片板上的起始摆放区域。
83.在一些实施例中,可以基于第i组件的尺寸,对第一已摆放区域的尺寸进行调整,得到第n-1轮第i组件在芯片板上的起始摆放区域。
84.第三步,基于所述第i+1组件的尺寸,对所述第二已摆放区域进行调整,得到所述第n-1轮在所述芯片板上第i组件的结束摆放区域。
85.在一些实施例中,可以基于第i+1组件的尺寸,对第二已摆放区域的尺寸进行调整,得到第n-1轮第i组件在芯片板上的结束摆放区域。
86.在一些实施例中,首先,采用第n-1轮第i组件的尺寸,对第一已摆放区域进行外扩,得到第一中间区域;然后,将芯片板上除第一中间区域之外的区域,确定为第n-1轮第i组件在芯片板上的起始摆放区域;这样,将第一已摆放区域基于第i组件的尺寸进行外扩,能够避免在摆放第i组件的过程中,与已摆放的组件之间存在重叠的现象,即实现将起始摆放区域确定为第i组件的中心的预设摆放区域;如此,能够提高第n-1轮第i组件的摆放效率和精准度。即上述步骤中涉及的“基于所述第i组件的尺寸,对所述第一已摆放区域进行调整,得到所述第n-1轮第i组件在所述芯片板上的起始摆放区域”可以通过以下过程来实现:
87.采用所述第n-1轮第i组件的尺寸,对所述第一已摆放区域进行外扩,得到第一中间区域,并将所述芯片板上除所述第一中间区域之外的区域,确定为所述第n-1轮第i组件在所述芯片板上的起始摆放区域。
88.在一些实施例中,可以将第一已摆放区域的周围全部进行外扩,外扩的尺寸为第n-1轮第i组件的尺寸,进而以得到第一中间区域。这里,第一中间区域可以将第一已摆放区
域进行包围,且第一已摆放区域与第一中间区域之间的相对间距为第i组件的尺寸。
89.在一些实施例中,将芯片板上除第一中间区域之外的区域,确定为第n-1轮第i组件在芯片板上的起始摆放区域;这样,即可将第n-1轮第i组件的中心摆放至该起始摆放区域的任一位置处,即能够避免第i组件与已摆放组件之间摆放的重叠现象。
90.和/或,采用第n-1轮第i+1组件的尺寸,对第二已摆放区域进行外扩,得到第二中间区域;然后,将芯片板上除第二中间区域之外的区域,确定为第n-1轮第i组件在芯片板上的结束摆放区域,这样,将第二已摆放区域基于第i+1组件的尺寸进行外扩,能够避免在摆放第i+1组件的过程中,与已摆放的组件,如第i组件之间存在重叠的现象,即实现将结束摆放区域确定为第i+1组件的中心的预设摆放区域;如此,能够提高第n-1轮每一组件的摆放效率和精准度。即上述步骤中涉及的“基于所述第i+1组件的尺寸,对所述第二已摆放区域进行调整,得到所述第n-1轮在所述芯片板上第i组件的结束摆放区域”可以通过以下过程来实现:
91.采用所述第n-1轮第i+1组件的尺寸,对所述第二已摆放区域进行外扩,得到第二中间区域,并将所述芯片板上除所述第二中间区域之外的区域,确定为所述第n-1轮第i组件在所述芯片板上的结束摆放区域。
92.在一些实施例中,可以将第n-1轮第i+1组件的尺寸,对第二已摆放区域进行外扩,得到第二中间区域,这里的外扩与上述采用所述第n-1轮第i组件的尺寸,对所述第一已摆放区域进行外扩,得到第一中间区域的实现方式相同,此处不再赘述。
93.在一些实施例中,将芯片板上除第二中间区域之外的区域,确定为第n-1轮第i组件在芯片板上的结束摆放区域;这样,即能够避免第i组件与后续摆放组件之间摆放的重叠现象。
94.步骤s3012,基于所述结束摆放区域与所述起始摆放区域,对所述第n-1轮在所述芯片板上每一已摆放组件的位置信息进行评估,得到所述第n-1轮每一已摆放组件在芯片板上的摆放得分。
95.在一些实施例中,可以将该结束摆放区域和起始摆放区域进行比较,得到区域比较得分,然后将该区域比较得分,确定为每一已摆放组件在所述芯片板上的摆放得分。
96.在一些实施例中,首先可以将结束摆放区域的面积和起始摆放区域的面积进行比较,得到一比分,即面积比较得分,进而可以将该面积比较得分,确定为第n-1轮每一已摆放组件在芯片板上的摆放得分;这样,通过摆放前后两个区域的面积比较,获取到较为直接地表征摆放组件合理性的评估信息;例如,若结束摆放区域和起始摆放区域进行比较,得到的区域比较得分较低,则表征结束摆放区域相对于起始摆放区域来说,要小很多,则表征第n-1轮第i组件摆放占用较多位置,进而可能使得后续可摆放区域较小,即表征第n-1轮第i组件的摆放位置较差,不太合理;同理,若结束摆放区域和起始摆放区域进行比较,得到区域比较得分较高,则表征结束摆放区域相对于起始摆放区域来说,面积比较接近,则表征第n-1轮第i组件摆放占用位置较少,进而可能使得后续可摆放区域较多,即表征第n-1轮第i组件的摆放位置较合理,即上述步骤s3012可以通过以下步骤来实现:
97.首先,对所述结束摆放区域的面积与所述起始摆放区域的面积进行比较,得到面积比较得分。
98.在一些实施例中,可以对该结束摆放区域和起始摆放区域直接进行面积比对,得
到区域比较得分。
99.其次,将所述面积比较得分,确定为所述第n-1轮每一已摆放组件在所述芯片板上的摆放得分。
100.在一些实施例中,将该面积比较得分,直接确定为第n-1轮每一已摆放组件在芯片板上的摆放得分。
101.在一些实施例中,在摆放得分对应的分数范围为(0,1)之间的情况下,若第n-1轮存在已摆放组件在芯片板上的摆放得分接近1,则表征第n-1轮该已摆放组件在芯片板上的位置摆放较为合理;若第n-1轮存在已摆放组件在芯片板上的摆放得分接近0,则表征第n-1轮该已摆放组件在芯片板上的位置摆放不合理。
102.步骤s302,基于所述第n-1轮在所述芯片板上每一已摆放组件的摆放得分和所述第n-1轮的评估信息,调整所述第n轮在所述芯片板上相邻摆放的两个组件之间的相对位置关系,直至所述第n轮的评估信息指示所述芯片板上的布局图满足所述预设布局指标。
103.在一些实施例中,所述第n轮在所述芯片板上目标组件对应的摆放面积,小于所述第n-1轮在芯片板上已摆放组件对应的摆放面积;所述目标组件为所述第n轮在所述芯片版上已摆放组件中与所述第n-1轮在所述芯片板上已摆放组件相同的组件。
104.在一些实施例中,基于第n-1轮在芯片板上每一已摆放组件的摆放得分和第n-1轮的评估信息,共同作为调整参数,来调整第n轮在芯片板上相邻摆放的两个组件之的相对位置关系,重复该步骤直至获得的第n轮的评估信息指示芯片板上的布局图满足预设布局指标。
105.实际应用环节中,通常在进行芯片布局环节中,开始进行芯片布局时各组件之间的距离尽可能大,这样能降低各组件之间电磁干扰带来的影响,且后续对组件之间进行走线易实现,这样会出现后续布局对应的面积、性能以及功率存在增大的概率;在此基础上,可通过对组件进行多轮摆放,即基于第n-1轮在芯片板上每一已摆放组件的摆放得分和第n-1轮的评估信息,共同作为调整参数,来缩小第n轮在芯片板上相邻摆放的两个组件之间的距离,直至获得的第n轮的评估信息指示芯片板上的布局图,在综合考虑面积、性能以及功率等指标的情况下,为各项指标最小化的目标布局图。
106.在一些实施例中,基于第n-1轮已摆放组件的位置信息和第n-1轮摆放之后得到的布局反馈信息,缩小第n轮在芯片板上第j组件与第k组件之间的摆放距离,重复该步骤直至获得的评估信息满足预设布局指标;第j组件为第n-1轮在芯片板上第j个已摆放组件;j为大于1的整数,k为小于j的正整数;这样,能够使得第n轮在芯片板上位置摆放更加合理,即能够使得第n轮相对于第n-1轮来说,芯片板上摆放组件之间的距离更加紧致;如此,通过多轮摆放,能够在加速芯片布局设计的迭代速度的基础上,实现更优的芯片布局,如组件之间的排布更加紧凑且合理,同时能够降低芯片布局设计时所依赖的算力;即上述步骤s302可以通过以下步骤实现:
107.基于所述第n-1轮在所述芯片板上每一已摆放组件的摆放得分和所述第n-1轮的评估信息,缩小所述第n轮在所述芯片板上第j组件与第k组件之间的摆放距离,重复上述步骤直至所述第n轮的所述评估信息指示所述芯片板上的布局图满足所述预设布局指标。
108.其中,所述第j组件为在所述第n-1轮在所述芯片板上第j个已摆放组件;j为大于1的整数,k为小于j的正整数。
109.在一些实施例中,基于第n-1轮在芯片板上每一已摆放组件的摆放得分和第n-1轮的评估信息,缩小第n轮在芯片板上第j组件与第k组件之间的摆放距离,重复该步骤直至获得的评估信息满足预设布局指标。这里,缩小第n轮在芯片板上第j组件与第k组件之间的摆放距离,是相对于第n-1轮在芯片板上第j组件与第k组件之间的摆放距离来说的;同时在缩小第n轮在芯片板上第j组件与第k组件之间的摆放距离时,需考虑到第j组件与第k组件之间因距离关系而出现相关电磁干扰现象。
110.在一些实施例中,例如,在第j组件为在第n-1轮在芯片板上第3个已摆放组件,且第k组件为第n-1轮在芯片板上第1个已摆放组件和第2个已摆放组件的情况下;这里,可以基于第n-1轮在芯片板上每一已摆放组件的摆放得分和第n-1轮的评估得分,即基于第n-1轮在芯片板上第1个已摆放组件的摆放得分、第2个已摆放组件的摆放得分、第3个已摆放组件的摆放得分以及第n-1轮的评估得分,缩小第n轮中在芯片板上第2个摆放组件和第1个已摆放组件之间的距离,并缩小第n轮中在芯片板上第3个摆放组件,与第1个已摆放组件和/或第2个已摆放组件之间的距离。这里,可以指代缩小第n轮在芯片板上的第3组件,与第2组件之间的摆放距离,也可以指代缩小第n轮在芯片板上的第3组件与第1组件之间的摆放距离;也可以指代同时缩小第n轮在芯片板上的第3组件与第1组件之间的摆放距离,第3组件与第2组件之间的摆放距离。
111.在一些实施例中,首先可以获取至少两个组件之间的连接信息,进而基于该连接信息和芯片板上已摆放组件的位置信息,在芯片板上进行布局走线,得到第n-1轮的布局图;这样,可以得到第n-1轮进行组件摆放之后对应的布局图,最后,采用预设布局指标,对第n-1轮的布局图的性能进行评估,得到第n-1轮的评估信息;这样,能够较为便捷地获取到第n-1轮的评估信息,即获取第n-1轮的评估信息可以通过以下方式来获取:
112.第一步,获取所述至少两个组件之间的连接信息。
113.在一些实施例中,获取至少两个组件之间的连接信息,这里的连接信息可以是基于待布局芯片对应的电路图确定的;例如,组件1的输入作为组件的输出,组件2的输出和组件3的输出作为组件4的输入。
114.第二步,基于所述连接信息和所述芯片板上已摆放组件的位置信息,在所述芯片板上进行布局走线,得到所述第n-1轮的布局图。
115.在一些实施例中,在至少两个组件均为宏元件的情况下,可以是将宏元件布局完成之后,再将标准元件按照预设策略填充至该芯片板上;进而基于连接信息和芯片板上已摆放组件的位置信息,在芯片上进行布局走线,即对已摆放组件按照该连接信息,进行布局走线,得到第n-1轮的布局图。
116.第三步,采用所述预设布局指标,对所述第n-1轮的布局图进行性能评估,得到所述第n-1轮的评估信息。
117.在一些实施例中,可以采用预设布局指标,对第n-1轮的布局图的性能进行评估,得到第n-1轮的评估信息,该评估信息可以用:合格,不合格;通过,未通过等进行表征,还可以使用数字进行表示,例如:0.9、0.5等进行表示。
118.在一些实施例中,首先可以依次基于预设布局指标中携带的面积指标、性能指标以及功耗指标,对应地对第n-1轮的布局图的面积参数、性能参数、功耗参数进行评估,得到对应的评估参数;然后对得到的三个评估参数进行综合分析,得到该第n-1轮的评估信息;
即上述步骤中“采用所述预设布局指标,对所述第n-1轮的布局图进行性能评估,得到所述第n-1轮的评估信息”可以通过以下步骤来实现:
119.首先,采用所述预设布局指标中的面积指标,对所述第n-1轮的布局图的面积参数进行评估,得到第一评估参数。
120.在一些实施例中,采用预设布局指标中的面积指标,对第n-1轮的布局图的面积参数进行评估,得到第一评估参数;该第一评估参数可以是一个数字,也可使用文字进行表征。
121.在一些实施例中,可以是将预设布局指标中的面积指标,对第n-1轮的布局图的面积参数进行比较;这里,在预设布局指标中的面积指标为一个预设面积范围的情况下,还可以基于第n-1轮的布局图的面积参数是否落在该预设面积范围之内来得到对应的第一评估参数。
122.其次,采用所述预设布局指标中的性能指标,对所述第n-1轮的布局图的性能参数进行评估,得到第二评估参数。
123.在一些实施例中,采用预设布局指标中的性能指标,对第n-1轮的布局图的性能参数进行评估的实现过程,与上述关于面积参数的评估类似,即可参考上述关于面积参数的评估,此处不再赘述。
124.然后,采用所述预设布局指标中的功耗指标,对所述第n-1轮的布局图的功耗参数进行评估,得到第三评估参数。
125.在一些实施例中,采用预设布局指标中的功耗指标,对第n-1轮的布局图的功耗参数进行评估的实现过程,与上述关于面积参数的评估类似,即可参考上述关于面积参数的评估,此处不再赘述。
126.最后,对所述第一评估参数、第二评估参数以及所述第三评估参数进行分析,得到所述第n-1轮的评估信息。
127.在一些实施例中,对所述第一评估参数、第二评估参数以及所述第三评估参数进行分析,得到所述第n-1轮的评估信息;例如,可以将三者进行总结,若其中一个不符合,则认为第n-1轮的评估信息为未通过。若三个全部符合,则认为第n-1轮的评估信息为通过。这里,还可以将三者对应的评估参数基于相关权重进行叠加,得到对应的数值,进而将该数值确定为第n-1轮的评估信息。
128.在一些实施例中,在至少两个组件为待布局芯片对应的原始组件集合中,属性信息满足预设属性的组件的情况下,基于本技术实施例提供的芯片布局方法,将待布局芯片中的至少两个组件进行布局,得到待布局芯片的目标布局图之后,可继续对待布局芯片对应的原始组件集合中,属性信息不满足预设属性的组件,如至少一个标准元件在芯片板上进行摆放,以实现对待布局芯片中的所有组件进行布局,即在得到目标布局图的基础上,继续在芯片板上摆放至少一个标准元件,同时继续至少一个标准元件与至少两个组件之间的连接关系进行布局走线,以实现对目标布局图进行调整,得到调整后的目标布局图,即本技术实施例提供的芯片布局方法还可以执行以下步骤:
129.第一步,在所述原始组件集合中,获取所述属性信息不满足所述预设属性的至少一个标准元件。
130.在一些实施例中,可以将待布局芯片对应的原始组件集合中,属性信息不满足预
设属性的至少一个标准元件;这里,属性信息的描述可参考上文步骤s203中的描述,此处不再赘述。
131.第二步,确定所述至少一个标准元件和所述至少两个组件之间的连接关系。
132.在一些实施例中,可以基于待布局芯片对应的电路图,确定至少一个标准元件和至少两个组件之间的连接关系,例如:组件1与标准元件1、标准元件2连接,同时组件2与标准元件2、标准元件3、标准元件4连接等。
133.第三步,基于所述连接关系和所述目标布局图,在所述芯片板上对所述至少一个标准元件进行摆放,得到所述至少一个标准元件在所述芯片板上的摆放信息。
134.在一些实施例中,可以基于连接关系和目标布局图,对至少一个标准元件进行摆放,例如:在标准元件1与组件1连接的情况下,可在芯片板上,基于目标布局图中组件1的摆放位置,将标准元件1摆放至包围组件1的周边目标区域,其中,该周边目标区域内无任何组件或标准元件摆放。
135.第四步,基于所述摆放信息和所述连接关系,对所述目标布局图进行调整,得到调整后的目标布局图。
136.在一些实施例中,需基于至少一个标准元件和至少两个组件之间的连接关系,对在芯片板上已经摆放的至少一个标准元件和至少两个组件进行布局走线;这里,可以基于该连接关系、至少一个标准元件在芯片板上的摆放信息以及目标布局图(其中,从该目标布局图中可以得到至少两个组件在芯片板上的摆放信息以及至少两个组件之间的布局走线),对芯片板上摆放的至少一个标准元件和至少两个组件进行布局走线,即对目标布局图进行布局走线的调整以及补充,进而得到调整后的目标布局图。
137.在一些实施例中,在实际应用中,待布局芯片的标准元件的数量,多于组件的数量,且标准元件的面积通常小于组件的面积,进而对标准元件进行摆放的环节中,可以将一个组件关联的多个标准元件(即该组件与多个标准元件之间存在连接关系),摆放至芯片板上该组件的摆放区域所对应的周边目标区域,其中,该周边目标区域内无任何组件或标准元件摆放;其中,摆放多个标准元件同样可参考本技术实施例提供的芯片布局方法,即对多个标准元件进行多轮迭代摆放,其中上一轮已摆放标准元件的位置信息和上一轮最终摆放结束之后对应的标准元件反馈信息,对当前轮摆放标准元件的摆放位置进行调整,即对当前轮在芯片板上相邻摆放的两个标准元件之间的距离进行调整,使得当前轮在周边目标区域上待摆放标准元件会倾向于离已摆放标准元件距离更近。
138.需说明的是,在实际应用中,待布局芯片的标准元件的数量,多于组件的数量,但标准元件的面积通常小于组件的面积,进而在对芯片进行布局环节中,通常需对数量较少且面积较大的组件,如:宏元件进行摆放得到目标布局图之后,再将数量较多其而面积较小的标准元件进行摆放;这样,能够在加速芯片布局设计的迭代速度的基础上,通过依次对宏元件、标准元件的进行摆放,使得得到的芯片布局中组件之间的排布更加紧凑且合理。
139.这里,本技术实施例提供的芯片布局方法中,涉及的布局走线,包括对摆放在芯片板上的至少两个组件进行布局走线,以及对摆放在芯片板上的至少两个组件和至少一个元件之间进行布局走线,需满足待布局芯片对应的总走线尽可能短,且在综合考虑线之间的串扰、电气间隔(电气间隙和爬电距离)等因素时,可进行多层板布线。
140.这里,使用本技术实施例提供的芯片布局方法,可应用至各种类型的芯片,如:计
算芯片(如:中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)等),存储芯片(如:随机存取存储器(random access memory,ram)、闪存(flash eeprom memory,flash)等),能源芯片(如:低压差线性稳压器(low dropout regulator,ldo)等);同时可将本技术实施例提供的芯片布局方法,应用至如:计算集群芯片、端边芯片的芯片布局环节中,即使得后续得到的芯片具有图像处理功能、信息采集功能、音/视频控制功能等,其涉及但不限于图像处理领域、计算机视觉领域等。
141.下面结合一个具体实施例对上述芯片布局方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本技术实施例,并不构成对本技术实施例的不当限定。
142.相关技术中,芯片布局设计是芯片由逻辑电路到物理电路的重要环节,布局的合理性会影响芯片的面积,能耗等指标,布局不合理甚至可能导致流片失败,造成重大损失。传统芯片布局设计比较依赖资深的设计人员利用eda工具做多轮迭代,整个过程可能耗费数月的时间。同时会利用强化学习来优化这一过程,使得算法输出的布局性能接近资深设计人员的水平。然而这些方法在应用到大规模芯片布局的设计时,找到一个合规的布局时均需依赖海量的计算资源,导致其难以被广泛应用。造成这个问题的根本原因在于监督信号的稀疏性,即只有在摆放完最后一个组件的时候才会得到反馈信号,而摆放过程中的其他轮次都没有反馈。
143.基于此,本技术实施例提供一种芯片布局方法,其主要用于解决利用强化学习设计芯片布局时算法收敛困难,即需要耗费大量计算资源的问题。本技术实施例提供的芯片布局方法,在待布局芯片包括多个组件的情况下,对该多个组件进行多轮迭代摆放的环节中,会基于上一轮组件摆放时确定的一个合规布局的期望,作为当前轮摆放组件的反馈。
144.其中,可基于策略梯度的强化学习算法,策略网络根据当前摆放情况的编码预测出该组件在下一轮摆放的概率分布。如图4a所示,为本技术实施例提供的芯片板上摆放组件的概率分布示意图;其中,不同颜色表示组件摆放在芯片板的该位置的概率,颜色越深表示概率越小;反之,颜色越浅表示概率越大。
145.同时如图4b所示,为本技术实施例提供的芯片板上摆放一个组件之后所对应的概率分布示意图;其中,在芯片板上摆放一个组件401之后,其占据的区域为不可摆放的区域,颜色相对于其他区域来说,较深,这样后续的组件不能与组件401当前位置有重叠。
146.且如图4c所示,为本技术实施例提供的芯片板上摆放第二个组件时所对应的摆放概率示意图;其中,当摆放下一个组件,即第二个组件时,图4b中所示的摆放组件401对应的区域,其摆放组件的概率会被置为零。
147.因此,在对待布局芯片每进行一轮组件摆放的环节中,每一轮在芯片板上摆放一个组件之后,会得到一个当前反馈信息,即可以是当前摆放后可行区域的面积与上一步摆放后可行区域的面积之间的比对,这一反馈信息可以使得后续该组件在下一轮摆放过程中,会倾向于离已有的摆放更近。
148.在待布局芯片包括三个组件:组件501、组件502以及组件503的情况下,如图5a所示,为本技术实施例提供的对待布局芯片进行第一轮组件摆放的示意图;即需将组件501、组件502以及组件503全部摆放至预设芯片板上;其中,首先进行第一步,对组件501在芯片板上进行摆放之后,并获取下一个需要摆放的组件502的尺寸,并将组件502的尺寸即组件502的边长包围在芯片板上摆放的组件501对应的区域,以得到区域504;这样,能够避免在
芯片板上摆放的下一个需要摆放的组件502与已摆放的组件501之间存在重叠的概率,即如图5a中所示,在第一轮摆放组件501之后,可将芯片板划分为三个区域,如图5a中使用三种不同填充进行表示;即组件501对应的摆放区域、组件502的中心对应的摆放概率需置0的区域504,以及组件502的中心可能摆放的区域505;然后,进行第一轮摆放的第二步,即摆放组件502,并在摆放组件502之后,同时获取下一个需要摆放的组件503的尺寸,并将组件503的尺寸即组件503的边长包围在芯片板上摆放的组件502对应的区域,以得到区域506;同样在第一轮摆放组件502之后,可将芯片板划分为五个区域,即:组件501对应的摆放区域、组件502的中心对应的摆放概率需置0的区域504、组件502对应的摆放区域、组件503的中心对应的摆放概率需置0的区域506,以及组件503的中心可能摆放的区域507;同时可发现若在区域507中任一位置摆放组件503,会存在无法将组件503完全摆放至芯片板上,进而第一轮摆放失败。
149.这时,可参考第一轮组件摆放过程中在芯片板上摆放组件501和组件502对应的位置信息,以及第一轮的布局反馈,即摆放失败,对第二轮组件摆放进行相应的调整,如图5b所示,为本技术实施例提供的对待布局芯片进行第二轮组件摆放的示意图;其中,第一步摆放组件501与第一轮中摆放组件501完全相同;即在芯片板上摆放组件501之后,可将芯片板划分为三个区域,即组件501对应的摆放区域、组件502的中心对应的摆放概率需置0的区域504,以及组件502的中心可能摆放的区域505;此时,在进行第二轮进行第二步,即在芯片板上摆放组件502时,参考第一轮摆放反馈的信息,即如图5a中的第二步摆放组件502之后,得到芯片板上划分的五个区域:组件501对应的摆放区域、组件502的中心对应的摆放概率需置0的区域504、组件502对应的摆放区域、组件503的中心对应的摆放概率需置0的区域506,以及组件503的中心可能摆放的区域507;这样因区域507会存在无法摆放组件503的情况;因此,可将组件502与组件501之间的摆放距离,相对于第一轮中摆放组件501和组件502之间的距离来说,进行缩小,如图5b中的第二轮摆放中的第二步所示,摆放组件502之后,可将芯片板上的区域划分为:组件501对应的摆放区域、组件502的中心对应的摆放概率需置0的区域508、组件502对应的摆放区域、组件503的中心对应的摆放概率需置0的区域509,以及组件503的中心可能摆放的区域510;然后继续执行组件503的摆放,即如图5中的第三轮摆放中的第三步所示,三个组件501、502以及503相邻摆放。这里,相对于第二轮摆放组件相对于第一轮摆放组件来说,组件502的中心,更靠近区域504的边界区域,进而使得后续组件503进行摆放的过程中,其全部部分在芯片板上合理摆放的概率会增加,如图5b所示,可将组件503的中心同样尽可能靠近区域509的边界区域,以便组件501、组件502以及组件503可在芯片板上合理摆放,即进行合理布局。
150.即基于本技术实施例提供的芯片布局方法,会基于上一轮每一次摆放反馈的监督信号,来动态调整当前轮摆放组件的位置,会使得当前轮摆放的相邻组件,相对于上一轮相邻摆放组件对应的位置关系来说,更加紧凑,即离已有的摆放更近,同时重复该操作进行迭代,直至后续有一轮摆放的元器件的位置紧凑,且布局满足要求。这里,即在进行下一轮摆放的环节中,组件摆放有一定的倾向性。这样,能够加速芯片布局设计的迭代速度的基础上,实现更优的芯片布局,即使得组件之间的布局更加紧凑且合理;同时能够降低芯片布局设计时所依赖的算力。同时,本技术实施例可降低芯片布局设计的门槛,使得更多初级设计人员在计算资源有限的情况下,也能达到和资深设计人员相近的布局设计水平。
151.基于前述的实施例,本技术实施例还提供一种芯片布局装置,如图6所示,为本技术实施例提供的一种芯片布局装置的组成结构示意图,其中,所述芯片布局装置600包括:
152.第一获取模块601,用于获取待布局芯片中的至少两个组件;
153.第二获取模块602,用于获取第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息,所述评估信息包括对所述芯片板上所述已摆放组件对应的布局图进行性能评估得到的信息;所述n为大于1的整数;
154.调整模块603,用于基于所述第n-1轮在芯片板上已摆放组件的位置信息和所述第n-1轮的评估信息,对第n轮在所述芯片板上相邻摆放的两个组件之间的距离进行调整,直至所述第n轮的评估信息指示所述芯片板上的布局图满足预设布局指标;
155.确定模块604,用于将满足所述预设布局指标对应的所述芯片板上的布局图,确定为所述待布局芯片的目标布局图。
156.在一些实施例中,所述第一获取模块601,还用于获取所述待布局芯片对应的电路图;确定所述电路图中的原始组件集合;在所述原始组件集合中,确定属性信息满足预设属性的所述至少两个组件。
157.在一些实施例中,所述调整模块603,还用于对所述第n-1轮在芯片板上已摆放组件的位置信息进行评估,得到所述第n-1轮在所述芯片板上每一已摆放组件的摆放得分;基于所述第n-1轮在所述芯片板上每一已摆放组件的摆放得分和所述第n-1轮的评估信息,调整所述第n轮在所述芯片板上相邻摆放的两个组件之间的相对位置关系,直至所述第n轮的评估信息指示所述芯片板上的布局图满足所述预设布局指标;其中,所述第n轮在所述芯片板上目标组件对应的摆放面积,小于所述第n-1轮在芯片板上已摆放组件对应的摆放面积;所述目标组件为所述第n轮在所述芯片版上已摆放组件中与所述第n-1轮在所述芯片板上已摆放组件相同的组件。
158.在一些实施例中,所述调整模块603,还用于采用所述至少两个组件的摆放顺序,对所述第n-1轮在所述芯片板上每一已摆放组件的位置信息进行分析,得到所述第n-1轮在所述芯片板上每一已摆放组件对应的起始摆放区域和结束摆放区域;基于所述结束摆放区域与所述起始摆放区域,对所述第n-1轮在所述芯片板上每一已摆放组件的位置信息进行评估,得到所述第n-1轮每一已摆放组件在芯片板上的摆放得分。
159.在一些实施例中,所述调整模块603,还用于用所述摆放顺序,对所述第n-1轮在所述芯片板上每一已摆放组件的位置信息进行分析,获得所述第n-1轮在所述芯片板上第i组件摆放之前对应的第一已摆放区域以及摆放之后对应的第二已摆放区域;所述第i组件为所述已摆放组件中第i个被摆放的组件;所述i为大于等于1的整数;基于所述第i组件的尺寸,对所述第一已摆放区域进行调整,得到所述第n-1轮第i组件在所述芯片板上的起始摆放区域;基于所述第i+1组件的尺寸,对所述第二已摆放区域进行调整,得到所述第n-1轮在所述芯片板上第i组件的结束摆放区域。
160.在一些实施例中,所述调整模块603,还用于采用所述第n-1轮第i组件的尺寸,对所述第一已摆放区域进行外扩,得到第一中间区域,并将所述芯片板上除所述第一中间区域之外的区域,确定为所述第n-1轮第i组件在所述芯片板上的起始摆放区域;和/或,采用所述第n-1轮第i+1组件的尺寸,对所述第二已摆放区域进行外扩,得到第二中间区域,并将所述芯片板上除所述第二中间区域之外的区域,确定为所述第n-1轮第i组件在所述芯片板
上的结束摆放区域。
161.在一些实施例中,所述调整模块603,还用于对所述结束摆放区域的面积与所述起始摆放区域的面积进行比较,得到面积比较得分;将所述面积比较得分,确定为所述第n-1轮每一已摆放组件在所述芯片板上的摆放得分。
162.在一些实施例中,所述调整模块603,还用于基于所述第n-1轮在所述芯片板上每一已摆放组件的摆放得分和所述第n-1轮的评估信息,缩小所述第n轮在所述芯片板上第j组件与第k组件之间的摆放距离;重复所述步骤直至所述第n轮的评估信息指示所述芯片板上的布局图满足所述预设布局指标;其中,所述第j组件为在所述第n-1轮在所述芯片板上第j个已摆放组件;j为大于1的整数,k为小于j的正整数。
163.在一些实施例中,所述第二获取模块602,还用于获取所述至少两个组件之间的连接信息;基于所述连接信息和所述芯片板上已摆放组件的位置信息,在所述芯片板上进行布局走线,得到所述第n-1轮的布局图;采用所述预设布局指标,对所述第n-1轮的布局图进行性能评估,得到所述第n-1轮的评估信息。
164.在一些实施例中,所述第二获取模块602,还用于采用所述预设布局指标中的面积指标,对所述第n-1轮的布局图的面积参数进行评估,得到第一评估参数;采用所述预设布局指标中的性能指标,对所述第n-1轮的布局图的性能参数进行评估,得到第二评估参数;采用所述预设布局指标中的功耗指标,对所述第n-1轮的布局图的功耗参数进行评估,得到第三评估参数;对所述第一评估参数、第二评估参数以及所述第三评估参数进行分析,得到所述第n-1轮的评估信息。
165.在一些实施例中,所述第一获取模块601,还用于在所述原始组件集合中,获取所述属性信息不满足所述预设属性的至少一个标准元件;所述调整模块603,还用于确定所述至少两个标准元件和所述至少两个组件之间的连接关系;基于所述连接关系和所述目标布局图,在所述芯片板上对所述至少一个标准元件进行摆放,得到所述至少一个标准元件在所述芯片板上的摆放信息;基于所述摆放信息和所述连接关系,对所述目标布局图进行调整,得到调整后的目标布局图。
166.这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术的装置实施例中未披露的技术细节,请参照本技术的方法实施例的描述而理解。
167.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述芯片布局方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是具有摄像头的智能手机、平板电脑等)执行本技术实施例各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
168.基于同一技术构思,本技术实施例提供一种计算机设备,用于实施上述方法实施例记载的芯片布局方法。图7为本技术实施例提供的一种计算机设备的组成结构示意图,如图7所示,所述计算机设备700包括:一个处理器701、至少一个通信总线704、通信接口702、
至少一个外部通信接口和存储器703。其中,通信接口702配置为实现这些组件之间的连接通信。其中,通信接口702可以包括显示屏,外部通信接口可以包括标准的有线接口和无线接口。其中所述处理器701,配置为执行存储器中的程序,以实现上述实施例提供的芯片布局方法。
169.对应地,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中任一所述的芯片布局方法。
170.相应地,本技术实施例中,还提供了一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时,用于实现上述实施例中任一所述的芯片布局方法。
171.相应地,本技术实施例中,还提供了一种计算机程序产品,当该计算机程序产品被电子设备的处理器执行时,其用于实现上述实施例中任一所述的芯片布局方法。
172.以上芯片布局装置、计算机设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同相应方法实施例相似的技术描述和有益效果,限于篇幅,可按照上述方法实施例的记载,故在此不再赘述。对于本技术实施例中的芯片布局装置、计算机设备和存储介质实施例中未披露的技术细节,请参照本技术的方法实施例的描述而理解。
173.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术实施例的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术实施例的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
174.在本技术实施例所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
175.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
176.另外,在本技术实施例各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程
序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
177.或者,本技术实施例上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术实施例各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本技术实施例的具体实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术实施例的保护范围之内。因此,本技术实施例的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1