文章首发于发改委旗下《中国战略新兴产业杂志》,杂志由中华人民共和国国家发展和改革委员会主管、中国发展改革报社主办,是目前唯一面向我国战略性新兴产业的中央级权威期刊。
前言
从70年代至今,芯片设计工具经历了计算机辅助设计(Computer-aided design,CAD)、计算机辅助工程(Computer-aided engineering,CAE)和EDA(Electronic Design Automation)三个阶段。
但近年来,芯片设计、验证的复杂度和成本急速上升,现有EDA的发展速度越来越来越跟不上芯片设计规模和需求的快速增长,且面临着种种技术挑战。因此,芯华章携手生态合作伙伴共同研讨,率先提出并明确了未来5-15年达到EDA 2.0的发展目标,主要包括开放和标准化、自动和智能化、平台和服务化这三个大的方向,其中也特别提出了智能化验证平台的概念,这个概念与芯片的前端验证有很多的联系。
芯片前端设计,主要指芯片设计里的功能实现过程。这个实现过程中的各种测试和确认,就是前端验证。随着芯片越来越复杂,验证的工作量逐渐超过了设计的工作量,当前无论是投入的人力或时间,芯片实现流程中验证工作都占最高比例。因此高质量的前端验证工具,对芯片设计非常重要。 当前芯片验证工具的市场,主要由Synopsys、Cadence和SiemensEDA(原Mentor)三家国外EDA厂商占领,特别是Synopsys和Cadence,都有自己完整的全套前端验证软硬件工具集。前端验证工具的全球市场规模大约为每年15-25亿美元,约占整个EDA市场的15-20%。
本文重点面向“工具平台化”目标,聚焦到芯片设计的前端验证环节,从验证的核心目的、常用工具出发,分析在哪些方面可以从“验证工具”发展为“验证平台”,提高验证效率,为芯片设计客户提供更多的价值。
前端设计验证的目的和指标
芯片设计的前端部分,最简化流程只需要逻辑描述(写RTL级代码)和逻辑综合两步,就可以生成前端网表(netlist),完成设计过程。但是,如此复杂的硬件芯片逻辑,很难保证逻辑完全正确,也需要确认软硬件能正确配合。
因此,芯片的前端设计投入,大部分都花在前端设计验证(简称前端验证)上,这已经成为当下整个芯片设计流程中的最大最耗时间的瓶颈。同时,越来越激烈的市场竞争和越来越短的创新周期要求芯片尽量缩短验证时间,越来越高的制造成本又要求尽量提高验证质量。
前端验证的主要目的是尽可能短的时间内,确保设计的逻辑功能正确性和完备性。这种正确性和完备性是如何衡量的?当前的芯片前端验证,已经逐渐形成了覆盖率驱动的验证流程和评价指标,包括:
功能覆盖率
检查硬件逻辑实现和软硬件集成系统已经是否达到了应用系统的全部目标功能。
断言覆盖率
断言覆盖率与功能覆盖率有重合之处,但也有区别,主要目的是检查逻辑实现是否达标和有没有超出设计目标之外的错误行为。
代码覆盖率
检查逻辑实现有没有可触发但没有测试过的代码行、分支、条件,或不可触发的冗余代码。
故障覆盖率
针对特定类型的芯片如车规芯片,对功能安全要求比较高,还有故障注入测试和故障覆盖率的概念。目的是检查如果出现某些特定物理错误是否会导致系统发生不可接受的后果。
除了可以由工具自动完成的语法检查等基本检查外,上面的四种覆盖率指标其实是测试了“我想要的”、“我想到的”、“我没想到的”和“我不想要的”这四个层次,达到比较完备的功能性验证目的。
前端设计验证的方法和工具
仿真模拟验证的方法,首先将输入场景利用软件的方法模型化,或者直接运行目标硬件上的软件,从而模型或目标软件产生测试激励,测试激励输入给运行在EDA仿真工具内的芯片设计。简单来说,就是将输入驱动给设计,验证这边根据具体的功能,也抽象的描述其功能以及预期结果,最后根据模型预期结果和设计输出结果统计前面提到三种覆盖率指标。 如下图里的高层次测试用例既可以是UVM事务级模型,也可以是CPU上运行的软件产生的场景数据,最终经过UVM等事务级测试环境转化为信号激励给DUT(待测设计,Device Under Test)。
前端的仿真模拟验证工具,根据仿真原理的区别,一般分为软件仿真工具、FPGA原型仿真工具、硬件仿真工具。
• 软件仿真也叫逻辑仿真,在主机(一般为x86)上通过CPU软件去仿真设计电路的行为,对模块级电路的编译速度快但仿真速度很慢,调试性能好。
• FPGA原型仿真基于高性能FPGA芯片和专用软件工具组成,由于FPGA芯片内部电路可重构的特点几乎可以完全映射芯片的逻辑设计,又有高性能芯片高速并行的特性,因此基于FPGA原型工具的仿真性能是最高的,对由真实软件驱动的SoC级软硬件协同仿真特别重要。
• 硬件仿真工具基于硬件平台和专用软件工具,其核心硬件有基于FPGA的也有基于专用ASIC芯片的,与FPGA原型仿真工具的主要区别在于硬件仿真保证了更高的可调试性和更大的设计规模,但性能不如FPGA原型仿真。除了RTL仿真调试之外,硬件仿真与FPGA原型工具一样经常用于软硬件系统集成验证。
此外,近年来基于Accellera PSS(Portable Stimulus Standard)标准和高级语言建模的智能激励生成工具,可以高效地针对特定验证场景自动产生测试用例。针对不同的验证平台和验证层级,PSS工具可以生成不同形态、适配多种验证环境的测试用例,配合各种仿真模拟工具进行芯片验证。
02 形式验证的方法和工具
形式验证是仿真模拟验证的一种补充,是从数学上完备地证明设计实现方案是否满足了设计规范所描述的功能。其采用基于模型的数学求解方法,针对用户提供的断言和属性,面向目标设计所有可能的输入来进行证明,确定该设计是否与给定的规范功能一致,从而避免在一个极大输入范围内做无数次仿真模拟,针对被测模块直接给出完备的功能和代码覆盖率结论,提升验证的可靠性和效率。
形式验证方法对应的工具一般就是支持模型检查(model checking)的专用形式验证工具,其应用流程包括设计模型化、模型和解空间分析、模型求解、反例输出等,最后要么证明设计是正确的,要么给出能证明设计出错的输入用例。
03 分析和调试的工具
同时,验证过程中验证工程师还需要对设计和验证进行调试的手段,这包括了电路、波形和代码查看、覆盖率跟踪分析、仿真流程分析、高层次协议分析等功能,业界也有多种相关的验证调试工具。
前端验证工具的统一和平台化
前面提到的五种前端验证工具,其共同的验证目标都是前文提到的几种覆盖率,验证过程中也都要给工程师提供调试的手段和验证流程的控制。基于这些共同的目标、技术和方法,我们可以想到,多种验证工具可以提取共同点、协同工作、规范流程,形成一个统一的验证平台。 统一的验证平台,其统一性体现在功能模块、数据和流程这三个方面。具体可以列为如下几点:
统一的前端代码解析
从用户的RTL级设计代码出发,要经过解析、编译、优化、映射等步骤,其中前端的解析、编译和部分优化步骤是与具体运行的硬件无关的,这部分模块可以在各验证工具间共享,实现算法、中间数据和变量命名的统一,这对EDA产品开发和客户调试都有很大的便利。
统一的覆盖率数据库
无论是软件还是硬件仿真,包括形式化验证,都可以输出对应测试模块覆盖率的数据,这些交叉数据必须统一到一个最终的覆盖率数据库和访问接口中,在各工具间共享,才能制定高效的测试计划,避免重复测试。Accellera组织曾发布过UCIS (Unified Coverage Interoperability Standard)这个覆盖率数据交换标准,统一的验证平台应该支持这样的标准化接口,并在各验证工具间统一数据格式。
统一的仿真波形数据库
类似于覆盖率数据库,各种工具仿真的波形结果,也需要有统一的数据库格式,方便各种工具协同。目前除了IEEE1364标准中规定的开放数据格式VCD之外,Synopsys公司的FSDB私有压缩格式数据库也是常见的波形格式。未来国产EDA行业一定会出现更开放性能更好的统一波形数据格式。
统一的智能调试系统
各种验证工具的仿真和求解结果,都只是庞杂的验证数据库,需要给用户提供统一的界面和接口进行设计调试。这种调试包括查看波形、电路、代码覆盖率和功耗等各种数据,并支持用户以灵活的条件组合展示数据,实现智能化分析和追踪设计错误。以不同方式对多种工具收集到的验证数据进行深度数据挖掘,形成一个统一的智能调试系统,辅助加快设计流程。
统一的计算任务管理和计算资源调度
前端验证无论是基于仿真还是基于形式化模型,其本质都是大量的计算任务,底层需要各种计算资源(CPU, GPU, FPGA, memory)的支持。这些任务管理和资源管理,如果采用统一的调度器和资源管理器,不仅可以提高资源利用效率,提高验证的自动化流程,也能更好地利用云计算平台的海量弹性资源。
验证工具之间的深度协同和流程自动化
由于仿真目标一致性和技术实现的相似性,各验证工具也可以基于统一的验证平台实现多种互相协同,以及实现自动化的工作流程,这包括但不限于:
•软件仿真与硬件仿真的协同和加速
•硬件仿真和FPGA原型的数据、模型、接口复用
•PSS工具自动生成激励并自动输出给仿真工具
•形式化验证的覆盖率结果自动替代非必要的仿真用例
•PSS、软件仿真及调试工具协同,形成低功耗测试、验证和分析方案
统一化的验证平台,不仅仅是五种验证工具的联合使用,它成为了更强大的验证工具,给用户带来更好的易用性、更高的验证效率、更自动化的使用流程、更智能的验证方案。同时,统一验证平台的模块重用、模块开放和接口开放,也给验证工具厂商甚至整个EDA行业减少了重复造轮子的工作。
从当前的EDA工具市场看,处于领先地位的几家国外EDA厂商已经初步启动了前端验证工具的协同,在最近几年纷纷推出了“验证平台”的概念,特别是在同一公司内的工具之间共享覆盖率和波形数据方面。
但是几大EDA厂商之间的数据协同还基本不存在,同时在更高层次的流程、任务、资源管理的统一性上还有所欠缺。国产EDA工具方面,目前只有芯华章科技专注在前端数字验证全流程工具和平台,也推出了国产化统一验证平台。
总结
EDA是一个宽泛的概念,对应了非常长的工具链和产业链,这个链条上的每个主要环节都有自己的特点和需求。国产EDA要达到尽快发展、追赶先进水平的目的,就要对EDA的每一个环节进行深耕,弥补不足,发挥优势。
本文通过对EDA流程中前端验证环节的总结、分析,提出了前端验证工具统一为前端验证平台的一些具体融合路径,以及统一验证平台给芯片设计行业带来的额外价值。这既展现了芯华章等国产验证工具厂商对产业的经验和理解,也希望能抛砖引玉,促进国内EDA产业共同求索,促进融合和开放,满足后摩尔时代的芯片设计和验证要求。
作者简介
杨晔 芯华章科技产品和市场规划总监
杨晔现任芯华章科技产品和业务规划总监,他在各类型 CPU 与DSP 相关领域拥有超过 20 年的经验,包括系统级处理器仿真与原型设计、操作系统内核和驱动程序、异构以及基于云端的AI芯片设计。他在软硬件协同设计的丰富实战经验将为EDA产品和市场带来更多技术创新。在加入芯华章之前,他曾就职于英特尔、新思科技与思华科技等公司,在系统级设计和片上系统(SoC)设计、仿真、优化方面有着深刻的洞察,致力于帮助客户设计出更好的产品。
杨晔同时拥有物理学学士学位、计算机科学硕士学位与工商管理硕士学位。
原文标题:面向后摩尔时代的EDA验证平台
文章出处:【微信公众号:芯华章科技】欢迎添加关注!文章转载请注明出处。
审核编辑:汤梓红
-
FPGA
+关注
关注
1624文章
21608浏览量
601088 -
芯片
+关注
关注
452文章
50150浏览量
420513 -
eda
+关注
关注
71文章
2679浏览量
172694
原文标题:面向后摩尔时代的EDA验证平台
文章出处:【微信号:X-EPIC,微信公众号:芯华章科技】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论