首页> 中国专利> 一种电压岛的多供电引脚分配方法

一种电压岛的多供电引脚分配方法

摘要

本发明公开了一种电压岛的多供电引脚分配方法,首先根据电压岛的物理信息,基于电压岛所包含的电路宏模块的坐标信息,采用Kmeans汇聚算法将其划分成个

著录项

  • 公开/公告号CN105701290A

    专利类型发明专利

  • 公开/公告日2016-06-22

    原文格式PDF

  • 申请/专利权人 宁波大学;

    申请/专利号CN201610020296.2

  • 发明设计人 储著飞;夏银水;王伦耀;

    申请日2016-01-13

  • 分类号G06F17/50;

  • 代理机构宁波奥圣专利代理事务所(普通合伙);

  • 代理人谢潇

  • 地址 315211 浙江省宁波市江北区风华路818号

  • 入库时间 2023-12-18 15:45:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-07

    授权

    授权

  • 2016-07-20

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20160113

    实质审查的生效

  • 2016-06-22

    公开

    公开

说明书

技术领域

本发明涉及一种片上系统的自动化设计方法,尤其是涉及一种电压岛的多供电引脚分配 方法。

背景技术

集成电路的动态功耗与供电电压的平方呈正比关系,静态功耗亦与电压呈正比关系,因 此,降低芯片的供电电压被认为是最有效、直接的低功耗设计方法。多电压技术正是基于此 原理,对芯片内的关键电路宏模块(以下简称为模块)供应较高电压以保证芯片的性能;而对 非关键模块供应较低电压以节省功耗。为了降低电源网络设计复杂性,常将工作在相同工作 电压的模块聚集在连续的物理空间以形成电压岛(voltageisland,VI)。基于电压岛的多电压技 术已成为当前集成电路低功耗设计的主流方法。

多电压技术的电源网络设计较单电压技术要复杂的多,其中之一表现在电源供电引脚的 分配问题上。单电压技术往往将电源供电引脚固定在芯片的特定位置上,例如芯片边缘的左 下角和右上角。而多电压技术因需要供给多个电压,供电引脚的数量及位置需根据电压岛面 积占芯片的比例及电压岛位置等因素来确定。在专利ZL201310004359.1“一种片上系统的电 压岛供电引脚分配方法”中,已提出一种电压岛的供电引脚分配方法,但该方法的不足在于 每个电压岛每次只能确定一个供电引脚,无法对同一电压岛分配多个供电引脚。因此,其电 压岛的供电引脚分配问题有进一步改进的空间。

供电引脚的位置直接影响到多电压芯片中电压岛的供电网络节点电压降,若分配不当, 势必造成电压降不满足设计约束,从而使得电压岛中的电路宏模块的供电不足引起电路失效。 另外,为了满足电压降约束,电源网络所耗费的布线面积也将随之增大。因此对电压岛的供 电引脚分配问题进行研究,对优化电压岛的电源网络有着较强的现实意义和实践意义。

发明内容

本发明所要解决的技术问题是,考虑到芯片内不同电压岛占据芯片面积的百分比不同, 提供一种电压岛的多供电引脚分配方法,该方法能够给每个电压岛分配多个供电引脚以优化 电压降,从而有效降低芯片设计成本。若设定一个电压岛所需的供电引脚数目为n,提出的 方法首先根据电压岛的物理信息,基于电压岛所包含的电路宏模块的坐标信息,采用Kmeans 汇聚算法将其划分成个n个簇,然后针对所有簇中的电路宏模块归属进行微调,使得各个簇 的功耗密度大致相等,最后根据电流密度的大小给电路宏模块连接的弹簧分配不同的劲度系 数,确定弹簧系统的能量均衡点位置并完成每个簇所包含电路宏模块的供电引脚分配,重复 上述过程可完成所有电压岛所需数目的多供电引脚分配。

本发明解决上述技术问题所采用的技术方案为:一种电压岛的多供电引脚分配方法,包 括以下步骤:

步骤①:定义电压岛为工作在同一工作电压下且占据连续二维物理空间的电路宏模块组 成的区域,芯片由若干电压岛组成;计算机读入和分析用户提供的电压岛信息、电路宏模块 的物理坐标信息、供电引脚位置信息、每个电压岛所需的供电引脚个数信息;

步骤②:定义电压岛Kisland中所包含的电路宏模块集合为B,芯片的可用供电引脚集合为 P,电压岛Kisland中电路宏模块的总个数为|B|,对于每一个电路宏模块bp∈B,根据电路宏 模块物理坐标信息可确定bp中心点坐标定义电压岛Kisland所需的供电引脚个数为 nisland

