一种基于机器学习训练模型的器件缓冲方法与流程

文档序号:17603339发布日期:2019-05-07 20:31阅读:305来源:国知局
一种基于机器学习训练模型的器件缓冲方法与流程

本发明涉及集成电路自动化产品设计领域,具体地涉及一种集成电路设计中器件的缓冲方法。



背景技术:

在电子电路设计中,电子设计自动化是必不可少的一环,设计者通过电子设计自动化软件,辅助完成电路设计,调整以及验证。其中,电路仿真软件运用于仿真环节,致力于通过运用强大的数值分析工具以及对器件精准建模,在不需要使用昂贵的制造工艺进行流片生产的情况下,对设计进行器件级别的模拟仿真,帮助设计者验证其设计的功能和性能。但是,随着半导体技术的发展和器件尺寸的缩小,器件尺寸已经进入了纳米级别,带来了更高的电路集成度以及拥有更多纳米级别物理学效应的器件模型,因此仿真工具的计算量,特别是器件评估的计算量,也会随之成几何级数的增长,从而使得在用户可接受时间范围内完成用户所期望的精度级别的仿真越来越困难。仿真工具所面临的这部分困难进一步制约了设计者设计的电路规模和设计周期。为了在限定的精度范围内加速仿真,各种加速技术应运而生,包括并行计算,电容电阻缩减等等,而器件缓冲也是其中较为重要的一项技术。

由于电路中存在大量的非线性器件,例如二极管、三极管和场效应管等等,为求得一个工作点的电路的解,需要运用数值分析算法在工作点附近进行多次迭代以求得近似解,而其中每次迭代都需要对每个器件进行完整的器件评估用以判断是否收敛以及下次迭代的步长。因此每一个工作点的求解都会在器件评估上消耗大量的算力。但是当我们仔细考察每一个器件和每一次器件评估,我们就会发现,虽然大部分器件本身是非线性的,但是当步长足够小(即电压变化足够小),我们可以近似的认为器件在这个范围内是线性的,即,其中a、b均为常数。因此仿真器可以直接利用上一步的电路解做线性外插,求得当前点的器件近似精确的评估结果。这种不需要做具体的器件评估,而是通过上一步器件评估结果做线性外插求得当电压值下器件评估结果的方法即为器件缓冲。

仔细审视上述器件缓冲的定义,我们不难发现,器件缓存的所有实现均建立在一个重要的前提下:步长足够小(上一次电路解的电压值和当前电压值的差即为步长),我们才可以认为器件在此区域内是线性的。那我们如何判断一次步长是否足够小呢,我们可以设定一个电压阈值:当步长小于此阈值时,我们就认为步长是足够小的,器件模型也是近似线性的。这个人为设定的电压变化阈值即为节点容差。进一步的,当步长大于节点容差时,我们认为器件的非线性效应更加明显,无法通过线性外插的方法得到当前点的解,不能进行节点缓冲,需要进行具体的器件评估,反之,当步长小于节点容差时,则认为器件处于近似线性的区域,可以做器件缓冲。因此,确定一个合适的节点容差成为了器件缓冲中重要的一步:过大的节点容差会导致器件在非线性区做器件缓冲从而导致不必要的精度损失,带来仿真结果精度的不可控;而过小的节点容差则会导致进行器件缓冲的条件过于严苛,从而在绝大多数时候无法进行器件缓冲,大大降低了器件缓冲率,进而减缓了仿真加速。

目前,传统的应用程序确定节点容差的常规方法是根据经验和调试结果,对所有器件所有区域设置一个统一的较为保守的节点容差。这种方法虽然能够保证绝大多数的器件精度,但是由于器件参数各不相同,因此不同器件的非线性程度也不一致,从而导致许多线性度较高的器件在本可以做器件缓冲时候由于保守的节点容差而无法进行器件缓冲。改进过的算法则会对器件划分不同的区域并设置相应的节点容差,这种方法虽然能通过分区的方式,解决不同区域下器件非线性程度不同的问题,然而并没有解决不同器件之间非线性程度不一致的问题。并且,即使是改进后的算法,不同区域的节点容差也是事先预设,无法根据当前仿真环境实时改变。本发明所解决的问题即是在保证电路精度情况下,如何实时高效地对不同器件设置合理的节点容差,有效利用器件缓冲加速仿真进程的问题。



技术实现要素:

为了解决现有技术存在的不足,本发明的目的在于提供一种基于机器学习训练模型的器件缓冲方法,针对目前集成电路自动化产品中对于如何有效利用器件缓冲问题,通过利用机器学习训练模型来确定节点容差,指导器件缓冲,提高有效缓冲率。

为实现上述目的,本发明提供的集成电路设计中基于机器学习训练模型的器件缓冲方法,包括以下步骤:

1)根据每个器件物理尺寸和电学特性,对其进行区域的划分;

2)在仿真过程中,在当前区域对器件进行节点容差模型训练;

3)利用训练得到的节点容差模型,判断器件能否进行缓冲;

4)利用器件缓冲做数值外插得到器件评估的近似精确解,得到器件评估结果。

进一步地,所述步骤1)进一步包括:

根据器件评估结果得到的电压-电流特性曲线的拐点以及线性程度,对器件工作电压进行区域划分。

进一步地,所述步骤2)进一步包括,

在仿真开始前,对训练模型进行初始化;

在仿真过程中,当器件工作偏压进入到具体的某一区域,对该器件在当前区域下进行节点容差模型训练。

进一步地,所述步骤2)进一步包括,基于精度需求和器件工作电压偏置,通过机器学习的回归算法训练得出器件的节点容差。

进一步地,根据用户精度级别的设置、器件参数,利用当前区域不同偏压下的器件评估结果作为训练样本,对当前器件当前区域内的节点容差模型进行回归训练,确定模型系数,得到具体的器件容差模型,进而计算得到当前区域的节点容差值。

更进一步地,所述步骤4)进一步包括:

根据节点容差判定器件能够缓冲,则利用器件缓冲做数值外插得到器件评估的近似精确解,得到器件评估结果。

本发明提出的基于机器学习训练模型的器件缓冲的方法,在集成电路设计时,可以在电路模拟中提高器件缓冲的有效利用率,保证了仿真的精确与速度。进一步讲本发明通过特殊的器件缓冲方法,可以保证用户所需要的精度级别,同时又进一步提升了器件缓冲率,大大提高了电路仿真的速度,从而缩短电子电路的设计周期,适应了电路规模的急剧增长。

本发明提出的基于机器学习训练模型的器件缓冲的方法,还具有以下优点:

第一,有效的提高了器件缓冲率:传统的电路仿真中的器件缓冲一般都是对所有器件在各种工作偏置下根据测试结果和经验设定统一的节点容差。在这种方案下,为了保证所有器件和所有偏压下的精度,通常会设置一个较为保守的节点容差,因此大部分本应该进行缓冲的器件由于较为严苛的节点容差判断而没能够进行缓冲,影响了仿真速度。而本发明提出的方法,则有效的避免了该问题,针对不同器件不同区域设置不同的节点容差用以判断当前点是否能够进行器件缓冲,在确保精度的前提下设置了较优的节点容差值,从而充分利用了器件缓冲,提高仿真速度。

第二,较小的优化开销:如果一开始就对所有器件的所有区域进行节点容差的训练,势必将消耗大量的计算资源,特别在是对规模较小的电路仿真时,事先对所有器件所有区域进行模型训练的计算量甚至可能超过仿真本身的计算量。因此,利用本文提出的动态建立训练模型的方法,能够有效避免无谓的模型训练,降低训练成本,减少优化本身的开销。

本发明是在集成电路自动化产品中通过机器学习的方法完成模型训练,从而进一步用来辅助判断能否进行器件缓冲。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为根据本发明的基于机器学习训练模型的器件缓冲方法流程图;

图2为根据本发明的训练节点容差模型的示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1为根据本发明的基于机器学习训练模型的器件缓冲方法流程图,下面将参考图1,对本发明的基于机器学习训练模型的器件缓冲方法进行详细描述。

首先,在步骤101,开始进行对器件的仿真。

根据每个器件物理尺寸电学特性等特点,对每个器件进行区域的划分。针对特定器件的长、宽、接触电阻、参杂浓度等工艺参数和设计指标,计算划分器件区域,包括但不限于截止区,亚阈值区,线性区和饱和区等。

在步骤102,判断器件在当前区域是否已经有训练完成的模型。

如果当前区域已经建立模型,则跳过步骤103。

在步骤103,对当前器件在当前区域进行节点容差的模型训练。

在该步骤中,选取若干当前区域内的电压偏置,根据用户设置的精度条件进行器件评估,得到若干器件评估结果。将这部分评估结果作为训练样本,对建立的节点容差多项式模型进行训练,利用回归算法,确定模型中各项系数,得到具体的器件模型,进而求得当前区域的节点容差值。

在步骤104,利用训练得到的节点容差模型判断器件能否进行缓冲。

在该步骤中,如果根据节点容差判定器件能够缓冲,则利用器件缓冲做数值外插可以直接得到器件评估的近似精确解,并且跳过步骤105。

在步骤105,对器件进行具体的模型评估。

最后,在步骤106,结束器件仿真。

在仿真过程中,根据当前偏压和区域划分,只在仿真首次进入某一区域时对器件的该区域进行模型训练,而不需要在仿真开始前完成所有模型训练,是一种动态训练过程。

图2为训练节点容差模型的示意图。

基于精度需求和器件的工作电压偏置,根据每个器件的工艺参数,利用机器学习回归算法,训练得出器件的节点容差,以若干当前器件当前区域的器件评估结果作为训练样本,对当前器件当前区域的节点容差模型进行回归训练,得到相应的节点容差模型进而求出当前区域的节点容差值。

本发明的基于机器学习训练模型的器件缓冲方法,根据每个器件物理尺寸电学特性等特点,对每个器件进行区域的划分,具体是指由于器件设计以及工艺参数的不同,每个器的电压-电流特性曲线会所有区别,因此需要对每个器件做单独的区域划分。而对于单个器件所表现出的自身的电压-电流特性曲线而言,亦可划分为不同的区域。进一步包括:根据器件评估结果得到的电压-电流特性曲线的拐点以及线性程度,将器件工作电压划分为若干区域。

对于动态训练的过程,是为了节省训练开销,从而保证电路规模较小时不会因为巨额的预先训练开销而降低仿真速度。进一步包括:在仿真阶段开始前,所有训练模型均为初始化状态,只有当器件在仿真过程中工作偏压实际进入到具体的某一区域,才对该区域的模型进行训练。

对于基于精度需求和器件工作电压偏置,训练器件的节点容差模型,进一步包括:根据用户精度级别的设置、器件参数等仿真条件,利用当前区域不同偏压下的若干器件评估结果作为训练样本,对当前器件当前区域内的节点容差模型进行回归训练,确定模型中的各项系数,从而得到具体的器件容差模型,进而计算得到当前区域的节点容差值。

在每次器件评估开始前,根据训练所得的节点容差判断器件是否需要进行缓冲,从而决定跳过评估或者进行具体的器件评估,即当判定可以缓冲时,仿真器将直接利用器件缓冲快速得到器件评估结果。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1