凭借可复用设计 ip 的开发、部署和可扩展性优势,半导体行业的生产率获得了显著提升。凭借可复用验证 ip 的开发、部署和可扩展性优势,eda 行业的生产率也获得了显著提升。soc 开发流程中依然存在一个瓶颈,而造成这一瓶颈的原因是无法在不同设计范围和验证引擎中复用验证激励。
考虑到这一点,accellera 成立了便携式激励规范 (pss) 工作组来建立标准化的规范,以实现测试意图(即激励)的复用。该工作组由来自半导体、系统和 eda 公司的资深技术专家组成。mentor 是这项标准化工作的发起者,并且捐赠了自家基于图形的 infact 语法,作为建立该标准的基础。breker 和 cadence 也都为这个标准贡献了一份力量,还有几家半导体和系统公司在定义目标和要求方面做出了贡献。
许多编程语言在本质上都是“顺序执行”的:它会描述一个事件序列,其中包括要完成的目标、要处理的事情以及要执行的操作。但是,基于图形的便携式激励语法(即开发中的 accellera pss 标准)在本质上是“说明性”的:它会描述要运用的设计功能的空间,或者描述一组可以创建的合法测试。不同于顺序执行的测试意图,测试意图的说明性描述不会提前假定预定义的序列或顺序。它以最高效的方式来描述所有序列和顺序,通常称为图形 (graph)。
此类图形不应与术语图形化 (graphical) 混淆。尽管基于图形的测试平台的图形渲染是大多数便携式激励工具集的标准功能,但是基于图形的测试平台也能够以文本代码形式进行渲染。用于此类图形的其他术语包括树、节点和叶子、规则和操作以及自动控制。
严格来说,目前还没有支持 accellera pss 的工具,因为该标准本身尚未获得批准。然而,已经有多家 eda 公司在提供基于工作组的部分成果的便携式激励解决方案。(注意区分“便携式激励”与“accellera pss 标准”,前者不一定是标准化的)。便携式激励技术时代即将到来,并且越来越多的人逐渐开始采用这一技术。在 accellera pss 标准获得批准之后,eda 公司将能就利用语法所能实现的功能展开竞争,而不是在语言的语法进行竞争。凭借通用的语法,验证用户能够采用单一的语法,然后根据他们的相对能力来评估彼此竞争的工具集,从而在单一语法格式基础上执行有效的工作。
ip 模块级验证的测试场景与系统级验证的测试场景有很大不同。ip 模块级测试场景通常在 systemverilog 中,由受随机约束求解器生成,并应用于软件仿真器的回归测试中。系统级测试场景通常采用 c/c++ 或汇编代码,既可手动生成,也可通过将系统级软件作为测试平台而予以生成,然后能应用于类似硬件加速器或 fpga 原型系统的硬件辅助验证引擎。对于便携式激励,理想情况是能够弥合这种差距,并能在两种环境中复用测试场景。
利用便携式激励可以跨验证引擎和多个设计范围复用测试意图。axi 总线接口和以太网接口的便携式激励规范可以结合使用,从而在 systemverilog 中生成模块级场景,然后验证以太网 mac ip 模块设计。在设计流程的后期,相同的便携式激励规范可以与其他便携式激励规范整合汇总,进而验证以太网 mac 实例化的 soc。便携式激励可以在 systemverilog 或 c 中生成场景,具体取决于所需的验证类型。infact 工具集可实现此功能,因为它支持 systemverilog、c/c++、汇编代码乃至其他各种序列化语言以及仿真器、硬件加速器和 fpga 原型系统。它也可以用于 ip 模块级和系统级验证。
systemverilog 受约束随机测试正是一种随机测试。因此,每个单独的测试场景都是随机生成的,具有大量冗余。所以随着时间的推移,这些测试始终会产生一个标准的钟形曲线分布,其中最常见的测试会重复多次,而最具挑战性的(“极端情况”)测试则永远不会产生。这就导致了业界普遍存在的覆盖率收敛差距。实际上,写出一套完善的约束,即对测试场景生成器(“求解器”)既不会“约束不足”也不会“过度约束”,几乎是不可能的。这是受约束随机测试的主要问题,从数学角度来看,这点无可辩驳。然而,验证工程师已经开始转至受约束随机测试,因为它的吸引力在于能够“测试未想到的情况”——这确实是一项优势。
理想的情况是验证工程师既可以实现高效率测试平台自动化的优势(通过随机方式“测试未想到的情况”的优势),也可以使钟形曲线呈平坦分布,以便覆盖那些难以找到的极端情况。这是便携式激励的第二个关键优势。
便携式激励可以实现真正的场景定位,而不是通过随机场景在事后进行覆盖率测量。利用便携式激励,验证工程师能够根据当天的目标,使用完全相同的激励模型来生成不同的激励。从这个角度来说,“便携式激励”这个术语是不恰当的。实际上它根本不是激励,而是一个描述行为的规范,通过该行为可以得到激励。由此产生的激励的有效性依赖于便携式激励描述的质量和用于操作的工具集。利用便携式激励语法,类似 infact 的工具能够使用形式算法来生成测试场景,进而令验证工程师在测试场景生成方面发挥前所未有的作用。
现有的测试平台技术要求验证工程师在生产率和简单性之间选择其一。定向测试较为简单,但生产率很低。每个测试场景都必须由验证工程师有针对性地生成。没有机会“测试未想到的情况”。受约束随机测试可以显著提高生产率,但复杂性同样也会大幅增加。某些测试平台包含数千个相互依赖的复杂约束条件。在这种情况下进行调试几乎是不可能的,而且在分析之前还需要进行初始仿真运行。这就陷入了一个左右为难的境况。工程师在仿真之前不能调试测试平台,但是使用有缺陷的测试平台进行仿真会产生错误的结果。
便携式激励描述的说明性本质使得多种不同类型的整体验证流程改进成为可能。例如,对测试平台过度约束或约束不足是一个非常普遍的问题,而且其调试和纠正可能非常困难(并且极为耗时)。有效的便携式激励工具集可以在运行单个测试之前使用形式化的方法来分析测试平台。
此外,便携式激励工具集还可以将激励描述处理为覆盖率模型。在验证流程中,覆盖率建模通常低于切割线,因为优先考虑的是激励创建。便携式激励本身具有对设计功能或行为规范的极为直观(且易读)的图形渲染,因此仅需要检查这些渲染即可轻松发现许多设计错误。理想情况是使用可以在便携式激励测试平台上运行的工具集(比如 infact),既能将测试平台的调试流程自动化,又能将覆盖率模型生成流程自动化,进而实现生产率和简单性两者兼得。
十余家半导体公司和四家eda公司正在将他们的时间和精力投入到 accellera pss 工作组中,这表明不仅仅是设计 ip 和验证 ip,激励 ip 也同样需要复用。由此产生的标准可能存在命名不当,因为它更像是行为规范,而非实际激励。但是,它会提供一种通用的语法,从中可以得出便携式激励。
类似 mentor 这样的公司已经在技术方面进行大量投资,以期开发可在 accellera 标准上运行,并为软件仿真、硬件加速仿真、fpga 原型开发甚至硅芯片本身提供激励的技术。新兴标准的另一个有趣之处在于它还能够同时实现验证有效性和生产率的大幅提升。
来源:mentor