步骤③:采用Kmeans聚类算法将电压岛Kisland中所包含的电路宏模块划分成nisland个簇, 具体步骤如下:首先在电压岛Kisland所占据的二维空间中随机产生nisland个初始中心点,坐标 分别为然后分别计算每个电路宏模块bp的中心点到nisland个初始中心点的欧几里得距离,即

distpq=(xbp-xcq)2+(ybp-ycq)2,p[1,|B|],q[1,nisland]---(1)

假定电路宏模块bp的中心点到第q个初始中心点的欧几里得距离最小,则标记该电路宏 模块bp为q,即电路宏模块bp当前被划分到第q个簇;

步骤④:更新nisland个簇的初始中心点坐标,更新的初始中心点坐标为第q个簇中包含的 所有电路宏模块坐标的平均值;分别计算nisland个簇中所有电路宏模块的中心点坐标到更新后 的初始中心点坐标的均方误差之和,并计算相邻迭代次数中得出的均方误差之和的变化量Δ; 若Δ>0.001,则重复步骤③~④,否则停止迭代,输出划分的nisland个簇的信息;

步骤⑤:计算nisland个簇的平均面积;对于nisland个簇,对其包含的电路宏模块归属进行微 调,使得每个簇的面积与平均面积的差值小于15%,具体步骤如下:

步骤⑤-1:将nisland个簇按照面积大小进行降序排列,得到簇1,簇2,…,簇nisland,计 算簇i(1≤i≤nisland-1)中所有电路宏模块到簇j(i≤j≤nisland)中心点的欧几里得距离,若簇i中 的电路宏模块bp到簇j中心点的欧几里得距离最小,则将电路宏模块bp移至簇j中;

步骤⑤-2:更新nisland个簇的初始中心点坐标,更新的初始中心点坐标为第q个簇中包含 的所有电路宏模块坐标的平均值;

步骤⑤-3:若每个簇的面积与平均面积的差值大于或等于15%,则重复步骤⑤-1~⑤-2, 否则停止迭代,输出划分的nisland个簇的信息;

步骤⑥:对于nisland个簇,针对每个簇中所包含的每一个电路宏模块bp,假设以电路宏模 块bp的中心点为固定点,该固定点与一个零长度,劲度系数为kbi的弹簧的一端连接,并将每 个簇中所有与电路宏模块所连接的弹簧的另一端互相连接在一起,所有的弹簧组成了弹簧系 统;计算出弹簧系统的能量均衡点e的坐标(xe,ye);若一个簇中所有电路宏模块中具有最小 面积的电路宏模块的面积值为A0,电路宏模块bp的面积值为则

kbp=Abp/A0---(2)

能量均衡点e到各电路宏模块中心点所引起的弹簧拉力可分解为在水平方向的分力和垂直方向的分力其中

能量均衡点e的坐标可通过公式(5)和(6)求解得到:

寻找出一个供电引脚pj∈P,使得pj到能量均衡点e的曼哈顿距离最小,即 最小,pj即为其所属簇的供电引脚分配的位置;依次为每个簇分配供电引 脚,完成电压岛Kisland所需的nisland个供电引脚的分配,对于已分配的供电引脚,将其从可用 供电引脚集合P中移除,以避免供电引脚的重复分配;

步骤⑦:重复步骤③~⑥完成芯片中所有电压岛的供电引脚分配。

与现有技术相比,本发明的优点在于:本发明提供的一种电压岛的多供电引脚分配方法, 能够根据电压岛的位置和面积完成多个供电引脚的分配,适用于布图规划协同优化阶段和后 优化阶段。相比于传统的电压岛供电引脚分配方法,本发明提出的方法能够快速有效地优化 芯片上电压岛电源网络节点的电压降,从而有效降低芯片设计成本,本发明为芯片供电引脚 的分配提供了一种新的自动设计优化方法。

附图说明

图1为实施例中包含三个电压岛的电路宏模块布局示意图;

图2为实施例中将1.0V电压岛划分为3个簇后供电引脚分配结果示意图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

以包含三个电压岛的芯片为例,其布图表示见图1,图1即包含三个电压岛的电路宏模 块布局示意图,其包含30个电路宏模块,即b1,b2,b3,…,b30,其电压岛的多供电引脚 分配方法,包括以下步骤:

