首先,我并非职业模拟设计工程师。尽管作为专业从事模拟/RF设计的模拟工程师多年,工作包括模拟/混合信号IC设计和布局,但我还深入研究了控制系统和机器学习(ML)好几年,从那以后,我对数据科学也有了一定的了解。这些天,我做了很多咨询、RF合约设计和大量工程写作。因此,我每天阅读和研究各种与电子相关的工程、物理和材料科学方面的课题,主要是射频和模拟领域。不过,我并没有每天都去摆弄晶体管,然后去上机仿真,一直到累得眼睛充血,或者看起来像个傻瓜一样,为了解决寄生问题,一直在布局编辑器上“玩俄罗斯方块”!
模拟工程师对模拟电路的细微差别和“变幻莫测”了如指掌,这就是我为什么非常钦佩模拟设计工程师的原因。但是,我也确实时不时会有一些想法。最近,我想起读过的一些大多来自电子设计自动化(EDA)软件公司的、关于模拟设计自动化的博客和文章。在这些文章中,我注意到一个普遍的主题,就是不论作者是谁,他们似乎都相信,模拟设计是可以自动实现的,至少在某种意义上如此。不过,我觉得还有很多理由使这些说法令人质疑!
图片资料来源:Siemens EDA
我在模拟设计方面的训练,始于晶体管和常见电路元件的模型,“丑陋”的手绘原理图,箭头指向混乱的方向,还有大量的数学计算,最终在电路仿真器前迷茫了多日……后来,在电路仿真器前度过了数月乃至数年后,我在电路布局和全电路仿真领域终于毕业了!然而后来我发现,在那里所学的一切似乎都是“谎言”!“现实世界”却是寒冷黑暗的地方,在那里,对电路设计成功的所有希望,往往都会像很久之前遇难海船的断木一样,在岩石海岸线上被撞得粉碎而湮灭。
经过无数次的反复之后,我发现来自能力极强和经验丰富的工程师的 “坚定”指导,最终能够使那些愿意在硅片上通过“掷骰子”(双关语)来碰碰运气的人,可能大差不差地能够掌握如何根据系统级需求来处理模拟设计问题的方法。不过,我 “学得更精通”的却是业界通常流传的一种说法,即那些被视为优秀的模拟设计工程师,也被视为“黑暗巫师”,他们的魔法力量很可能来自“混沌王国”本身!
在最后一个类比中,我有意使用了混沌的概念。就最新的最佳设计而言,也许我是错的。但我的经验是,模拟设计不仅需要大量的经验,也需要大量的“直觉”、“灵感”和/或颇有点盲目的“运气”。这种想法形成的一些证据,来自我作为布局工程师多年的经历和经验,这经历中我的任务是以某种方式设计各种多边形,迫使其服从设计工程师的“突发奇想”,从而使这些工程师的“聪明”电路远离相邻电路的各种寄生效应影响。而我的解决方案源于对半导体物理知识的综合理解,以及那些——如果能记得起来的话——我自己认为可能会奏效的东西。
说到此,我的问题来啦,也很简单,即:模拟设计自动化真的可以实现吗?像蒙特卡罗分析和设置正确的测试平台这样的工具,对成功设计的确至关重要,但这需要相当多的学习曲线。在选择电路拓扑结构时,我认为还有很大一部分主观性。再加上先进节点工艺和新型晶体管的极其复杂的模型(参见FinFet),模拟设计中还有什么真正有意义的部分可以实现设计自动化呢?
我想澄清一下,这里并非在讨论如何试图保护那些不想被机器取代的模拟设计工程师的“饭碗”。我的问题很严肃!我从享有声望的、可能是垄断性的EDA软件公司那里读到的文章表明确实如此。然而,当我深入研究这些文章时,似乎发现真正可能的、仅仅是帮助模拟设计工程师在电原理图和布局之间实现更快的迭代而已!
同样,在我有限的经验中,大多数模拟设计人员并非自己布局,只是在出现严重问题时才参与进来。那么,对于能够帮助模拟设计人员在电路设计布局过程中洞察影响设计的寄生效应的ML算法来说,如何使其充分发挥效用呢?我的理解是,由于在设计会议上的傲慢而犯下的一些错误,导致流片被推迟了几个月,设计师终将会羞愧难当!
虽然今天的计算能力比过去任何时候都强大,但我还是认为,要成功运行在杂乱的模拟设计过程中能够为模拟设计师提供帮助的ML算法,所需的计算资源相当博广。光是复杂电路的仿真本身所消耗的资源就已经够多了,更何况在后台运行的仿真还要为你的设计提供实质性建议的ML算法呢?
在这些文章中,我看到有人声称,智能计算EDA工具实际上可以在没有人为干预的条件下实现从网表到物理布局的成功转换。在模拟设计中,变量数量非常多,其中许多变量严格依赖于工艺和拓扑结构,这真的能起作用吗?可以看到,只要经过足够的训练,一个专注于像ML算法这类的常见/常用IP的特定常见流程,是可以有效地复制设计过程,再通过一些必要的调整,就可以使模拟电路正常工作,其中只要努力使变量的数量减到最小即可。可是,就这一点而言,这不还仅仅是一个参数仿真吗?
从这些文章揭示的一些技术细节来看,假定是为了保护某些EDA IP,在设计空间功能模型上进行这项工作的ML算法,采用的是设计电路的功能行为模型。这听起来很像是基础控制系统工程方面的东西。然而,这个模型必须由类似模拟设计工程师的人来构建,此外,为了训练这个ML算法,还需要有一个可用的数据集。
因此,需要预先观察和记录从网表到物理布局的诸多类似设计,以便于它们可以被用来将ML算法训练到合理的精度。另外,这个过程也有助于拓扑选择。考虑到拓扑和系统的多样性,我很好奇这实际上是如何工作的。难道不需要一个扩展的拓扑库吗?这个拓扑库是如何开发和描述的,使得ML算法可以向设计师提出合理的建议?
我最后的想法是,所有这些训练数据最初来自哪里?假设这种ML算法必须根据其他类似设计或系统中的数据进行训练,那么用于这些算法的数据集不会被以某种方式共享IP吗?如果EDA工具的ML系统是根据竞争对手的设计进行训练的,并且ML算法建议的拓扑和解决方案与其IP非常相似,该怎么办?这种情况下如何避免知识产权侵权?此外,这不会是只适用于那些有足够大的设计集和足够丰富的设计数据来构建此类模型的非常常见的设计过程吧?
最后,有相当多的模拟设计公司为特定功能设计模拟电路并出售IP。像这样的工具会从这些设计师那里事实上地被“窃取”,并使他们的特殊技巧被其他合法使用ML算法的人窃用吗?
如上所述,我对模拟设计自动化的有效性和功能方法仍有许多疑问。如果事实与我的想法相反的话,那么模拟自动化工具“也许”已经发展到这样一个地步:即很快模拟设计师都将只是“服务”于机器!
(参考原文:Analog design automation: Pipe dream or inevitability? )
本文为《电子工程专辑》2022年10月刊杂志文章,版权所有,禁止转载。点击申请免费杂志订阅