【关注】浅谈EDA验证工具芯片开发到底有多难?

芯片设计被誉为人类历史上最细微也是最宏大的工程。经过数十年的发展,先进芯片的开发者可以把上千亿颗晶体管集成在面积不到指甲盖大小的芯片上。他们能实现这样目标所以靠的是电子设计自动化(Electronics Design Automation)工具,也就是我们俗称的EDA工具。

EDA 是电子产业最上游、最高端的产业,驱动芯片设计、制造、终端应用。从另一个角度看,下游的任何创新,都离不不开EDA 软件的创新支持。

根据应用场景的不同,EDA工具的使用主要分为设计、验证、制造等几大类。以物理实现为分界,芯片设计可以划分为前端(逻辑设计)与后端(物理设计),其实现过程中将不断对设计进行优化,优化可能改变逻辑描述方式和结构,存在引入错误的风险,所以验证贯穿整个设计过程,在每个环节都反复确保逻辑优化过程不改变功能、时序满足目标需求、物理规则无违规等等,因此产生大量的验证流程和工作,更涉及多方共同协作。

芯片验证流程一般包括需求定义、功能实现、功能实现、逻辑综合以及物理实现。具体看来:

需求定义主要根据市场分析结果提出下一代产品需求。结合外部环境分析、供应链资源、公司自身定位等信息,应用端提出对新一代产品的需求,并进一步考虑产品作用、功能、所需线板数量、使用集成电路类型等,精准定义产品需求。

功能实现是描述希望芯片实现的目标。开发者用Verilog或VHDL等硬件描述语言,编写出百万行起的代码来实现芯片功能。就像是建筑设计之前,需要先规划好房间数量、用途、和遵守的法规。

功能验证是反复迭代验证,使设计精准、可靠。在芯片制造之前,通过检查、仿真、原型平台等手段反复迭代验证,提前发现系统软硬件功能错误、优化性能和功耗,使设计精准、可靠,且符合最初规划的芯片规格。

逻辑综合是从行为级描述到电路级描述。规格设计与验证之后,开发者将硬件描述语言转换成逻辑电路图,这一步被称之为“逻辑综合”。

物理实现即为制造芯片绘制图纸。把逻辑电路转换成为有物理连接的电路图,将上百亿或千亿元器件和电路合理的布局布线并使其互不干扰。

物理版图以 GDSII 的文件格式交给晶圆厂,在硅片上做出实际的电路,再进行封装和测试,就得到了实际看见的芯片。当前的验证几乎必须贯穿芯片设计的每个步骤,以便芯片研发团队及时发现错误,只有经过充分的仿真和验证,才能确保流片的成功与质量。

验证环节能够为芯片设计带来诸多好处,例如缩短芯片设计时间,降低芯片设计成本等等。具体来看:

首先是芯片设计的复杂度方面,随着设计与工艺技术的不断发展,集成电路设计的规模越来越大,复杂度越来越高。

为了缩短芯片的上市时间,节约开发成本,集成了微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)等多家IP核的SoC(系统级芯片,System on Chip)也成为主流,随之而来的挑战是验证复杂度呈现指数级的增长,验证工具的革新目标是快速、准确、完备、易调试的完成日益复杂的验证,让开发者有信心Signoff设计交付给晶圆厂进行流片。

做一款中等规模的芯片大致需要十多人的团队一年半以上的开发时间,而现今主流的SoC芯片更是需要一个经验丰富的团队投入3-5年时间开发。因此,一个高效的验证平台使得验证迅速收敛显得尤为重要。

其次是芯片的成本方面,最新数据显示,先进工艺的芯片设计环节成本及其高昂,从千万美金级到亿美金不等,由于设计缺陷或者工艺缺陷很容易造成芯片变成所谓的“废片”,而如果要重新投片不仅需要高昂的资金成本,更会将芯片上市时间延后至少半年,这些风险对于商业公司来说都是不可接受的。因此,在芯片流片之前通过验证活动发现所有的设计缺陷和错误显得愈发重要。

再来是安全性方面,随着芯片使用场景延伸至AI、云计算、智能汽车、5G等领域,由于其场景无一不是依托于芯片运行,芯片的安全性、可靠性前所未有的重要。

我们已经完成从规模化复杂性到系统化复杂性的转变,当芯片、系统和软件环境融合在一起,无数的“应用模式”都需要从安全角度进行充分的验证。以智能汽车使用的自动驾驶芯片为例,其复杂程度并不低于一架小型飞机,汽车行业要求系统能够准确运行以避免危险情况的发生,并能够实时监测和管理故障。

还有软硬件协同验证方面,在早期软件和硬件并不相融的阶段,软件与硬件的开发及其验证均为独立进行,遵循先有芯片设计制造再到上层软件开发的工作流程。

如今随着AI、智能汽车等领域快速发展,带来专用芯片和适应行业需求的全新架构需求,芯片本身即是一个软硬件结合的复杂系统,开发者从需求定义的阶段即明确需要软硬件协同开发,才能得到期望的功能和性能。

开发者们引入ESL(电子系统级,Electronic system-level)设计理念,针对软件开发仅需要编程模型,不需要硬件实现细节的特点,在设计的早期阶段即构建一个高抽象级的虚拟原型(virtual prototype),由于并不需要硬件描述细节,系统级模型的仿真速度较RTL级仿真速度快上几个数量级,让硬件人员和软件人员可以在早期阶段运用采系统进行硬件参照和软件开发。

这一理念同时也是“Shift-Left”方法学的实践,在RTL实现前就可以完成相关的软件开发验证工作。软件可以解决安全性问题,但软件本身也有安全性问题,因此当完成后,需要检查软件安全性,找出问题并不断解决问题。

特别是在我们用到很多开源软件的情况下,开源会产生数据泄露的问题,所以我们需要在整个开发过程的最早期就开始介入,并在之后的开发过程中解决这些问题,实现Shift Left,加速芯片的开发、降低风险的同时,更缩短了产品面世的时间。

最后是低功耗设计方面,低功耗一直是便携式电子电气设备的关键要求。近年来,这一要求已扩大到许多种类的终端产品,无论是自动驾驶的大规模芯片设计或是精巧的物联网芯片设计,低功耗都是开发者关注的重要指标之一。

电子工业已经发展了广泛的电源管理技术,并定义了统一电源格式(UPF)来描述一些最常用方法的设计意图。低功耗半导体设计的成功开发包括检查UPF描述,以及在项目的多个阶段根据设计验证UPF。对应至芯片开发中的指标即为PPA(Performance, Power, Area)当中的Power,开发者在设计和验证过程中始终关注这三个重要指标的平衡。

在Soc设计中采用门控功耗和门控时钟技术成为使用最广和效率最高的功耗节省方式。门控功耗依靠关闭那些不用的模块节省功耗,而门控时钟则是通过关闭那些不需要激活的模块和寄存器来缩减功耗,因此,开发者透过设置数十个电压域和数千种功耗模式来达到低功耗要求,而验证需要确保在所有功耗模式下电路的行为皆正确,其复杂程度和验证负荷可想而知。

正如前文所言,设计与工艺技术在不断发展,因此芯片也变得更加复杂,EDA工具与工艺绑。

【关注】浅谈EDA验证工具芯片开发到底有多难?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top