Elias FAllon是行业领先的电子设计自动化技术提供商Cadence design systems公司的工程主管。他带领其定制IC研发团队以及电子设计自动化(EDA)产品团队进行项目开发。
对于负责将机器学习和深度学习技术应用在计算软件的EDA研究项目的Elias FAllon来说,他对电子设计行业的未来发展有着独特的见解。
他指出,半导体芯片及其周边系统设计的下一个飞跃将来自EDA计算软件工具流程的融合,以及更大规模的机器学习/深度学习技术和多核计算的应用。当前的人工智能和机器学习创新浪潮始于GPU计算能力的提高,以及设计工程师开发加快深度神经网络训练的方法。机器学习/深度学习将在下一代平台的设计中发挥关键作用,从而使新兴技术得以广泛应用。
对于FAllon来说,其乐趣在于解决在设计和验证过程的每个阶段存在的一些非确定性多项式(NP)难题和完整性问题。FAllon与其团队开发了设计工程师用来设计、仿真和验证集成电路、封装、电路板和系统的软件。他们面临的设计挑战既棘手又复杂,以至于没有在一定时间内找到最佳解决方案的方法。从定义上看,面临的验证挑战是从来没有遇到过的问题。FAllon和其团队开发了各种各样的复杂算法和软件来提供最佳的解决方案,这些创新为客户推动了设计生产率的提高。
数值求解器、布尔可满足性求解器、自适应网格划分、计算几何以及迭代改进优化算法都是计算软件的例子。计算软件算法要求EDA软件工程师确定如何将算法最佳地应用于当前的设计挑战,以及如何以设计术语向用户呈现各种元参数、控件和命令。下一代设计的趋势是在系统设计和验证中增加复杂性,这将需要EDA工具箱中新增计算软件”工具”,以实现设计生产力的飞跃。
过去六个月来,在家远程工作的人们受益于云计算、芯片优化和互联网的进步。而在电子行业的一个良性反馈循环中,计算软件为电子设计提供帮助,而设计团队也将从未来创新中受益。5G、超大规模计算和其他技术驱动力需要在芯片、封装、电路板和系统设计方面进行大量的创新,以创造出电子技术在未来发展的各种可能性。通过示例学习的机器学习功能是一种新的计算软件工具,它为设计师的下一轮创新奠定了基础。
计算软件已在生产率提高和解决电子系统设计的复杂性挑战方面实现了巨大的增长。当Cadence公司的解决方案解决了上一代挑战时,面临下一代的设计更加复杂。系统复杂性的不断增长也带来设计和验证流程的复杂性。这种复杂性已经成为流程不断变化以采用新的最佳实践或自动化的障碍。复杂流程中的每个工具或步骤都需要用户理解、评估并检查其在整体流程中的适应性,然后才能采用。具备部署机器学习的能力,可以通过示例向用户学习设计实践,并允许EDA软件工程师开发系统,以将机器学习设计实践转换为新工具流程中的选项,从而加速了创新设计流程的采用。
例如,模拟电路设计人员会根据以往经验了解在电路设计和布局中需要匹配的器件,但是要在设计流程中采用自动化技术,需要增加额外的约束和规范。机器学习模型可以从完成的设计中学习那些设计师的最佳实践,并为每个设计师或设计团队以定制的方式加速整个设计流程。创新的系统设计公司不会与其他公司共享他们的设计或从他们那里训练来的机器学习模型。因此,学习机器学习的设计实践的训练必须在用户那里进行。机器学习将成为EDA计算软件工具箱中的关键工具。
除了通过示例学习设计实践之外,EDA中机器学习的最常见用例是预测未来的流程步骤。当所有这些非确定性多项式(NP)问题集中在一起时,很难完全预测当前流程步骤结果的影响。最常见的示例是在优化布局时了解可路由性。布局通常决定每个组件的位置,并以最小化面积/成本和导线长度为目标。路由为每个组件之间的每个信号建立连接。这些组件可能是PCB上的部件,也可能是芯片上的模块或晶体管。多年来,EDA工程师开发了许多启发式方法,以在优化电路布局的同时改善导线长度和布线能力。但是,由于布线和放置是一个非确定性多项式(NP)难题,因此尝试每个选项在计算上是不可行的,并且现有的启发式方法可能会漏掉许多可路由性的细微之处。
通过采用机器学习模型,以布局为输入,以路由性得分为输出,可以潜在地创建一个更丰富、更快速的解决方案。EDA工具流可以生成多个候选布局,对每个候选布局进行路由,并以路由得分作为标记来训练机器学习模型。与此类似,通过运行复杂的EDA流生成许多设计候选和结果的任何流都可以构建模型,以预测来自先前步骤输入的未来步骤的结果。这为在复杂的设计空间中找到更好的解决方案提供了更大的能力。
EDA提供了关键的计算软件,可以设计和验证复杂的智能系统。现在正在进行的新一代技术驱动程序将会带来许多新的创新设计。为了激发系统设计师的创造力,EDA工具将采用机器学习作为一项关键功能,以提高生产率。这将使设计流程能够找到更好的解决方案,并允许设计流程自动针对设计人员和设计团队进行自定义。因此,机器学习技术是未来的系统设计和平台创建中的关键组成部分。