基于云平台的芯片多端协同设计方法及系统转让专利

申请号 : CN202210160536.4

文献号 : CN114528799B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 侯宁王新刚石磊卢亚鹏陈英陈婧薇陈嘉浩边策

申请人 : 河南城建学院

摘要 :

本发明提供了一种基于云平台的芯片多端协同设计方法及系统,其中,基于云平台的芯片多端协同设计方法包括:为每个芯片设计端分配设计任务,每个芯片设计端分别根据设计任务对模块进行布局,将布局结果定时上传至云平台;云平台基于每次接收到的所有芯片设计端的布局结果求解最优布局结果,并根据每个芯片设计端的布局结果与最优布局结果计算设计任务的重布局代价指数和每个芯片设计端的设计能力指数,在进行下一次设计任务分配时将重布局代价指数高的设计任务分配给设计能力指数高的芯片设计端。本发明可以减少复杂芯片的设计周期,减少设计错误,提高芯片的设计效率,降低芯片设计对技术能力和工作经验的依赖程度。

权利要求 :

1.一种基于云平台的芯片多端协同设计方法,其特征在于,该方法包括:

为每个芯片设计端分配设计任务,每个芯片设计端分别根据设计任务对模块进行布局,将布局结果定时上传至云平台;其中,模块包括IO单元、宏单元、标准单元放置单元;布局结果中包括已布局模块和未布局模块;

云平台基于每次接收到的所有芯片设计端的布局结果求解最优布局结果,并根据每个芯片设计端的布局结果与最优布局结果计算设计任务的重布局代价指数和每个芯片设计端的设计能力指数,在进行下一次设计任务分配时将重布局代价指数高的设计任务分配给设计能力指数高的芯片设计端;

根据所有芯片设计端的布局结果得到多个优化布局结果,利用自动布局方法对所有优化布局结果进行布局,得到最优布局结果;其中,多个优化布局结果的获取方法为:步骤a,获取每个芯片设计端布局结果的伪最优布局结果,每个伪最优布局结果都对应一个第一图网络;每个芯片设计端布局结果对应的第一图网络融合得到第二图网络,将第二图网络划分为子图网络,子图网络的个数多于第一图网络的个数,基于第一图网络和子图网络得到优化布局结果;

步骤b,在芯片设计端的布局结果中删除已存在于优化布局结果中的模块;

步骤c,步骤b得到的芯片设计端的布局结果作为步骤a的输入,迭代执行步骤a、b,直至每个芯片设计端的布局结果中都不包括模块;

基于现有芯片设计大数据构建经验图网络,经验图网络中模块与模块通过连接边相连,连接边对应一个边权值;所述每个伪最优布局结果都对应一个第一图网络的方法为:对于该伪最优布局结果中的每个模块,在经验图网络中基于边权值大小寻找与该模块相连的经验模块,每个经验模块都存在于某一芯片设计端的布局结果中;将该伪最优布局结果中的所有模块以及寻找到的所有经验模块融合得到第一图网络,融合时统计每个经验模块的出现次数,第一图网络中每个模块的表征值为该模块的出现次数;

所述基于第一图网络和子图网络得到优化布局结果的方法为:计算每个子图网络的准确度,准确度越大,表示子图网络中的模块摆放在一起越合适;计算任意一个第一图网络与任意一个子图网络的第一相似度,基于准确度和第一相似度得到特征点Pmn=(βm,γmn),βm表示第m个子图网络的准确度,γmn表示第m个子图网络与第n个第一图网络的第一相似度,对特征点进行第一次分类后,得到若干第一类别,基于对应的第一图网络对第一类别中的特征点进行第二次分类,得到若干第二类别,计算每个第二类别的重要程度,将重要程度最大的第二类别中所有特征点对应的第一图网络和子图网络融合后进行切图处理得到优化布局结果;

所述对第一类别中的特征点进行第二次分类具体为:若该第一类别中仅包括一个特征点,则该特征点对应一个第二类别;若该第一类别中特征点个数大于1,判断是否存在特征点对应相同的子图网络,若不存在,则每个特征点分别对应一个第二类别,若存在,将对应同一子图网络的特征点归于一个集合中并基于集合中特征点对应的第一图网络之间的第二相似度对集合中的特征点进行第二次分类,其他对应不同子图网络的特征点分别对应不同的第二类别;