步骤①:定义电压岛为工作在同一工作电压下且占据连续二维物理空间的电路宏模块组 成的区域,芯片由若干电压岛组成,图1中包含三个电压岛,其中电路宏模块b1~b20构成了 工作电压为1.0V的电压岛,电路宏模块b21~b25构成了工作电压为1.1V的电压岛,电路宏模 块b26~b30构成了工作电压为1.5V的电压岛;通过计算机读入和分析用户提供的电压岛信息、 电路宏模块的物理坐标信息、供电引脚位置信息、每个电压岛所需的供电引脚个数信息,其 中物理坐标信息见表一,供电引脚均匀分布在芯片四周,位置信息见表二,考虑到1.0V电压 岛在芯片中占据的面积最大,设定1.0V电压岛需分配3个供电引脚,1.1V和1.5V电压岛各 需要1个供电引脚;

步骤②:定义电压岛Kisland中所包含的电路宏模块集合为B,则1.0V电压岛中 B={b1,b2,…,b20},|B|=20,芯片的可用供电引脚集合为P,供电引脚信息见表二;电压岛 Kisland中电路宏模块的总个数为|B|,对于每一个电路宏模块bp∈B,根据电路宏模块物理坐 标信息可确定bp中心点坐标中心点坐标见表一;定义电压岛Kisland所需的供电引脚 个数为nisland,1.0V电压岛中nisland=3;

步骤③:采用Kmeans聚类算法将电压岛Kisland中所包含的电路宏模块划分成nisland个簇, 具体步骤如下:首先在电压岛所占据的二维空间中随机产生nisland=3个初始中心点,坐标分 别为根据表一得,1.0V电压岛所占据二维空间的x坐标范围 为[1,396],y坐标范围为[161,478],假设产生的3个初始中心点为(xc2=302,yc2=363),(xc3=179,yc3=226);然后分别计算每个电路宏模块bi的中心点到3个初始中心点的欧几里得距离,即

distpq=(xbp-xcq)2+(ybp-ycq)2,p[1,20],q[1,3]---(1)

求得结果如表三所示,假定电路宏模块bp的中心点到第q个初始中心点的欧几里得距离 最小,则标记该电路宏模块为q,即电路宏模块bp当前被划分到第q个簇,例如电路宏模块b1中心点坐标其到3个初始中心点的欧几里德距离分别为108.88,255.11, 252.27,因此,电路宏模块b1的中心点到初始中心点c1的距离最短,则标记该电路宏模块为 q=1,即b1被分到簇1,以此类推,簇1将包含电路宏模块{b1,b2,b3,b4,b6,b7},簇 2将包含电路宏模块{b9,b10,b13,b14,b15,b16,b17,b19,b20},簇3将包含电路宏模块 {b5,b8,b11,b12,b18};

步骤④:更新nisland=3个簇的初始中心点坐标,更新的初始中心点坐标为第q个簇中包含 的所有电路宏模块坐标的平均值;分别计算3个簇中所有电路宏模块的中心点坐标到更新后 的初始中心点坐标的均方误差之和,则依据步骤③得到的簇信息,得到重新计算后的3个初 始中心点为(xc1=92,yc1=360),(xc2=301,yc2=365),(xc3=196,yc3=213),簇中所有电路宏模 块的中心点坐标到重新计算后的初始中心点的均方误差为31194,并计算相邻迭代次数中得 出的均方误差之和的变化量Δ,此时Δ=|0-31194|=31194;若Δ>0.001,则重复步骤③~④, 否则停止迭代,输出划分的3个簇的信息,经若干次迭代后输出的nisland=3个簇的信息为: 簇1包含电路宏模块{b2,b4,b5,b8,b12},中心点为簇2包含电路宏 模块{b11,b14,b15,b16,b17,b18,b19,b20},中心点为簇3包含电路 宏模块{b1,b3,b6,b7,b9,b10,b13},中心点为

步骤⑤:计算nisland=3个簇的平均面积;对于nisland=3个簇,对其包含的电路宏模块归属 进行微调,使得每个簇的面积与平均面积的差值小于15%,根据步骤④得到的簇信息及表一, 簇1包含电路宏模块的总面积为34170,簇2包含电路宏模块的总面积为42861,簇3包含电 路宏模块的总面积为42689,按照电压岛的总面积119720计算,每个簇的面积与平均面积 39906的差值分别为16.79%,6.89%,6.52%,因此,不满足小于15%的要求,继续执行,具 体步骤如下:

