一种基于深度学习的芯片供电网络凸快电流估算方法及系统
技术领域
本发明设计电路验证、电源完整性分析、电路功耗分析等工程技术领域,特别涉及一种基于深度学习的芯片供电网络凸快电流估算方法及系统。
背景技术
随着超大规模集成电路工艺的发展,芯片工作电压越来越低,但是电流密度却越来越高。这导致系统的噪声容限越来越低,从而对电源系统在整个工作频段内的稳定性提出了更高的要求。电源完整性对系统可靠性、信噪比与误码率、EMI/EMC等电路设计中重要指标有着越来越重要的影响。因此,先进工艺的集成电路设计通常对电源完整性具有很严格的指标以确保电路的稳定性。在电源完整性设计中,设计者通常需要对设计缺陷进行迭代式的修改来保证最终设计能够满足所有的设计指标,这促使了ECO设计流程的出现。
ECO是近年来兴起的一种新型超大规模集成电路的设计流程。设计者仅对产品进行局部修改(5%-10%),以纠正功能性错误或满足非功能性设计要求(例如时序和功率)。这种对当前设计进行最小化改变的思想,可以尽可能节省设计成本和设计时间,因此被广泛地运用于降低设计复杂性和缩短设计周期的工作中。
当底层IP设计改变时,设计者希望在产品迭代过程中快速确定这种改变对顶层造成影响的分布情况,所以在物理设计阶段需要对电路进行多次仿真,导致此阶段是整个电路设计流程中最耗时的部分。因此,提升ECO阶段对每个修改版本的仿真速度对缩短整个设计周期具有至关重要的作用。ECO设计流程中产生的修改版本与原始版本具有较大的相似性,所以通过引入原始版本的仿真信息,可以降低每个修改版本的仿真时间,提升设计效率。
然而目前主流EDA工具并没有考虑到ECO版本之间的相似性而进行优化。主流EDA软件仍将修改版本看作一个新的设计,从零开始进行一次新的仿真。显然,尽管这种方法能保证仿真的准确性,却忽视了仿真的时间成本。产品设计者更希望在他们迭代设计期间,EDA软件能尽可能的利用ECO设计确定的不变信息,针对产品的局部改变,以略微降低仿真精度作为代价,换取仿真时间大幅减少作为回报,确定设计改变所造成的变化。
综上,提供一种基于深度学习的芯片供电网络凸快电流估算方法及系统,充分利用ECO原始版本与修改版之间的相似性,是提高仿真速度,缩短设计周期的关键。
发明内容
本发明的目的在于针对目前EDA软件在ECO阶段仿真速度的现有技术的不足,提供一种基于深度学习的芯片供电网络凸快电流估算方法及系统。在进行电源完整性测试时,本方法可以快速且准确地对ECO阶段的每个修改版本进行仿真,得到在Bump端口对于当前输入电流源的响应。
本发明的目的是通过以下技术方案来实现的:一种基于深度学习的芯片供电网络凸快电流估算方法,该方法包括以下步骤:
(1)生成不同底层电流激励和不同去耦电容密度和位置的电源网,作为神经网络训练样本;
(2)利用电源网的线性均匀性和叠加性,扩充步骤(1)中生成的训练样本,实现数据增强。
(3)构建卷积神经网络,其输入为以二位矩阵形式表示的电流激励的分布,其输出为以一维向量形式表示的Bump电流响应。并通过步骤(2)得到的最终的神经网络训练集训练构建的神经网络;
(4)通过训练完的卷积神经网络计算静态场景下Bump的时域电流响应。
进一步地,步骤(1)中,提取Bump和电流源的位置后进行分组,并去除每组中超过阈值数量的端口,所述阈值根据需求的计算速度和硬件处理能力选取,并且可随机化添加底层电流激励大小和随机化添加去耦电容密度和位置并生成对应的电源网仿真文件。
进一步地,步骤(2)具体为:获取神经网络的训练数据,并对不同的训练数据随机赋予不同权重后进行线性组合,从而生成新的训练数据以实现数据增强。具体来说,由于电源网系统是线性时不变系统,所以其满足叠加性。当不同的底层电流激励线性叠加时,底层各个Bump端的电流也满足以下线性叠加关系:
式中,I
source代表电流激励的分布,I
bump表示Bump电流响应,
表示二者之间的对应关系,k代表常数项系数,I
source,a和I
source,b分别代表a与b两种情况下的电流激励分布,I
bump,a和I
bump,b分别代表a与b两种情况下的Bump电流响应。
进一步地,步骤(3)具体为:构建的卷积神经网络有六层结构,第1-4层包括依次连接的一个卷积层、一个批标准化操作单元、一个LeakyRelu激活层和一个池化层;第五层是一个全连接层进行非线性变换;最后连接一个输出层。
进一步地,损失函数采用L1Loss,PeakLoss和ZeroConstraint的线性组合构成,计算公式为:
Loss=L1Loss+α*PeakLoss+β*ZeroConstraint
PeakLoss=(Ti-Pk)2+(Tj-Pl)2+|(k-i)(Ti-Pi)(Tk-Pk)|+|(l-j)(Tj-Pj)(Tl-Pl)|
Ti=max(target),Tj=min(target),Pk=max(prediction),Pl=min(prediction)
ZeroConstraint=sum(prediction)
式中,Loss代表训练使用的总损失函数,L1loss表示每个预测值和实际值之间的绝对值误差,n表示预测值的长度即Bump的数量,i表示预测值向量的的第i个值,PeakLoss表示测试数据预测值的最大最小值和标签之间的误差,α表示PeakLoss在总损失函数中的权重,ZeroConstraint表示预测值总和与0之间的误差,β表示ZeroConstraint在总损失函数中的权重,Ti表示标签的最大值,Tj表示标签的最小值,Pk表示预测值的最大值,Pl表示预测值的最小值,target表示标签,prediction表示预测值。
本发明还提供了一种基于深度学习的芯片供电网络凸快电流估算系统,该系统包含电源网生成模块、训练数据获取模块、轻量级卷积神经网络模块和Bump电流计算模块。
所述电源网生成模块用于生成不同底层电流激励和不同去耦电容密度和位置的电源网,作为神经网络训练样本。
所述训练数据获取模块用于利用电源网的线性均匀性和叠加性,扩充步骤(1)中生成的训练样本,实现数据增强。
所述卷积神经网络模块用于构建卷积神经网络,其输入为以二位矩阵形式表示的电流激励的分布,其输出为以一维向量形式表示的Bump电流响应。并通过步骤(2)得到的最终的神经网络训练集训练构建的神经网络;
所述Bump电流计算模块通过训练完的卷积神经网络计算静态场景下Bump的时域电流响应。
进一步地,所述电源网生成模块提取Bump和电流源的位置后进行分组,并去除每组中超过阈值数量的端口,所述阈值根据需求的计算速度和硬件处理能力选取,并且可随机化添加底层电流激励大小和随机化添加去耦电容密度和位置并生成对应的电源网仿真文件。
进一步地,所述训练数据获取模块获取神经网络的训练数据,并对不同的训练数据随机赋予不同权重后进行线性组合,从而生成新的训练数据以实现数据增强。具体来说,由于电源网系统是线性时不变系统,所以其满足叠加性。当不同的底层电流激励线性叠加时,底层各个Bump端的电流也满足线性叠加关系:
式中,I
source代表电流激励的分布,I
bump表示Bump电流响应,
表示二者之间的对应关系,k代表常数项系数,I
source,a和I
source,b分别代表a与b两种情况下的电流激励分布,I
bump,a和I
bump,b分别代表a与b两种情况下的Bump电流响应。
进一步地,所述卷积神经网络模块构建的神经网络有六层结构,第1-4层包括依次连接的一个卷积层、一个批标准化操作单元、一个LeakyRelu激活层和一个池化层;第五层是一个全连接层进行非线性变换,最后连接一个输出层。
进一步地,卷积神经网络模块构建的神经网络损失函数采用L1Loss,PeakLoss和ZeroConstraint的线性组合构成,计算公式为:
Loss=L1Loss+α*PeakLoss+β*ZeroConstraint
PeakLoss=(Ti-Pk)2+(Tj-Pl)2+|(k-i)(Ti-Pi)(Tk-Pk)|+|(l-j)(Tj-Pj)(Tl-Pl)|
Ti=max(target),Tj=min(target),Pk=max(prediction),Pl=min(prediction)
ZeroConstraint=sum(prediction)
式中,Loss代表训练使用的总损失函数,L1loss表示每个预测值和实际值之间的绝对值误差,n表示预测值的长度即Bump的数量,i表示预测值向量的的第i个值,PeakLoss表示测试数据预测值的最大最小值和标签之间的误差,α表示PeakLoss在总损失函数中的权重,ZeroConstraint表示预测值总和与0之间的误差,β表示ZeroConstraint在总损失函数中的权重,Ti表示标签的最大值,Tj表示标签的最小值,Pk表示预测值的最大值,Pl表示预测值的最小值,target表示标签,prediction表示预测值。
本发明的有益效果:本发明能够快速地提取电源网的特征,并能精确地根据电流激励的分布预测出Bump电流响应,预测结果与常用商业软件结果的误差小于1%。本发明合理使用了数据增强方法,在保证准确率相近的情况下,大大降低了采集数据所需的成本。同时,本发明的计算速度可达常用商业软件的数十倍。
附图说明
图1是本发明一个实施例的一种基于深度学习的芯片供电网络凸快电流估算方法的结构框图;
图2是本发明一个实施例的轻量级卷积神经网络构建示意图;
图3是本发明一个在具体场景下本发明预测结果与商业仿真软件计算结果误差的分布图;
图4是本发明一个在具体场景下是否使用数据增强的误差结果对比图。
具体实现方式
下面结合附图和具体实施例对本发明作进一步详细说明。
本发明提供了一种基于深度学习的芯片供电网络凸快电流估算方法,该方法包括以下步骤:
(1)生成不同底层电流激励和不同去耦电容密度和位置的电源网,作为神经网络训练样本;提取Bump和电流源的位置后进行分组,并去除每组中超过阈值数量的端口,所述阈值根据需求的计算速度和硬件处理能力选取,并且可随机化添加底层电流激励大小和随机化添加去耦电容密度和位置并生成对应的电源网仿真文件。
(2)利用电源网的线性均匀性和叠加性,扩充步骤(1)中生成的训练样本,实现数据增强。获取神经网络的训练数据,并对不同的训练数据随机赋予不同权重后进行线性组合,从而生成新的训练数据以实现数据增强。具体来说,由于电源网系统是线性时不变系统,所以其满足叠加性。当不同的底层电流激励线性叠加时,底层各个Bump端的电流也满足以下线性叠加关系:
式中,I
source代表电流激励的分布,I
bump表示Bump电流响应,
表示二者之间的对应关系,k代表常数项系数,I
source,a和I
source,b分别代表a与b两种情况下的电流激励分布,I
bump,a和I
bump,b分别代表a与b两种情况下的Bump电流响应。
(3)构建卷积神经网络,其输入为以二位矩阵形式表示的电流激励的分布,其输出为以一维向量形式表示的Bump电流响应。并通过步骤(2)得到的最终的神经网络训练集训练构建的神经网络;构建的卷积神经网络有六层结构,第1-4层包括依次连接的一个卷积层、一个批标准化操作单元、一个LeakyRelu激活层和一个池化层;第五层是一个全连接层进行非线性变换;最后连接一个输出层。
损失函数采用L1Loss,PeakLoss和ZeroConstraint的线性组合构成,计算公式为:
Loss=L1Loss+α*PeakLoss+β*ZeroConstraint
PeakLoss=(Ti-Pk)2+(Tj-Pl)2+|(k-i)(Ti-Pi)(Tk-Pk)|+|(l-j)(Tj-Pj)(Tl-Pl)|
Ti=max(target),Tj=min(target),Pk=max(prediction),Pl=min(prediction)
ZeroConstraint=sum(prediction)
式中,Loss代表训练使用的总损失函数,L1loss表示每个预测值和实际值之间的绝对值误差,n表示预测值的长度即Bump的数量,i表示预测值向量的的第i个值,PeakLoss表示测试数据预测值的最大最小值和标签之间的误差,α表示PeakLoss在总损失函数中的权重,ZeroConstraint表示预测值总和与0之间的误差,β表示ZeroConstraint在总损失函数中的权重,Ti表示标签的最大值,Tj表示标签的最小值,Pk表示预测值的最大值,Pl表示预测值的最小值,target表示标签,prediction表示预测值。
(4)通过训练完的卷积神经网络计算静态场景下Bump的时域电流响应。
如图1所示,本发明还提供了一种基于深度学习的芯片供电网络凸快电流估算系统,该系统包含电源网生成模块、训练数据获取模块、轻量级卷积神经网络模块和Bump电流计算模块。
所述电源网生成模块,用于从设计交换文件中提取电流源和顶层Bump的位置,生成不同底层激励和不同去耦电容密度和位置的电源网并根据要求自动化生成芯片功耗模型(CPM)及其过程中所需文件,包括自动化生成顶层约束文件(GSR)、命令行执行文件(TCL)、各模块静态电流和电容的配置文件、电流源和Bump的位置文件(PLOC)、区域功耗分配文件(BPA)等。
各模块静态电流和电容的配置文件指明了每个模块的负载电容、特征阻抗、各状态电流响应等信息,以便于EDA软件生成对应的电流模块。
电流源和Bump位置文件提取于设计交换文件。由于计算能力的限制,CPM的端口数量不能过多。提取时须先将电流源及Bump分组,每组合并为一对CPM端口。此外,电流源的数目依然过多,直接计算会导致生成CPM时计算量过大。通过指定每组最大端口数量,筛选出每组中代表性的端口,可以有效减少CPM计算时间。
区域功耗分配文件是将用户定义的各电流模块、去耦电容模块实际分配到电路的对应位置。
所述训练数据获取模块,用于生成紧凑卷积神经网络的训练数据。通过将底层看作32*32的图像,随机地给每个像素分配功耗,并保证总功耗一定。自动生成脚本,利用商业工具静态仿真,获取顶层各Bump电流输出向量作为标签。商业工具具有较高的准确性,但针对不同形式的激励电流,则每次都需要对整个电路进行仿真求解。随着电路规模的不断提升,计算复杂度呈指数级别增长。由于电源网是线性时不变系统,所以输入输出满足可叠加性。通过不同的线性组合方式,可以使原始的训练数据产生新的训练数据。设计者只需提取少量的原始训练数据,即可获得大量的符合实际情况的训练样本-标签对:
通过两种方式进行数据增强操作:
1)训练时每次生成数据,有0.5的概率乘以1-2之间的某个值。
2)直接扩展数据集,扩展方法为:当前数据乘0-2之间某个值,生成三个新样本-标签对;相邻两组数据相加,生成新的一个样本-标签对。
所述轻量级卷积神经网络模块,用于构建紧凑的卷积神经网络,其包含卷积层,批处理层,池化层,激活层,全连接层和最后的输出层。其有六层结构,第1-4层包括依次连接的一个卷积层、一个批标准化操作单元、一个LeakyRelu激活层和一个池化层;第五层是一个全连接层进行非线性变换,全连接层向量的维度依次为4096、768;最后连接一个输出层。该紧凑的卷积神经网络网络模型中,卷积层操作的计算过程为:
式中,outputconv是每一卷积层输出图像数据的三维大小(图像的长度、宽度和深度),inputconv是输入图像的三维大小,pad表示在图像周围填充像素,kernal为卷积核的三维大小,stride为卷积核的步长。
对于每一个卷积层使用批标准化操作,加速网络的收敛速度及稳定性,批标准化操作的公式为:
其中,Input是输入的每个批数据,
是归一化数据,Output批标准化操作输出的批数据,μ和σ分别是每个批数据的均值和方差,γ和β分别是缩放和平移变量,∈是为了增加训练稳定性而加入的较小的常量数据;
与每个卷积层相连的激活函数选用LeakyRelu函数,可缩短训练周期,LeakyRelu函数的计算方式为:
Outputactivation=Inputactivation if Inputactivation≥0
Inputactivation/α if Inputactivation<0
其中,Inputactivation是LeakyRelu函数的输入数据,Outputactivation是LeakyRelu函数的输出数据,α是个固定的参数。
如图2所示,输入图像块的大小为1×32×32,其中32×32代表图像块的长、宽,1代表图像块的通道数量。经过第1层3×3卷积、批处理和LeakyReLU后,得到的特征大小为64×32×32,经过2×2池化操作后,得到的特征大小为64×16×16的数据图像。通过相同的操作,第2-4层的输出图像维度为128×16×16、256×8×8、512×4×4,经过第5层池化层得到大小为1024×2×2的1024个高维特征并将其传入到全连接层的多层感知机(MLP)中进行概率回归,全连接层向量的维度依次为1×1×4096、1×1×768和1×1×1×输出维度,全连接层中间采用dropout层并设置p=0.5,减少网络参数,防止过拟合。
在模型训练中采用L1Loss,PeakLoss和ZeroConstraint的线性组合构成,计算公式为:
Loss=L1Loss+α×PeakLoss+β×ZeroConstraint
PeakLoss=(Ti-Pk)2+(Tj-Pl)2+|(k-i)(Ti-Pi)(Tk-Pk)|+|(l-j)(Tj-Pj)(Tl-Pl)|
Ti=max(target),Tj=min(target),Pk=max(prediction),Pl=min(prediction)
ZeroConstraint=sum(prediction)
其中L1loss表示每个预测值f(xi)和实际值yi之间的误差,PeakLoss表示测试数据预测值的最大最小值和实际值之间的误差,ZeroConstraint表示预测值总和与0之间的误差。采用标准随机梯度下降(SGD)更新权重权重参数θ,其公式为:
其中,η是学习速率,θk是第k次的权重参数。
所述Bump电流计算模块,用于计算静态场景下Bump的时域电流响应,主要包含三个步骤:(1)确定底层各个电流激励的大小(2)将电流激励输入训练完成后的卷积神经网络(3)确定Bump各个电流输出值。
本发明能够快速地提取电源网的特征,并能精确地根据电流激励的分布预测出Bump电流响应,预测结果与常用商业软件结果的误差小于1%。如图3所示,对于一个有70个Bump的电源网实例,施加500种不同分布电流激励并分别用商业软件和本发明得到计算结果,统计结果的相对误差,可以看到其误差的平均值小于1%,误差的最大值小于5%。
本发明合理使用了数据增强方法,在保证准确率相近的情况下,大大降低了采集数据所需的成本。如图4所示,对同一个电源网实例,对照组使用了4500组采集的样本-标签组,没有使用数据增强;实验组仅使用了50组采集的样本标签组,但电源网的线性均匀性和叠加性,对不同的训练数据随机赋予不同权重后进行线性组合,从而生成新的训练数据以实现数据增强,两种方法得到了相似的精度。
本发明的计算速度远远快于商业软件,根据实际测试,其计算速度可达商业软件的数十倍。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。