所述每个第一类别的重要程度的计算方法为:基于该类别中所有特征点对应的准确度、第一相似度计算准确度均值 第一相似度均值为 则 为该类别的重要程度,其中,为该类别中所有特征点对应的第一图网络中任意两个第一图网络之间第二相似度的均值;计算该类别中每个特征点对应的第一图网络的完整度,为完整度的均值;获取该类别中每个特征点对应的第一图网络,计算每个第一图网络对应的伪最优布局结果的可优化程度,为该类别中所有特征点对应的可优化程度的均值;

第一图网络的完整度的计算方法为:获取该第一图网络对应的伪最优布局结果,属于该第一图网络不属于该伪最优布局结果的模块构成模块集合,根据模块集合中的模块数量与第一图网络的模块数量的比值计算该第一图网络的完整度;

第一图网络对应的伪最优布局结果的可优化程度的计算方法为:该伪最优布局结果对应一个初始图网络,模块集合中每个模块融入初始图网络后任意两个模块间边权值的均值为该模块对应的可接受程度,模块对应的可接受程度小于该初始图网络的可接受程度时,该模块对应的可接受程度值变为0;模块集合中每个模块对应的可接受程度与该模块在第一图网络中的表征值相乘都得到一个数值,所有数值之和为该伪最优布局结果的可优化程度;

基于两个模块之间的最短绕线距离与连接距离计算边权值,连接距离为两个模块之间串联的标准单元的个数,若两个模块之间串联的标准单元的个数为0,则连接距离为1;

设计任务的重布局代价指数的计算方法为:对所有芯片设计端的布局结果进行整合,得到初始布局图,根据最优布局结果得到最优布局图,将初始布局图、最优布局图依次输入神经网络得到两个合理值;计算初始布局图中每个模块与最优布局图中电压域和电源线的重叠面积,基于两个合理值的差值和重叠面积计算每个模块的重布局代价指数;根据每个模块的重布局代价指数计算设计任务的重布局代价指数;设计任务包括模块或伪最优布局结果;

每个芯片设计端的设计能力指数的计算方法为:基于该芯片设计端的布局结果得到的伪最优布局结果的可接受程度、可优化程度、重布局代价指数计算该芯片设计端的设计能力指数。

2.一种基于云平台的芯片多端协同设计系统,其特征在于,该系统包括:

模块布局子系统:为每个芯片设计端分配设计任务,每个芯片设计端分别根据设计任务对模块进行布局,将布局结果定时上传至云平台;其中,模块包括IO单元、宏单元、标准单元放置单元;布局结果中包括已布局模块和未布局模块;

任务再分配子系统:云平台基于每次接收到的所有芯片设计端的布局结果求解最优布局结果,并根据每个芯片设计端的布局结果与最优布局结果计算设计任务的重布局代价指数和每个芯片设计端的设计能力指数,在进行下一次设计任务分配时将重布局代价指数高的设计任务分配给设计能力指数高的芯片设计端;

根据所有芯片设计端的布局结果得到多个优化布局结果,利用自动布局方法对所有优化布局结果进行布局,得到最优布局结果;其中,多个优化布局结果的获取方法为:步骤a,获取每个芯片设计端布局结果的伪最优布局结果,每个伪最优布局结果都对应一个第一图网络;每个芯片设计端布局结果对应的第一图网络融合得到第二图网络,将第二图网络划分为子图网络,子图网络的个数多于第一图网络的个数,基于第一图网络和子图网络得到优化布局结果;

步骤b,在芯片设计端的布局结果中删除已存在于优化布局结果中的模块;

步骤c,步骤b得到的芯片设计端的布局结果作为步骤a的输入,迭代执行步骤a、b,直至每个芯片设计端的布局结果中都不包括模块;

基于现有芯片设计大数据构建经验图网络,经验图网络中模块与模块通过连接边相连,连接边对应一个边权值;所述每个伪最优布局结果都对应一个第一图网络的方法为:对于该伪最优布局结果中的每个模块,在经验图网络中基于边权值大小寻找与该模块相连的经验模块,每个经验模块都存在于某一芯片设计端的布局结果中;将该伪最优布局结果中的所有模块以及寻找到的所有经验模块融合得到第一图网络,融合时统计每个经验模块的出现次数,第一图网络中每个模块的表征值为该模块的出现次数;

所述基于第一图网络和子图网络得到优化布局结果的方法为:计算每个子图网络的准确度,准确度越大,表示子图网络中的模块摆放在一起越合适;计算任意一个第一图网络与任意一个子图网络的第一相似度,基于准确度和第一相似度得到特征点Pmn=(βm,γmn),βm表示第m个子图网络的准确度,γmn表示第m个子图网络与第n个第一图网络的第一相似度,对特征点进行第一次分类后,得到若干第一类别,基于对应的第一图网络对第一类别中的特征点进行第二次分类,得到若干第二类别,计算每个第二类别的重要程度,将重要程度最大的第二类别中所有特征点对应的第一图网络和子图网络融合后进行切图处理得到优化布局结果;

所述对第一类别中的特征点进行第二次分类具体为:若该第一类别中仅包括一个特征点,则该特征点对应一个第二类别;若该第一类别中特征点个数大于1,判断是否存在特征点对应相同的子图网络,若不存在,则每个特征点分别对应一个第二类别,若存在,将对应同一子图网络的特征点归于一个集合中并基于集合中特征点对应的第一图网络之间的第二相似度对集合中的特征点进行第二次分类,其他对应不同子图网络的特征点分别对应不同的第二类别;

所述每个第一类别的重要程度的计算方法为:基于该类别中所有特征点对应的准确度、第一相似度计算准确度均值 第一相似度均值为 则 为该类别的重要程度,其中,为该类别中所有特征点对应的第一图网络中任意两个第一图网络之间第二相似度的均值;计算该类别中每个特征点对应的第一图网络的完整度,为完整度的均值;获取该类别中每个特征点对应的第一图网络,计算每个第一图网络对应的伪最优布局结果的可优化程度,为该类别中所有特征点对应的可优化程度的均值;

第一图网络的完整度的计算方法为:获取该第一图网络对应的伪最优布局结果,属于该第一图网络不属于该伪最优布局结果的模块构成模块集合,根据模块集合中的模块数量与第一图网络的模块数量的比值计算该第一图网络的完整度;

第一图网络对应的伪最优布局结果的可优化程度的计算方法为:该伪最优布局结果对应一个初始图网络,模块集合中每个模块融入初始图网络后任意两个模块间边权值的均值为该模块对应的可接受程度,模块对应的可接受程度小于该初始图网络的可接受程度时,该模块对应的可接受程度值变为0;模块集合中每个模块对应的可接受程度与该模块在第一图网络中的表征值相乘都得到一个数值,所有数值之和为该伪最优布局结果的可优化程度;

基于两个模块之间的最短绕线距离与连接距离计算边权值,连接距离为两个模块之间串联的标准单元的个数,若两个模块之间串联的标准单元的个数为0,则连接距离为1;

设计任务的重布局代价指数的计算方法为:对所有芯片设计端的布局结果进行整合,得到初始布局图,根据最优布局结果得到最优布局图,将初始布局图、最优布局图依次输入神经网络得到两个合理值;计算初始布局图中每个模块与最优布局图中电压域和电源线的重叠面积,基于两个合理值的差值和重叠面积计算每个模块的重布局代价指数;根据每个模块的重布局代价指数计算设计任务的重布局代价指数;设计任务包括模块或伪最优布局结果;

每个芯片设计端的设计能力指数的计算方法为:基于该芯片设计端的布局结果得到的伪最优布局结果的可接受程度、可优化程度、重布局代价指数计算该芯片设计端的设计能力指数。

说明书 :

基于云平台的芯片多端协同设计方法及系统

技术领域

[0001] 本发明涉及大数据分析和芯片设计领域,具体涉及一种基于云平台的芯片多端协同设计方法及系统。

背景技术

[0002] 目前对芯片的需求越来越大,芯片的复杂度越来越高,对芯片的设计具有相当高的要求。但是目前的芯片设计存在很多问题,复杂芯片设计周期长,技术难度高,优秀人才稀少,导致芯片的设计成本高、有能力设计芯片的企业少等结果。
[0003] 现有的芯片设计需要多个工程师分工合作来完成,但是现有设计流程存在合作效率低、返工次数多、工程师之间技术能力和工作经验参差不齐等问题,大大降低了芯片设计的效率。

发明内容

[0004] 为了解决上述问题,本发明提出一种基于云平台的芯片多端协同设计方法,该方法包括:
[0005] 为每个芯片设计端分配设计任务,每个芯片设计端分别根据设计任务对模块进行布局,将布局结果定时上传至云平台;其中,模块包括IO单元、宏单元、标准单元放置单元;布局结果中包括已布局模块和未布局模块;
[0006] 云平台基于每次接收到的所有芯片设计端的布局结果求解最优布局结果,并根据每个芯片设计端的布局结果与最优布局结果计算设计任务的重布局代价指数和每个芯片设计端的设计能力指数,在进行下一次设计任务分配时将重布局代价指数高的设计任务分配给设计能力指数高的芯片设计端。
[0007] 根据所有芯片设计端的布局结果得到多个优化布局结果,利用自动布局方法对所有优化布局结果进行布局,得到最优布局结果;其中,多个优化布局结果的获取方法为:
[0008] 步骤a,获取每个芯片设计端布局结果的伪最优布局结果,每个伪最优布局结果都对应一个第一图网络;每个芯片设计端布局结果对应的第一图网络融合得到第二图网络,将第二图网络划分为子图网络,子图网络的个数多于第一图网络的个数,基于第一图网络和子图网络得到优化布局结果;
[0009] 步骤b,在芯片设计端的布局结果中删除已存在于优化布局结果中的模块;
[0010] 步骤c,步骤b得到的芯片设计端的布局结果作为步骤a的输入,迭代执行步骤a、b,直至每个芯片设计端的布局结果中都不包括模块。
[0011] 基于现有芯片设计大数据构建经验图网络,经验图网络中模块与模块通过连接边相连,连接边对应一个边权值;所述每个伪最优布局结果都对应一个第一图网络的方法为:对于该伪最优布局结果中的每个模块,在经验图网络中基于边权值大小寻找与该模块相连的经验模块,每个经验模块都存在于某一芯片设计端的布局结果中;将该伪最优布局结果中的所有模块以及寻找到的所有经验模块融合得到第一图网络,融合时统计每个经验模块的出现次数,第一图网络中每个模块的表征值为该模块的出现次数。
[0012] 所述基于第一图网络和子图网络得到优化布局结果的方法为:计算每个子图网络的准确度,准确度越大,表示子图网络中的模块摆放在一起越合适;计算任意一个第一图网络与任意一个子图网络的第一相似度,基于准确度和第一相似度得到特征点Pmn=(βm,γmn),βm表示第m个子图网络的准确度,γmn表示第m个子图网络与第n个第一图网络的第一相似度,对特征点进行第一次分类后,得到若干第一类别,基于对应的第一图网络对第一类别中的特征点进行第二次分类,得到若干第二类别,计算每个第二类别的重要程度,将重要程度最大的第二类别中所有特征点对应的第一图网络和子图网络融合后进行切图处理得到优化布局结果。
[0013] 所述对第一类别中的特征点进行第二次分类具体为:若该第一类别中仅包括一个特征点,则该特征点对应一个第二类别;若该第一类别中特征点个数大于1,判断是否存在特征点对应相同的子图网络,若不存在,则每个特征点分别对应一个第二类别,若存在,将对应同一子图网络的特征点归于一个集合中并基于集合中特征点对应的第一图网络之间的第二相似度对集合中的特征点进行第二次分类,其他对应不同子图网络的特征点分别对应不同的第二类别。
[0014] 所述每个第一类别的重要程度的计算方法为:基于该类别中所有特征点对应的准确度、第一相似度计算准确度均值 第一相似度均值为 则 为该类别的重要程度,其中,为该类别中所有特征点对应的第一图网络中任意两个第一图网络之间第二相似度的均值;计算该类别中每个特征点对应的第一图网络的完整度,为完整度的均值;获取该类别中每个特征点对应的第一图网络,计算每个第一图网络对应的伪最优布局结果的可优化程度,为该类别中所有特征点对应的可优化程度的均值。
[0015] 第一图网络的完整度的计算方法为:获取该第一图网络对应的伪最优布局结果,属于该第一图网络不属于该伪最优布局结果的模块构成模块集合,根据模块集合中的模块数量与第一图网络的模块数量的比值计算该第一图网络的完整度;
[0016] 第一图网络对应的伪最优布局结果的可优化程度的计算方法为:该伪最优布局结果对应一个初始图网络,模块集合中每个模块融入初始图网络后任意两个模块间边权值的均值为该模块对应的可接受程度,模块对应的可接受程度小于该初始图网络的可接受程度时,该模块对应的可接受程度值变为0;模块集合中每个模块对应的可接受程度与该模块在第一图网络中的表征值相乘都得到一个数值,所有数值之和为该伪最优布局结果的可优化程度。
[0017] 基于两个模块之间的最短绕线距离与连接距离计算边权值,连接距离为两个模块之间串联的标准单元的个数,若两个模块之间串联的标准单元的个数为0,则连接距离为1。
[0018] 设计任务的重布局代价指数的计算方法为:对所有芯片设计端的布局结果进行整合,得到初始布局图,根据最优布局结果得到最优布局图,将初始布局图、最优布局图依次输入神经网络得到两个合理值;计算初始布局图中每个模块与最优布局图中电压域和电源线的重叠面积,基于两个合理值的差值和重叠面积计算每个模块的重布局代价指数;根据每个模块的重布局代价指数计算设计任务的重布局代价指数;设计任务包括模块或伪最优布局结果;
[0019] 每个芯片设计端的设计能力指数的计算方法为:基于该芯片设计端的布局结果得到的伪最优布局结果的可接受程度、可优化程度、重布局代价指数计算该芯片设计端的设计能力指数。
[0020] 此外,本发明还提出一种基于云平台的芯片多端协同设计系统,该系统包括:
[0021] 模块布局子系统:为每个芯片设计端分配设计任务,每个芯片设计端分别根据设计任务对模块进行布局,将布局结果定时上传至云平台;其中,模块包括IO单元、宏单元、标准单元放置单元;布局结果中包括已布局模块和未布局模块;
[0022] 任务再分配子系统:云平台基于每次接收到的所有芯片设计端的布局结果求解最优布局结果,并根据每个芯片设计端的布局结果与最优布局结果计算设计任务的重布局代价指数和每个芯片设计端的设计能力指数,在进行下一次设计任务分配时将重布局代价指数高的设计任务分配给设计能力指数高的芯片设计端。
[0023] 本发明的有益效果在于:
[0024] 1.本发明通过多端协同设计和大数据分析,减少复杂芯片的设计周期,减少设计错误,提高芯片的设计效率,降低芯片设计对技术能力和工作经验的依赖程度。
[0025] 2.本发明通过动态的为各个芯片设计端分配设计任务,基于各个芯片设计端的能力合理利用各个芯片设计端,提高设计效率。
[0026] 3.本发明首先判断哪些模块摆放在一起较为合适,再利用自动布局的方法对多个模块进行布局,减少了自动布局算法的工作量。

附图说明

[0027] 图1为本发明方法实施流程图。

具体实施方式

[0028] 为了让本领域技术人员更好的理解本发明,下面结合实施例对本发明进行详细描述。
[0029] 目前芯片设计的主要流程包括INIT、FloorPlan、Place、CTS、Route、ECO等;其中FloorPlan是重要的流程之一,这是一个顶层设计步骤,对技术能力和工作经验要求较高,包括IO/Core Plan、Macro Plan、Block Plan、Power Plan等过程。本发明只针对FloorPlan流程进行多端协同设计,其他流程的多端协同设计本发明不进行考虑。另外,本发明只是针对复杂芯片,不适用于一个工程师就可以完成的简单的芯片设计。
[0030] 本发明的主要目的是实现芯片设计中顶层设计的协同设计,本发明的方法实施流程如图1所示,通过云平台的数据处理和大数据分析为设计的各端动态分配任务,提高设计效率。
[0031] 实施例一:
[0032] 该实施例提供一种基于云平台的芯片多端协同设计方法,具体步骤为:
[0033] 获取芯片前端设计的数据文件,数据文件反应设计好的芯片门级网表电路的各种参量,根这些参量获得芯片的面积和对应的标准单元和宏单元(Macro)等数据,之后确定需要参与设计的工程师数量,每一个工程师为一个芯片设计端,第一次分配任务时云平台根据芯片门级网表电路为各个芯片设计端分配任务,每个芯片设计端分别将布局结果定时上传至云平台,云平台接受到各个芯片设计端的数据后验证数据的完整性、有效性,对于一些显而易见的设计错误给出提示,例如macro放置区域重叠;此外,云平台整合各个芯片设计端的布局结果并读取布局结果的macro、IO、标准单元放置单元、Power的信息,包括宏单元macro的位置信息、所占层数、引脚位置,标准单元放置单元的位置、宽高比、形状特征,IO单元的位置、功能作用,Power的power domain位置、供电路径等。需要注意的是,本发明包括多个IO单元、多个宏单元、一个或多个标准单元放置单元。
[0034] 云平台基于每次接收到的每个芯片设计端的布局结果求解最优布局结果,具体地:
[0035] 每个芯片设计端的布局结果对应一个匹配度图网络,匹配度图网络中模块与模块相连,连接边对应一个边权值,需要说明的是,实施例将可改变位置的IO单元、宏单元、标准单元放置单元统称为模块,其中,获取一对存在连接关系的IO单元与macro,对于macro的每个引脚,计算该引脚与IO单元的最短绕线距离与连接距离,基于最短绕线距离与连接距离得到该引脚对应的匹配值,则所有引脚对应的匹配值的和为IO单元与macro之间的匹配度;同理可以计算macro与macro、IO与IO的匹配度;其中,连接距离为两个模块之间串联的标准单元的个数,若两个模块之间串联的标准单元的个数为0,则连接距离为1。
[0036] 基于最短绕线距离与连接距离得到该引脚对应的匹配值具体为:最短绕线距离与‑x连接距离的乘积为x,则e 为匹配值,e为自然常数;匹配度经过归一化处理后为边权值。
[0037] 最优布局结果的求解方法为:
[0038] 步骤a,每个芯片设计端的布局结果中包括已布局模块和未布局模块,基于每个芯片设计端的布局结果得到伪最优布局结果,具体地,在每个芯片设计端对应的匹配度图网络中获取匹配度最大的一些模块区域,将这些模块称为伪最优布局结果,伪最优布局结果中的模块只表示当前这些模块摆放在一起匹配度最佳即适合摆放在一起,并不代表这些模块的最佳摆放位置。
[0039] 伪最优布局结果的具体获取方法为:对于每个匹配度图网络,在匹配度图网络中将边权值小于第一阈值的边权值置为0,然后对匹配度图网络进行切图处理,得到多个子匹配度图网络,剔除模块数量为1的子匹配度图网络,对于剩余的每个子匹配度图网络进行以下处理:获取该子匹配度图网络中每个模块的度,求解该子匹配度图网络中所有模块的度的均值,若求解出的均值小于第二阈值,则将该子匹配度图网络剔除;经过上述处理后最后剩余的每个子匹配度图网络都为一个伪最优布局结果;其中,每个模块的度为与该模块相连的所有连接边的边权值的和。
[0040] 每个伪最优布局结果都对应一个第一图网络,第一图网络的获取方法为:
[0041] 首先基于现有芯片设计构建经验图网络,经验图网络中模块与模块通过连接边相连,连接边对应一个边权值;经验图网络的构建方法为:获取多个已经设计好的芯片,基于每个芯片获取伪最优布局结果,每个伪最优布局结果对应一个匹配度图网络,每个芯片对应的匹配度图网络进行融合,若存在相同的连接边,将相同的模块合并为一个模块,连接边进行合并,相同连接边各自对应的边权值相加作为合并后连接边的边权值,融合后得到经验图网络;在经验图网络中,任意两个模块间可能存在多条路径,则任意两个模块间的边权值为两个模块间最短路径对应连接边的边权值的乘积。
[0042] 其次,对于每个伪最优布局结果,获取该伪最优布局结果中的所有模块,对于该伪最优布局结果中的每个模块,在经验图网络中按照边权值由大到小的顺序寻找K个与该已布局模块相连的经验模块,K个经验模块中的每个经验模块都存在于某一芯片设计端的布局结果中;该伪最优布局结果中的所有模块以及分别与该伪最优布局结果中每个模块对应的K个经验模块融合得到第一图网络,融合时统计每个经验模块的出现次数,第一图网络中每个模块的表征值为该模块的出现次数,模块间的边权值根据经验图网络确定,实施例中K的值为6。
[0043] 至此,可得到多个第一图网络。
[0044] 伪最优布局结果对应的第一图网络融合得到第二图网络,将第二图网络划分为子图网络,子图网络的个数多于第一图网络的个数,其中,子图网络的获取方法为:分别以第二图网络中每个模块为中心,对于每个模块,在第二图网络中按照边权值由大到小的顺序寻找与该模块相连的L个模块,该模块与选择的L个模块构成一个子图网络,实施例中L值取9。
[0045] 基于第一图网络和子图网络得到优化布局结果:
[0046] 计算每个子图网络的准确度:子图网络中模块的数量与子图网络的可接受程度和平滑程度的乘积为子图网络的准确度;平滑程度的获取方法为:获取子图网络的拉普拉斯矩阵,得到拉普拉斯矩阵的特征值,根据得到的特征值构建第一向量U1;对子图网络进行傅里叶变换,具体地,子图网络中每个模块的出现次数构成第二向量,以拉普拉斯矩阵的特征向量为基向量,对第二向量进行正交分解,得到第三向量U2,第三向量中的元素分别为第二向量在每个特征向量上的投影长度,第一向量和第三向量维度相同;则平滑程度为:其中,T为向量维度,U1t、U2t分别为向量U1、U2中的第t个元素。
[0047] 准确度表征的是子图网络内所有模块布局在一起是否是最优的、最契合的,准确度越大说明这些模块在一起的契合程度就越大,即越期望这些模块布局在一起。
[0048] 平滑程度表征的是子图网络中的所有模块的拓扑特征和出现次数的差异,平滑程度越小说明这些模块布局在一起时模块间局部布局优劣差异越大,布局在一起越不契合;平滑程度越大,说明这些模块布局在一起时模块间存在的局部布局优劣差异不大,布局结果越优。
[0049] 计算任意一个第一图网络与任意一个子图网络的第一相似度:记任意一个第一图网络为E,任意一个子图网络为F,同时存在于E、F中的模块构成集合V1,集合V1中所有模块的出现次数之和比上E、F中所有模块出现次数之和得到比值I;在E、F中除去集合V1中的模块后得到集合V2、V3,分别在集合V2、V3中选取一个模块,在经验图网络中基于边权值大小寻找两个模块间的最短路径,获该最短路径对应的边权值的乘积为两个模块间的边权值;由于选取模块的不同,得到的两个模块间的边权值也不同,因此,可得到一个边权值集合,对边权值集合中的边权值按照由大到小的顺序进行排序,取前H个边权值的均值,得到值J,则第一相似度为I*J。
[0050] 基于准确度和第一相似度得到多个特征点Pmn=(βm,γmn),βm表示第m个子图网络的准确度,γmn表示第m个子图网络与第n个第一图网络的第一相似度,利用均值漂移聚类算法对特征点进行第一次分类后,得到若干第一类别,基于第一类别中特征点对应的第一图网络对第一类别中的特征点进行第二次分类,得到若干第二类别,具体地:若该第一类别中仅包括一个特征点,则该特征点对应一个第二类别;若该第一类别中特征点个数大于1,判断是否存在特征点对应相同的子图网络,若不存在,则每个特征点分别对应一个第二类别,若存在,将对应同一子图网络的特征点归于一个集合中并基于集合中特征点对应的第一图网络之间的第二相似度对集合中的特征点进行第二次分类,其他对应不同子图网络的特征点分别对应不同的第二类别。需要说明的是,第二相似度的计算方法和第一相似度的方法相同。
[0051] 计算每个第二类别的重要程度,对于每个第二类别:
[0052] 基于该类别中所有特征点对应的准确度、第一相似度计算准确度均值 第一相似度均值 得到该类别的重要程度 其中:
[0053] 为该类别中所有特征点对应的第一图网络中任意两个第一图网络之间第二相似度的均值;
[0054] 计算该类别中每个特征点对应的第一图网络的完整度,为完整度的均值,其中,第一图网络的完整度的计算方法为:获取该第一图网络对应的伪最优布局结果,属于该第一图网络不属于该伪最优布局结果的模块构成模块集合,模块集合中的模块数量与第一图‑y网络的模块数量的比值为y,e 为该第一图网络的完整度;
[0055] 获取该类别中所有特征点对应的第一图网络,计算每个第一图网络对应的伪最优布局结果的可优化程度,为该类别中所有特征点对应的可优化程度的均值,其中,第一图网络对应的伪最优布局结果的可优化程度的计算方法为:该伪最优布局结果对应一个初始图网络,初始图网络基于该伪最优布局结果所在设计端对应的匹配度图网络得到,具体地,可对匹配度图网络进行切图得到,初始图网络中包括该伪最优布局结果中的所有模块,模块集合中每个模块分别融入初始图网络后任意两个模块间边权值的均值为该模块对应的可接受程度,模块对应的可接受程度小于该初始图网络的可接受程度时,该模块对应的可接受程度值变为0;模块集合中每个模块对应的可接受程度与该模块在第一图网络中的表征值相乘都得到一个数值,所有数值的和为该伪最优布局结果的可优化程度。
[0056] 需要注意的是,子图网络、初始图网络的可接受程度分别为子图网络、初始图网络中任意两个模块间边权值的均值,初始图网络的可接受程度即为对应伪最优布局结果的可接受程度。
[0057] 按照第二类别的重要程度对第二类别进行排序,将重要程度相近的第二类别进行合并后获取其中重要程度值最大的第二类别,重要程度最大的第二类别中所有特征点对应的第一图网络和子图网络融合后进行切图处理得到优化布局结果,融合方法为:相同模块合并为一个,相同连接边对应的边权值相加后进行归一化处理,对融合后得到的融合网络进行切图处理,得到多个子融合网络,剔除模块数量少的子融合网络,剩余的每个子融合网络都对应一个优化布局结果。
[0058] 需要注意的是,重要程度相近的第二类别合并后得到的新的第二类别的重要程度为所有进行合并的第二类别对应的重要程度的均值。具体的切图方法是公知的,本发明不再赘述。
[0059] 步骤b,在芯片设计端的布局结果中删除已存在于优化布局结果中的模块;
[0060] 步骤c,步骤b得到的芯片设计端的布局结果作为步骤a的输入,迭代执行步骤a、b,直至每个芯片设计端的布局结果中都不包括模块。
[0061] 至此,可得到多个优化布局结果。
[0062] 本发明可以基于伪最优布局结果得到多个优化布局结果,在尽量不打乱原有布局的同时给出最优的布局建议,辅助芯片设计端完成芯片的设计,使设计能力不够高的芯片设计端也可以完成芯片布局。
[0063] 得到的优化布局结果表示优化布局结果中的模块摆放在一起合适,还需利用自动布局方法对优化布局结果以及每个优化布局结果中的模块进行布局,得到最优布局结果。
[0064] 根据每个芯片设计端的布局结果与最优布局结果计算设计任务的重布局代价指数和每个芯片设计端的设计能力指数,在进行下一次设计任务分配时将重布局代价指数高的设计任务分配给设计能力指数高的芯片设计端;其中,设计任务的重布局代价指数的计算方法为:
[0065] 对每个芯片设计端的布局结果进行整合,得到初始布局图,根据最优布局结果得到最优布局图,将初始布局图、最优布局图依次输入神经网络得到两个合理值,最优布局图对应的合理值减去初始布局图对应的合理值得到差值A,当得到的差值小于0时,将该差值赋值为0,该差值越大,表征最优布局图的合理性越高于初始布局图,即重新布局所付出的代价越高;计算初始布局图中每个模块与最优布局图中电压域和电源线的重叠面积B,重叠面积越小,说明对初始的电压源和电源线进行重布局需要花费的时间越多,重布局代价越大;需要说明的是,电压源和电源线也是利用自动布局方法进行布局;基于差值和重叠面积A‑B计算每个模块的重布局代价指数,具体地,每个模块的重布局代价指数为e ;根据每个模块的重布局代价指数计算设计任务的重布局代价指数,设计任务包括模块或伪最优布局结果,伪最优布局结果对应的重布局代价指数为伪最优布局结果中每个模块的重布局代价指数的均值。
[0066] 差值A为一个缩放系数,可以从整体上评估重布局的难易程度,使得每个模块的重布局代价指数更加可靠。
[0067] 合理值的具体获取方法为:根据初始布局图、最优布局图得到二值的初始布局遮罩、最优布局遮罩,遮罩中模块所处区域为白色,其他区域为黑色,将初始布局遮罩、最优布局遮罩依次输入到DNN网络中,得到两个合理值。
[0068] 每个芯片设计端的设计能力指数的计算方法为:基于该芯片设计端的布局结果得到的所有伪最优布局结果的可接受程度、可优化程度、重布局代价指数计算该芯片设计端的设计能力指数;具体地:根据每个芯片设计端的布局结果得到伪最优布局结果,基于每个伪最优布局结果可得到该伪最优布局结果对应的可接受程度和可优化程度,获取每个芯片设计端对应的所有伪最优布局结果的可接受程度的均值c1、可优化程度的均值c2以及每个芯片设计端对应的所有伪最优布局结果的重布局代价指数的均值c3,则该芯片设计端的设计能力指数为
[0069] 至此,得到重布局代价指数、设计能力指数。
[0070] 在进行下一次设计任务分配时将重布局代价指数高的设计任务分配给设计能力指数高的芯片设计端,即将难度高的设计任务分配给设计能力指数高的芯片设计端。
[0071] 基于与上述方法实施例相同的发明构思,本发明实施例还提供了一种基于云平台的芯片多端协同设计系统,该系统包括:
[0072] 模块布局子系统:为每个芯片设计端分配设计任务,每个芯片设计端分别根据设计任务对模块进行布局,将布局结果定时上传至云平台;其中,模块包括IO单元、宏单元、标准单元放置单元;布局结果中包括已布局模块和未布局模块;
[0073] 任务再分配子系统:云平台基于每次接收到的所有芯片设计端的布局结果求解最优布局结果,并根据每个芯片设计端的布局结果与最优布局结果计算设计任务的重布局代价指数和每个芯片设计端的设计能力指数,在进行下一次设计任务分配时将重布局代价指数高的设计任务分配给设计能力指数高的芯片设计端。
[0074] 关于系统实施例,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可;以上所述旨在让本领域技术人员更好的理解本发明,并不用于限制本发明,凡是在本发明精神和原则内做出的修改与变动皆在本发明保护范围内。