目前,HPC芯片和移动芯片等复杂SoC的发展依然由先进制程主导,并辅助以Chiplet和3D封装等创新技术。先进制程给芯片带来的最直观的改变就是内部晶体管数量暴涨,业界大热的英伟达H100芯片基于台积电4nm工艺打造,内部晶体管数量已经达到了800亿个。对于这些芯片而言,除了需要保证设计功能正确,在设计实现的过程中也面临诸多挑战。
图1:英伟达H100芯片
(图源:英伟达)
复杂SoC设计的三大目标
综合而言,日益复杂的SoC芯片主要在如下三个方面向工程师提出了更高的设计挑战:更小的面积、更高的性能和更低的功耗,也就是芯片工程师常说的PPA(Performance,Power,Area)。这三大挑战实际上和先进制程的发展目标是一一对应的,也就是性能、功耗和逻辑密度。如何将芯片的性能指标和工艺的性能指标挂钩呢?那么,从芯片研发设计之初就要考虑这些事情,并需要在具体设计过程中解决一些典型的问题。
本文主要关注RTL(寄存器传输级)电路综合(Synthesis)这个环节。综合处于设计前端(Front End)和后端(Back End)的交界处,主要任务是完成RTL代码到网表的转换。
在芯片设计的过程中,综合是芯片原型开发环节中的重要一步,在其前面主要是立项、IP集成、仿真和RTL分析等步骤。综合就像是人们生活中常见的“翻译”——将一种语言翻译成另一种语言,是将高级抽象(block-level)的语言描述转换成较低层次、易于部署的电路结构,也就是门级网表,并满足后端布局时的时序和绕线要求。
综合的最终目标是电路门级结构,在此过程中寻求时序与面积的平衡,寻求功耗与时序的平衡,增强电路的测试性。综合可以进一步分为转译(Translation)、优化(Optimization)和映射(Mapping)三个阶段。在整个芯片设计领域,新思科技公司的DCNXT(Design Compiler NXT®)是最主要的综合工具,其在上述三个阶段中主要实现以下这些步骤:
设置脚文本、库文件,分析具有继承关系的RTL代码
载入库、技术数据和floorplan(布局规划)约束
应用环境约束,检查时序约束
使用基于timing或congestion的DC_Ultra和SPG优化特性
分析时序报告
分析layout congestion
输出物理设计需要的文件
那么,PPA三个主要目标在这些过程中是如何得到优化的呢?
针对芯片面积,在综合的过程中可以添加专门的面积约束,比如输入示例中这样的代码:
在这段代码中,已经约束了芯片的面积不能超过100平方毫米,如果超过了这个面积,就违反了约束,这个数字的计算一般是计算工艺库中门级宏单元的面积之和。
而要优化性能,一般是和时序约束和设计规则约束(DRC)相关。时序约束主要是定义时钟以及时序路径,前者是分解出系统所需要的时钟和频率,以及各个模块需要的时钟和频率;后者包括输入到寄存器的路径,寄存器到寄存器之间的路径,寄存器到输出的路径,以及输入直接到输出全组合逻辑的路径。DRC约束主要是限定节点上信号最大跳变时间(Max Transition)、最大扇出(Max Fanout)、最大电容(Max Capacitance)等。
当然,要得到一颗性能、面积和功耗表现绝佳的芯片,不是只施加约束就可以完成的,还需要进行优化设计。优化的目的是在满足时序条件的情况下,尽可能地减小芯片的面积和功耗。因此,综合有时候可能需要多次优化迭代。
综合的优化和改动
在逻辑综合中,有专门的“优化设计”这一步,主要包括结构级优化(Architectural Optimization)、逻辑级优化(Logic-Level Optimization)和门级优化(Gate-Level Optimization)这三项。其中,结构级优化主要是面向DesignWare所需要的功能;逻辑级优化主要是重构和展平,前者是优化面积,后者是优化速度;门级优化则主要是映射、延时优化、设计规则修正、面积优化。
我们具体展开看一下。结构级优化作为优化的第一环节,往往可用的优化手段比较多。包括选择DesignWare库,库中的单元面积相较于通用单元库更小,有助于优化面积,同时DesignWare库还能够提供合适的架构和算法,更好地满足约束条件;公共运算逻辑的提取,将相同的运算逻辑统一进行优化,尽可能做到资源共享(Resource Sharing),往往能够取得更好的综合效果;数据通路的优化,利用算法找到最合理的数据通路。
到了逻辑级优化,实际上可用的手段就比较少了,几乎就只有结构优化和展平(flat)优化两种。这里的结构优化是结构级优化的进一步延续,共用子表达式从算数电路变为门级电路,进而用来减少逻辑,如下图所示,经过结构优化的电路有巨大的提升。因此,既可以优化面积,又能够带来速度方面的提升。
图2:综合中结构优化的效果
(图源:《Tcl与Design Compiler》专栏文章-作者:IC_learner)
逻辑级优化的另外一种方式是将电路做展平化处理,将组合逻辑的中间级去掉,变为乘积之和(sum-of-products,简称SOP)的电路。电路展平化之后面积可能会很大,因此这一步优化往往和约束无关,仅用作优化速度。
虽然看起来这一阶段对时序的处理比较多,不过由于逻辑综合后面还有布局规划、物理综合和时序分析,然后才到后端工艺。因此,逻辑综合中“优化设计”对于时序的改动往往缺乏准确性,这一步便将注意力主要放在面积缩小上。也就是,在保证时序正确的前提下,尽可能地缩小面积。在综合的报告输出中,会有专门的面积报告,包含时序电路、组合电路和总电路面积,这些都是可以进行面积优化的项。
到了门级优化时,便涉及逻辑映射的阶段,会将门级电路映射到代工厂的工艺库中,将会又涉及设计规则的修改,延迟的优化以及进一步优化面积。
当然,上述只是综合过程中主要的优化流程。但是,想要获得卓越的QoR结果,仅仅是这些还不够,同样重要的功耗和布线还没有得到优化。
综合是从RTL代码到门级电路,这个过程中对于功耗的优化虽然不能像芯片架构定义和提升工艺时那么大,不过也能够带来可观的效果。其中,RTL低功耗技术中一个主要方向是应对毛刺(glitch),其能够占据20%-70%的信号翻转,而信号翻转是芯片动态功耗产生的主要方式。而在门级电路方面,单元库可以提供时钟门控单元,也能够明显帮助降低功耗。
此外,还需要考虑到布线的问题。随着工艺的提升,晶体管的数量急剧增加,芯片的逻辑功能也越来越复杂,这给设计布线提出了很大的挑战。综合而言,一个完美的布线方案,能够在系统功耗和延迟等方面给芯片性能带来较大的提升。
布线并不是简单地将芯片内部的功能模块和标准单元连接在一起,而是要对宏单元和标准单元进行合理的布局,并保证系统内不能存在严重的拥塞问题。由于芯片架构复杂度提升,目前高端芯片的布线调整可能要持续几周,甚至是几个月的时间。
如果是通过手动试错的方式来布线,往往这些时间消耗之后,开发人员并不能找到理想的布线方案。创意电子曾有设计方案显示,一个好的布线方案,能够帮助芯片减少14%的内部翻转,减少19%的布线长度。
除了设计优化和布线方面的挑战,安全冗余也是目前先进计算芯片(特别是车规芯片)必须考虑的事情。然而,通过手动调整的方式,设计人员经常出现一些难以发现的错误,因为安全机制和措施的实现往往需要成百上千条代码,并且这种安全冗余既要考虑到芯片运行的可靠性,又要有故障恢复能力。因此,出色的安全冗余需要做到以下几点:
自动插入实现安全冗余的寄存器;
在满足物理距离的前提下物理实现TMR(三模冗余系统);
在满足物理距离的物理前提下实现DCLS(双核锁步)。
图3:出色的DCLS物理实现
所以很显然,安全冗余也是综合必须要考虑周全的事项。那么,回到上述提到的一个结论,综合的优化需要经过多轮迭代,如果没有好的工具帮忙,几轮优化迭代下来PPA的提升大概率会非常有限。这样的芯片上市是难言竞争力的。
Design Compiler® NXT完美应对PPA挑战
在帮助广大芯片设计工程师应对越来越大的PPA和设计周期挑战方面,新思科技推出的Design Compiler® NXT(以下简称:DC NXT)作为该公司Design Compiler®系列的全新RTL综合产品,是一个绝佳的好帮手。
DC NXT扩展了新思科技在RTL综合方面的领先地位。这款工具采用了全新的综合创新技术、优化技术和多线程技术,能够显著降低综合时间,带来2倍以上的效率提升;通过包括功耗驱动的映射和结构化技术、时钟与数据同步优化技术(CCD)在内的高级优化技术,输出得到卓越的QoR结果,系统总功耗可以降低12%以上,面积可以缩小10%以上;提供云就绪的数字实例,可实现预配置、简化、自动的综合工作流,能够实现RTL、时序、原理图和布局布线之间的交叉显示;与IC Compiler™ II共享通用库以及多种先进布局技术,并且采用了经校准的RC、绕线拓扑和布局密度建模,能够提供更完美的布线方案;
此外,它让RTL设计人员能够预测、可视化和缓解线路拥塞,并在物理实现之前执行版图规划上的探索。
图4:DC NXT带来的综合效率提升
图5:RTL、时序、原理图和布局布线之间的交叉显示
通过这些创新技术,DC NXT能够满足诸如人工智能(AI)、云计算、5G和自动驾驶等前沿领域对下一代芯片的迫切需求,从容应对下一代芯片对更小面积、更高性能、更低功耗的高要求。特别需要指出的是,DC NXT可支持5nm及以下工艺的芯片设计。
针对先进工艺制程的芯片设计,DC NXT能够在多个方面支持综合,满足人们对更好PPA的期望。这些流程包括通孔柱插入、Pattern一一对齐、Auto NDR等,通过这些不断创新的综合技术,应对日益发展精进的芯片制造工艺。
图6:DC NXT对先进制程的支持
除了带来更好的综合和布线效果,如下图所示,DC NXT和新思科技Fusion Compiler等其他工具一起也带来了更好的安全冗余,这对目前高性能计算芯片和汽车芯片非常重要。
图7:芯片安全的冗余设计
最后要说的是,DC NXT是一款即插即用型的工具,其UI界面和Design Compiler Graphical完美兼容。
结语
当前,人工智能、云计算、5G和自动驾驶等前沿领域对于芯片的要求越来越高,工艺水平也日益精进,这更加凸显出设计综合这一步的重要性,帮助研发工程师实现更好的PPA,让芯片在激烈的市场竞争中保持领先性。
不过,复杂的芯片设计必然伴随着巨大的综合挑战,很多工作已经超越了人类工程师认知的极限,EDA和云的结合则会打破这种桎梏。拥有这样的优势,新思科技DC NXT在综合市场领跑的优势将会越发明显。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.