CN112183001A - 一种基于超图的多级聚类方法 - Google Patents

一种基于超图的多级聚类方法 Download PDF

Info

Publication number
CN112183001A
CN112183001A CN202011080027.8A CN202011080027A CN112183001A CN 112183001 A CN112183001 A CN 112183001A CN 202011080027 A CN202011080027 A CN 202011080027A CN 112183001 A CN112183001 A CN 112183001A
Authority
CN
China
Prior art keywords
clustering
node
nodes
hypergraph
cluster
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
Application number
CN202011080027.8A
Other languages
English (en)
Other versions
CN112183001B (zh
Inventor
林铠鹏
汤正光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Guowei Silcore Technology Co Ltd
Original Assignee
Shanghai Guowei Silcore Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Guowei Silcore Technology Co Ltd filed Critical Shanghai Guowei Silcore Technology Co Ltd
Priority to CN202011080027.8A priority Critical patent/CN112183001B/zh
Publication of CN112183001A publication Critical patent/CN112183001A/zh
Application granted granted Critical
Publication of CN112183001B publication Critical patent/CN112183001B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Geometry (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于超图的多级聚类方法,包括步骤1、获取第一超图;步骤2、基于预设方式,根据第一预设顺序对每个所述第一节点进行处理以得到第一聚类结果;步骤3、对所述第一聚类结果进行去重处理得到第二聚类结果;步骤4、对所述第二聚类结果进行聚类处理得到第二超图;步骤5、对步骤4得到的所述第二超图循环执行步骤2和步骤4,直至步骤4所得到的所述第二超图的节点数量与所述第一超图中的节点数量的比值满足第一预设阈值,以得到第三超图;步骤6、基于最大连接度聚类方法,根据所述第三超图得到最终的聚类结果。本发明的聚类方法能够实现更高质量的聚类结果,可以提高聚类速度以及实现超图更加粗粒化的过程。

Description

一种基于超图的多级聚类方法
技术领域
本发明属于集成电路技术领域,具体涉及一种基于超图的多级聚类方法。
背景技术
随着集成电路规模的极速增长,受软件平台特点限制,采用软件模拟硬件电路的仿真是基于软件串行模拟硬件并行的方法,这样会导致传统仿真方法在针对超大规模电路仿真时就会出现耗时极大的问题。
而在市场竞争驱动下,减少设计迭代时间,提高设计效率以缩短设计流程的实际需求使得采用迭代更快、效率更高的仿真替代方案就显得很重要。基于此,可以采用基于多FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)系统的硬件仿真平台实现电路仿真,而将一个传统的ASIC(Application Specific Integrated Circuit,专用集成电路)设计映射到多FPGA系统中需要采用聚类/分割算法实现。
目前已经提出了一些针对VLSI(Very Large Scale Integration,超大规模集成电路)电路划分的方法。一般而言,传统电路划分方法使用效果较好并得到广泛使用的是多层级划分方法,具体可分为聚类、初始分割、分割改善三个步骤。其中多级划分方法中的聚类过程,目前提出的方法主要有以下两类:(1)基于连接关系的聚类方法;(2)基于匹配选点的聚类方法。
其中,基于连接关系的聚类方法可以分为两种实现方式:第一种是将超图转换为图的实现方式:基于连接关系的聚类方法是先将超图转换为图,根据两点之间的电路连接关系来进行节点之间的聚合形成聚类,例如根据两节点之间的线网数目形成聚类单元,这种方法目的在于借助原始电路的连接紧密性将紧密度更高的节点进行聚类,这是实现不同聚类团之间互连线数目最小最直接的思路。第二种是直接针对超边的聚类实现方式:此种实现方式是直接针对由电路转换而来的超图进行处理,较为简单的方案为:将超图中各条超边按照优化目标赋予权重,比如按照每条超边线网连接节点的数目进行权重排序,按照权重顺序依次将各条超边直接形成聚类;另外,较为复杂的方案有提出针对超边中各节点连接关系形成聚类团并且考虑避免局部连接性影响过大的聚类方法,比如将超边中的节点作为初始节点,讨论属于同一超边中的其他节点的聚类增益,基于此形成初始聚类结果,之后进行结果调整优化的实现方法。
基于匹配选点的聚类方法一般是基于随机匹配的思路,其目的在于增强跳出局部最优解的能力,基于随机匹配的方法寻找到更大的解空间,最终实现的结果可能会比确定性的贪婪式方法结果更好。
但是,方案(1)中将超图转换为图的实现方式,存在的缺点在于:首先对于大规模电路结构来说,将超图转换为图的过程就会耗费大量的内存,在转换过程中可能丢失原有电路超图的连接信息,比如原有超图中超边的权重映射到图中边的权重时可能会导致连接度不一致,以及此种转换带来的结果是原有电路拓扑结构发生改变;另外基于图采用选择最大连接度的邻点聚类的方法是一种贪婪式的方法,虽然速度很快,但是在电路连接较为复杂的设计之中,局部连接信息对聚类结果的质量影响会很大,以至于在形成聚类的过程中无法形成更加贴近原始电路结构的聚类结果,比较容易陷入局部最优解。方案(1)中直接针对超边的聚类实现方式,存在的缺点在于:直接按照超边权重排序进行聚类的方案,其权重排序方法对聚类的质量影响极大,在针对于最小割为目标的需求中通常无法建立直接的映射关系,而一般用于以时序为目标的系统优化中;基于超边节点建立聚类增益完成聚类过程的方法虽然具有直接在超图模型上进行最小割优化目标的准确映射,能够考虑全局连接关系的优点,但是在实现中存在运行时间较长,以及在后续聚类过程中各个团之间相互连接性较强,出现无法实现将超图进一步实现聚类粗化的缺点,这对后续过程带来的影响在于,聚类结果中聚类团的数目较多,对于后续初始分割相应的运行时间就会更长。方案(2)采用随机匹配选点聚类的方法,存在的缺点在于:尽管能保证探索到的解空间更大,但是由于采用随机性的方法,最后解的质量是不稳定的,这样带来的问题是,要得到一个较为稳定的解需要进行多轮运行迭代,寻找较为稳定的解,所以通常不能进行功能性聚类,一般只用于单纯减小网表规模。
因此,提供一种兼具聚类质量以及聚类速度的方程成为了亟待解决的问题。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于超图的多级聚类方法。本发明要解决的技术问题通过以下技术方案实现:
一种基于超图的多级聚类方法,包括:
步骤1、获取第一超图,所述第一超图包括若干第一节点、所述第一节点之间的连接线网;
步骤2、基于预设方式,根据第一预设顺序对每个所述第一节点进行处理以得到第一聚类结果,其中所述预设方式为以当前选取的所述第一节点为种子节点,根据所述种子节点和与其连接的其它第一节点之间的增益对该第一节点进行处理,以确定聚类结果,其中,所述增益为聚类前的线网割线数量和聚类后的线网割线数量之差;
步骤3、对所述第一聚类结果进行去重处理得到第二聚类结果;
步骤4、对所述第二聚类结果进行聚类处理得到第二超图;
步骤5、对步骤4得到的所述第二超图循环执行步骤2和步骤4,直至步骤4所得到的所述第二超图的节点数量与所述第一超图中的节点数量的比值满足第一预设阈值,以得到第三超图,所述第三超图包括若干第三节点、所述第三节点之间的连接线网;
步骤6、基于最大连接度聚类方法,根据所述第三超图得到最终的聚类结果。
在本发明的一个实施例中,根据所述种子节点和与其连接的其它第一节点之间的增益对该第一节点进行处理,以确定聚类结果,包括:
判断所述种子节点和与其连接的其它第一节点在聚类成团后的增益的值,若所述增益的值大于或者等于零,则将满足条件的所述第一节点加入该种子节点对应的聚类团中,若所述增益的值小于零,则不进行聚类。
在本发明的一个实施例中,将满足条件的所述第一节点加入该种子节点对应的聚类团中,包括:
判断所述种子节点对应的聚类团面积或者聚类团中的节点数量是否达到阈值条件,若未达到,则将所述第一节点与该种子节点进行聚类成团。
在本发明的一个实施例中,所述第一聚类结果中未被聚类的第一节点的增益小于零或/和未被聚类的第一节点对应的聚类团面积或者聚类团中的节点数量达到设定的阈值条件。
在本发明的一个实施例中,所述步骤3,包括:
获取所述第一聚类结果中同时出现在不同聚类团的第一节点;
判断所述第一节点所在的不同聚类团的类型,若所述类型为完全重复,则删除多余的聚类团,仅保留一个包含该第一节点的聚类团,若所述类型为部分重复,则根据所述第一节点在不同的聚类团中的聚类团权重分数确定该第一节点所属的聚类团,并将该第一节点从其它聚类团中删除。
在本发明的一个实施例中,根据所述第一节点在不同的聚类团中的聚类团权重分数确定该第一节点所属的聚类团,并将该第一节点从其它聚类团中删除,包括:
根据聚类团权重分数模型计算所述第一节点在不同的聚类团中的聚类团权重分数,将该第一节点保留在聚类团权重分数最大的聚类团中,且将除此以外的其它聚类团中的该第一节点删除。
在本发明的一个实施例中,所述聚类团权重分数模型为:
Figure BDA0002718406250000051
其中,clustered nets是聚类团里面包含的线网权值之和,clusted cells是聚类团里面包含的节点数量,total cluster area是聚类团里面所有节点的面积之和。
在本发明的一个实施例中,所述步骤6,包括:
步骤6.1、将所述第三超图转换为第一图;
步骤6.2、计算所述第一图中每个所述第三节点的边权值总和,根据所述边权值总和的大小对所有所述第三节点按照第二预设顺序进行访问,基于最大连接度聚类方法对所述第一图中每个所述第三节点进行聚类,以得到第二图;
步骤6.3、判断所述第二图是否仅有一个聚类团,若是,则将上一级聚类结果作为最终的聚类结果,若不是,则判断所述第二图中的所有节点数量与所述第一图中的所有节点数量的比值是否大于第二预设阈值,若大于所述第二预设阈值,则将所述第二图作为最终的聚类结果,若小于或者等于所述第二预设阈值,则将对步骤6.2得到的所述第二图循环执行步骤6.2和步骤6.3,直至得到最终的聚类结果。
在本发明的一个实施例中,基于最大连接度聚类方法对所述第一图中每个所述第三节点进行聚类,包括:
判断所述第三节点是否被聚类,若所述第三节点已经被聚类,则不对该第三节点进行处理,若所述第三节点未被聚类,则根据所述第三节点和与该第三节点相邻的邻接点的关系对该第三节点进行聚类处理,以得到所述第二图,其中邻接点为与所述第三节点相连的其它第三节点。
在本发明的一个实施例中,根据所述第三节点和与该第三节点相邻的邻接点的关系对该第三节点进行聚类处理,包括:
判断与所述第三节点相邻的邻接点是否均已被聚类,若所有所述邻接点均未被聚类,则将所述第三节点与边权值和最大的邻接点进行聚类,若所有所述邻接点均已被聚类,则将所述第三节点直接加入边权值和最大的所述邻接点所在的聚类团中,若部分所述邻接点被聚类,则比较所述第三节点与所有被聚类的邻接点的边权值和,以及所述第三节点与所有未被聚类的邻接点的边权值和的大小,并将所述第三节点聚类至边权值和最大的一方。
本发明的有益效果:
本发明对于给定的初始电路结构,直接针对电路超图模型,采用优先基于超边中的节点为中心形成初始聚类,后续依据全局连接关系权衡调整聚类团结果的聚类策略,在最初的迭代过程中实现捕获原始电路中更为自然的聚类结果,保证相较于超图转图之后进行选择连接度较大邻点聚类的方法,实现更高质量的聚类结果。而在之后层级聚类实现中,由于电路初始连接关系已经通过上述方法实现了识别聚类,全局节点连接关系的复杂性得以降低,因此后续采用超图转图后,基于局部连接度进行聚类的方法,可以提高聚类速度以及实现超图更加粗粒化的过程。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的一种基于超图的多级聚类方法的流程示意图;
图2a至图2e是本发明实施例提供的一种基于超边局部连接信息的聚类方法的实现流程图;
图3是本发明实施例提供的一种超图转换为图的示意图;
图4是本发明实施例提供的一种图的示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
实施例一
目前,基于多级划分方法的大规模集成电路聚类方法,基于考虑全局连接关系的超边聚类方法虽然具有聚类质量较好,但是存在聚类速度较慢,粗化过程无法得到数目较少的聚类结果;而基于传统基于超图转图之后进行局部连接性最大的聚类方法,虽然具有速度较快,但是存在着在电路规模较大的情况下超图转图过程需要大量内存空间,以及转换过程优化目标可能无法完全匹配映射,以及存在着受局部连接性影响较大的缺点。
基于上述原因,本实施例提供了一种基于超图的多级聚类方法。请参见图1,图1是本发明实施例提供的一种基于超图的多级聚类方法的流程示意图。本发明实施例提供一种基于超图的多级聚类方法,该多级聚类方法包括步骤1至步骤6,其中:
步骤1、获取第一超图,第一超图包括若干第一节点、第一节点之间的连接线网。
具体地,读入设计对应的超图文件信息(即第一超图),第一超图中包含三部分信息:节点信息(即所有第一节点)、节点之间的线网连接信息(以及第一节点之间的连接线网)以及事先制定的划分标准。
步骤2、基于预设方式,根据第一预设顺序对每个第一节点进行处理以得到第一聚类结果,其中预设方式为以当前选取的第一节点为种子节点,根据种子节点和与其连接的其它第一节点之间的增益对该第一节点进行处理,以确定聚类结果,其中,增益为聚类前的线网割线数量和聚类后的线网割线数量之差。
具体地,对于超图而言,节点一般包括有三种类型,分别为固定节点、普通节点、端口节点三种节点类型定义,固定节点的定义为由用户事先规定的特定节点的划分标准,即在实际设计中,某些单元模块用户更希望将其划分到到特定的FPGA板块中,这种节点称为固定节点,请参见图2,图2中的节点0即为固定节点,最终的划分结果需要满足此约束;端口节点的定义为电路最外围的线网端口节点;普通节点定义为除了固定节点和端口节点以外的节点,即利用本实施例提供的聚类方法进行聚类的节点,例如图2中的节点1至节点9。如果选取的节点为固定节点或者端口节点,则自身形成聚类团,直接拷贝到下一聚类层级。
因为,本实施例的步骤2需要遍历所有的第一节点,因此为了便于讨论,本实施例以第一预设顺序对所有第一节点依次进行访问,其中,本实施例不对第一预设顺序进行限定,只要满足在每级聚类时能够遍历所有节点即可。
本实施例将当前需要访问的第一节点作为种子节点,根据将与该种子节点相连接的第一节点移动至该种子节点所在的聚类团中后增益所发生的变化,确定是否将与种子节点相连接的第一节点加入该聚类中,若满足增益需求,则将其加入种子节点所在的聚类团中,若不满足,则不加入,其中增益即为聚类前的线网割线数量和聚类后的线网割线数量之差,线网割线数量为围绕聚类团的聚类图边界线(即图2a至2e中的虚线)所切割的线网数量。
进一步地,根据种子节点和与其连接的其它第一节点之间的增益对该第一节点进行处理,以确定聚类结果,包括:判断种子节点和与其连接的其它第一节点在聚类成团后的增益的值,若增益的值大于或者等于零,则则将满足条件的第一节点加入该种子节点对应的聚类团中,若增益的值小于零,则不进行聚类。
例如,请参见图2b,选取节点1为种子节点,此时节点1自身为一个聚类团,与节点1相连的节点1有节点2和节点5,在为聚类之前,节点1与节点2之间的线网割线数量为1,节点1与节点5之间的线网割线数量为2,若将节点2加入节点1所在的聚类团后,聚类图边界线则会与节点2和节点3之间的线网、节点2和节点4之间的线网均相交,此时线网割线数量变为了2,增益为1-2=-1,增益为负,说明不能将节点2加入节点1所在的聚类团中,而若将节点5加入节点1所在的聚类团后,聚类图边界线则会与节点5和节点6之间的线网相交,此时线网割线数量变为了1,增益为2-1=1,增益为正,说明能够将节点5加入节点1所在的聚类团中,新的聚类团则包含节点1和节点5,进一步讨论节点6,同理可知增益为0,将节点6移入此聚类,形成新的聚类团,即图2c中的Cluster_1。相似地,选择节点2作为种子节点,生成图2c中的Cluster_2。另外,对于一个线网同时连接多个节点时,其计算时数量按1计算,例如,当节点7为种子节点时,在未将节点8与其聚类前,其线网割线数量为2,当将节点8与其聚类后,线网割线数量为1。
例如对于图2a所提供的超图,经过第一轮遍历节点1至节点9后,可以生成各个cluster(聚类团),分别为Cluster_0、Cluster_1/5、Cluster_2、Cluster_7/8。
进一步地,为了保证聚类团的质量,在判断增益值大于或者等于零后,还需要判断种子节点对应的聚类团面积或者聚类团中的节点数量是否达到阈值条件,若未达到,则将第一节点与该种子节点进行聚类成团,其中聚类团面积为聚类团中所有节点的面积之和。
也就是说,本实施例为了保证每个聚类团的质量,在确定了增益值大于或者等于零后,还需要判断种子节点所在的聚类团面积或者聚类团中的节点数量是否达到所设定的阈值条件,若未达到,则说明该聚类团还可以加入新的节点,若已达到,则说明该聚类团不能加入新的节点。
进一步地,当遍历完成所有第一节点,会得到一聚类结果(即第一聚类结果),该第一聚类结果中未被聚类的第一节点的增益小于零或/和未被聚类的第一节点对应的聚类团面积或者聚类团中的节点数量达到设定的阈值条件。
也就是说,第一聚类结果中还可能存在一些未被聚类过的节点,这些节点可以为增益小于零的节点,也可以为虽然增益大于或者等于零,但是该第一节点对应的种子节点所在的聚类团的聚类团面积或者聚类团中的节点数量已经达到设定的阈值条件。
步骤3、对第一聚类结果进行去重处理得到第二超图。
具体地,对于经过步骤2聚类后得到的第一聚类结果,不同聚类团之间可能存在重复包含的节点,此时需要进行去重操作,已使所有节点仅存在于一个聚类团中,经过去重处理的第一聚类结果即为第二超图。
在一个实施例中,步骤3可以具体包括:
步骤3.1、获取第一聚类结果中同时出现在不同聚类团的第一节点;
步骤3.2、判断第一节点所在的不同聚类团的类型,若类型为完全重复,则删除多余的聚类团,仅保留一个包含该第一节点的聚类团,若类型为部分重复,则根据第一节点在不同的聚类团中的聚类团权重分数确定该第一节点所属的聚类团,且将该第一节点从其它聚类团中删除。
也就是说,第一节点可能同时出现在不同的聚类团当中,当其所在的所有聚类团相互包含的第一节点完全相同时,则为完全重复,此时将多余的聚类团删除,仅保留一个聚类团即可,当其所在的所有聚类团相互包含的节点不完全相同时,则为部分重复,此时则要计算该第一节点所在的每个聚类团的聚类团权重分数,并根据聚类团权重分数确定该第一节点所属的聚类团,并将该第一节点从其它聚类团中删除。
进一步地,根据第一节点在不同的聚类团中的聚类团权重分数确定该第一节点所属的聚类团,并将该第一节点从其它聚类团中删除,包括:根据聚类团权重分数模型计算第一节点在不同的聚类团中的聚类团权重分数,将该第一节点保留在聚类团权重分数最大的聚类团中,且将除此以外的其它聚类团中的该第一节点删除,聚类团权重分数模型用于计算聚类团中预设节点为种子节点所形成的聚类团的聚类分数,预设节点为与邻接点的增益大于或者等于零的种子节点,聚类团权重分数为所有种子节点所形成的聚类团的聚类分数之和,聚类团权重分数模型为:
Figure BDA0002718406250000121
其中,clustered nets是聚类团里面包含的线网权值之和,clusted cells是聚类团里面包含的节点数量,total cluster area是聚类团里面所有节点的面积之和。
其中,每个聚类团的聚类团权重分数为聚类团内所有以预设节点为种子节点所形成的聚类团的聚类分数之和。
例如,如图2d所示,该超图中的节点6既在聚类团Custer_1/5,也在聚类团Cluster_7/8,因此需要分别计算节点6在聚类团Custer_1/5,设定每个线网的权重为1,则计算每个聚类团对应的权重分数:
Figure BDA0002718406250000122
Figure BDA0002718406250000123
Figure BDA0002718406250000124
其中,Score(Cluster_2)为以节点2为种子节点所形成的聚类团的聚类分数,Score(Cluster_1)为以节点1为种子节点所形成的聚类团的聚类分数,Score(Cluster_5)为以节点5为种子节点所形成的聚类团的聚类分数,Score(Cluster_7)为以节点7为种子节点所形成的聚类团的聚类分数,Score(Cluster_8)为以节点8为种子节点所形成的聚类团的聚类分数。
从全局聚类结果来看,Score(Cluster_1)与Score(Cluster_5)完全相同,Score(Cluster_7)与Score(Cluster_8)完全相同,则考虑将节点6并入到聚类团cluter_1/5的聚类团权重分数为:Score(Cluster_1)+Score(Cluster_5)=1.0;而考虑将节点6并入到聚类团cluter_7/8的聚类团权重分数为Score(Cluster_7)+Score(Cluster_8)=0.5,所以选择将节点6并入聚类团权重分数较大的聚类团cluster_1/5中,并且将节点6从聚类团权重分数较小的聚类团cluster_7/8中删除,如图2e所示,可以得到最终的聚类结果。
步骤4、对第二聚类结果进行聚类处理得到第二超图。
具体地,对所得到的第二聚类结果中的每个聚类团进行聚类,则可以得到聚类后的超图,该超图即为第二超图。
步骤5、对步骤4得到的第二超图循环执行步骤2和步骤4,直至步骤4所得到的第二超图的节点数量与第一超图中的节点数量的比值满足第一预设阈值,以得到最终的第三超图,第三超图包括若干第三节点、第三节点之间的连接线网。
也就是说,在按照步骤2至步骤4的方式完成几轮(如3到4轮)聚类操作之后,此时所得到的第二超图的节点数量与第一超图中的节点数量的比值满足第一预设阈值,电路原始结构通过聚类便可捕捉到,便可以结束该迭代过程,以便进行下一步操作,经过几轮聚类操作之后所得到的最终的第二超图即为第三超图,该第三超图包括若干第三节点及第三节点之间的连接线网。
优选地,第一预设阈值的范围为20%-30%。
步骤6、基于最大连接度聚类方法,根据第三超图得到最终的聚类结果。
步骤6.1、将第三超图转换为第一图。
具体地,将经过上述聚类方式所得到的第三超图转换为图,该图即为第一图,图即为每个一条线网上最多连两个节点的图。
步骤6.2、计算第一图中每个第三节点的边权值总和,根据边权值总和的大小对所有第三节点按照第二预设顺序进行访问,基于最大连接度聚类方法对第一图中每个第三节点进行聚类,以得到第二图。
首先,边权值为超边权值/(超边的度-1),边权值和为一个节点与另一个节点的边权值的和,边权值总和为一个节点的所有边权值的总和,如图3所示,位于箭头左侧的节点6、节点7、节点8和节点9为超图,位于箭头右侧的节点6、节点7、节点8和节点9为图,则节点8和节点7之间有两条连接线,则一个连接线的边权值为1/(3-1)=1/2,另一个连接线的边权值为1/(2-1)=1,则节点8和节点7之间的边权值和为1/2+1=3/2,节点8和节点7之间有一条连接线,其边权值为1/(3-1)=1/2,则节点8的边权值总和为3/2+1/2=2。因此,基于上述方式,可以得到第一图中每个第三节点的边权值总和,因此可以按照第二预设顺序(如边权值总和的升序顺序)进行访问,之后便可以按照该访问顺序,利用最大连接度聚类方法对所述第一图中每个所述第三节点进行聚类,第二图即为经过一轮的访问之后,所得到的经过聚类的图。
在一个具体实施方式中,基于最大连接度聚类方法对第一图中每个第三节点进行聚类,以得到第二图,包括:判断第一图中的第三节点是否被聚类,若第三节点已经被聚类,则不对该第三节点进行处理,若第三节点未被聚类,则根据第三节点和与该第三节点相邻的邻接点的关系对该第三节点进行聚类处理,以得到第二图,其中邻接点为与第三节点相连的其它第三节点。
在一个具体实施方式中,根据第三节点和与该第三节点相邻的邻接点的关系对该第三节点进行聚类处理,以得到第二图,包括:判断与第三节点相邻的邻接点是否均已被聚类,若所有邻接点均未被聚类,则将第三节点与边权值和最大的邻接点进行聚类,即将第三节点和与其相邻的且和其之间所得到的边权值和最大的邻接点聚类成一个聚类团,若所有邻接点均已被聚类,则将第三节点直接加入边权值和最大的邻接点所在的聚类团中,即将第三节点加入至与其相邻的且和其之间所得到的边权值和最大的邻接点所在的聚类团中,若部分邻接点被聚类,则比较第三节点与所有被聚类的邻接点的边权值和,以及第三节点与所有未被聚类的邻接点的边权值和的大小,并将第三节点聚类至边权值和最大的一方,另外,当最大的边权值和有两个及两个以上时,则将第三节点加入任意一个邻接点中,其中,边权值和为两个节点之间所有连接线的权值之和,例如图4所示,节点3与邻接点1所处的聚类团{2,1,5}之间的边权值和为1,节点3与邻接点7,8所处的聚类团{7,8}之间的边权值和为2,节点3与未被聚类的邻接点4之间的边权值和为2,节点3与未被聚类的邻接点6之间的边权值和为1,则选择边权值和最大的邻接点进行聚类,在此可以选择加入聚类团{7,8},也可以与邻接点4形成新的聚类团。
步骤6.3、判断第二图是否仅有一个聚类团,若是,则放弃此次聚类结果,将上一级聚类结果作为最终的聚类结果,若不是,则判断第二图中的所有节点数量与其上一级的图中的所有节点数量的比值是否大于第二预设阈值,若大于第二预设阈值,则将第二图作为最终的聚类结果,若小于或者等于第二预设阈值,则对步骤6.2得到的第二图循环执行步骤6.2和步骤6.3,直至得到最终的聚类结果。其中,当第二图中的所有节点数量与其上一级的图中的所有节点数量的比值大于第二预设阈值时,说明聚类过程趋于收敛,则迭代结束,将其作为聚类结果输出。
优选地,第二预设阈值为0.9。
本发明将电路对应的超图作为输入,将电路单元对应的节点作为聚类团的初始种子节点,根据其余节点移动导致割边权重减小的增益作为标准,将增益大于或者等于零的节点进行移动,放入种子节点所在的聚类团。重复此过程,在后续聚类过程中不考虑在之前步骤中节点是否已经被聚,最后每个种子均会形成一个聚类团,但这样形成的聚类团之间可能存在重叠部分,所以本发明采用基于权重分数去重的方法进行去重,具体来说,是计算出重复节点所在聚类团的权值分数,将其从大到小排序,选择将重复节点聚类到权值分数最大的聚类团中完成去重。多级聚类框架中,在完成上述几轮聚类过程之后,原始电路拓扑结构对应的连接关系基本可以实现聚类成团,之后由于粗化的电路规模较小,采用速度更快的基于连接度选择的聚类方法完成后续聚类过程。
本发明对于给定的电路设计超图信息,采用基于超边局部连接信息的移动改善方法形成初始聚类结果,之后进行考虑全局信息的权衡修整最终形成聚类结果。这种方法可以直接对超图超边进行处理,无需进行大规模设计下超图到图数据的转换,以及加入全局连接关系的考虑,不至于导致受局部连接信息影响较大带来的局部最优解问题。
本发明考虑实际工程中需求,某些单元节点比如macro单元需要特定进行放置,在提出的方法中也能对这种特殊情况的单元节点进行处理,具有更强的适用性。
本发明兼顾了聚类质量以及聚类速度:本发明采用的聚类方法,在初始聚类迭代中采用考虑全局连接关系的超边聚类方法,先将原始电路的连接关系在全局层面进行考虑,进行原始电路结构的捕获聚类。后续由于得到的超图已经经过了迭代聚类的粗化缩小,以及电路连接关系已经实现捕获,所以后续结合基于超图转图之后进行局部连接性最大的聚类方法,快速实现更加粗粒度的聚类过程,因此本发明的聚类方法在保证了聚类质量的同时,还能以较快的速度进行聚类。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种基于超图的多级聚类方法,其特征在于,包括:
步骤1、获取第一超图,所述第一超图包括若干第一节点、所述第一节点之间的连接线网;
步骤2、基于预设方式,根据第一预设顺序对每个所述第一节点进行处理以得到第一聚类结果,其中所述预设方式为以当前选取的所述第一节点为种子节点,根据所述种子节点和与其连接的其它第一节点之间的增益对该第一节点进行处理,以确定聚类结果,其中,所述增益为聚类前的线网割线数量和聚类后的线网割线数量之差;
步骤3、对所述第一聚类结果进行去重处理得到第二聚类结果;
步骤4、对所述第二聚类结果进行聚类处理得到第二超图;
步骤5、对步骤4得到的所述第二超图循环执行步骤2和步骤4,直至步骤4所得到的所述第二超图的节点数量与所述第一超图中的节点数量的比值满足第一预设阈值,以得到第三超图,所述第三超图包括若干第三节点、所述第三节点之间的连接线网;
步骤6、基于最大连接度聚类方法,根据所述第三超图得到最终的聚类结果。
2.根据权利要求1所述的多级聚类方法,其特征在于,根据所述种子节点和与其连接的其它第一节点之间的增益对该第一节点进行处理,以确定聚类结果,包括:
判断所述种子节点和与其连接的其它第一节点在聚类成团后的增益的值,若所述增益的值大于或者等于零,则将满足条件的所述第一节点加入该种子节点对应的聚类团中,若所述增益的值小于零,则不进行聚类。
3.根据权利要求2所述的多级聚类方法,其特征在于,将满足条件的所述第一节点加入该种子节点对应的聚类团中,包括:
判断所述种子节点对应的聚类团面积或者聚类团中的节点数量是否达到阈值条件,若未达到,则将所述第一节点与该种子节点进行聚类成团。
4.根据权利要求3所述的多级聚类方法,其特征在于,所述第一聚类结果中未被聚类的第一节点的增益小于零或/和未被聚类的第一节点对应的聚类团面积或者聚类团中的节点数量达到设定的阈值条件。
5.根据权利要求1所述的多级聚类方法,其特征在于,所述步骤3,包括:
获取所述第一聚类结果中同时出现在不同聚类团的第一节点;
判断所述第一节点所在的不同聚类团的类型,若所述类型为完全重复,则删除多余的聚类团,仅保留一个包含该第一节点的聚类团,若所述类型为部分重复,则根据所述第一节点在不同的聚类团中的聚类团权重分数确定该第一节点所属的聚类团,并将该第一节点从其它聚类团中删除。
6.根据权利要求5所述的多级聚类方法,其特征在于,根据所述第一节点在不同的聚类团中的聚类团权重分数确定该第一节点所属的聚类团,并将该第一节点从其它聚类团中删除,包括:
根据聚类团权重分数模型计算所述第一节点在不同的聚类团中的聚类团权重分数,将该第一节点保留在聚类团权重分数最大的聚类团中,且将除此以外的其它聚类团中的该第一节点删除。
7.根据权利要求6所述的多级聚类方法,其特征在于,所述聚类团权重分数模型为:
Figure FDA0002718406240000031
其中,clustered nets是聚类团里面包含的线网权值之和,clusted cells是聚类团里面包含的节点数量,total cluster area是聚类团里面所有节点的面积之和。
8.根据权利要求1所述的多级聚类方法,其特征在于,所述步骤6,包括:
步骤6.1、将所述第三超图转换为第一图;
步骤6.2、计算所述第一图中每个所述第三节点的边权值总和,根据所述边权值总和的大小对所有所述第三节点按照第二预设顺序进行访问,基于最大连接度聚类方法对所述第一图中每个所述第三节点进行聚类,以得到第二图;
步骤6.3、判断所述第二图是否仅有一个聚类团,若是,则将上一级聚类结果作为最终的聚类结果,若不是,则判断所述第二图中的所有节点数量与所述第一图中的所有节点数量的比值是否大于第二预设阈值,若大于所述第二预设阈值,则将所述第二图作为最终的聚类结果,若小于或者等于所述第二预设阈值,则将对步骤6.2得到的所述第二图循环执行步骤6.2和步骤6.3,直至得到最终的聚类结果。
9.根据权利要求8所述的多级聚类方法,其特征在于,基于最大连接度聚类方法对所述第一图中每个所述第三节点进行聚类,包括:
判断所述第三节点是否被聚类,若所述第三节点已经被聚类,则不对该第三节点进行处理,若所述第三节点未被聚类,则根据所述第三节点和与该第三节点相邻的邻接点的关系对该第三节点进行聚类处理,以得到所述第二图,其中邻接点为与所述第三节点相连的其它第三节点。
10.根据权利要求9所述的多级聚类方法,其特征在于,根据所述第三节点和与该第三节点相邻的邻接点的关系对该第三节点进行聚类处理,包括:
判断与所述第三节点相邻的邻接点是否均已被聚类,若所有所述邻接点均未被聚类,则将所述第三节点与边权值和最大的邻接点进行聚类,若所有所述邻接点均已被聚类,则将所述第三节点直接加入边权值和最大的所述邻接点所在的聚类团中,若部分所述邻接点被聚类,则比较所述第三节点与所有被聚类的邻接点的边权值和,以及所述第三节点与所有未被聚类的邻接点的边权值和的大小,并将所述第三节点聚类至边权值和最大的一方。
CN202011080027.8A 2020-10-10 2020-10-10 一种基于超图的集成电路的多级聚类方法 Active CN112183001B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011080027.8A CN112183001B (zh) 2020-10-10 2020-10-10 一种基于超图的集成电路的多级聚类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011080027.8A CN112183001B (zh) 2020-10-10 2020-10-10 一种基于超图的集成电路的多级聚类方法

Publications (2)

Publication Number Publication Date
CN112183001A true CN112183001A (zh) 2021-01-05
CN112183001B CN112183001B (zh) 2023-07-04

Family

ID=73947974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011080027.8A Active CN112183001B (zh) 2020-10-10 2020-10-10 一种基于超图的集成电路的多级聚类方法

Country Status (1)

Country Link
CN (1) CN112183001B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113191405A (zh) * 2021-04-16 2021-07-30 上海国微思尔芯技术股份有限公司 一种基于带权超图的多级聚类方法及计算机可读存储介质
WO2023214624A1 (ko) * 2022-05-04 2023-11-09 주식회사 애자일소다 파티셔닝을 이용한 심층 강화학습 기반의 집적회로 설계 시스템 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605820A (zh) * 2013-09-12 2014-02-26 福州大学 基于l1范数模型的vlsi标准单元全局布局方法
US20150007120A1 (en) * 2013-06-26 2015-01-01 Synopsys, Inc. Clustering using n-dimensional placement
CN104809242A (zh) * 2015-05-15 2015-07-29 成都睿峰科技有限公司 一种基于分布式结构的大数据聚类方法和装置
CN105279524A (zh) * 2015-11-04 2016-01-27 盐城工学院 基于无权超图分割的高维数据聚类方法
CN106557581A (zh) * 2016-11-29 2017-04-05 佛山科学技术学院 一种基于多层次框架及超边迁移的超图划分方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150007120A1 (en) * 2013-06-26 2015-01-01 Synopsys, Inc. Clustering using n-dimensional placement
CN103605820A (zh) * 2013-09-12 2014-02-26 福州大学 基于l1范数模型的vlsi标准单元全局布局方法
CN104809242A (zh) * 2015-05-15 2015-07-29 成都睿峰科技有限公司 一种基于分布式结构的大数据聚类方法和装置
CN105279524A (zh) * 2015-11-04 2016-01-27 盐城工学院 基于无权超图分割的高维数据聚类方法
CN106557581A (zh) * 2016-11-29 2017-04-05 佛山科学技术学院 一种基于多层次框架及超边迁移的超图划分方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113191405A (zh) * 2021-04-16 2021-07-30 上海国微思尔芯技术股份有限公司 一种基于带权超图的多级聚类方法及计算机可读存储介质
CN113191405B (zh) * 2021-04-16 2023-04-18 上海思尔芯技术股份有限公司 一种基于集成电路的带权超图的多级聚类方法及存储介质
WO2023214624A1 (ko) * 2022-05-04 2023-11-09 주식회사 애자일소다 파티셔닝을 이용한 심층 강화학습 기반의 집적회로 설계 시스템 및 방법

Also Published As

Publication number Publication date
CN112183001B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
CN111709092B (zh) 一种基于有限元单元节点的子午线轮胎胎面花纹有限元自动建模方法
CN111291525B (zh) 考虑总线和非总线线网的层分配方法
CN112258515B (zh) 一种基于固定顶点的图分割方法
WO2022266956A1 (zh) 一种芯片布局方法及装置
CN112183001A (zh) 一种基于超图的多级聚类方法
CN114332291B (zh) 一种倾斜摄影模型建筑物外轮廓规则提取方法
CN112733486B (zh) 一种用于芯片设计的智能布线方法及系统
CN113269791B (zh) 一种基于边缘判定与区域生长的点云分割方法
CN110232742A (zh) 3d打印分层控制算法
CN115859899A (zh) 一种多驱动能力的集成电路标准单元版图迁移的方法
CN104574517B (zh) 三维模型的边界面网格单元的处理方法和装置
CN107563095A (zh) 一种大规模集成电路非线性布局方法
CN114494648A (zh) 基于有限元网格划分的网格调整方法、设备和存储介质
TWI460680B (zh) 密度式資料分群方法
CN115526140A (zh) 一种考虑先进制程约束和单元移动的全局布线方法
CN113919266A (zh) 可编程器件的时钟规划方法、装置、电子设备及存储介质
CN117556760A (zh) 一种宏单元和可编程逻辑块分阶段优化的fpga全局布局方法
CN106780747B (zh) 一种快速分割cfd计算网格的方法
CN115330971B (zh) 一种面向渲染性能优化的几何模型轻量化方法
CN103823843B (zh) 一种高斯混合模型树及其递增聚类方法
CN115344607A (zh) 一种面向图数据的批量流式边点混合切分方法
KR102276369B1 (ko) 3차원 포인트 클라우드 신뢰도 판단 시스템 및 방법
CN108932528B (zh) 变色龙算法中相似性度量及截断方法
CN117807950B (zh) 一种考虑模块对称性的布图规划方法、系统及电子设备
CN108345649A (zh) 一种基于剪枝方式的dbscan分块优化方法

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
CB02 Change of applicant information

Address after: Room 27, 6th Floor, No. 29 and 30, Lane 1775, Qiushan Road, Lingang New Area, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, 200120

Applicant after: Shanghai Sierxin Technology Co.,Ltd.

Address before: Room 3332, No.26 Guoding Branch Road, Yangpu District, Shanghai 200082

Applicant before: Shanghai Guowei silcore Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant