CN112257377B - 器件布局方法、装置、电子设备和计算机可读存储介质 - Google Patents
器件布局方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112257377B CN112257377B CN202011178548.7A CN202011178548A CN112257377B CN 112257377 B CN112257377 B CN 112257377B CN 202011178548 A CN202011178548 A CN 202011178548A CN 112257377 B CN112257377 B CN 112257377B
- Authority
- CN
- China
- Prior art keywords
- pin
- connection
- target device
- distance
- placing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种器件布局方法、装置、电子设备和计算机可读存储介质。该器件布局方法用于对目标器件进行布局设计,目标器件包括至少一个引脚,该方法包括:确定目标器件在摆放区域的多个摆放方向;依次在多个摆放方向中的每个摆放方向下,确定目标器件和与目标器件连接的至少一个连接部之间的总距离,总距离是根据至少一个引脚和至少一个连接部之间的距离确定的;根据多个总距离,对多个摆放方向排序得到排序结果,以根据排序结果实现对目标器件的布局设计。该器件布局方法可以实现对器件的不同摆放方向的量化评估,便于用户选择合适的方向布置器件,从而实现器件的布局设计,能够缩短布线长度,提高空间利用率,提升器件之间的互联特性,提高布局合理性。
Description
技术领域
本公开的实施例涉及一种器件布局方法、装置、电子设备和计算机可读存储介质。
背景技术
在芯片设计中,通常每个芯片都会包含若干个功能器件。例如,芯片中可以包括逻辑单元、时序单元等宏模块。这些器件的摆放方向是芯片设计过程中的重要内容。
发明内容
本公开至少一个实施例提供一种器件布局方法,用于对目标器件进行布局设计,目标器件包括至少一个引脚,该方法包括:确定目标器件在摆放区域的多个摆放方向;依次在多个摆放方向中的每个摆放方向下,确定目标器件和与目标器件连接的至少一个连接部之间的总距离,其中,总距离是根据至少一个引脚和至少一个连接部之间的距离确定的;以及根据多个总距离,对多个摆放方向排序得到排序结果,以根据排序结果实现对目标器件的布局设计。
例如,本公开一实施例提供的器件布局方法还包括:根据排序结果,从多个摆放方向中确定目标器件的目标摆放方向。
例如,在本公开一实施例提供的器件布局方法中,依次在多个摆放方向中的每个摆放方向下,确定目标器件和与目标器件连接的至少一个连接部之间的总距离,包括:分别确定与至少一个引脚中的每个引脚相连接的连接部;计算每个引脚各自的子距离,其中,子距离是根据引脚和与引脚相连接的连接部之间的连接距离确定的;以及基于至少一个引脚的子距离得到总距离。
例如,在本公开一实施例提供的器件布局方法中,在引脚与多个连接部相连接的情形,子距离为引脚分别和多个连接部之间的连接距离之和,或者子距离为引脚分别和多个连接部之间的连接距离的加权和,每个连接部分配有对应的第一权重。
例如,在本公开一实施例提供的器件布局方法中,在引脚与一个连接部相连接的情形,子距离为引脚和一个连接部之间的连接距离。
例如,在本公开一实施例提供的器件布局方法中,在至少一个引脚为多个的情形,基于至少一个引脚的子距离得到总距离包括:将至少一个引脚的子距离相加的和作为总距离,或者将至少一个引脚的子距离的加权和作为总距离,其中,每个引脚分配有对应的第二权重。
例如,在本公开一实施例提供的器件布局方法中,在至少一个引脚为一个的情形,基于至少一个引脚的子距离得到总距离包括:将至少一个引脚的子距离作为总距离。
例如,在本公开一实施例提供的器件布局方法中,连接距离为曼哈顿距离或欧氏距离。
例如,在本公开一实施例提供的器件布局方法中,引脚和与引脚相连接的连接部之间的曼哈顿距离S1为:S1=|x2-x1|+|y2-y1|,其中,(x1,y1)为引脚的坐标,(x2,y2)为连接部的坐标。
例如,在本公开一实施例提供的器件布局方法中,连接部包括与至少一个引脚直接连接的连接部,和/或通过至少一个中间部与至少一个引脚间接连接的连接部。
例如,在本公开一实施例提供的器件布局方法中,分别确定与至少一个引脚中的每个引脚相连接的连接部包括:确定计算模式;响应于计算模式为第一模式,分别确定与至少一个引脚中的每个引脚间接连接的连接部;响应于计算模式为第二模式,分别确定与至少一个引脚中的每个引脚直接连接的连接部。
例如,在本公开一实施例提供的器件布局方法中,根据排序结果,从多个摆放方向中确定目标器件的目标摆放方向,包括:根据排序结果,从多个总距离中确定出最小的总距离;以及将最小的总距离对应的摆放方向作为目标摆放方向。
例如,在本公开一实施例提供的器件布局方法中,确定目标器件在摆放区域的多个摆放方向包括:使目标器件与摆放区域中的坐标轴之间的夹角分别为不同的预设值,以确定出多个摆放方向。
本公开至少一个实施例还提供一种器件布局装置,用于对目标器件进行布局设计,目标器件包括至少一个引脚,该器件布局装置包括:第一确定单元,配置为确定目标器件在摆放区域的多个摆放方向;第二确定单元,配置为依次在多个摆放方向中的每个摆放方向下,确定目标器件和与目标器件连接的至少一个连接部之间的总距离,其中,总距离是根据至少一个引脚和至少一个连接部之间的距离确定的;以及排序单元,配置为根据多个总距离,对多个摆放方向排序得到排序结果,以根据排序结果实现对目标器件的布局设计。
本公开至少一个实施例还提供一种电子设备,包括:处理器;存储器,包括一个或多个计算机程序模块;其中,一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现本公开任一实施例提供的器件布局方法的指令。
本公开至少一个实施例还提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的器件布局方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A和图1B示出了一种可以应用本公开实施例的器件布局方法的应用场景;
图2示出了本公开至少一个实施例提供的一种器件布局方法的流程图;
图3示出了本公开至少一个实施例提供的另一种器件布局方法的流程图;
图4A示出了图2所示的器件布局方法中步骤S220的一个实施例的流程示意图;
图4B示出了本公开另一实施例的器件布局的示意图;
图5示出了本公开至少一个实施例提供的一种器件布局方法的应用示例的流程图;
图6示出了本公开至少一个实施例提供的一种器件布局装置的示意框图;
图7为本公开一些实施例提供的一种电子设备的示意框图;
图8示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
图9示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在芯片设计领域,器件在芯片的摆放区域中的摆放方向可以影响芯片的布局效果。较优的摆放方向例如可以缩短布线长度,提高空间利用率。相关技术中,往往只能根据经验对器件进行摆放,而无法对器件的摆放方向进行评估,进而无法根据评估的结果来确定器件在芯片的摆放区域中较为合适的摆放方向。根据经验来确定摆放方向从而对器件进行摆放,往往会导致布线较长,空间利用率较差,布局合理性较低等问题。
本公开至少一个实施例提供一种器件布局方法、装置、电子设备和计算机可读存储介质。该器件布局方法可以实现对器件的不同摆放方向的量化评估,便于用户选择合适的方向来布置器件,从而实现器件的布局设计,能够缩短布线长度,提高空间利用率,提升器件之间的互联特性,提高布局合理性。
图1A和图1B示出了一种可以应用本公开实施例的器件布局方法的应用场景。
如图1A所示,在该应用场景中,芯片10的摆放区域100处(即,虚线所框出的区域)需要设置宏模块(即,MACRO)110。
宏模块110至少包括引脚111和引脚112,并且根据芯片的电路连接关系可以确定引脚111与连接部120连接,引脚112与连接部130和连接部140连接。
如图1A所示,宏模块110在摆放区域100处的摆放方向例如可以是A~F中的任意一种。如何快速地从摆放方向A~F中确定一种较佳的摆放方向是非常重要的。
如图1B所示,在该应用场景中,在芯片设计中涉及多个器件,多个器件彼此之间具有如图1B所示的连接关系。
如图1B所示,在该芯片设计中可以包括宏模块110、宏模块210和宏模块310。宏模块110在图1A所示的基础上还可以包括引脚113和引脚114。引脚113和连接部151连接,引脚114与连接部152连接。连接部152例如又与宏模块210中的一个输入引脚相连接。宏模块210可以包括3个输出引脚211~213。输出引脚211~213例如分别与连接部170~190连接。
连接部151、连接部152以及连接部170~190中的任意一个例如都可以是缓冲器的引脚、逻辑电路的引脚、时序电路的引脚或者其他用于实现某种功能的器件的引脚。
如图1B所示,宏模块310可以与多个连接部连接,宏模块310可以不与宏模块110和宏模块210连接。当然,宏模块310也可以与宏模块110和/或宏模块210连接。
在本公开的一实施例中,宏模块110的摆放方向可以根据与宏模块110直接连接的连接部与宏模块110的引脚之间的距离确定。例如根据连接部130、连接部140、连接部151和连接部152分别与宏模块110的引脚之间的距离确定。在本公开的另一实施例中,宏模块110的摆放方向可以根据与宏模块110间接连接的连接部与宏模块110的引脚之间的距离确定。例如连接部170~190与宏模块110间接连接,可以根据连接部170~190与宏模块110的引脚之间的距离确定宏模块110的摆放方向。下文参考图2、3、4A、4B和参考图5描述了本公开确定宏模块110的摆放方向的实施例,在此不再赘述。
在芯片设计中,例如可以首先根据本公开的实施例提供的方法来确定宏模块110的摆放方向,然后再根据本公开的实施例提供的方法来确定宏模块210的摆放方向和宏模块310的摆放方向。
本公开的实施例提供的器件布局方法可以快速有效地对器件的多个不同摆放方向进行量化评估,以便快速地从多个摆放方向中确定一种较佳的摆放方向。
需要理解的是,上述应用场景仅仅是为了便于对本公开的实施例进行理解,并不意味着本公开实施例的器件布局方法仅用于上述场景。
图2示出了本公开至少一个实施例提供的一种器件布局方法的流程图。如图2所示,该器件布局方法包括步骤S210-步骤S230。
在步骤S210中,确定目标器件在摆放区域的多个摆放方向。
在步骤S220中,依次在多个摆放方向中的每个摆放方向下,确定目标器件和与目标器件连接的至少一个连接部之间的总距离。例如,总距离是根据至少一个引脚和至少一个连接部之间的距离确定的。
在步骤S230中,根据多个总距离,对多个摆放方向排序得到排序结果,以根据排序结果实现对目标器件的布局设计。
该器件布局方法通过计算每个摆放方向下的总距离,并且对总距离进行排序,可以快速地根据总距离对目标器件的多个摆放方向进行布局效果的评估,以实现对目标器件的布局设计。
对于步骤S210,目标器件例如可以是一个宏模块或者是包括引脚的电子元件。摆放区域例如可以是本领域技术人员在芯片中预先确定的区域,该区域用于放置目标器件。
多个摆放方向例如可以是根据用户输入的方向信息确定的,或者也可以是从指定的文件中读取目标器件在摆放区域的多个摆放方向。例如,用户可以输入目标器件在摆放区域的多个摆放方向。例如,多个摆放方向彼此不同。
在本公开的一个实施例中,例如可以使目标器件与摆放区域中的坐标轴之间的夹角分别为不同的预设值,以确定出多个摆放方向。例如以摆放区域的中心为坐标原点建立直角坐标系,以目标器件的一条边作为基准,分别将该目标器件摆放到使该边与坐标轴之间的夹角为不同的预设值来确定多个摆放方向。预设值例如可以是90度、180度、270度或其他任意适用的角度。本领域技术人员可以根据实际情况来设置预设值。
又例如,以摆放区域的中心为坐标原点建立直角坐标系,目标器件可以确定一个初始摆放方向,并且以初始摆放方向为起点顺时针或者逆时针依次旋转预设角度来确定多个摆放方向。
多个摆放方向例如可以是目标器件在摆放区域中所有可能的摆放方向,也可以是目标器件在摆放区域中所有可能的摆放方向中的一些摆放方向。例如,可以在交互界面上显示出目标器件所有可能的摆放方向供用户选择,从而根据用户输入的选择信息,从目标器件所有可能的摆放方向中确定多个摆放方向。
目标器件所有可能的摆放方向可以是有限的。确定目标器件所有可能的摆放方向的方法,例如可以是:目标器件包括第一面和与第一面相对的第二面,在第一面朝上第二面朝下的情形中以第一摆放方向为起始摆放方向,每次旋转预设弧度,从而遍历出第一面朝上的情形中目标器件可能的摆放方向。然后可以沿第一方向翻转处于起始摆放方向的目标器件,使得第二面朝上,第一面朝下,在第二面朝上第一面朝下的情形中,以第二摆放方向为起始摆放方向,每次旋转预设弧度,从而遍历出第二面朝上第一面朝下的情形中目标器件可能的摆放方向。预设弧度例如可以是90度、45度等。
需要理解的是,上述确定目标器件所有可能的摆放方向的方法仅为一种示例,对本公开的实施例不具有限定作用,本领域技术人员可以设计不同的确定目标器件所有可能的摆放方向的方法。
对于步骤S220,与目标器件连接的至少一个连接部例如可以是与目标器件连接的宏模块的引脚、元件的引脚或者器件的引脚。
在本公开的一个实施例中,与目标器件连接的至少一个连接部可以是与目标器件直接相连的连接部。如图1A所示,宏模块110即为目标器件,与宏模块110连接的连接部包括连接部120、连接部130和连接部140。连接部120、连接部130和连接部140都是直接与宏模块110相连的。例如,连接部120与引脚111连接,连接部130和连接部140与引脚112连接。在步骤S220中,例如可以依次确定在图1A中多个摆放方向A~F中每个摆放方向下,宏模块110与连接部120、连接部130和连接部140之间的总距离。
在本公开的一个实施例中,宏模块110与连接部120、连接部130和连接部140之间的总距离可以为第一距离、第二距离和第三距离之和,第一距离为宏模块110与连接部120之间的连接距离,第二距离为宏模块110与连接部130之间的连接距离,第三距离为宏模块110与连接部140之间的连接距离。
在本公开的另一个实施例中,宏模块110与连接部120、连接部130和连接部140之间的总距离可以为第一距离、第二距离和第三距离的加权和,第一距离、第二距离和第三距离分别分配有权重。例如,第一距离的权重、第二距离的权重、第三距离的权重可以彼此相同或不同。
本领域技术人员也可以通过其他方式而不仅限于上述两种方式来根据至少一个引脚和所述至少一个连接部之间的距离确定总距离。
在本公开的另一些实施例中,与目标器件连接的至少一个连接部可以是与目标器件间接连接的。例如,目标器件与缓冲器连接,缓冲器与逻辑电路连接,逻辑电路与时序器件连接,即,目标器件通过至少一个中间部(例如缓冲器和逻辑电路)最终间接地连接到时序器件,那么与目标器件连接的至少一个连接部也可以是时序器件中的至少一个引脚。
对于步骤S230,根据多个总距离,对多个摆放方向排序得到排序结果,以根据排序结果实现对目标器件的布局设计。
例如,在一些示例中,可以按照总距离的大小对多个摆放方向进行排序得到排序结果,并且从多个摆放方向中选择总距离最小的摆放方向作为目标器件的目标摆放方向。例如,在目标摆放方向下,目标器件的布局设计更加合理。例如,在一些示例中,还可以根据排序结果,选择总距离小于预设距离值的多个摆放方向作为备选方向,并根据其他设计要求在多个备选方向中选择一个方向作为目标摆放方向。
例如,在另一些示例中,可以根据多个总距离和目标器件在多个摆放方向下分别对芯片上位于目标器件附近的其他器件的影响程度,从多个摆放方向中确定目标器件的目标摆放方向。
需要说明的是,多个摆放方向的排序结果可以仅涵盖一部分满足要求的摆放方向,例如仅涵盖最小的总距离对应的摆放方向或者几个较小的总距离对应的摆放方向,而不要求必须涵盖所有计算得到的总距离对应的摆放方向。
通过上述方式,可以实现对目标器件的不同摆放方向的量化评估,例如基于总距离的量化评估,从而便于用户选择合适的方向来布置器件,以实现器件的布局设计。合理的摆放方向能够缩短布线长度,提高空间利用率,提升器件之间的互联特性。
图3示出了本公开至少一个实施例提供的另一种器件布局方法的流程图。如图3所示,该器件布局方法在前述图2所示的实施例的基础上还包括步骤S310。
在步骤S310中,根据排序结果,从多个摆放方向中确定目标器件的目标摆放方向。
例如可以根据排序结果,从多个总距离中确定出最小的总距离,以及将最小的总距离对应的摆放方向作为目标摆放方向。该方法可以快速地确定出目标摆放方向。
又例如,可以根据排序结果和目标器件在多个摆放方向下分别对芯片上位于目标器件附近的其他器件的影响程度,从多个摆放方向中确定目标器件的目标摆放方向。例如目标器件的摆放方向或许会影响到其他器件的布线,在该情形下则可以综合考虑排序结果和影响程度来确定目标摆放方向。该方法综合考虑目标器件的总距离和目标器件的摆放方向对其他器件的影响程度,可以使得整体布局更加合理。
图4A示出了图2所示的器件布局方法中步骤S220的一个实施例的流程示意图。
如图4A所示,在一些示例中,图2中的步骤S220可以包括步骤S221~步骤S223。
在步骤S221,分别确定与至少一个引脚中的每个引脚相连接的连接部。例如在图1A所示的情景中,目标器件110包括多个引脚。分别确定与目标器件110的多个引脚中每个引脚连接的连接部。例如,与引脚111相连接的连接部为连接部120,与引脚112连接的连接部包括连接部130和连接部140。
在本公开的一个实施例中,例如可以利用电子设计自动化(Electronic designautomation,EDA)软件来自动抓取与目标器件中的每个引脚相连接的连接部。
在本公开的一些实施例中,与引脚相连接的连接部包括与引脚直接连接的连接部,和/或通过至少一个中间部与引脚间接连接的连接部。
与引脚相连接的连接部,例如可以是在与目标器件间接连接的多个元件或者器件中的关键元件或者器件中的引脚。关键元件或者器件,例如可以是目标器件经由多个中间部最终连接到的元件或者器件。例如目标器件依次经由缓冲器、逻辑电路连接,最终连接到时序器件,那么目标器件最终连接到的时序器件可以为关键器件。与目标器件的引脚相连接的连接部可以是时序器件的引脚。
图4B示出了本公开另一实施例的器件布局的示意图。
如图4B所示,除了连接部140与连接部150连接,连接部150与连接部160连接之外,该实施例的器件布局与图1A中的器件布局基本相同。
在步骤S221,可以确定与宏模块110中的多个引脚中的每个引脚相连接的连接部。
例如,可以是确定与宏模块110中每个引脚间接连接的连接部或者直接连接的连接部。间接连接的连接部,例如可以是与宏模块110的引脚间隔N个中间部所连接到的连接部,N为大于0的整数。例如,引脚112间接连接的连接部包括与引脚112通过中间部140连接的连接部150,和与引脚112通过中间部140和中间部150连接的连接部160。引脚112直接连接的连接部包括连接部140和连接部130。
在本公开的一些实施例中,可以向用户提供至少两种计算模式,一种计算模式可以是确定与目标器件的至少一个引脚直接相连的连接部,从而计算与引脚直接相连的连接部与引脚之间的连接距离,进而确定总距离。另一种计算模式可以是确定与目标器件的至少一个引脚间接相连的连接部,从而计算与引脚间接相连的连接部与引脚之间的连接距离,进而确定总距离。在本公开的一些实施例中,与目标器件的至少一个引脚间接相连的连接部,例如可以是目标器件依次与多个中间部连接后连接到的关键元件或者器件的引脚。在集成电路中,目标器件往往会经由多个中间部将电信号输入到关键元件或者器件,因此,目标器件与关键元件或者器件之间的距离是非常重要的布局参考因素。
在本公开的一些实施例中,分别确定与所述至少一个引脚中的每个引脚相连接的连接部可以包括:确定计算模式,响应于计算模式为第一模式,分别确定与至少一个引脚中的每个引脚间接连接的连接部,或者响应于计算模式为第二模式,分别确定与至少一个引脚中每个引脚直接连接的连接部。例如,可以接收用户在交互界面中输入的计算模式或者选择的计算模式。
响应于计算模式为第一模式,分别确定与至少一个引脚中的每个引脚间接连接的连接部还包括:若某个引脚的连接通路上仅存在与该引脚直接连接的连接部,则确定该连接通路上与该引脚直接连接的连接部。例如在图4B中,引脚111仅与连接部120连接,引脚111的连接通路中不存在经由连接部120间接连接的其他连接部,因此,响应于计算模式为第一模式,确定宏模块110的引脚112间接连接的连接部为160,并且由于引脚112的连接通路包括与引脚112直接连接的连接部130,引脚111直接连接连接部120,因此,所确定出的引脚112的连接部还包括连接部130,引脚111的连接部包括连接部120。
例如,在图4B所示的情景中,若用户选择的计算模式为第一模式,则可以通过EDA抓取与宏模块110间接连接的连接部,从而根据抓取结果确定与宏模块110的引脚112连接的连接部为连接部160和连接部130,与宏模块110的引脚111连接的连接部包括连接部120。若用户选择的计算模式为第二模式,则可以确定与宏模块110的引脚111连接的连接部包括连接部120,与引脚112连接的连接部包括连接部130和140。
又例如,在图1B所示的情景中,若用户选择的计算模式为第一模式,则可以通过EDA抓取与宏模块110间接连接的连接部,确定与宏模块110的引脚114连接的连接部包括连接部170~190、与引脚113连接的连接部包括连接部151,与宏模块110的引脚112连接的连接部包括连接部130和140。若用户选择的计算模式为第二模式,则可以确定与宏模块110的引脚114连接的连接部包括连接部1152,与引脚113连接的连接部为连接部151,与宏模块110的引脚112连接的连接部包括连接部130和140。
该实施例提供了两种计算模式供用户选择,从而使得用户可以参考第一模式计算的总距离和第二模式计算的总距离来确定目标器件的摆放方向,从而保证确定的目标器件的摆放方向更加合理。
在步骤S222,计算每个引脚各自的子距离,子距离是根据引脚和与引脚相连接的连接部之间的连接距离确定的。
在本公开的一个实施例中,连接距离可以是曼哈顿距离或欧氏距离。引脚和与引脚相连接的连接部之间的曼哈顿距离S1为:
S1=|x2-x1|+|y2-y1|,
其中,(x1,y1)为引脚的坐标,(x2,y2)为连接部的坐标。
如图1A所示,引脚111和连接部120之间的连接距离可以是引脚111和连接部120之间的曼哈顿距离,也就是|Δx|+|Δy|。
如图1A所示,引脚111和连接部120之间的欧式距离S2为:
其中,(x1,y1)为引脚111的坐标,(x2,y2)为连接部120的坐标。
例如,在图1A所示的情景中,在步骤S222中,可以计算目标器件110每个引脚各自的子距离,其中包括计算引脚111和引脚112的子距离。
如图1A或图4B所示,一个引脚可以与一个连接部连接,也可以与多个连接部连接。例如引脚111仅与连接部120相连接,引脚112不仅与连接部130相连接,还与连接部140相连接。
在本公开的一个实施例中,在引脚与一个连接部相连接的情形中,子距离为引脚和一个连接部之间的连接距离。例如,引脚111的子距离可以是引脚111和连接部120之间的连接距离。在引脚与多个连接部相连接的情形中,子距离为引脚分别和多个连接部之间的连接距离之和,或者子距离为引脚分别和多个连接部之间的连接距离的加权和,每个连接部分配有对应的第一权重。例如,引脚112的子距离可以是第一子距离和第二子距离之和,第一子距离为引脚112和连接部130之间的连接距离,第二子距离为引脚112和连接部140之间的连接距离。又例如,引脚112的子距离也可以是第一子距离和第二子距离的加权和,连接部130和连接部140分别分配有对应的第一权重。例如,连接部130的第一权重与连接部140的第一权重可以相同或不同。
当然,在上述描述中,与引脚连接的连接部可以是与引脚间接连接的连接部,也可以是与引脚直接连接的连接部。例如在图4B所示的情景中,例如若用户选择的计算模式为第一模式,则可以根据引脚112分别与连接部160和连接部130的连接距离确定引脚112的子距离,根据引脚111与连接部120之间的连接距离确定引脚111的子距离。例如,若用户选择的计算模式为第二模式,则可以根据引脚112分别与连接部140和连接部130之间的连接距离确定引脚112的子距离,根据引脚111与连接部120之间的连接距离确定引脚111的子距离。
本领域技术人员也可以通过其他方式而不仅限于上述实施例来根据引脚和与引脚相连接的连接部之间的连接距离确定子距离。
在步骤S223,基于至少一个引脚的子距离得到总距离。
例如,在目标器件包括多个引脚的情形中,可以将多个引脚的子距离相加的和作为总距离,或者将多个引脚的子距离的加权和作为总距离,每个引脚分配有对应的第二权重。例如,不同引脚对应的第二权重可以相同或不同。
如图1A或图4B所示,总距离可以是引脚111的子距离、引脚112的子距离以及宏模块110中除引脚111和引脚112之外的其他引脚的子距离之和,或者是引脚111的子距离、引脚112的子距离以及宏模块110中除引脚111和引脚112之外的其他引脚的子距离的加权和。
若目标器件仅有一个引脚,则可以将该引脚的子距离作为总距离。
图5示出了本公开至少一个实施例提供的一种器件布局方法的应用示例的流程图。如图5所示,该器件布局方法可以包括步骤S510~S590。
在步骤S510中,确定一个摆放方向。
例如,可以根据上文参考图2描述的步骤S210确定目标器件的多个摆放方向,然后从多个摆放方向中随机确定一个摆放方向。
在步骤S520中,确定宏模块中的一个引脚。
例如,从宏模块的多个引脚中随机确定一个引脚。
在步骤S530,计算该摆放方向下,该引脚的子距离,子距离为该引脚到与该引脚连接的多个负载之间的连接距离之和。
例如可以按照上文参考图4A描述的步骤S222描述的方法计算引脚的子距离。
例如连接距离可以是利用曼哈顿公式进行计算得到的。
与该引脚连接的负载,可以是与该引脚直接连接的负载,也可以是间接连接的负载。
如图4B所示,例如该引脚为宏模块110中的引脚112,确定引脚112到与引脚112连接的负载之间的曼哈顿距离。与引脚112连接的负载例如可以是连接部130和连接部140,或者也可以是连接部130和连接部160。
在步骤S540中,判断是否已经遍历了宏模块中的所有引脚。即,确定是否计算出宏模块中每个引脚的子距离。
若已经遍历了宏模块中的所有引脚,则执行步骤S550。若未遍历宏模块中的所有引脚,则返回执行步骤S520。
在步骤S550,计算所有引脚的子距离之和。例如可以执行上文中参考图4A描述的步骤S223。
在步骤S560,记录该摆放方向对应的总距离。
在步骤S570,判断是否已经遍历所有摆放方向。
若已经遍历了所有摆放方向,则执行步骤S580。若未遍历所有摆放方向,则返回执行步骤S510。
在步骤S580,对多个摆放方向对应的总距离排序。例如可以执行上文中参考图2描述的步骤S230。
在步骤S590,确定最小的总距离对应的摆放方向为目标摆放方向。
通过利用本公开实施例提供的器件布局方法,可以实现对器件的不同摆放方向的量化评估,便于用户选择合适的方向来布置器件,从而实现器件的布局设计,能够缩短布线长度,提高空间利用率,提升器件之间的互联特性,提高布局合理性。
本公开的至少一个实施例还提供一种器件布局装置,用于对目标器件进行布局设计,该目标器件包括至少一个引脚。该器件布局装置可以实现对器件的不同摆放方向的量化评估,便于用户选择合适的方向来布置器件,从而实现器件的布局设计,能够缩短布线长度,提高空间利用率,提升器件之间的互联特性,提高布局合理性。
图6示出了本公开至少一个实施例提供的一种器件布局装置600的示意框图。
例如,如图6所示,该器件布局装置600包括第一确定单元610、第二确定单元620和排序单元630。
第一确定单元610配置为确定目标器件在摆放区域的多个摆放方向。第一确定单元610例如可以执行图2描述的步骤S210。
第二确定单元620配置为依次在多个摆放方向中的每个摆放方向下,确定目标器件和与目标器件连接的至少一个连接部之间的总距离,总距离是根据至少一个引脚和至少一个连接部之间的距离确定的。第二确定单元620例如可以执行图2描述的步骤S220。
排序单元630配置为根据多个总距离,对多个摆放方向排序得到排序结果,以根据排序结果实现对目标器件的布局设计。排序单元630例如可以执行图2描述的步骤S230。
例如,第一确定单元610、第二确定单元620和排序单元630可以为硬件、软件、固件以及它们的任意可行的组合。例如,第一确定单元610、第二确定单元620和排序单元630可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,器件布局装置600的各个单元与前述的器件布局方法的各个步骤对应,关于器件布局装置600的具体功能可以参考关于器件布局方法的相关描述,此处不再赘述。图6所示的器件布局装置600的组件和结构只是示例性的,而非限制性的,根据需要,该器件布局装置600还可以包括其他组件和结构。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的器件布局方法的指令。该电子设备可以实现对器件的不同摆放方向的量化评估,便于用户选择合适的方向来布置器件,从而实现器件的布局设计,能够缩短布线长度,提高空间利用率,提升器件之间的互联特性,提高布局合理性。
图7为本公开一些实施例提供的一种电子设备的示意框图。如图7所示,该电子设备700包括处理器710和存储器720。存储器720用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器710用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器710运行时可以执行上文所述的器件布局方法中的一个或多个步骤。存储器720和处理器710可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器710可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器710可以为通用处理器或专用处理器,可以控制电子设备700中的其它组件以执行期望的功能。
例如,存储器720可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器710可以运行一个或多个计算机程序模块,以实现电子设备700的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备700的具体功能和技术效果可以参考上文中关于器件布局方法的描述,此处不再赘述。
图8为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备800例如适于用来实施本公开实施例提供的器件布局方法。电子设备800可以是终端设备等。需要注意的是,图8示出的电子设备800仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)810,其可以根据存储在只读存储器(ROM)820中的程序或者从存储装置880加载到随机访问存储器(RAM)830中的程序而执行各种适当的动作和处理。在RAM 830中,还存储有电子设备800操作所需的各种程序和数据。处理装置810、ROM 820以及RAM 830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。
通常,以下装置可以连接至I/O接口850:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置860;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置870;包括例如磁带、硬盘等的存储装置880;以及通信装置890。通信装置890可以允许电子设备800与其他电子设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备800,但应理解的是,并不要求实施或具备所有示出的装置,电子设备800可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述器件布局方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述器件布局方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置890从网络上被下载和安装,或者从存储装置880安装,或者从ROM 820安装。在该计算机程序被处理装置810执行时,可以实现本公开实施例提供的器件布局方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的器件布局方法。利用该计算机可读存储介质,可以实现对器件的不同摆放方向的量化评估,便于用户选择合适的方向来布置器件,从而实现器件的布局设计,能够缩短布线长度,提高空间利用率,提升器件之间的互联特性,提高布局合理性。
图9为本公开一些实施例提供的一种计算机可读存储介质的示意图。如图9所示,计算机可读存储介质900用于存储非暂时性计算机可读指令910。例如,当非暂时性计算机可读指令910由计算机执行时可以执行根据上文所述的器件布局方法中的一个或多个步骤。
例如,该计算机可读存储介质900可以应用于上述电子设备700中。例如,计算机可读存储介质900可以为图7所示的电子设备700中的存储器720。例如,关于计算机可读存储介质900的相关说明可以参考图7所示的电子设备700中的存储器720的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种器件布局方法,用于对目标器件进行布局设计,其中,所述目标器件包括至少一个引脚,所述方法包括:
确定所述目标器件在摆放区域的多个摆放方向,其中,所述摆放区域是在芯片中预先确定的区域,用于放置所述目标器件;
依次在所述多个摆放方向中的每个摆放方向下,确定所述目标器件和与所述目标器件连接的至少一个连接部之间的总距离,其中,所述总距离是根据所述至少一个引脚和所述至少一个连接部之间的距离确定的,其中,所述至少一个连接部包括与所述至少一个引脚直接连接的连接部,和/或通过至少一个中间部与所述至少一个引脚间接连接的连接部;以及
根据多个所述总距离,对所述多个摆放方向排序得到排序结果,以根据所述排序结果实现对所述目标器件的布局设计。
2.根据权利要求1所述的方法,还包括:
根据所述排序结果,从所述多个摆放方向中确定所述目标器件的目标摆放方向。
3.根据权利要求1或2所述的方法,其中,依次在所述多个摆放方向中的每个摆放方向下,确定所述目标器件和与所述目标器件连接的至少一个连接部之间的总距离,包括:
分别确定与所述至少一个引脚中的每个引脚相连接的连接部;
计算每个引脚各自的子距离,其中,所述子距离是根据所述引脚和与所述引脚相连接的连接部之间的连接距离确定的;以及
基于所述至少一个引脚的子距离得到所述总距离。
4.根据权利要求3所述的方法,其中,在所述引脚与多个连接部相连接的情形,
所述子距离为所述引脚分别和所述多个连接部之间的连接距离之和,或者
所述子距离为所述引脚分别和所述多个连接部之间的连接距离的加权和,每个连接部分配有对应的第一权重。
5.根据权利要求3所述的方法,其中,在所述引脚与一个连接部相连接的情形,所述子距离为所述引脚和所述一个连接部之间的连接距离。
6.根据权利要求3所述的方法,其中,在所述至少一个引脚为多个的情形,基于所述至少一个引脚的子距离得到所述总距离包括:
将所述至少一个引脚的子距离相加的和作为所述总距离,或者
将所述至少一个引脚的子距离的加权和作为所述总距离,其中,每个引脚分配有对应的第二权重。
7.根据权利要求3所述的方法,其中,在所述至少一个引脚为一个的情形,基于所述至少一个引脚的子距离得到所述总距离包括:
将所述至少一个引脚的子距离作为所述总距离。
8.根据权利要求3所述的方法,其中,所述连接距离为曼哈顿距离或欧氏距离。
9.根据权利要求8所述的方法,其中,所述引脚和与所述引脚相连接的连接部之间的曼哈顿距离S1为:
S1=|x2-x1|+|y2-y1|,
其中,(x1,y1)为所述引脚的坐标,(x2,y2)为所述连接部的坐标。
11.根据权利要求1所述的方法,其中,分别确定与所述至少一个引脚中的每个引脚相连接的连接部包括:
确定计算模式;
响应于所述计算模式为第一模式,分别确定与所述至少一个引脚中的每个引脚间接连接的连接部;
响应于所述计算模式为第二模式,分别确定与所述至少一个引脚中的每个引脚直接连接的连接部。
12.根据权利要求2所述的方法,其中,根据所述排序结果,从所述多个摆放方向中确定所述目标器件的目标摆放方向,包括:
根据所述排序结果,从多个所述总距离中确定出最小的总距离;以及
将最小的总距离对应的摆放方向作为所述目标摆放方向。
13.根据权利要求1或2所述的方法,其中,确定所述目标器件在所述摆放区域的多个摆放方向包括:
使所述目标器件与所述摆放区域中的坐标轴之间的夹角分别为不同的预设值,以确定出所述多个摆放方向。
14.一种器件布局装置,用于对目标器件进行布局设计,其中,所述目标器件包括至少一个引脚,所述器件布局装置包括:
第一确定单元,配置为确定所述目标器件在摆放区域的多个摆放方向,其中,所述摆放区域是在芯片中预先确定的区域,用于放置所述目标器件;
第二确定单元,配置为依次在所述多个摆放方向中的每个摆放方向下,确定所述目标器件和与所述目标器件连接的至少一个连接部之间的总距离,其中,所述总距离是根据所述至少一个引脚和所述至少一个连接部之间的距离确定的,其中,所述至少一个连接部包括与所述至少一个引脚直接连接的连接部,和/或通过至少一个中间部与所述至少一个引脚间接连接的连接部;以及
排序单元,配置为根据多个所述总距离,对所述多个摆放方向排序得到排序结果,以根据所述排序结果实现对所述目标器件的布局设计。
15.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现权利要求1-13任一项所述的器件布局方法的指令。
16.一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现权利要求1-13任一项所述的器件布局方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011178548.7A CN112257377B (zh) | 2020-10-29 | 2020-10-29 | 器件布局方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011178548.7A CN112257377B (zh) | 2020-10-29 | 2020-10-29 | 器件布局方法、装置、电子设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112257377A CN112257377A (zh) | 2021-01-22 |
CN112257377B true CN112257377B (zh) | 2022-11-29 |
Family
ID=74261457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011178548.7A Active CN112257377B (zh) | 2020-10-29 | 2020-10-29 | 器件布局方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112257377B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112417808B (zh) * | 2020-12-04 | 2023-08-01 | 北京华大九天科技股份有限公司 | 一种减小线长的方法、电子设备及计算机可读存储介质 |
CN112926283B (zh) * | 2021-04-09 | 2023-09-15 | 成都海光集成电路设计有限公司 | 用于集成电路的布局设计方法及装置、设备和存储介质 |
CN114021519B (zh) * | 2021-11-04 | 2022-11-29 | 北京百度网讯科技有限公司 | 链状量子芯片的布线方法、装置、电子设备及存储介质 |
CN114676664B (zh) * | 2022-05-20 | 2022-09-13 | 飞腾信息技术有限公司 | 芯片的模块布局方法、装置、计算机设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107170880B (zh) * | 2017-07-14 | 2019-09-27 | 上海天马微电子有限公司 | 发光单元及显示装置 |
US10467373B2 (en) * | 2018-02-21 | 2019-11-05 | Xilinx, Inc. | Method of selecting routing resources in a multi-chip integrated circuit device |
CN110795907B (zh) * | 2019-09-30 | 2021-05-18 | 福州大学 | 一种考虑布线资源松弛的X结构Steiner最小树构造方法 |
CN110795908B (zh) * | 2019-10-30 | 2022-12-13 | 福州大学 | 偏差驱动的总线感知总体布线方法 |
CN111354718B (zh) * | 2020-03-23 | 2022-02-25 | 江苏中科智芯集成科技有限公司 | 含多芯片封装结构的芯片排列布线方法、装置及电子设备 |
-
2020
- 2020-10-29 CN CN202011178548.7A patent/CN112257377B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112257377A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112257377B (zh) | 器件布局方法、装置、电子设备和计算机可读存储介质 | |
TWI733127B (zh) | 資訊的檢測方法、裝置及設備 | |
JP7488185B2 (ja) | 機械学習のための画像変換 | |
KR20180102211A (ko) | 타겟 명확화 및 보정 기법 | |
CN111597768B (zh) | 用于构建版图图案集的方法、设备和计算机可读存储介质 | |
KR20180105210A (ko) | 이미지 처리 방법 및 장치 | |
CN115097975A (zh) | 用于控制视角转换的方法、装置、设备和存储介质 | |
CN108491818A (zh) | 目标物体的检测方法、装置及电子设备 | |
US9589176B1 (en) | Analyzing integral images with respect to HAAR features | |
CN110989880B (zh) | 一种界面元素处理方法、装置及可读存储介质 | |
JP4783268B2 (ja) | 半導体レイアウト設計装置 | |
JP2003167935A (ja) | 配線経路決定装置、グループ決定装置、配線経路決定プログラム、およびグループ決定プログラム | |
US9552453B1 (en) | Integrated circuit with power network aware metal fill | |
JP6897234B2 (ja) | 情報処理システム、情報処理装置および情報処理方法 | |
CN115079921A (zh) | 用于控制场景信息加载的方法、装置、设备和存储介质 | |
US11782850B2 (en) | Information processing method, server, terminal, and computer storage medium | |
JP5825173B2 (ja) | 輪郭特定装置、輪郭特定方法および輪郭特定プログラム | |
US8904327B2 (en) | Assisting in logic circuit design to place cells on an IC substrate and optimize wiring | |
JP7248279B2 (ja) | コンピュータシステム、プログラム、及び方法 | |
CN113205571B (zh) | 用于户型图的处理方法、处理装置及电子设备 | |
WO2024138934A1 (zh) | 像素范围确定方法、gpu、soc及电子设备 | |
US11465038B2 (en) | Method of puzzle game and game system using the method | |
JPH09146987A (ja) | 部品自動配置装置 | |
JP2636075B2 (ja) | ベクトル処理装置 | |
CN116189221A (zh) | 封闭区域的识别方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |