EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
想象一下,如果电脑或机器人可以完成所有枯燥乏味的工作,我们就能享受生活、做更多有意义的事(如图1所示)。这些绝对是许多学术界、工业界研究人员的愿望。工程师的最终梦想是,按下一个“魔法按钮”,自动实现产品的设计、layout和优化,并满足性能参数和可制造性,这依然是科幻小说的情节,但现在各种实验设计(DOE)的运用使得技术已取得巨大的进步,特别是人工神经网络(ANN)。
. N) s7 x, {! \; K; S/ }
8 a: z) ?9 C' j9 S图1
) c7 ?/ k) K( E$ z1 v正如我们所知,人工智能和神经网络的概念已经存在了几十年。直到近期,在2015年左右,相对“廉价”的处理技术(如低成本多核处理器和云计算)以及大量数据(如大数据)的充足供应才真正促进了该技术的繁荣。
1 Q( O0 ]- g3 V3 h0 O7 M
8 B/ |9 y' k3 t9 Y, U, X2 t那么,你可能会问什么是人工神经网络?更重要的是,这将如何帮助我成为一名优秀的信号完整性(SI)工程师?
6 J) K3 |# B9 Z) t, z
要回答第一个问题,网上有许多教程,所以接下来我们将简单回顾人工神经网络的基本概念,并将这些概念与电气工程师熟悉的概念联系起来。要回答第二个问题,我们将探讨一个例子,看看Cadence® SigrityTMSystemSITM工具如何运用深度学习来预测和优化DDR4多点拓扑眼图。
: e' j/ I( s$ o- e6 n
( t4 _8 u, V2 R9 }. g 图2
. K# p5 `( k, {
人工神经网络是一个节点网络,包含一个基本构建模块,称为神经元(也称为感知器),如图2所示。这个基本构建模块需要一系列输入,Xi,其中X 表示输入信号(如果需要偏置或截点,可为常数),i 表示输入个数,范围为1到N ,每一个都由Wi 缩放或加权,形成输出Y,表达式如下:
从电气工程师的角度来看,输出Y近似于输入值的加权和,类似于在多输入求和的运算放大器电路,除了它是由函数f(x)转换而来的。这个函数f(x)有个特殊的名字,叫做激活函数,用来产生非线性输出并限制输出范围。当网络中有很多层时,这对防止输出饱和非常重要。常见的激活函数包括双曲正切函数和S形函数。 - y9 e7 m" {+ X, X/ l! L
如图2所示,人工神经网络由输入层、L -隐藏层和输出层组成,使用基本的神经元构建模块连接在一起。系统的输入和输出数量分别决定输入层和输出层的神经元数量。隐藏层的数量和每个隐藏层中使用的神经元数量等设计参数是根据系统需求来确定的,如精度、速度和复杂度等。术语深度学习是指人工神经网络中的大量隐藏层,然而,不清楚有多少隐藏层构成了深度学习,但通常隐藏层的数量大于1。
1 g( t: l1 D: k# e这些人工神经网络与自适应均衡器有很多紧密的联系。实际上,有监督训练的人工神经网络学习与自适应均衡器中抽头系数的训练非常相似,其中权重Wi 用已知的数据序列训练并且通过最小化误差或成本函数来优化。人工神经网络中的反向传播算法是一种梯度下降法,用于计算权值以最小化成本函数,就像用随机梯度下降算法优化自适应均衡器中的抽头系数一样。总的来说,熟悉自适应均衡器的工程师将能够在人工神经网络和自适应均衡器之间找到很多相似之处。
) I$ E- _/ z: I8 n% B现在我们谈到最重要的问题,这将如何帮助我成为一名优秀的信号完整性(SI)工程师? 2 E' B( h2 N; R3 C9 I+ H7 K
作为SI工程师,我们负责高速系统的信号和电源完整性。通常,这些系统涉及多个高速集成电路,其中一些具有复杂的多引脚封装,以及具有DIMM连接器和背板的多层PCB板,需要信号完整性仿真工具来提取和验证系统是否满足性能和可靠性要求。
# i v" d9 k' l) f通常,我们发现自己修改复杂PCB layout的多个参数(走线长度、宽度、阻抗、元件位置等)、仿真、检查结果、并重复该过程直到达到我们所要求的信号质量或眼图要求。这个过程效率低下,当然不是最优的,特别是如果我们正在修改的参数很多、并且运行每个仿真的时间是不可忽略的。例如,如果我们只更改PCB layout的4个参数、每个参数有35个可能值,则需要超过150万个仿真来覆盖整个设计空间,这是不现实的。 D* e, m) Y+ B2 b5 C% E7 N
相反,如果我们可以将SI仿真工具运用ANN程序来预测输出、并用更少的仿真次数优化眼图,会怎么样?本质上来说,使用人工神经网络可帮助我们提高效率。
, |" q7 G X7 S7 \4 P, y& c! e' ]5 ` t+ f, E) L' y
图3 ( d( ^$ _! n7 T& v d5 F* r. f
由M. Kashyap、K.Keshavan和A. Varma组成的团队开发了一种深度学习算法,并在电气封装和系统EPEPS 2017大会的电气性能环节中公布了他们的结果。他们使用SigritySystemSI工具通过随机采样DDR4多点拓扑中的6个PCB输入变量来生成数据集,如图3所示。每个输入变量可以分别取20、20、20、6、6、50这些不同的离散值,共给出1440万种不同组合的设计空间。 8 A% }" r. g6 O- T+ V t9 X
通过在Sigrity SystemSI工具中应用混合交叉相关和深度学习算法,只需要1000次一级+ 595次二级信号完整性仿真。前1000次仿真将设计空间从6个输入减少到4个互相关输入,其余595个仿真数据集用于训练、验证和测试人工神经网络。用395个点来训练人工神经网络,从而得到一个模型,该模型定义了其余4个PCB输入参数与输出(眼图性能)之间的关系。通过比较人工神经网络模型的预测输出与实际仿真的输出,使用50个验证点来检验训练完成后模型的有效性。验证的准确性平均达到97.4%,1σ误差为1.6%。剩余的150个数据点用于测试,平均准确率为97.3%,1σ误差为1.8%。通过随机选择一组输入的预测输出与使用相同输入的实际仿真结果进行匹配,也验证了结果。 h. H, B8 D! `( W4 z
保守估计的总训练时间为100秒,150个数据点的测试时间为20秒,共120秒或2分钟。消耗时间最多的是在生成1000个一级数据和595个二级数据集时,但是这大大少于生成1440万次仿真所需的时间。这个初步研究大大改进了时间和效率,仅仅牺牲了不到3%的准确性。更重要的是,人工神经网络为我们提供了探索和优化大型解决方案空间的机会,而使用暴力方法几乎是不可能完成的。
, J& [6 K* A6 p4 K( a3 e2 F总的来说,人工神经网络的应用还处于起步阶段,但它们已经开始成为现实。从SI的角度来看,在拥有“魔法按钮”的功能之前,我们还有很长的路要走,但是我们可以使用Sigrity工具提供的信息来开发人工神经网络程序,从而帮助我们探索大型设计空间。不知道您怎么想,但我认为这是值得庆祝的,如图1。 6 n2 H5 a/ w; T7 e/ |4 {* t$ _' {8 E* @. H
* P( j/ |& y# L; a7 ?; R
, ? ]& C/ I" i% M欢迎您的评论! 您可以通过PCB_marketing_China@cadence.com联系我们,非常感谢您的关注以及宝贵意见。
, t# e, ?2 x& e- B6 i
: W9 y+ J( F8 F4 M
# @) s. W* a7 ?" X& e
2 F* Q$ K* v' ] |