发明内容
本发明实施例提供了基于迭代算法的芯片温度分析方法,可以解决现有技术中存在的问题。
一种基于迭代算法的芯片温度分析方法,该方法包括:
步骤100,利用厂商给定的工艺库文件,获取芯片上所使用的有源器件的模型参数;
步骤110,根据获取的有源器件的模型参数,使用有限元分析软件构建有源器件的实体模型,并对该模型进行有限元网格划分;
步骤120,对步骤110中建立的实体模型施加边界条件,并对该实体模型中有源器件的主要发热区域施加功耗,再用有限元软件对实体模型进行稳态热分析,获得器件表层温度随距离变化的分布曲线;
步骤130,改变有源器件的功耗以及所处的环境温度,然后通过稳态热分析获得不同环境温度、不同功耗下的器件表层温度随距离变化的分布曲线;
步骤140,将步骤130中得到的分布曲线导入MATLAB软件,得到温度分布曲线的函数表达式T(x,p,s,Ta),其中p为被分析器件自身的功耗,s是该器件发热区域的面积,x是芯片上某点到器件发热区域中心点的距离,Ta是器件模型所处的环境温度;
步骤150,根据步骤140中得到的函数表达式T(x,p,s,Ta)推导出环境温度与器件发热区域中心点温度的关系表达式Ta(p,s,T);
步骤160,在电路仿真软件中打开需要分析的电路原理图,对其进行仿真,获得各个有源器件的功耗;
步骤170,在版图设计软件中输出需要分析电路原理图所对应的芯片版图,将步骤160获得的各个功耗用文本图层标在对应的有源器件发热区域之内;
步骤180,使用MATLAB软件编程提取步骤170中得到的芯片版图中有源器件的发热区域面积,中心点坐标,并将该发热区域面积和中心点坐标和步骤160中得到的功耗信息以及设置的初始环境温度代入步骤140获得的温度分布曲线函数表达式T(x,p,s,Ta)中,计算各个有源器件的发热区中心点处的工作温度T;
步骤190,将步骤180中计算得到的各个有源器件的工作温度T代入步骤150获得的函数表达式Ta(p,s,T)中,重新计算各个有源器件所处的环境温度Ta;重复步骤180和190,最终得到满足收敛条件的各个有源器件发热区中心点处的工作温度T。
优选地,步骤100中有源器件的模型参数包括器件的各有源区尺寸及其所用材料。
优选地,步骤140中得到的温度分布曲线的函数表达式T(x,p,s,Ta)具体为:
其中,f(p,s,Ta)为自热温升函数,用于计算器件自热产生的温升;g(p,s,x,Ta)为耦合温升函数,用于计算器件之间相互热耦合产生的温升。
优选地,步骤170中在版图设计软件Cadence中用gdsII格式输出需要分析的电路原理图版图文件。
优选地,步骤180具体包括:
步骤1,用MATLAB软件编程提取HBT器件坐标中心点横坐标cenx(i)、纵坐标ceny(i)、发热面积s(i)和功耗p(i);
步骤2,令编号为i的器件的初始环境温度Ta(i)=27,1≤i≤n,其中n为版图中器件数量;
步骤3,把功耗p(i)、发热面积s(i)和初始环境温度Ta(i)代入自热温升函数f(p,s,Ta),1≤i≤n,计算得到编号为i的器件由于自热效应带来的温升值;
步骤4,把器件i的中心点坐标cenx(i),ceny(i)和其它器件k的中心点坐标cenx(k),ceny(k)代入坐标距离公式i≠k;将p(k),s(k),x(k)和Ta(i)代入耦合温升函数g(pk,sk,xk,Tak)进行求和计算,得到其它所有器件对编号为i的器件的耦合温升值
步骤5,将初始温度、自热温升、耦合温升这三个值叠加,得到编号为i的器件工作温度值:
步骤6,将计算得到的各个有源器件的工作温度T(i)带入步骤150获得的函数表达式Tai(pi,si,Ti)中,重新计算各个有源器件所处的环境温度,从而得到器件下一步迭代计算的环境温度Ta_later(i);
步骤7,判断得到的环境温度Ta_later(i)是否满足收敛条件,若不满足,则将Ta_later(i)赋值给Ta(i),从步骤1重新开始进行迭代计算,直到步骤6中计算得到的Ta_later(i)满足收敛条件;最终得到各个有源器件基区中心点的温度T(i)。
本发明与传统有限元分析方法相比,具有如下优点:
1)本发明通过在有限元软件中建立单个器件热学分析模型,能够快速地得到其温度分布曲线,并且结合MATLAB软件拟合了温度分布函数,利用温度叠加原理,把函数表达式编程到温度计算过程中,避免了传统有限元方法的对整个芯片建立实体模型和网格划分过程,能够简单、快速和高效地实现大规模芯片电路的温度分析。
2)本发明在MATLAB编程中利用迭代算法,将耦合温升所带来的影响等效为环境温度的变化,根据等效后的环境温度得到新的自热温升和耦合温升,从而得到新的温度分布,随后不断地进行迭代计算,直到满足收敛条件,相比于非迭代算法,精度明显提高,能够有效地减小误差。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,本发明实施例中提供的基于迭代算法的芯片温度分析方法,该方法包括:
步骤100,利用厂商给定的工艺库文件,获取芯片上所使用的有源器件的模型参数;
步骤110,根据获取的有源器件的模型参数,使用有限元分析软件构建有源器件的实体模型,并对该模型进行有限元网格划分;
步骤120,对步骤110中建立的实体模型施加边界条件,并对该实体模型中有源器件的主要发热区域施加功耗,再用有限元软件对实体模型进行稳态热分析,获得器件表层温度随距离变化的分布曲线;
步骤130,改变有源器件的功耗以及所处的环境温度,然后通过稳态热分析获得不同环境温度、不同功耗下的器件表层温度随距离变化的分布曲线;
步骤140,将步骤130中得到的分布曲线导入MATLAB软件,得到温度分布曲线的函数表达式T(x,p,s,Ta),其中p为被分析器件自身的功耗,s是该器件发热区域的面积,x是芯片上某点到器件发热区域中心点的距离,Ta是器件模型所处的环境温度;
步骤150,根据步骤140中得到的函数表达式T(x,p,s,Ta)推导出环境温度与器件发热区域中心点温度的关系表达式Ta(p,s,T);
步骤160,在电路仿真软件中打开需要分析的电路原理图,对其进行仿真,获得各个有源器件的功耗;
步骤170,在版图设计软件中输出需要分析电路原理图所对应的芯片版图,将步骤160获得的各个功耗用文本图层标在对应的有源器件发热区域之内;
步骤180,使用MATLAB软件编程提取步骤170中得到的芯片版图中有源器件的发热区域面积,中心点坐标,并将该发热区域面积和中心点坐标和步骤160中得到的功耗信息以及设置的初始环境温度代入步骤140获得的温度分布曲线函数表达式T(x,p,s,Ta)中,计算各个有源器件的发热区中心点处的工作温度T;
步骤190,将步骤180中计算得到的各个有源器件的工作温度T代入步骤150获得的函数表达式Ta(p,s,T)中,重新计算各个有源器件所处的环境温度Ta;重复步骤180和190,最终得到满足收敛条件的各个有源器件发热区中心点处的工作温度T。
下面以对InP分频器电路版图进行分析为例,对本发明实施例进行详细说明:
1、获取电路使用的InP HBT器件的模型信息。
根据所使用的InP HBT工艺库文件,获取InP分频器的信息,包括器件的各有源区尺寸及其所用材料。
2、使用Comsol有限元分析软件对步骤1中获取的器件进行建模,模型各层材料及尺寸如表1所示。
表1
材料 |
尺寸:长×高×宽(μm) |
In0.53Ga0.47As |
15×0.2×1 |
InP |
15×0.17×1 |
In0.53Ga0.47As |
18.5×0.115×3 |
In0.73Ga0.27As0.58P0.42 |
18.5×0.04×3 |
InP |
18.5×0.25×3 |
In0.53Ga0.47As |
25×0.05×11 |
InP |
25×0.3×11 |
In0.53Ga0.47As |
100×0.01×100 |
InP |
100×100×100 |
3、加载功耗和边界条件,划分网格,进行稳态热分析,获得温度随距离变化的分布情况。
3.1、对基区和集电区接触面施加功耗,设定衬底底面初始环境温度为27℃;
3.2、使用自由剖分四面体选项对整个几何体划分网格;
3.3、设置有源器件的功耗以及所处的环境温度求解范围,点击求解按钮,进行稳态热分析,得到温度在整个芯片各部分的分布,并把芯片上表面沿器件基区x轴方向的温度分布用csv格式文件输出。
4、在MATLAB软件中进行函数拟合。
4.1、打开MATLAB软件,将步骤3得到的csv文件导入,把芯片表面沿器件基区x轴方向的温度分布T(x,p,s,Ta)进行函数拟合,拟合结果如下:
这里T(x,p,s,Ta)为分段函数,其中,f(p,s,Ta)为自热温升函数,代表器件中心的温度,可用于计算器件自热产生的温升;g(p,s,x,Ta)为耦合温升函数,代表距离器件中心较远的区域的温度,可用于计算器件之间相互热耦合产生的温升。这里p是器件工作功耗,s是器件基区面积,x是某点距离器件基区中心的距离,Ta是器件模型所处的环境温度。
4.2、根据得到的自热温升函数f(p,s,Ta),推导出环境温度与器件发热区域中心点温度的关系表达式Ta(p,s,T)。
5、在ADS中仿真获取各个器件功耗。用电路仿真软件ADS打开InP分频器对应的电路原理图,仿真后得到各个仿真器件的功耗信息。
6、在版图设计软件Cadence中用gdsII格式输出需要分析的电路原理图版图文件。
7、用MATLAB软件编程提取HBT器件坐标中心点横坐标cenx(i)、纵坐标ceny(i)、发热面积s(i)和功耗p(i)后,基于迭代算法,开始计算各个器件温度。
7.1令编号为i的器件的初始环境温度Ta(i)=27,1≤i≤n,其中n为版图中器件数量。
7.2把功耗p(i)、面积s(i)和初始环境温度Ta(i)代入步骤4所得的自热温升函数f(p,s,Ta),1≤i≤n,计算得到编号为i的器件由于自热效应带来的温升值。
7.3计算其它所有器件对编号为i的器件因热耦合的温升值,把器件i的中心点坐标cenx(i),ceny(i)和其它器件k的中心点坐标cenx(k),ceny(k)代入坐标距离公式i≠k;将p(k),s(k),x(k)和Ta(i)代入步骤4所得的耦合温升函数g(pk,sk,xk,Tak)进行求和计算,得到其它所有器件对编号为i的器件的耦合温升值
7.4将初始温度、自热温升、耦合温升这三个值叠加,得到编号为i的器件工作温度值:
7.5、将计算得到的各个有源器件的工作温度T(i)带入步骤6获得的函数表达式Tai(pi,si,Ti)中,重新计算各个有源器件所处的环境温度,从而得到器件下一步迭代计算的环境温度Ta_later(i)。
7.6判断得到的环境温度Ta_later(i)是否满足收敛条件,若不满足,则将Ta_later(i)赋值给Ta(i),从步骤7.1重新开始进行迭代计算,直到步骤7.5中计算得到的Ta_later(i)满足收敛条件;最终得到各个有源器件基区中心点的温度T(i),等效为有源器件的工作最高温度。
7.7、对版图中的器件进行编号,由于器件版图上下对称,因此仅对上半部分器件进行编号:No.1~14。将本方法得到的的各个器件的工作温度与Comsol实体电路模型仿真温度、非迭代算法得到的温度进行比较,如表2所示。
表2
从表中可以看出,经过迭代算法所计算出的温度与软件仿真出的温度几乎一致,精度明显提高,与非迭代算法相比,能够有效地减小误差,平均误差减小19.35%,具有实用意义。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。