步骤⑤-1:将nisland=3个簇按照面积大小进行降序排列,得到簇1,簇2,簇3,其面积 分别为42861(步骤④中簇2,此时的簇1),42689(步骤④中簇3,此时的簇2)和34170(步骤 ④中簇1,此时的簇3),计算簇i(1≤i≤nisland-1)中所有电路宏模块到簇j(i≤j≤nisland)中心点 的欧几里得距离,若簇i中的电路宏模块bp到簇j中心点的欧几里得距离最小,则将电路宏模 块bp移至簇j中,得到结果如下表四所示,则将簇1中的电路宏模块11移至簇3中,此时簇 1,簇2,簇3的面积分别为34824,42689,42207,此时簇1、簇2、簇3的面积与平均面积 的差值分别为14.60%,6.52%,5.45%,已满足要求,此时不必将簇2中的电路宏模块7移至 簇3;

步骤⑤-2:更新nisland=3个簇的初始中心点坐标,更新的初始中心点坐标为第q个簇中包 含的所有电路宏模块坐标的平均值,簇1包含电路宏模块{b14,b15,b16,b17,b18,b19,b20}, 中心点为簇2包含电路宏模块{b1,b3,b6,b9,b10,b13},中心点为 簇3包含电路宏模块{b2,b4,b5,b7,b8,b11,b12},中心点为 (xc3=123,yc3=248);

步骤⑤-3:若每个簇的面积与平均面积的差值大于或等于15%,则重复步骤⑤-1~⑤-2, 否则停止迭代,输出划分的3个簇的信息,此时簇1,簇2,簇3的面积已满足要求,循环终 止;

步骤⑥:对于nisland=3个簇,针对每个簇中所包含的每一个电路宏模块bp,假设以电路 宏模块bp的中心点为固定点,该固定点与一个零长度,劲度系数为kbi的弹簧的一端连接,并 将每个簇中所有与电路宏模块所连接的弹簧的另一端互相连接在一起,所有的弹簧组成了弹 簧系统;计算出弹簧系统的能量均衡点e的坐标(xe,ye);若一个簇中所有电路宏模块中具有 最小面积的电路宏模块的面积值为A0,电路宏模块bp的面积值为则

kbp=Abp/A0---(2)

以簇1为例,即kb14=Ab14/A0=7140/3081=2.32,

kb15=Ab15/A0=4332/3081=1.41,

kb16=Ab16/A0=3081/3081=1.00,

kb17=Ab17/A0=4332/3081=1.41

kb18=Ab18/A0=9295/3081=3.02

kb19=Ab19/A0=6384/3081=2.07

kb20=Ab20/A0=4345/3081=1.41

能量均衡点e到各电路宏模块中心点所引起的弹簧拉力可分解为在水平方向的分力和垂直方向的分力其中

能量均衡点e的坐标可通过公式(5)和(6)求解得到:

得到xe=329.27,又

得到ye=313.86,

寻找出一个供电引脚pj∈P,使得pj到能量均衡点e的曼哈顿距离最小,即 最小,pj即为其所属簇的供电引脚分配的位置;通过遍历P中的所有pj, 得到能量均衡点e到表二中的供电引脚167的曼哈顿距离

|xe-xpj|+|ye-ypj|=|329.27-478|+|313.86-315|=149.87

为最小值,因此,簇1的供电引脚为供电引脚167;依次为每个簇分配供电引脚,完成电压 岛Kisland所需的nisland个供电引脚的分配,对于已分配的供电引脚,将其从可用供电引脚集合P 中移除,以避免供电引脚的重复分配,得到的供电引脚分配结果如图2所示;

步骤⑦:重复步骤③~⑥完成芯片中所有电压岛的供电引脚分配。

基于上述电压岛的供电引脚分配,通过规则的网络产生电压岛电源网络,可通过基尔霍 夫节点电压方程求解出电源网络中各节点的电压,从而计算出电源网络中的电压降。其中电 路宏模块上的引脚设定为电路宏模块的中心点,且与电源网络上与中心点最近的节点连接。 设定电源网络的间距pitch=40um,线宽为4um,方块电阻为0.1Ω/sq,供电电压为1.0V, 通过采用共轭梯度法求解得到1.0V电压岛最大电压降为34mV。若通过传统的电压岛供电引 脚分配方法,即按照文献《DubeyA.P/Gpadplacementoptimization:problemformulationforbest IRdrop[C]//QualityofElectronicDesign,2005.ISQED2005.SixthInternationalSymposiumon. IEEE,2005:340-345.》方法求解,得到的最大电压降为40mV,可见,本发明方法能更好的降 低电压降。

表一

表二

表三

表四

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号