就原始逻辑门大小而论,紧缩的硅芯片面积造就了更大的系统芯片(system-on-chipSoC)型设计,而且许多当今的应用都搭上这个趋势的便车。有一个经常被遗漏的重点就是,验证复杂性也随之水涨船高。更确切地说,一个两倍大的设计,其验证工作绝对是两倍以上。验证团队必须应付更大的状态空间(state-space)与应用,而这就是验证环境试图呈现的,确有「越来越大」的趋势。

仅仅建立仿真器等更快速的工具并不能解决这个问题,反而需要能够更容易地建立复杂验证环境的功能与相关方法最终保证芯片上的应用能够如预期一般运作正常。幸好,SystemVerilog提供无与伦比的优势让您轻松解决复杂的挑战不仅只是描述复杂结构的全新语言,而是能够实现先进方法与自动化的平台。

SystemVerilog的三大面向各自扮演重要的角色。SystemVerilog新增可综合的设计结构,让设计人员能够通过高阶抽象进行编码,通常可以更精准地对应到设计功能和自己的想法。全新的断言(assertions)能力让使用者能够非常精准地描述需要被检查的行为。然而,他们都无法匹敌使用SystemVerilog TestbenchSVTB)在验证方面所获得的价值,这点已在快速增加的SVTB使用者上获得证明。

SystemVerilog验证组件为设计与验证团队带来了高水平的程序规划能力。以前,许多团队运用原始或以SystemC为基础的C/C++ testbench,驱动更高效、实际可行的设计测试。SystemVerilog提供标准的面向对象语言,架构化了这个流程,而成效不遑多让。现在开发工具支持更标准、结构化的流程,不会让原本使用VerilogVHDL编写程序而不熟悉C++等语言的工程师们心生畏惧。

SystemVerilog Testbench 语言大部分仍然类似于Verilog程序。此外,还包括验证时常常需要的内建功能支持,例如条件式随机化(constrained randomization)与覆盖率监控(coverage monitoring)。相对比较简单的条件式随机化概念让工程师们只消几行程序便能够开发精密的测试脚本。面向对象模型的自然发展产生了标准类库(class libraries)与相关OVM (Open Verification Methodology)VMM (Verification Methodology Manual)方法的开发。这些都让工程师们能够建立模块化、可重复利用的验证环境,让组件在其中通过标准的交易层建模接口而彼此互相通讯。也通过共通的方法与虚拟程序类和模块到系统(block-to-system)的重复利用,实现公司内外部的重复运用。这种重复利用可延伸到市面上现有验证IP组件,可用来验证USB等总线通讯协议等特殊功能。

 

[ download complete paper ]