首页 / 专利库 / 人工智能 / 机器学习 / 监督学习 / FPGA电路的负载建模方法

FPGA电路的负载建模方法

阅读:1016发布:2020-05-08

专利汇可以提供FPGA电路的负载建模方法专利检索,专利查询,专利分析的服务。并且本 发明 属于集成 电路 技术领域,具体为一种FPGA电路的负载建模方法。本发明方法包括:关键电路模 块 内负载建模,通过训练金属线寄生负载 电阻 和电容与线长和线端点晶体管尺寸之间的函数关系,建立寄生电阻电容关于线长的函数模型;关键电路模块间负载建模,通过增长线负载长度的方法得到金属线在最大耦合情况下的寄生电阻电容值随线长的变化关系;关键电路扇出单元负载建模,通过建立一种扇出单元的等效电路,使得等效单元具有和原扇出电路相同的对延时的影响能 力 。本发明运用在FPGA电路的仿真中,在不设计版图,仅有电路晶体管宽度的前提下就能够预测出带扇出负载的版图后仿延时值,从而能够辅助决策出最优的电路晶体管尺寸,节省电路设计优化时间。,下面是FPGA电路的负载建模方法专利的具体信息内容。

1.一种FPGA电路的负载建模方法,其中,FPGA由重复单元TILE组成,TILE包括互连线和可编程逻辑,其特征在于,包括关键电路模块内负载建模、关键电路模块间连线负载建模以及关键电路扇出单元负载建模;
首先,提取多组线长、端点晶体管宽度、对应的线电阻电容作为样本集合,然后利用机器学习中的梯度下降方法建立模块内线负载模型;
然后,再提取多组线长、对应的线电阻电容作为样本集合,再利用机器学习的中线性回归方法建立模块间线负载模型;
最后,构建MUX的等效电路,并利用机器学习中的聚类方法建立扇出单元的负载模型。
2.根据权利要求1所述的FPGA电路的负载建模方法,其特征在于,具体步骤为:
第一步,模块内负载建模:
模块内负载建模旨在提取出模块内金属线的寄生电阻R和寄生电容C;先得到一些线长和端点晶体管宽度的样本输入变量集合,再得到每个样本输入变量对应的寄生电阻R和寄生电容C,采用监督学习方法建立线长L和端点晶体管宽度W到R,C的拟合关系;这个关系在训练样本输入完毕之后被确定了下来;之后使用这个关系式的时候,只需要输入线长L和端点晶体管宽度W,即计算出寄生电阻R和寄生电容C的预测值;
第二步,模块间负载建模:
改变金属线的长度,会得到不同的电阻和电容的取值,根据基本的电阻电容随长度和面积的变化公式,得到电阻和电容与一个固定宽度和厚度的金属线长L成正比关系;因此,同样可以利用无监督学习方法,得到线寄生电阻电容随线长L变化的关系;利用这个关系,即可根据输入金属线的长度L,得出预测的模块间线寄生电阻电容的大小;
第三步,扇出单元负载建模:
扇出负载模型只保留MUX电路的第一级传输管和上拉电路,相应的缓冲器也由一个反相器代替,由电阻R和源漏短接的宽度为WP和WN的晶体管代表寄生电阻电容;该模型保留了原始电路中的上拉网络,在建立模型的时候输入与实际扇出单元版图产生的延时相当的有源负载宽度值和电阻值作为一个样本,逐渐增大扇出数量,得到多组这样的样本;这些样本都落在一个较小的有界空间内,在这个有界空间中采用无监督学习模型,找到一个代替点来作为这个空间的最终选取点,这个点代表的值也就是有源负载的数值。
3.根据权利要求2所述的FPGA电路的负载建模方法,其特征在于,所述模块内负载建模的具体过程如下:
用金属线长L表示寄生参数和连线长度以及晶体管宽度的关系:
L=2Len+2Hg+∑wi
式中,Len是面积模型提供的版图长度预测,Hg是面积模型提供的版图高度预测,Wi是和该节点相连的多个晶体管宽度;
接下来建立R和C关于L的函数关系:利用已有的版图后仿结果作为采样数据集,利用批梯度的计算方法,计算出R和C关于L的函数关系;具体来说,一个版图有一个后仿结果,通过扫描不同的R和C值,找到一对R和C使得模型的延时和后仿一样,这样多个版图就对应多对RC,相当于多个采样数据;假设R和C关于L的函数关系的关系为:
这里用小写的字母表示R、C和L的一个取值,之后将用大写字母表示相应的采样数据向量;θR和θC为系数向量,确定方式如下:
定义估计值和版图后仿结果之间的误差函数J(θ):
上式表示m个采样点实际版图后仿结果yi和预测值hθ(xi)的误差平方和,用矩阵的方法表示为:
目标是让误差函数最小,对θ求导数:
然后令导数为零: 最后得到结果:
θ=(XTX)-1XTY
通过m个采样数据,计算出R和C关于L的函数关系中的系数:
式中:
θR=[θR0,θRllT
θC=[θC0,θC1]T
YR=[r1,r2,…,rm]T
YC=[c1,c2,…,cm]T
根据系数θR,θC,即可计算模块内线寄生电阻电容;式中L以微米为单位,R以欧姆为单位,C以飞法为单位。
4.根据权利要求3所述的FPGA电路的负载建模方法,其特征在于,所述模块间负载建模的具体过程为:
模块间负载建模的公式和模块内负载建模相似,但是去除了端点晶体管宽度的影响,线长由当前关键电路的类型决定,具体表示为:
L为预估的线长,W为TILE的版图宽度,STEP为跨越的TILE数量;
得到线长预估值后,继续采用回归方法,得到预测的模块间线寄生电阻和寄生电容。
5.根据权利要求4所述的FPGA电路的负载建模方法,其特征在于,所述扇出单元负载建模的具体过程为:
在实现聚类算法的过程中,首先要确定半径eps和密度阈值MinPts,对于任意一个数据点,以它为中心半径eps的圆内所有数据点数量大于MinPts,那它就是核心点;否则看他周围有没有核心点,有的话它是边界点,否则就是离群点;根据eps和MinPts,统计判断所有数据是核心点、边界点或者离群点,并将离群点删除;然后如果核心点之间的距离小于MinPts,就将两个核心点连接在一起,这样就形成了若干组,将边界点分配到距离它最近的核心点范围内,形成最终的聚类结果。

说明书全文

FPGA电路的负载建模方法

技术领域

[0001] 本发明属于集成电路技术领域,具体涉及FPGA电路负载建模方法。

背景技术

[0002] FPGA是一种基于重复单元TILE的规整阵列结构,如图1所示。正是这种规整性结构使其往往率先使用世界最前沿IC工艺与设计技术,集成度在各类IC中名列前茅、已达数百亿晶体管。这种规整FPGA电路一般采用全定制设计方法以获得其高性能[1-4],FPGA电路晶体管快速优化方法不但可以缩短全定制FPGA芯片的设计时间,而且还可以提高性能。而FPGA电路的晶体管快速优化方法,主要基于FPGA架构参数和工艺参数进行关键电路解析和优化,所以FPGA关键电路解析是决定性的一步,另外,FPGA关键电路解析对FPGA芯片结构探讨、FPGA软件系统开发也十分重要,是FPGA设计自动化的重要前提。
[0003] 人们期望有一种适合于任意架构FPGA电路的负载建模方法。负载建模的本质就是找到一组公式,通过这个公式计算出的金属线寄生电阻和电容值与真实电阻和电容值尽可能地近似。建模方法有很多种,从机器学习度可归为监督学习方法和无监督学习方法[5],像回归、分类这样需要样本训练模型的属于监督学习;像聚类和降维这样直接操作数据集合的模型属于无监督学习。
[0004] 在关键电路模内和关键电路模块间负载建模时,我们需要得到线寄生电阻电容随着线长以及管子宽度之间的关系,而这个关系是正线性相关的——线长越大、导线两端管子宽度越大,线负载的值越大。因此在建模的时候需要建立一种由线长和晶体管宽度到线电阻和线电容之间的线性关系,属于回归类问题。同时这个关系可以从已有的版图中提取出实际值作为训练数据,因此可以采用监督学习中的回归方法作为建模的依据。
[0005] 在关键电路扇出负载建模时,我们需要找到有源负载WP,WN,R随着负载增加时值的变化情况。在理想情况下,某一个模块内的有源负载并不会随着负载数量的增加而增加,它应当是一个该变量不大的数据,但是实际情况下,由于各种寄生参数的影响,有源负载的WP,WN和R不可能不改变,会在一个很小的范围内变动,因此可以采用无监督学习中的聚类方法作为建模的依据。
[0006] 参考文献
[0007] [1]BETZ V,ROSE J,MARQUARDT A.Architecture and CAD forDeep-Submicron FPGAS[J].Springer International,1999,497.
[0008] [2]AHMED E,ROSE J.The effect of LUT and cluster size on deep-submicron FPGAperformance and density[J].IEEE Transactions on Very Large ScaleIntegration Systems,2004,12(3):288-98.
[0009] [3]LEMIEUX G,LEE E,TOM M,et al.Directional and single-driver wires inFPGAinterconnect[A]in:proceedings of the IEEE International Conference on Field-ProgrammableTechnology,2004Proceedings[C],F,2004.
[0010] [4]KUON I,ROSE J.Exploring Area and Delay Tradeoffs in FPGAs With Architecture andAutomated Transistor Design[J].Very Large Scale Integration Systems IEEE Transactions on,2011,19(1):71-84.
[0011] [5]Mitchell,Tom M.Machine learning.McGraw-Hill,2003.。

发明内容

[0012] 本发明的目的在于提出一种适合于任意架构的FPGA电路的负载建模方法。
[0013] 本发明中,FPGA由重复单元TILE组成,如图1所示便是基于重复TILE的FPGA一种架构图,也可以应用于其它架构。TILE包括互连线和可编程逻辑块(CLB),如图2所示。由图2的模块间连接关系,可以得出:
[0014] (1)关键电路的扇出负载普遍较多,连接关系复杂,需要较长的互连线,因此线负载在仿真中所占的比重是很大的,所贡献的延时是不可忽略的,因此模块内和模块间都需要建立拟合的线负载模型;
[0015] (2)模块的扇出负载大部分都是以多路选择器(MUX)为主,少部分以CLB中模块作为负载的单元,其CLB输入为一个反相器,用于隔绝不同级之间的相互影响。故各个关键电路扇出单元都可以使用一种MUX等效结构予以代替,非MUX的扇出单元仍采用反相器作为扇出。
[0016] 本发明提出的FPGA关键电路的负载建模方法,包括模块内负载建模、模块间连线负载建模以及扇出单元负载建模;首先,提取多组线长、端点晶体管宽度、对应的线电阻电容作为样本集合,然后利用机器学习中的梯度下降方法建立模块内线负载模型;再提取多组线长、对应的线电阻电容作为样本集合,再利用机器学习的中线性回归方法建立模块间线负载模型;最后提出一种MUX的等效电路,并利用机器学习中的聚类方法建立扇出单元的负载模型。经版图后仿真和流片验证,本负载模型预测出的关键电路延时与实际版图提参后仿真延时的误差在10%以内,与流片验证的延时误差在15%以内。
[0017] 本发明提出的FPGA电路负载建模方法,其电路示意图如图3所示,其流程如图7所示。具体步骤如下:
[0018] 第一步,关键电路模块内负载建模:
[0019] 模块内负载建模旨在提取出模块内金属线的寄生电阻R和寄生电容C。先得到一些线长和端点晶体管宽度的样本输入变量集合,再得到每个样本输入变量对应的寄生电阻R和寄生电容C,采用无监督学习方法去建立线长L和端点晶体管宽度W到R,C的拟合关系。这个关系在训练样本输入完毕之后就确定了下来;之后使用这个公式的时候,只需要输入线长L和端点晶体管宽度W,就能够计算出寄生电阻R和寄生电容C的预测值。
[0020] 第二步,关键电路模块间负载建模:
[0021] 如图4所示,改变金属线的长度,会得到不同的电阻和电容的取值,根据基本的电阻电容随长度和面积的变化公式可以得到电阻和电容与一个固定宽度和厚度的金属线长L成正比关系,因此同样可以利用无监督学习方法,得到线寄生电阻电容随线长L变化的关系。利用这个关系,就能够根据输入金属线的长度L得出预测的模块间线寄生电阻电容的大小。
[0022] 第三步,关键电路扇出单元负载建模:
[0023] 扇出负载模型只保留MUX电路的第一级传输管和上拉电路,如图5所示。相应的缓冲器也由一个反相器代替,由电阻R和源漏短接的宽度为WP和WN的晶体管代表寄生电阻电容。这一模型保留了原始电路中的上拉网络,在建立模型的时候输入与实际扇出单元版图产生的延时相当的有源负载宽度值和电阻值作为一个样本,逐渐增大扇出数量,得到多组这样的样本,这些样本都落在一个较小的有界空间内,在这个较小的有界空间中采用无监督学习模型,找到一个代替点来作为这个空间的最终选取点,这个点代表的值也就是有源负载的数值。在使用这个模型的时候不需要改变代表点的数值,这个数值并不会随着宽度和线长的变化而变化。
[0024] 本发明将三个等效模型运用在FPGA电路的仿真中,可以在不设计版图,仅有电路晶体管宽度的前提下就能够预测出带扇出负载的版图后仿延时值,从而能够在不设计版图的前提下辅助决策出最优的电路晶体管尺寸,节省电路设计优化时间。
[0025] 本发明FPGA重复单元TILE关键电路负载建模方法具有如下优点:
[0026] 1、不显著依赖于特定工艺下,即建模方法适用于不同的工艺;
[0027] 2、利用机器学习算法,可以采用其他不同的回归或聚类方法,模型的灵活性高;
[0028] 3、不依赖于版图设计,只考虑工艺相关参数,并得到精确的版图后仿真延时结果;
[0029] 4、仅依赖于晶体管宽度和线长,简化了电路设计优化的流程,修改电路容易。附图说明
[0030] 图1为一种FPGA重复单元TILE的顶层分布图。
[0031] 图2为一种FPGA的重复单元TILE的内部示意图。
[0032] 图3为关键电路负载建模总体示意图。
[0033] 图4为模块间负载建模方法示意图。
[0034] 图5为扇出单元等效电路图。
[0035] 图6为扇出单元负载建模方法示意图。
[0036] 图7为本发明方法流程图示。

具体实施方式

[0037] 本发明提出的FPGA电路负载建模方法,其电路示意图如图3所示。
[0038] 第一步,关键电路模块内负载建模:
[0039] 模块内负载建模的重点在于电阻电容的取值,要准确预测版图后仿结果。考虑到寄生参数和连线长度以及晶体管宽度都有关系,这里用金属线长L表示:
[0040] L=2Len+2Hg+Σwi
[0041] 式中,Len是面积模型提供的版图长度预测,Hg是面积模型提供的版图高度预测,Wi是和该节点相连的多个晶体管宽度,这样L就能综合表示连线长度以及晶体管宽度。有了L,接下来就要得到R和C关于L的函数关系。这里本发明采用梯度下降的方法,利用已有的版图后仿结果作为采样数据集,计算出R和C关于L的函数关系。具体来说,一个版图有一个后仿结果,通过扫描不同的R和C值,一定能找到一对R和C使得模型的延时和后仿一样,这样多个版图就对应多对RC,相当于多个采样数据。这样我们就能利用批梯度的计算方法,计算出R和C关于L的函数关系。首先假设R和C关于L的函数关系的关系为:
[0042]
[0043] 这里用小写的字母表示R、C和L的一个取值,之后将用大写字母表示相应的采样数据向量。有了函数关系,接下来就要求出系数向量θR和θC。
[0044] 首先定义估计值和版图后仿结果之间的误差函数J(θ):
[0045]
[0046] 上式表示m个采样点实际版图后仿结果yi和预测值hθ(xi)的误差平方和,用矩阵的方法表示为:
[0047]
[0048] 目的是让误差函数最小,所以下式对θ求导数:
[0049]
[0050] 然后令导数为零: 最后得到结果:
[0051] θ=(XTX)-1XTY
[0052] 所以通过m个采样数据,就能计算出R和C关于L的函数关系中的系数:
[0053]
[0054] 式中:
[0055] θR=[θR0,θR1lT
[0056] θC=[θC00,θc1]T
[0057]
[0058] YR=[r1,r2,…,rm]T
[0059] YC=[c1,c2,…,Cm]T
[0060] 有了系数θRθC,就能计算模块内线寄生电阻电容。式中L以微米为单位,R以欧姆为单位,C以飞法为单位。
[0061] 第二步,关键电路模块间负载建模:
[0062] 模块间负载建模的公式和模块内负载建模相似,但是去除了端点晶体管宽度的影响,线长的公式也有所变化,线长由当前关键电路的类型决定,具体表示为:
[0063]
[0064] L为预估的线长,W为TILE的版图宽度,STEP为跨越的TILE数量,例如四倍线的负载需要跨越两个TILE,六倍线负载需要跨越四个TILE。
[0065] 得到线长预估值后,继续采用回归方法,得到预测的模块间线寄生电阻和寄生电容。
[0066] 第三步,关键电路扇出单元负载建模:
[0067] 在具体实现聚类算法的过程中,充分考虑了最优解和次优解,采用加权的聚类。即一共有16组数据,在每一组数据中,找到5个R、WP、WN的值来拟合版图后仿结果,根据拟合度分别加以权值5,4,3,2,1。这里的权值和普通意义上归一化的权值不完全相同,因为多组数据之后要通过聚类算法求出聚点,这里的权值5表示该点在聚类算法中出现了5次,用这种重复出现的方式来实现加权。以R为例,一共有32组数据,每一组数据中根据拟合度提取前五个拟合度最高的R0,R1,R2,R3,R4,其中R0权值为5,R1权值为4,R2权值为3,R3权值为2,R4权值为1,加权之后这里的数据点就是R0,R0,R0,R0,R0,R1,R1,R1,R1,R2,R2,R2,R3,R3,R4,一共有15个点,16组数据就是240个点,之后利用基于密度的聚类算法DBSCAN求出这240个点的聚类,然后对这个类中的点求平均值作为聚点。
[0068] 其中,DBSCAN算法首先要确定半径eps和密度阈值MinPts,对于任意一个数据点,以它为中心半径eps的圆内所有数据点数量大于MinPts,那它就是核心点;否则看他周围有没有核心点,有的话它是边界点,否则就是离群点。根据eps和MinPts,统计判断所有数据是核心点、边界点或者离群点,并将离群点删除。然后如果核心点之间的距离小于MinPts,就将两个核心点连接在一起,这样就形成了若干组,将边界点分配到距离它最近的核心点范围内,形成最终的聚类结果。
[0069] 综上所述,按照线长的预估计算公式以及通过聚类得到的有源负载大小,可以构建出一个包含了线负载电阻和电容的仿真电路,这个仿真电路的延时大小与版图寄生参数提取后仿得到的延时大小近似,误差在10%以内。
[0070] 本发明的梯度下降算法、回归算法和加权聚类算法可以使用python语言或者其它语言实现。
[0071] 本发明对FPGA电路的晶体管自动优化技术、对FPGA芯片建模仿真技术、FPGA软件系统开发技术十分重要,对FPGA自动化设计有重要作用。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