CN116822452A - 芯片布局优化方法及相关设备 - Google Patents
芯片布局优化方法及相关设备 Download PDFInfo
- Publication number
- CN116822452A CN116822452A CN202311064572.1A CN202311064572A CN116822452A CN 116822452 A CN116822452 A CN 116822452A CN 202311064572 A CN202311064572 A CN 202311064572A CN 116822452 A CN116822452 A CN 116822452A
- Authority
- CN
- China
- Prior art keywords
- class
- node
- information entropy
- graph structure
- sampling
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000005457 optimization Methods 0.000 title abstract description 31
- 238000005070 sampling Methods 0.000 claims abstract description 52
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 description 21
- 238000013461 design Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004138 cluster model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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
-
- 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/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/08—Probabilistic or stochastic CAD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供的一种芯片布局优化方法及相关设备。该方法,包括:获取芯片网表,根据所述芯片网表构建图结构网络,确定所述图结构网络中每条边的权重信息;根据所述权重信息对所述图结构网络中的每个节点进行至少一次采样,根据采样结果确定所述每个节点与其他节点之间的连接概率;将每个所述节点单独作为一类,根据任一类的类内信息熵和类间信息熵之间的关系进行类之间的合并,生成合并结果;其中,所述类内信息熵与所述类间信息熵通过所述连接概率确定;输出所述合并结果,以根据所述合并结果对芯片的布局进行优化。
Description
技术领域
本申请涉及芯片技术领域,尤其涉及一种芯片布局优化方法及相关设备。
背景技术
电子设计自动化(Electronic Design Automation,简称EDA),是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。
在数字芯片设计流程中,布局规划(Floorplan)是重要的一环,布局规划的好坏直接影响整体设计的时序以及布线质量。芯片布局规划中以线长、时序、功率和面积为主要优化目标。其中,线长目标在优化过程中容易被其他目标破坏,无法达到最优的结果。在相关技术中,需要一次次的反复调整才能完成线长的最终优化,效率低下的同时极大的提升了设计成本。
发明内容
有鉴于此,本申请提出一种芯片布局优化方法及相关设备,以解决或部分解决上述问题。
基于上述目的,本申请第一方面,提供了一种芯片布局优化方法,包括:
获取芯片网表,根据所述芯片网表构建图结构网络,确定所述图结构网络中每条边的权重信息;
根据所述权重信息对所述图结构网络中的每个节点进行至少一次采样,根据采样结果确定所述每个节点与其他节点之间的连接概率;
将每个所述节点单独作为一类,根据任一类的类内信息熵和类间信息熵之间的关系进行类之间的合并,生成合并结果;其中,所述类内信息熵与所述类间信息熵通过所述连接概率确定;
输出所述合并结果,以根据所述合并结果对芯片的布局进行优化。
本申请第二方面,提供了一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。
本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。
本申请提供的一种芯片布局优化方法及相关设备,通过图结构网络表示芯片结构,以此根据每个节点连接边的权重对节点进行多次采样,来计算节点间的连接概率,将每个节点作为一类,根据连接概率进行类内信息熵和类间信息熵的计算,以此来进行类之间的合并,最终可以根据输出的合并结果,在进行芯片布局优化时,保持同一类中节点对应的元件相邻或不被分隔太远,以此来确保布局过程中保护线长目标尽量不被破坏,提升整体效率的同时降低了设计成本。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例所提供的示例性计算机设备的硬件结构示意图;
图2示出了根据本申请实施例的EDA工具的基本结构示意图;
图3示出了根据本申请实施例的EDA工具的一个计算命令的基本执行流程的示意图;
图4A示出了本申请实施例所提供的示例性方法的流程示意图;
图4B示出了本申请实施例所提供的示例性计算连接概率的流程示意图;
图4C示出了本申请实施例所提供的示例性生成合并结果的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1示出了本申请实施例所提供的一种计算机设备100的结构示意图。该计算机设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图1所示,存储的数据可以包括程序指令(例如,用于实现本申请的技术方案的程序指令)以及待处理的数据。处理器102也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向计算机设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将计算机设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在计算机设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2示出了根据本申请实施例的EDA工具200的基本结构示意图。
如图2所示,虚线以上为用户部分;虚线以下为EDA工具200,EDA工具200可以由图1所示的设备100实现。在一些实施例中,该EDA工具200可以实现为EDA软件。更具体地,该EDA工具200可以是基于芯片设计进行布局(Placement)和布线(Routing)的软件。仿真工具200可以包括Tcl命令(或者图形/窗口界面)模块204、各计算模块(例如,Place计算模块206、Route计算模块208、Optimization计算模块210等)以及数据库系统212。用户202可以通过在Tcl命令(或者图形/窗口界面)模块204中输入相关命令来操作该EDA工具200。
Tcl命令模块204,主要起着消息传递或命令传递的功能。Tcl命令模块204可以读取用户202向仿真工具200输入的指令,并可以根据指令的具体内容,分配并传递给相应的计算模块去执行具体任务。
根据计算任务的不同,各计算模块可以分为,例如,Place计算模块206、Route计算模块208、Optimization计算模块210等。Place计算模块206可以用于为所有元器件计算出一个合理的摆放位置,Route计算模块208可以用于计算出各个元器件之间合理的导线连接方式,Optimization计算模块210则可以用于将各个元器件之间的摆放位置和导线连接方式进行优化。这些计算模块的计算过程可以在,例如,图1的处理器102中进行。
数据库系统212可以用于完整全面地记录、存储被仿真或者被设计的芯片的所有信息(如位置、方向、尺寸、结构、导线连接方式等等)。这些信息,例如,可以存储在图1的存储器104中。
图3示出了根据本申请实施例的EDA工具200的一个计算命令的基本执行流程300。如图3所示,在步骤302,用户202可以通过Tcl命令模块204提供的命令界面或者图形用户界面(GUI)向该EDA工具200下达一个命令(例如,do_place命令)。然后,在步骤304,Tcl命令模块204解析这一命令并将其分发到相应的计算模块(例如,Place计算模块206)。在步骤306,各计算模块执行各自所需进行的具体计算。在这期间,如步骤308所示,各计算模块需要(高频、反复)调取数据库系统212中的数据来进行计算。计算完成后,如步骤310所示,各计算模块可以将计算结果写入数据库系统212,并将计算结果返回给Tcl命令模块204。在步骤312,Tcl命令模块204通过命令界面或者图形用户界面(GUI)将计算结果返回给用户202,该EDA工具200对一个计算命令的处理过程结束。在步骤314,用户可以根据计算结果进行评估,然后确定下一步计划。
布局规划(Floorplan),通常是指,把宏单元(hard macros)放置到设计当中,并满足后续标准单元(standard cells)布局要求。广义的布局规划还包括设计裸片(Die)的高宽比、摆放I/O Pad、纯物理单元(Welltap、Endcap)插入、电源地网络规划等。
在相关技术中,芯片布局是以线长、时序、功率和面积为主要优化目标,使用拉格朗日惩罚或松弛将多个目标组合成单个目标函数。模型复杂度高,其中线长目标由于在优化时优先级不高(在优化时一般以面积、时序等作为最高优先级),从而在优化过程中容易被其他目标破坏,无法迅速达到最优的结果。
鉴于此,本申请提出了一种芯片布局优化方案,通过图结构网络表示芯片结构,以此根据每个节点连接边的权重对节点进行多次采样,来计算节点间的连接概率,将每个节点作为一类,根据连接概率进行类内信息熵和类间信息熵的计算,以此来进行类之间的合并,最终可以根据输出的合并结果,在进行芯片布局优化时,保持同一类中节点对应的元件相邻或不被分隔太远,以此来确保布局过程中保护线长目标尽量不被破坏,提升整体效率的同时降低了设计成本。
图4A示出了本申请实施例所提供的示例性方法400的流程示意图。该方法400可以由图1的计算机设备100实现,并可以实现为图2的EDA工具200的一部分功能。如图4A所示,该方法400可以进一步包括以下步骤。
步骤402,获取芯片网表,根据所述芯片网表构建图结构网络,确定所述图结构网络中每条边的权重信息。
一般地,在芯片电路设计中,网表(netlist)是用于描述电路元件相互之间连接关系的,一般来说是一个遵循某种比较简单的标记语法的文本文件。由于逻辑门阵列有着连线表一样的排列外观,因此称之为“网表”。简单来说,网表在电路设计中,一般用于描述电路元件、端口相互之间的连接关系。当获取了一个芯片网表之后,通过该芯片网表记录的芯片内包含的各元件、端口以及相互之间的引脚(每个元件或端口至少包括一个引脚,通过引脚可以与其他元器件进行连接)连接关系等,可以生成该芯片对应的一个图结构网络。其中,图结构网络是一种负载的非线性结构,由节点、边及边权重构成。边根据是否有方向分为无向边和有向边,其中,有向边代表连接的两个节点间的跳转具有方向性,如果没有方向则为无向边,即两个节点可以相互跳转。
在本步骤中,图结构网络中的节点可以是元件及端口等元器件,也可以直接以每个引脚作为节点。进而,图结构网络中的边就是节点间的连接关系,如任一个节点是与哪些节点间可以存在连接关系,以此生成图结构网络中的边,这里的连接关系可以根据芯片网表中记录的确定。之后,根据芯片网表记录的每个元件、端口的属性,可以转化为图结构网络中节点的属性(以引脚为节点的,可以根据该引脚属于的元件或端口的属性进行确定),从而可以根据这个属性确定出每个节点引出的边的存在概率,进而可以以此确定出每条边的权重信息,这里的权重信息即可理解为对应的边存在的概率。
在一些实施例中,可以根据芯片网表记录的元件及端口作为图结构网络的节点,也可以根据这些元件及端口的引脚作为图结构网络的节点。其中,元件即为芯片电路中的功能元件,例如各类功能模块、电阻、电容等;端口为与其他芯片或组件连接的输出/输入端口;引脚则为这些元件或端口的内部电路引出与外围电路的接线。而图结构网络中的边可以是节点之间的连接路径,在芯片布局设计时,每个元件或引脚可以连接多个其他元件或引脚,但是在最终完成布局设计时,会根据布局优化结果,在不影响功能的前提下,会舍弃一部分连接路径,或者说在优化时会对这些连接路径进行选择,再结合布局,进行芯片设计的优化。从而可选地,所述根据所述芯片网表构建图结构网络,包括:将所述芯片网表记录的元件及端口作为所述图结构网络的节点,根据所述芯片网表记录的连接路径作为所述图结构网络的边。在另一些实施例中,所述根据所述芯片网表构建图结构网络,包括:将所述芯片网表记录的引脚作为所述图结构网络的节点,根据所述芯片网表记录的连接路径作为所述图结构网络的边。
步骤404,根据所述权重信息对所述图结构网络中的每个节点进行至少一次采样,根据采样结果确定所述每个节点与其他节点之间的连接概率。
在根据步骤402确定了每条边的权重信息之后,进而对于任一个节点,其对应的每条边的生成概率就可以根据权重信息确定下来。以此就可以对节点进行边的采样了,在采样过程中,可以根据一个节点对应的每条边的权重信息,进行有权重的随机采样。举例来说,节点A可以连接到节点B、节点C和节点D,从而节点A可以生成3条边,之后这3条边的权重信息分别为50%、30%和20%(每个节点对应的全部边的权重信息总和为1),最终根据这些权重信息进行随机采样,每次采样根据权重信息随机选取一条边,即每次采样确定一个对应连接到的节点。在一些实施例中,可以是进行完一次连接到的节点的确定就认为是一次采样,也可以是进行多次连接到的节点的确定之后(即确定出的连接到的节点的数量满足设定阈值),认为是一次采样。当然,在一些实施例中,采样本身也可以发生多次,最终目的是使选出的连接到的节点数量达到设定阈值。同时,在一些实施例中,也可以根据具体的采样要求,对权重信息进行相对应的处理,或者对采样方式进行调整,其只要最终目的是使以权重信息为依据选出的连接到的节点数量达到设定阈值的实现方式,均在本申请所要保护的范围之内。
然后,在完成采样之后即可生成采样结果,根据采样结果可以确定出任一个节点在这些次采样过程中,每条边被选出的次数,或边连接到的节点被选出的次数。最终以此,可以根据采样结果确定出每个节点与其他节点之间的连接概率。例如节点A在经过20次采样之后,选取了连接节点B的边11次,连接节点C的边5次,连接节点D的边4次,则节点A连接到节点B的连接概率为55%,连接到节点C的连接概率为25%,连接到节点D的连接概率为20%。
作为一个可选实施例,为了简化采样过程,以最方便的采样方式进行迅速采样,提高采样效率节省时间成本。如图4B所示,所述根据所述权重信息对所述图结构网络中的每个节点进行至少一次采样,可以进一步包括:
步骤4042,对于任一节点,以所述任一节点对应的每条边的权重信息为采样概率,进行设定次数边的采样,确定每次采样出来的边的另一端节点。
所述根据采样结果确定所述每个节点与其他节点之间的连接概率,可以进一步包括:
步骤4044,对每次采样出来的所述另一端节点进行统计,根据统计结果确定所述任一节点与每个所述另一端节点的所述连接概率。
在本实施例中,对于任一个节点在进行采样时,直接以该节点对应的每条边的权重作为这条边的采样概率,以此来对节点的边进行设定次数的采样。这里的设定次数可以是一次给出需要选取边的次数,也可以是先定义一次采样包括额定次数次对边的选取,再进行额定次数次采样。之后,可以确定该节点对应的边的选取概率,或者是与该节点连接的其他节点的连接概率,其中,这里可以理解为可以是确定边被选中的概率,或边另一端的端点被选中的概率,两者实质的概率数值是相同的。在本步骤中,由于最终是为了对元件进行分类,以根据分类进行布局优化。从而为了方便后续步骤的操作识别,方便归类,这里直接以节点为最终目标,即步骤4042中最终确定出每次采样出来的边的另一端节点。
之后,在步骤4044,为了计算连接概率,对采样每次确定的另一端节点的个数进行统计,例如节点A在经过20次采样之后,选取了连接节点B十一次,连接节点C五次,连接节点D四次。进而可以根据统计结果确定出连接节点A的每个节点的连接概率,例如前述示例中,节点A连接到节点B的连接概率为55%,连接到节点C的连接概率为25%,连接到节点D的连接概率为20%。
在另一些实施例中,对于任一节点的采样,还可以以该节点为起始,根据权重信息进行边的选取之后,再根据选出边的对侧节点的边的权重信息进行选择,再次确定出一条边后,再根据选出边的对侧节点的权重信息进行选择,以此类推,在完成设定次数的选择之后认为完成一次采样。从而在本实施例中,每次采样完成之后,都会出来一条包括设定个数节点的连接线路。即,在一些实施例中,所述根据所述权重信息对所述图结构网络中的每个节点进行至少一次采样,包括:对于任一节点,根据所述任一节点对应的每条边的权重信息进行边的选取,确定被选中的边的对侧节点为下一个节点,再根据所述下一个节点对应的每条边的权重信息进行边的选取,以此重复进行节点的选取,直至选中的节点数量达到预设阈值,认为完成一次所述任一节点的采样。
步骤406,将每个所述节点单独作为一类,根据任一类的类内信息熵和类间信息熵之间的关系进行类之间的合并,生成合并结果;其中,所述类内信息熵与所述类间信息熵通过所述连接概率确定。
在步骤404计算出每个节点与其他能够连接的节点之间的连接概率之后,即可以此来进行分类,将关系较为密切的节点分在一个类中。这里作为开始,可以先将每个节点分别单独作为一个类,这样初始就是,有多少个节点就有多少个类。之后,根据每个节点的连接概率,进行类内信息熵和类间信息熵的计算。其中,信息熵是信息量的期望(加权平均),而信息量是度量知晓一个未知事物需要查询的信息的多少,随机变量取某个值时,其概率倒数的对数就是信息量,单位是比特。从而类内信息熵和类间信息熵分别为同类内节点的信息熵和不同类之间节点的信息熵,这里类内信息熵可以简单理解为类内全部节点自身的信息熵之和,类间信息熵可以简单理解为一个节点被分到一个类中后,其他节点(能够与该节点建立连接的节点)连到该节点所产生的信息熵。
在计算完类内信息熵和类间信息熵之后,进而可以根据两者之间的关系确定需要进行合并的类。这里,既然进行了熵计算,在本步骤中是希望熵越小越好,以此来反应类之间的关系,熵越小表明类之间关联性更强、关系更为密切,从而可以进行合并。以此,可以通过类内信息熵减去类间信息熵的方式来确定信息熵下降的幅度。下降最大的,即相减后数值最小的,可以理解为该类与此时计算中类间信息熵的对应的对侧类之间的联系最为紧密,从而可以将该类合并于对侧类之中,以此完成一次合并。当然在一些实施例中,这种合并可以进行多次。即,在一些实施例中,所述根据任一类的类内信息熵和类间信息熵之间的关系进行类之间的合并,包括:确定所述任一类的类内信息熵与类间信息熵之间的差值,确定所述差值最小时对应的类间信息熵的对侧类,将所述任一类合并于所述对侧类中。
之后,可以以此作为合并结果进行输出,这里虽然在一些实施例中,可能仅进行了一次合并,但是其毕竟已经完成了一次关系判断,从而为之后的芯片布局提供了一定的参考,较之相关技术已经能够起到一定的效果。
在一些实施例中,如图4C所示,所述根据任一类的类内信息熵和类间信息熵之间的关系进行类之间的合并,生成合并结果,包括:
步骤4062,确定所述任一类的类内信息熵与类间信息熵之间的差值,确定所述差值最小时对应的类间信息熵的对侧类,将所述任一类合并于所述对侧类中。
步骤4064,重复执行所述确定所述任一类的类内信息熵与类间信息熵之间的差值,确定所述差值最小时对应的类间信息熵的对侧类,将所述任一类合并于所述对侧类中,直至符合预设条件,生成所述合并结果。
作为一个可选实施例,为了提升合并效果,尽可能的对之后优化提供更有价值的建议。可以对类的合并过程进行迭代重复执行,直至满足预设条件。这里的预设条件可以为达到预设次数、每个类的所述差值均小于预设阈值或每个类的所述差值等于零等。即,迭代重复的合并次数达到预设值,或者迭代重复合并后的每个类的类内信息熵与类间信息熵之间的差值已经小于预设阈值,或者直接类内信息熵与类间信息熵之间的差值等于零(即信息熵已无法再下降)。以此,生成重复迭代之后的合并结果。
在以引脚作为图结构网络的节点的实施例中,由于每个元件或端口可能会存在至少一个引脚,一般的每个元件或端口都会包括多个引脚。而在进行最终布局规划时,需要确定的是元件或端口的分类结果。而对于每个元件或端口,如若其全部引脚都属于一个类,则可以将该元件或端口认定为属于该类。而如若其引脚被分在了不同的类中时,就涉及了该元件或端口所归属类问题。这里可以通过“多数服从少数”的方式进行该元件或端口的归属的确定。例如,元件X有10个引脚,其中6个被分到了A类,4个被分到了B类,则认为元件X属于A类。即,在一些实施例中,所述生成合并结果之后,所述方法还包括:根据所述合并结果生成所述引脚对应的各个元件的分类结果;其中,所述分类结果根据任一所述元件对应的全部引脚的合并结果中占据比例最大的合并方式确定。
步骤408,输出所述合并结果,以根据所述合并结果对芯片的布局进行优化。
最终,在得出合并结果之后,可以对其进行输出,以通过该合并结果指导下游的芯片布局的优化方案。根据合并结果,可以将同一类的元件或端口相邻设置,或就近设置。这样由于同一类的元件或端口是根据信息熵最小时确定的,从而同一类的元件或端口之间的联系是较为紧密的,其之间进行的连接也较多。进而,将同一类的元件或端口相邻设置,或就近设置,可以在线长目标设计和优化时,直接就近完成连接,同时由于同一类元件或端口间隔很近,其间设计的连线也不容易被其他连线破坏,以此通过合并结果可以在减少线长目标的优化次数的同时,减少线长目标被破坏的次数或几率。从而最终在提升了整体效率的同时降低了设计成本。
当然,在一些实施例中,对于合并结果的输出的方式可以不仅限于输出给后端芯片布局单元,其还可以用以存储、展示、使用或再加工该合并结果。根据不同的应用场景和实施需要,具体的对于合并结果的输出方式可以灵活选择。
例如,对于本实施例的方法在单一设备上执行的应用场景,可以将合并结果直接在当前设备的显示部件(显示器、投影仪等)上以显示的方式输出,使得当前设备的操作者能够从显示部件上直接看到合并结果的内容。
又如,对于本实施例的方法在多个设备组成的系统上执行的应用场景,可以将合并结果通过任意的数据通信方式(有线连接、NFC、蓝牙、wifi、蜂窝移动网络等)发送至系统内的其他作为接收方的预设设备上,即同步终端上,以使得同步终端可以对其进行后续处理。可选的,该同步终端可以是预设的服务器,服务器一般设置在云端,作为数据的处理和存储中心,其能够对合并结果进行存储和分发;其中,分发的接收方是终端设备,该些终端设备的持有者或操作者可以是芯片的各级设计者、设计监管者、生产者等等。
再如,对于本实施例的方法在多个设备组成的系统上执行的应用场景时,可以将合并结果通过任意的数据通信方式直接发送至预设的终端设备,终端设备可以是前述段落列举中的一种或多种。
在具体实施例中,可以通过设计一种基于图结构网络的聚类模型,来预测元件的分类关系。并在布局优化过程中对同类元件添加额外的作用力来引导优化过程,最终优化布局的结果。其中的距离模型是无监督学习的聚类模型,无监督学习是机器学习的一种,和监督学习相对应,监督学习要求所有数据有标签,而无监督则不需要标签。
图结构网络由芯片网表中的信息构建,元件及端口(或引脚)构成网中节点,芯片网表中的连接网构成网络中的无向边,元件的属性构成网络中边上的权重。
聚类模型采用信息熵作为目标函数,定义同类元件的熵之和减去不同类元件的熵为目标熵函数,优化目标是目标熵函数最小,即达到最小熵时的元件分类是最佳的分类结果。元件间的熵通过元件连接概率计算得到。而元件的连接概率则通过在上述由芯片网表构建的图结构网络上进行随机采样(以权重为依据进行带权重的随机采样)获得。具体的采样过程可以从选择某个节点开始,从连接到该节点的边中随机(根据权重)选择一条边确定下一个节点,再由该节点重复上述步骤采样下一节点,直到采样得到设定的节点数量,即完成一次采样。重复在初始节点上进行多次采样,用采样结果来计算节点间的连接概率。然后初始设置每个节点为独立的类,计算当前分类下的目标熵函数的值,以此按照随机的顺序遍历每个节点,将每个类(初始时即为每个节点)都归到让信息熵下降幅度最大的那个相邻的类中。重复上述步骤,直到信息熵不再下降。最终得到了元件的分类结果。
从上述实施例可以看出,本申请实施例提供的芯片布局优化方法,通过图结构网络表示芯片结构,以此根据每个节点连接边的权重对节点进行多次采样,来计算节点间的连接概率,将每个节点作为一类,根据连接概率进行类内信息熵和类间信息熵的计算,以此来进行类之间的合并,最终可以根据输出的合并结果,在进行芯片布局优化时,保持同一类中节点对应的元件相邻或不被分隔太远,以此来确保布局过程中保护线长目标尽量不被破坏,提升整体效率的同时降低了设计成本。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本申请实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法400。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法400相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法400。对应于方法400各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种芯片布局优化方法,其特征在于,包括:
获取芯片网表,根据所述芯片网表构建图结构网络,确定所述图结构网络中每条边的权重信息;
根据所述权重信息对所述图结构网络中的每个节点进行至少一次采样,根据采样结果确定所述每个节点与其他节点之间的连接概率;
将每个所述节点单独作为一类,根据任一类的类内信息熵和类间信息熵之间的关系进行类之间的合并,生成合并结果;其中,所述类内信息熵与所述类间信息熵通过所述连接概率确定;
输出所述合并结果,以根据所述合并结果对芯片的布局进行优化。
2.根据权利要求1所述的方法,其特征在于,所述根据所述权重信息对所述图结构网络中的每个节点进行至少一次采样,包括:
对于任一节点,以所述任一节点对应的每条边的权重信息为采样概率,进行设定次数边的采样,确定每次采样出来的边的另一端节点。
3.根据权利要求2所述的方法,其特征在于,所述根据采样结果确定所述每个节点与其他节点之间的连接概率,包括:
对每次采样出来的所述另一端节点进行统计,根据统计结果确定所述任一节点与每个所述另一端节点的所述连接概率。
4.根据权利要求1所述的方法,其特征在于,所述根据所述权重信息对所述图结构网络中的每个节点进行至少一次采样,包括:
对于任一节点,根据所述任一节点对应的每条边的权重信息进行边的选取,确定被选中的边的对侧节点为下一个节点,再根据所述下一个节点对应的每条边的权重信息进行边的选取,以此重复进行节点的选取,直至选中的节点数量达到预设阈值,认为完成一次所述任一节点的采样。
5.根据权利要求1所述的方法,其特征在于,所述根据任一类的类内信息熵和类间信息熵之间的关系进行类之间的合并,包括:
确定所述任一类的类内信息熵与类间信息熵之间的差值,确定所述差值最小时对应的类间信息熵的对侧类,将所述任一类合并于所述对侧类中。
6.根据权利要求5所述的方法,其特征在于,所述根据任一类的类内信息熵和类间信息熵之间的关系进行类之间的合并,生成合并结果,包括:
重复执行所述确定所述任一类的类内信息熵与类间信息熵之间的差值,确定所述差值最小时对应的类间信息熵的对侧类,将所述任一类合并于所述对侧类中,直至符合预设条件,生成所述合并结果。
7.根据权利要求6所述的方法,其特征在于,所述预设条件,包括:
达到预设次数、每个类的所述差值均小于预设阈值或每个类的所述差值等于零。
8.根据权利要求1所述的方法,其特征在于,所述根据所述芯片网表构建图结构网络,包括:
将所述芯片网表记录的元件及端口作为所述图结构网络的节点,根据所述芯片网表记录的连接路径作为所述图结构网络的边。
9.根据权利要求1所述的方法,其特征在于,所述根据所述芯片网表构建图结构网络,包括:
将所述芯片网表记录的引脚作为所述图结构网络的节点,根据所述芯片网表记录的连接路径作为所述图结构网络的边。
10.根据权利要求9所述的方法,其特征在于,所述生成合并结果之后,所述方法还包括:
根据所述合并结果生成所述引脚对应的各个元件的分类结果;其中,所述分类结果根据任一所述元件对应的全部引脚的合并结果中占据比例最大的合并方式确定。
11.一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1至10任意一项所述的方法的指令。
12.一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311064572.1A CN116822452B (zh) | 2023-08-23 | 2023-08-23 | 芯片布局优化方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311064572.1A CN116822452B (zh) | 2023-08-23 | 2023-08-23 | 芯片布局优化方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116822452A true CN116822452A (zh) | 2023-09-29 |
CN116822452B CN116822452B (zh) | 2023-11-21 |
Family
ID=88120514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311064572.1A Active CN116822452B (zh) | 2023-08-23 | 2023-08-23 | 芯片布局优化方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116822452B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117829085A (zh) * | 2024-03-04 | 2024-04-05 | 中国科学技术大学 | 一种适用于芯片布线的连通图生成方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198971A1 (en) * | 2003-02-05 | 2007-08-23 | Dasu Aravind R | Reconfigurable processing |
CN107563095A (zh) * | 2017-09-22 | 2018-01-09 | 中国矿业大学(北京) | 一种大规模集成电路非线性布局方法 |
CN113392332A (zh) * | 2021-05-17 | 2021-09-14 | 杭州电子科技大学 | 面向大规模多元网络数据的简化可视分析方法 |
CN114065694A (zh) * | 2020-08-03 | 2022-02-18 | 上海复旦微电子集团股份有限公司 | 一种fpga布线资源图压缩方法和全局布线模块 |
CN115017850A (zh) * | 2022-06-20 | 2022-09-06 | 东南大学 | 一种数字集成电路优化方法 |
CN115730555A (zh) * | 2022-12-05 | 2023-03-03 | 无锡芯光互连技术研究院有限公司 | 一种芯片布局方法、装置、设备及存储介质 |
CN116579289A (zh) * | 2023-07-12 | 2023-08-11 | 中诚华隆计算机技术有限公司 | 一种基于芯粒技术的基板布局优化方法和系统 |
-
2023
- 2023-08-23 CN CN202311064572.1A patent/CN116822452B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198971A1 (en) * | 2003-02-05 | 2007-08-23 | Dasu Aravind R | Reconfigurable processing |
CN107563095A (zh) * | 2017-09-22 | 2018-01-09 | 中国矿业大学(北京) | 一种大规模集成电路非线性布局方法 |
CN114065694A (zh) * | 2020-08-03 | 2022-02-18 | 上海复旦微电子集团股份有限公司 | 一种fpga布线资源图压缩方法和全局布线模块 |
CN113392332A (zh) * | 2021-05-17 | 2021-09-14 | 杭州电子科技大学 | 面向大规模多元网络数据的简化可视分析方法 |
CN115017850A (zh) * | 2022-06-20 | 2022-09-06 | 东南大学 | 一种数字集成电路优化方法 |
CN115730555A (zh) * | 2022-12-05 | 2023-03-03 | 无锡芯光互连技术研究院有限公司 | 一种芯片布局方法、装置、设备及存储介质 |
CN116579289A (zh) * | 2023-07-12 | 2023-08-11 | 中诚华隆计算机技术有限公司 | 一种基于芯粒技术的基板布局优化方法和系统 |
Non-Patent Citations (1)
Title |
---|
石运琪: "智能算法在微流控芯片结构设计及高效化生产中的研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》, no. 2, pages 135 - 719 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117829085A (zh) * | 2024-03-04 | 2024-04-05 | 中国科学技术大学 | 一种适用于芯片布线的连通图生成方法 |
CN117829085B (zh) * | 2024-03-04 | 2024-05-17 | 中国科学技术大学 | 一种适用于芯片布线的连通图生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116822452B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110991138B (zh) | 用于生成集成电路的方法和系统以及计算机可读介质 | |
US10685160B2 (en) | Large cluster persistence during placement optimization of integrated circuit designs | |
US10489542B2 (en) | Machine learning based post route path delay estimator from synthesis netlist | |
CN116822452B (zh) | 芯片布局优化方法及相关设备 | |
CN113570030B (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN116151179B (zh) | 芯片设计的布局规划方法及相关设备 | |
CN116911246B (zh) | 芯片设计的布线规划方法及相关设备 | |
US9684751B2 (en) | Slack redistribution for additional power recovery | |
CN116090396B (zh) | 显示芯片设计的数据流的方法及相关设备 | |
CN114417754B (zh) | 组合逻辑单元的形式化识别方法及相关设备 | |
CN117057290A (zh) | 时序优化方法、装置、电子设备及存储介质 | |
CN116306486A (zh) | 芯片设计的设计规则检查方法及相关设备 | |
CN114004190B (zh) | 基于物理版图的多层级信息获取及可扩展操作的方法 | |
CN114548028B (zh) | 进行低功耗设计的方法、电子设备及存储介质 | |
CN113609812A (zh) | 基于LightGBM的网表级的线时延预测方法、设备及介质 | |
US10394994B2 (en) | Field-effect transistor placement optimization for improved leaf cell routability | |
CN117521586B (zh) | 芯片设计的布局规划方法及相关设备 | |
CN116911224B (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
CN117272918B (zh) | 在gui界面中进行时钟树规则配置的方法及相关设备 | |
CN117688895B (zh) | 电路图生成方法、计算机设备及存储介质 | |
US20230394211A1 (en) | Timing-aware and simultaneous optimization of latch clustering and placement in an integrated circuit | |
US20230237233A1 (en) | Power staple avoidance for routing via reduction | |
US20220114321A1 (en) | Systems And Methods For Generating Placements For Circuit Designs Using Pyramidal Flows | |
US9792399B2 (en) | Integrated circuit hierarchical design tool apparatus and method of hierarchically designing an integrated circuit | |
Wang et al. | Effective regularity extraction and placement techniques for datapath‐intensive circuits |
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 |