用于模拟电路尺寸调整的方法及装置与流程

文档序号:29948977发布日期:2022-05-07 17:22阅读:116来源:国知局
用于模拟电路尺寸调整的方法及装置与流程

1.发明实施例通常涉及模拟电路设计,以及更具体地,涉及利用深度强化学习的模拟设计空间搜索。


背景技术:

2.摩尔定律(moore’s law)所描述的计算能力的年增量正在开创前所未有的可能性。这一显著的进步随之带来芯片设计复杂性的急剧增加。这种复杂性的一个例子是工艺、电压和温度(process,voltage,and temperature,pvt)条件的增长(growth)。尽管大部分的片上系统(system-on-a-chip,soc)区域被数字电路占据,但模拟电路对于芯片来说也至关重要。然而,由于需要人类专业知识的干预及自动化工具的稀缺,模拟对应物(counterpart)的设计工作更加繁重。
3.晶体管尺寸调整(transistor sizing)是模拟设计中的一项费时费力工作。目前,晶体管尺寸调整主要是通过反复试验(trial and error)完成的。设计者首先应用他们对模拟电路和晶体管特性的知识来选择合理范围的候选解决方案。之后,设计者用网格搜索的方式探索设计空间,并接收来自spice(simulation program with integrated circuit emphasis,集成电路重点仿真程序)电路仿真的反馈。设计者的动作和spice电路仿真的过程被重复,直到满足规范。由于非常大的设计空间,用于自动确定晶体管尺寸的已知技术经常遇到收敛问题或可扩展性问题。
4.已知的电路尺寸调整解决方案,例如贝叶斯优化(bayesian optimization,bo)、无模型代理(model-free agents)、利用编码器-解码器技术的序列到序列建模(sequence-to-sequence modeling)、图卷积神经网络(graph convolutional neural networks)等,都存在各种类型的缺陷,例如可扩展性、通用可行性、效率和可重用性。
5.此外,为了保证芯片能够在制造工艺、电源和环境的变化下工作,在流片之前必须签署许多pvt条件。用于探索pvt条件的常规策略是在每次获得一组新的电路尺寸调整分配时测试所有的pvt条件。这种策略浪费了计算资源和电子设计自动化(electronic design automation,eda)工具许可。
6.因此,需要改进模拟尺寸调整自动化以解决现有问题。


技术实现要素:

7.有鉴于此,本发明的目的之一在于提供一种用于模拟电路尺寸调整的方法及装置,通过对设计空间的一部分进行迭代搜索,具有更高效的搜索能力。
8.第一方面,本发明提供了一种用于模拟电路尺寸调整的方法,包括:接收指示模拟电路的规范及多个设计参数的输入;以及,迭代搜索设计空间,直到找到满足该规范和该设计参数的电路尺寸,其中,该迭代搜索进一步包括:神经网络代理针对在信任区域中随机生成的多个样本中的每一个计算测量估计值,以识别出最优价值指标对应的候选尺寸,其中,该信任区域是该设计空间的一部分;以及,至少部分基于电路仿真器对该候选尺寸的仿真
测量值计算对该神经网络代理的权重和该信任区域的更新,以用于下一次迭代。
9.在一些实施例中,该方法还包括:基于该电路仿真器对该设计空间中的初始样本生成的仿真测量值,选择初始候选尺寸对应于;初始化该信任区域以该初始候选尺寸为中心;以及,初始化该神经网络代理,其是至少使用该初始候选尺寸和相应的仿真测量值进行训练的。
10.在一些实施例中,在当前迭代中搜索的该信任区域是以在前一次迭代中识别出的候选尺寸为中心的。
11.在一些实施例中,该设计参数包括多个工艺、电压、温度pvt条件,以及,该方法还包括:在该多个pvt条件中的第一pvt条件下识别满足该规范的电路尺寸;该电路仿真器在该多个pvt条件除该第一pvt条件外的其它pvt条件下测试该满足该规范的电路尺寸;以及,逐步探索未通过该测试的pvt条件,直到找到满足该规范和所有pvt条件的最终的电路尺寸。
12.在一些实施例中,该逐步探索还包括:将未通过该测试的pvt条件中的第二pvt条件添加到条件池中,其中,该条件池最初包括该第一pvt条件;将用于该第二pvt条件的第二神经网络代理添加到代理池中,其中,该代理池最初包括用于该第一pvt条件的第一神经网络代理;该代理池中的神经网络代理迭代搜索相同的信任区域,以在该条件池中的各pvt条件下获得满足该规范的更新后的电路尺寸;以及,增大该代理池和该条件池以进行迭代搜索,直到发现该最终的电路尺寸满足该规范和所有pvt条件。
13.在一些实施例中,该电路尺寸是由一组约束和一组电路变量定义的约束满足问题的解决方案,其中,每个电路变量对应于一组预定的尺寸调整值。
14.在一些实施例中,计算该更新还包括:计算比率,以根据该信任区域中的仿真测量值估计该神经网络代理在该信任区域中的准确性;以及,根据该比率计算该信任区域的半径的变化。
15.在一些实施例中,该神经网络代理是多层神经网络,其通过强化学习进行学习。
16.在一些实施例中,该价值指标是价值函数的输出,该价值函数应用该神经网络代理以该候选尺寸作为输入而生成的该测量估计值。
17.在一些实施例中,该价值指标是价值函数的输出,该价值函数评估归一化测量值的总和。
18.在一些实施例中,该第一pvt条件为该多个pvt条件中最差的pvt条件,以及,该第二pvt条件为该未通过该测试的pvt条件中最差的pvt条件。
19.第二方面,本发明提供一种用于模拟电路尺寸调整的装置,包括:至少一个处理器和耦接到该至少一个处理器且用以存储指令的存储器,当这些指令被该至少一个处理器执行时,使该至少一个处理器执行如上述实施例中任意一者所述的用于模拟电路尺寸调整的方法。
20.本领域技术人员在阅读附图所示优选实施例的下述详细描述之后,可以毫无疑义地理解本发明的这些目的及其它目的。详细的描述将参考附图在下面的实施例中给出。
附图说明
21.通过阅读后续的详细描述以及参考附图所给的示例,可以更全面地理解本发明。
包括的附图用以提供对本公开实施例的进一步理解,以及,附图被并入并构成本公开实施例的一部分。附图示出了本公开实施例的实施方式,并且与说明书一起用于解释本公开实施例的原理。可以理解的是,附图不一定按比例绘制,因为可以示出一些部件与实际实施中的尺寸不成比例以清楚地说明本公开实施例的概念。
22.图1是根据本发明实施例示出的用于模拟电路尺寸调整的基于模型的rl框架(framework)。
23.图2是根据本发明实施例示出的电路尺寸调整过程的流程示意图。
24.图3是根据本发明实施例示出的用于探索可行的电路尺寸的算法的示意图。
25.图4是根据本发明实施例示出的基于模型的rl平台(platform)的示意图。
26.图5是根据本发明实施例示出的pvt探索过程的流程示意图。
27.图6是根据本发明实施例示出的pvt探索策略的示例。
28.图7是根据本发明实施例示出的一种用于模拟电路尺寸调整的方法的流程示意图。
29.图8是根据本发明实施例示出的一种系统的示意图。
30.在下面的详细描述中,为了说明的目的,阐述了许多具体细节,以便本领域技术人员能够更透彻地理解本发明实施例。然而,显而易见的是,可以在没有这些具体细节的情况下实施一个或多个实施例,不同的实施例可根据需求相结合,而并不应当仅限于附图所列举的实施例。
具体实施方式
31.以下描述为本发明实施的较佳实施例,其仅用来例举阐释本发明的技术特征,而并非用来限制本发明的范畴。在通篇说明书及权利要求书当中使用了某些词汇来指称特定的元件,所属领域技术人员应当理解,制造商可能会使用不同的名称来称呼同样的元件。因此,本说明书及权利要求书并不以名称的差异作为区别元件的方式,而是以元件在功能上的差异作为区别的基准。本发明中使用的术语“元件”、“系统”和“装置”可以是与计算机相关的实体,其中,该计算机可以是硬件、软件、或硬件和软件的结合。在以下描述和权利要求书当中所提及的术语“包含”和“包括”为开放式用语,故应解释成“包含,但不限定于
…”
的意思。此外,术语“耦接”意指间接或直接的电气连接。因此,若文中描述一个装置耦接于另一装置,则代表该装置可直接电气连接于该另一装置,或者透过其它装置或连接手段间接地电气连接至该另一装置。
32.其中,除非另有指示,各附图的不同附图中对应的数字和符号通常涉及相应的部分。所绘制的附图清楚地说明了实施例的相关部分且并不一定是按比例绘制。
33.文中所用术语“基本”或“大致”是指在可接受的范围内,本领域技术人员能够解决所要解决的技术问题,基本达到所要达到的技术效果。举例而言,“大致等于”是指在不影响结果正确性时,技术人员能够接受的与“完全等于”有一定误差的方式。
34.模拟电路尺寸调整/确定(analog circuit sizing),也称为晶体管尺寸调整/确定,是一种用于确定一组尺寸调整变量(sizing variables)的值的迭代过程,以满足给定的规范(specification),例如,尺寸调整变量包括:在给定拓扑中针对每个晶体管的长度(length)、宽度(width)和多重性(multiplicities)。在设计选择中通常存在权衡。例如,更
大的晶体管尺寸通常会带来更好的性能,但会消耗更多的功率和面积。
35.本发明针对模拟电路尺寸调整公开了一种基于模型(model-based)的强化学习(reinforcement learning,rl)框架(framework)。该框架在设计约束下自动调整模拟电路尺寸,并结合了pvt探索(exploration)策略。该框架包括rl(强化学习)代理(agents),其能够根据学到的经验快速地适应环境,并且能够随着时间的推移逐渐接近最优。
36.该框架的一方面以高效率探索pvt条件。在系统层面(level),该框架在模拟前端尺寸调整过程中提高了研发效率。实验结果表明,框架中的rl(强化学习)代理能够高效地搜索具有卓越性能的最新设计(state-of-the-art designs)的设计空间(design space)。在算法层面,该框架能够直接模仿(mimic)电路仿真器(例如,spice仿真器)的动态特性(dynamics)。在验证层面,该框架探索输入的pvt条件(例如,逐步探索未通过测试的pvt条件,并在下一次迭代中选择未通过测试的pvt条件中最差的pvt条件加入迭代过程)并针对所有输入的pvt条件验证所选的电路尺寸是否满足该规范。
37.图1示出了根据本发明实施例的用于模拟电路尺寸调整的基于模型的rl框架100(“框架100”,亦可称为平台(platform))。框架100包括一个或多个rl(强化学习)代理110,其与诸如spice仿真环境(也称为spice仿真器)之类的电路仿真器(circuit simulator)120进行交互。每个rl代理110可以是神经网络,其在迭代过程中通过深度强化学习(deep reinforcement learning)进行学习。每个rl(强化学习)代理110可以是基于模型的代理(model-based agent),其最初是在局部区域(local area)中通过监督式学习(supervised learning)进行训练的,其中,该局部区域是设计空间(design space)的一部分。该局部区域是在初始化时由电路仿真器120识别出来的,以潜在地包含满足该规范的电路尺寸,且该局部区域在迭代期间被动态地更新。局部区域也称为信任区域(trust region)。
38.在一实施例中,设计者对框架100的输入可以包括拓扑(topology)、规范(specification)、晶体管尺寸范围(transistor size ranges)和pvt条件(pvt conditions)。拓扑、晶体管尺寸范围和pvt条件被统称为一组设计参数。这里使用的术语“设计者(designers)”是指设计工程师。框架100可以初始化多个rl代理,其中,每个rl代理用于不同的pvt条件。例如,假设输入的pvt条件是9个,则相应地可以有9个rl代理,每个rl代理与相应的pvt条件对应。为简化描述,稍后参考图4至图6描述该多个rl代理的场景。参考图1至图3的以下描述重点关注在一个pvt条件下的一个rl(强化学习)代理的场景。
39.设计空间是所有尺寸调整值(all sizing values)的空间(space),该尺寸调整值可以被选择为确定模拟电路的尺寸。因此,电路尺寸调整问题是给定设计空间中的搜索问题。设计空间中的每个样本(sample)都是具有相应尺寸调整值的尺寸调整变量的向量(a vector ofsizing variables)。对于设计空间中的每个样本,rl代理110计算测量估计值(measurement estimate),其估计电路仿真器120的仿真测量值(simulation measurement)。rl代理110能够比电路仿真器120产生仿真测量值更快地产生测量估计值。
40.搜索问题被迭代地解决。在每次迭代中,框架100将价值函数(value function)应用于rl代理110产生的每个测量估计值,以获得对应的价值指标(value metric)。对应于具有最高(highest)价值指标(或称为最优价值指标)的测量估计值的样本被选择作为候选尺寸(candidate size)。该候选尺寸是一组(a set of)赋值/分配(assignments);即,将尺寸调整值分配给相应的尺寸调整变量。电路仿真器120接收该候选尺寸并产生仿真测量值,以
验证该候选尺寸是否满足该规范。pvt条件管理器(pvt condition manager)160记录/掌控(keep track)已被电路仿真器120验证为满足该规范的pvt条件,并且使框架100针对不满足该规范的pvt条件初始化更多的rl代理。
41.在一实施例中,框架100还包括梯度模块(gradient module)130,其计算对rl代理110的权重(weight)的更新。梯度模块130利用基于损失函数(loss function)的梯度方法(gradientmethod)迭代地执行更新,其中,该损失函数用于测量电路仿真器120的仿真测量值和rl(强化学习)代理110的测量估计值之间的差异(difference,例如,均方误差(mean square error,mse))。框架100还包括信任区域更新模块(trust region update module)140,其迭代地更新信任区域,以供rl代理110进行搜索(search)。信任区域是设计空间的一部分。在一实施例中,信任区域是以候选尺寸为中心的圆形区域,其半径可以在每次迭代中动态扩大(expand)或缩小(shrink)。在每次迭代中,rl代理110接收信任区域中的随机样本作为输入,并生成测量估计值作为输出。该随机样本可以是随机样本产生器(random sample generator)150使用蒙特卡罗方法(monte carlo method)生成的,但本发明并不限于此。由于在每次迭代中对候选尺寸的搜索仅限于信任区域而不是整个的(entire)设计空间,因此该搜索能够被高速且高效地执行。
42.因此,rl代理110在随机样本中识别出(identify)候选尺寸(该候选尺寸用于或被提供给电路仿真器120,即rl代理110为电路仿真器120挑选候选尺寸),以及,电路仿真器120反馈(feedback)仿真测量值,以更新rl代理110和信任区域,其中,用于下一次迭代的随机样本是在信任区域中产生的。当找到满足规范的候选尺寸时,框架100输出电路尺寸。当找到满足规范和所有输入的pvt条件的候选尺寸时,该电路尺寸被称为“最终的电路尺寸(final circuit size)”。
43.rl(强化学习)代理110和电路仿真器120之间的交互(“代理-仿真器回路(agent-simulator loop)”)取代了传统的设计者-仿真器回路(designer-simulator loop),其中,设计者与电路仿真器交互以通过反复试验来微调电路尺寸。该代理-仿真器回路比设计者-仿真器回路更高效、更快速。rl代理110能够有效地识别和拒绝不合格的样本,从而使得电路仿真器120能够专注于潜在/可能满足规范的候选尺寸。
44.图2是根据本发明实施例说明的电路尺寸调整过程(circuit sizing process)200的流程示意图。于步骤210处,过程200开始。在步骤210中,电路仿真器(例如,图1的电路仿真器120针对(on)设计空间中的初始样本(initial samples)产生仿真测量值(simulationmeasurements)。例如,该初始样本可以是在没有经过任何缩减的设计空间中随机选取的预设数量的样本。基于仿真测量值,在步骤220处,框架100(例如,仿真测量值)在初始样本中识别初始候选尺寸(例如,取样之后,透过对每个样本的仿真获得仿真测量值,然后透过这些仿真测量值来判断哪一个样本的价值最高,并使用最高价值对应的样本点附近当作局部区域),并初始化信任区域和rl代理。该信任区域可以是以初始候选尺寸为中心并具有初始半径的圆形区域。rl(强化学习)代理最初可以是利用初始候选尺寸和相应的仿真测量值进行训练的。在步骤230处,在信任区域中产生随机样本。在步骤240处,rl代理从随机样本中识别候选尺寸。更具体地说,对于每个随机样本,rl代理产生测量估计值。与最佳测量估计值(其与价值指标相关,可以理解地,该最佳测量估计值可以是对应于最高价值指标的测量估计值)相对应的样本作为候选尺寸被发送至电路仿真器。在步骤250处,
电路仿真器针对候选尺寸运行电路仿真,以获得仿真测量值。确定该仿真测量值是否满足规范(步骤260),如果仿真测量值满足规范,则候选尺寸被选择(步骤270)。对其他的pvt条件执行对此选择的候选尺寸的进一步验证。如果仿真测量值不满足规范,则更新信任区域和rl(强化学习)代理的权重(步骤280)。更新后的信任区域可以以在步骤240识别出的候选尺寸为中心。然后,过程200返回到步骤230,从而利用更新后的信任区域和更新后的rl代理开始新的迭代。步骤230至步骤280的环路(loop)是在信任区域中训练rl代理的迭代训练过程。在每次迭代中,rl代理是利用候选尺寸和相应的仿真测量值进行训练的。实验结果表明,训练效率高,且收敛速度快。
45.以下描述提供了模拟电路尺寸调整的数学公式。通常,模拟电路尺寸调整可以表述为受约束的多目标优化问题,其被定义在(1)中。
[0046][0047]
其中,x是要优化的变量的向量;ds为设计空间;f
m,c
(x)是在第c个pvt条件下的第m个目标函数(例如,功率、性能和面积);c
d,c
(x)是在第c个pvt条件下的第d个约束。
[0048]
随着pvt条件在技术快速发展的过程中呈指数级增长,为(1)找到全局最优解通常是不可行的。相比之下,满足设计者指定的约束更实用。因此,(1)中描述的优化问题可以简化为约束满足问题(constraint satisfactionproblem,csp)。更一般地,csp被定义为(2)中的三元组《x,d,c》。
[0049][0050]
其中,x是要搜索的尺寸调整变量的有限集。每个尺寸调整变量都具有非空搜索范围(non-empty domain)di,即设计空间,以及,{b1,b2,

,b
l
}是可能的值。c是一组约束。约束是由约束范围(constraint scope)tj和范围内变量的关系(relation)rj组成的对,其限制赋值的可行排列。电路仿真器(例如,spice仿真器)执行的仿真被表示为s
pice
函数。
[0051]
解决(2)中的csp的一种有效方法是局部搜索(local search)。由基于模型的rl框架100(图1)执行的局部搜索具有以下三重优势。1)更快的环境适配(adaptation)能力:将搜索范围(domain)从整个设计空间减少到局部区域(即信任区域),从而构建该空间(space)的迭代次数减少。此外,电路空间是局部连续的,即已知最优值周围的相邻点表现出相似的最优性。2)基于模型的代理具有监督式学习能力:监督式学习在局部环境(local landscape)中有效地工作。由于在基于模型的代理的训练中不涉及奖励(reward),因此该学习对奖励工程不敏感。3)更容易实现和收敛:与无模型代理相比时,监督式学习的训练程序相对更容易。
[0052]
基于模型的rl框架100提供了紧凑设计空间d
l
的直接建模。该模型模仿(imitate)spice仿真器的行为,其以晶体管尺寸x来估计仿真测量值s
pice
(x)的估计值。在一实施例中,该模型(例如,图1中的rl代理110)可以采用具有三层的前馈神经网络f
n,n
(x;θ)的形式。
该模型可以用作spice函数逼近器,如(3)所示。
[0053][0054]
其中,是预测的测量值的向量(例如,增益、相位裕度等),其相对于用权重θ估计的尺寸x的向量。
[0055]
损失函数j(θ)可以通过均方误差(mse)获得,如(4)所示。
[0056][0057]
基于模型的rl(强化学习)代理(例如,图1中的rl(强化学习)代理110)旨在学习预测模型f
(n,n)
,以模仿(mimic)环境的动态s
pice
。利用基于(4)中的损失函数的梯度方法迭代更新预测模型f
(n,n)
。基于模型的rl(强化学习)代理探索可行的解决方案而不是全局(global)解决方案,以防止过度设计该电路。rl(强化学习)代理也称为神经网络代理。
[0058]
价值函数用于评估仿真测量值和测量估计值的指标(merit)。价值函数的输出被称为价值指标。价值函数不参与训练rl(强化学习)代理,因此不会影响神经网络模型的收敛。价值函数(v
alue
)的一个非限制性示例是归一化测量值(normalized measurements)的总和。例如,在一些实施例中,可能有很多个价值指标,诸如模拟电路的效能、功耗等等,本发明实施例可以将这些价值指标做归一化后加总当作一个综合指标,即作为最终的价值指针,具体地,本发明不做限制。能够使用容易获得的信息来评估这样的价值函数。然而,就约束之间的权衡而言,可以实施替代的价值函数来编码(例如,考虑/加权(weigh))每个测量值的重要性。
[0059]
图3是根据本发明实施例的用于探索可行电路尺寸的算法(以伪代码形式)的示意图。在初始化时,该算法在设计空间中开始随机探索。spice仿真器在设计空间中仿真n个样本,并根据仿真测量值的价值指标确定最佳样本(例如,最高价值指标对应的样本)。选择最佳样本周围的区域作为局部区域d
tr
。通过探索该局部区域构建模型(即神经网络代理)。蒙特卡罗取样(monte carlo sampling)被用来随机取样该局部区域,其具有神经网络代理的快速推理时间的优点。神经网络代理基于的价值指标来识别局部区域中的候选尺寸。spice仿真器对候选尺寸运行仿真,以产生仿真测量值。然后通过信任区域方法(trust region method,trm)更新该局部区域,以进行下一次迭代。神经网络代理的权重也被更新。
[0060]
神经网络代理的性能的一个关键因素是搜索空间的大小从全局范围(global landscape)到局部区域的过渡。因此,局部属性的定义在算法的效率中起作用。局部区域(也称为信任区域)在整个搜索过程中被动态更新。
[0061]
信任区域方法定义了依赖于迭代的信任区域半径δrj,其中,模型被认为是目标函数的适当表示。在每次迭代i时,信任区域算法首先求解信任区域子问题(5)以获得d
*(i)
。在一实施例中,这是通过蒙特卡罗取样来实现的。
[0062][0063]
其中,d
*(i)
是从当前中心点开始的最优试验步骤的向量,‖
·
‖是一个范数(norm),是信任区域。
[0064]
信任区域方法计算估计减少量(estimated reduction)和实际减少量(actual reduction)的比率ρi。该估计减少量是在信任区域的当前中心点处的估计函数值与在试验点(即远离该当前中心点的试验步长)处的估计函数值之间的差异(difference)。估计函数值(estimated functionvalue)是测量估计值的价值指标类似地,实际函数值是仿真测量值的价值指标实际减少值被定义为在信任区域的当前中心点处的实际函数值与在试验点处的实际函数值之间的差异。基于比率ρi接受或拒绝该试验点。如果神经网络非常接近目标函数则半径会扩大。极其接近由接近1的比率指示(例如,在预定阈值内)。否则,半径会缩小。根据该比率计算该半径的更新。
[0065]
从概念上讲,信任区域是以中心和半径为特征的圆形区域。该中心是在初始化或在每次迭代期间确定的最佳样本。信任区域的半径是根据模型在具有当前半径的信任区域中的准确度(accuracy)动态改变的。上述比率是该准确度的测量或估计。半径被选择,使得其对于神经网络的建模而言不会太大,也不会小到需要搜索更多局部区域。信任区域方法平衡了这种权衡。如果神经网络能够对信任区域进行充分建模(即,非常接近目标函数),则该半径可扩展以允许在更大的空间中进行搜索。如果神经网络无法对当前信任区域进行充分建模,则减小或不更改半径以允许更轻松地建模。
[0066]
在图3的算法中,电路尺寸的搜索是根据一个pvt条件执行的。该搜索能够被扩展到多个pvt条件,如下面参考图4-图6所描述的。
[0067]
图4是根据本发明实施例的基于模型的rl平台400(“平台400”)的示意图。平台400是图1中的框架100的示例,其具有更多细节。平台400包括rl代理410、spice环境(spice environment)420、梯度更新(gradient update)430、信任区域方法(trust region method)440、蒙特卡洛斯取样(monte carlos sampling)450和pvt探索(pvt exploration)460,它们分别是rl代理110、电路仿真器120、梯度模块130、信任区域更新模块140、随机样本产生器150和pvt条件管理器160的示例。
[0068]
pvt探索460用于维护和更新条件池p,其中,条件池p作为pvt探索策略的一部分。最初,条件池只包含一个pvt条件,例如,设计者的输入中指定的所有pvt条件中最差的(worst)pvt条件(即,根据先验知识或经验,针对模拟电路最难满足规范的条件)。该条件池可以逐渐地扩展至包括额外的pvt条件。每个pvt条件都有自己的独立模型(independent model)。即,条件池中的每个pvt条件具有相应的rl代理410(其位于代理池中),以及,代理池中的每个rl代理410被训练为对条件池中的不同pvt条件建模。多个rl代理410可以同时对同一信任区域中的同一组随机样本执行测量估计。在每次迭代中,梯度更新430基于特定于代理的损失函数(例如,mse函数)更新每个rl代理410的权重,以及,信任区域方法440确定用于全部rl代理410的公共(common)信任区域。
[0069]
在每次迭代中,蒙特卡洛斯取样450为所有的/全部的(all)rl代理410在信任区域中产生一组随机样本。每个rl代理410针对每个随机样本计算测量估计值。平台400包括价值函数模块470,其用于评估来自每个rl代理410的每个测量估计值的价值指标。对应于具有最大价值指标的测量估计值的样本被选择为候选尺寸。对于多个代理的情况,代理池中的每个rl(强化学习)代理410首先计算其最佳(best)候选尺寸。然后,在全部的最佳候选尺寸中选择最差(worst)候选尺寸作为候选尺寸并将其发送到spice环境420。“最佳”和“最
差”候选尺寸被分别选择,以最大化和最小化该相应测量估计值的价值指标。spice环境420对该候选尺寸运行电路仿真以及仿真测量值用于更新rl代理410和信任区域。rl(强化学习)代理410和spice环境420之间的迭代过程继续进行,直到找到满足设计者的输入中指定的所有pvt条件下的规范的最终的电路尺寸。
[0070]
图5是根据本发明实施例的pvt探索过程500的流程示意图。pvt探索过程500是一种渐进式策略。pvt探索过程500首先将搜索集中在单个pvt条件上;例如,最难的(most difficult)pvt条件。通过克服该最难的pvt条件,将更容易在其他pvt条件下找到电路尺寸。电路尺寸是一组分配;即,将尺寸调整值分配给相应的尺寸调整变量。一旦发现电路尺寸满足规范,就会执行验证以确认电路尺寸在所有其他pvt条件下也满足规范。
[0071]
参考图5,在步骤510处,pvt探索过程500开始针对第i个pvt条件(作为一种优选实施例,本发明以最差pvt条件进行示例说明)初始化第i个rl代理(其尚不满足规范),其中,i是初始化为1的运行索引。在步骤520处,将第i个rl代理添加到代理池中并且将第i个最差pvt条件添加到条件池中。在步骤530处,在条件池中的(一个或多个)pvt条件下,代理池中的(一个或多个)rl代理在信任区域中执行搜索以识别候选尺寸。在步骤540处,电路仿真器对候选尺寸运行电路仿真。在步骤550处,如果针对条件池中的所有的(一个或多个)pvt条件没有发现满足规范的电路尺寸,则更新每个rl代理的权重和信任区域(步骤560),以及,过程500返回到步骤530,此时代理池中的所有rl代理在更新后的信任区域中开始另一次搜索。应当注意的是,虚线框590中的步骤530至步骤560表示由多个rl代理在多个pvt条件下执行的电路尺寸调整过程200(图2)的操作。
[0072]
如果针对条件池中的所有pvt条件发现满足规范的电路尺寸,则电路仿真器在所有其他的pvt条件下测试该电路尺寸(步骤570),即,不位于条件池中的所有pvt条件。在步骤580处,如果该测试表明所有pvt条件满足规范,则该电路尺寸作为最终的电路尺寸进行输出。在步骤580处,如果该测试表明并非所有的pvt条件都满足规范,则过程500返回到步骤510(其中,索引i递增1),以初始化下一个rl代理,其用于下一个未能满足规范的最差pvt条件。过程500继续,直到找到最终的电路尺寸。
[0073]
图6是根据本发明实施例示出的pvt探索策略的示例。初始化并训练第一rl(强化学习)代理,以在最差的pvt条件(例如,pvt3,这是九个pvt条件中最难满足的pvt条件)下搜索候选尺寸。在第一rl(强化学习)代理在pvt3下识别出符合规范的候选尺寸后,电路仿真器会针对所有其他的pvt条件测试该候选尺寸。假设候选尺寸在pvt5、pvt6、pvt7和pvt9下不满足规范,其中,pvt6是pvt5、pvt6、pvt7和pvt9中最难满足的/最差的pvt条件,或称为第二差的pvt条件。初始化并训练第二rl(强化学习)代理,以在pvt6下搜索候选尺寸,与此同时,第一rl(强化学习)代理在pvt3下执行第二轮搜索。在第一rl(强化学习)代理和第二rl(强化学习)代理共同(jointly)识别出第二候选尺寸(其在pvt3和pvt6这两者下均满足规范)后,电路仿真器针对所有其他的pvt条件测试该第二候选尺寸。
[0074]
假设第二候选尺寸仅在pvt9下不满足规范。初始化并训练第三rl(强化学习)代理,以在pvt9下搜索候选尺寸,同时,第一rl(强化学习)代理在pvt3下进行搜索以及第二rl(强化学习)代理在pvt6下进行搜索。在所有三个rl(强化学习)代理共同识别出在pvt3、pvt6和pvt9下满足规范的第三候选尺寸后,电路仿真器针对所有其他pvt条件测试该第三个候选尺寸。假设第三候选尺寸在所有其他pvt条件下都满足规范,则输出第三候选尺寸作
为模拟电路尺寸调整问题的最终的电路尺寸解决方案。本发明实施例中,在识别候选尺寸的过程,通过逐步探索未通过测试/不满足规范的pvt条件,并将不满足规范的pvt条件中最差的pvt条件及相应的rl代理添加至测试/迭代过程,可以减少迭代次数并高效地执行迭代过程,从而能够快速地找到最优解。
[0075]
图7是根据本发明实施例示出的用于模拟电路尺寸调整的方法700的流程示意图。方法700可以由图8中的系统800执行。方法700开始于步骤710,系统接收指示模拟电路的规范和一组设计参数的输入。在步骤720处,系统迭代地搜索设计空间,直到找到满足该规范和该设计参数的电路尺寸。迭代搜索包括以下的步骤730和740。在步骤730,神经网络代理对在信任区域中随机生成的每个样本计算测量估计值,以识别优化的价值指标(或称为最优/最高价值指标,即多个样本对应的多个价值指标中的最高者)所对应的候选尺寸。该信任区域是设计空间的一部分。在步骤740,系统至少部分基于电路仿真器对候选尺寸的仿真测量值来计算对神经网络代理的权重和信任区域的更新,以用于下一次迭代。
[0076]
在一实施例中,在步骤730的价值指标是价值函数的输出,其中,该价值函数应用神经网络代理以候选尺寸作为输入而生成的测量估计值。
[0077]
在一实施例中,在神经网络代理的初始化时,系统选择初始候选尺寸,其用于优化电路仿真器对设计空间中的初始样本生成的仿真测量值。系统初始化以该初始候选尺寸为中心的信任区域。该系统还初始化神经网络代理,该代理是至少使用该初始候选尺寸和相应的仿真测量值进行训练的。在一实施例中,在当前迭代中搜索的信任区域以在先前迭代中识别的候选尺寸为中心。
[0078]
基于模型的rl框架100和400可以在一个或多个处理器上实现,这些处理器执行指令以执行框架100和400的方法。
[0079]
图8是根据本发明实施例示出的系统800的示意图。系统800包括用于执行结合图1至图7描述的操作的硬件电路。系统800包括处理硬件810。在一实施例中,处理硬件810可包括一个或多个处理器813,例如中央处理单元(centralprocessing unit,cpu)、图形处理单元(graphics processing unit,gpu)、数字处理单元(digital processing unit,dsp)、人工智能(artificial intelligence,ai)处理器,以及其他通用和/或专用处理电路。返回参考图1和图4,一个或多个处理器813可以执行存储在存储器820中的指令,以执行基于模型的rl框架100和/或基于模型的rl框架400的操作。处理硬件810也可以包括不可编程的固定功能硬件。
[0080]
存储器820耦接到处理硬件810。存储器820可以包括动态随机存取存储器(dynamic random access memory,dram)、静态随机存取存储器(static random access memory,sram)、闪存和其他非暂时性机器可读存储介质;例如,易失性或非易失性存储装置。存储器820还可以包括存储装置,例如任意类型的固态或磁存储装置。在一实施例中,存储器820可以存储指令,当其由处理硬件810执行时,这些指令使处理硬件810执行上述模拟电路尺寸调整操作,例如图5中的方法500和图7中的方法700。
[0081]
系统800还可包括用户接口(user interface)840,以从设计者处获取信息。设计者可以经由用户接口840提供输入,以指示以下一项或多项:例如,要调整(tune)的晶体管尺寸、尺寸调整变量的范围、电路拓扑、要从spice仿真器观察的测量值以及用于每个pvt条件的规范。存储器820可以存储自动脚本,该脚本在由处理硬件810执行时构建神经网络代
理和神经网络的超参数(hyper-parameters)。
[0082]
在一些实施例中,系统800还可以包括网络接口850,以连接到有线和/或无线网络进而用于发送和/或接收语音、数字数据和/或媒体信号。应当理解,图8的实施例是为了说明的目的而被简化的。额外的硬件组件可以被包括,本发明并不限于该示例。
[0083]
图2、图5和图7的流程示意图的操作已经参考图1、图4和图8的示例性实施例进行了描述。然而,应当理解,图2、图5和图7的流程示意图的操作可以由除图1、图4和图8的实施例之外的实施例执行,以及,图1、图4和图8的实施例可以执行与参照流程讨论的操作不同的操作。虽然图2、图5和图7的流程示意图标出了由本发明的某些实施例执行的特定操作顺序,但应当理解,这种顺序是示例性的(例如,替代实施例可以以不同的顺序执行操作,结合某些操作,重迭某些操作等)。
[0084]
这里已经描述了各种功能组件或块。如本领域技术人员将理解的,功能块将优选地通过电路(专用电路或通用电路,其在一个或多个处理器和编码指令的控制下操作)来实现,其通常将包括晶体管,它们被配置为根据这里描述的功能和操作来控制电路的操作。
[0085]
在权利要求书中使用诸如“第一”,“第二”,“第三”等序数术语来修改申请专利要素,其本身并不表示一个申请专利要素相对于另一个申请专利要素的任何优先权、优先级或顺序,或执行方法动作的时间顺序,但仅用作标记,以使用序数词来区分具有相同名称的一个申请专利要素与具有相同名称的另一个元素要素。
[0086]
虽然已经对本发明实施例及其优点进行了详细说明,但应当理解的是,在不脱离本发明的精神以及权利要求书所定义的范围内,可以对本发明进行各种改变、替换和变更,例如,可以通过结合不同实施例的若干部分来得出新的实施例。所描述的实施例在所有方面仅用于说明的目的而并非用于限制本发明。本发明的保护范围当视所附的权利要求书所界定者为准。所属技术领域中具有通常知识者皆在不脱离本发明之精神以及范围内做些许更动与润饰。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1