分析测试百科网

搜索

喜欢作者

微信支付微信支付
×

芯片验证策略六部曲(六)

2020.10.26
头像

王辉

致力于为分析测试行业奉献终身

  验证的策略篇之六:集成的环境  

  在分析完激励的原则的检查的方法之后,我们关于验证平台(testbench)的核心要素就大致齐备了。接下来我们将进一步分析整个验证集成环境要考虑的部分有哪些,通过这些分析了解这些部分之间的关系。从下面这张图我们将验证集成环境分为了:

  验证平台(verification platform)

  运行环境(runtime environment)

  待验设计(design under verification)

  验证管理(verification management)

  

  验证平台

  验证平台是验证人员日常工作的对象,在建立或者复用验证框架时,主要从激励分类和检查方法两部分考虑,这两部分会直接影响验证的框架。

  激励分类

  直接激励:一般通过文本激励、C代码激励、预先生成激励码等形式给入测试激励。

  随机激励:通过约束随机给入测试激励,这里的随机方式不局限于SV,也包括其他随机验证语言,或者脚本语言用来的随机生成。

  检查分类

  线上检查(online check):在仿真的过程中动态比对数据,并且给出比较结果信息。

  线下检查(offline check):在仿真结束之后将仿真中收集的数据进行比对,再给出比较结果。

  断言检查(assertion check):可以通过仿真或者形式验证的方式利用断言检查设计的功能点。

  待验设计

  硬件设计根据功能描述的定义阶段和功能划分,可以分为两个部分:

  HDL硬件模型:即使用HDL语言描述的硬件模型,按照硬件层次划分可以分为RTL和网表。该模型的特定是与硬件设计师距离最近,也是最贴合硬件逻辑行为的模型。

  虚拟原型(virtual prototye):在硬件定义的早期阶段,我们会引入虚拟原型来对硬件的框架和性能进行评估。同时,在数字信号处理模块中,需要较为复杂的算法参与,所以在硬件实施之前,我们也可以采用软件算法模型来代替硬件的功能(不考虑时序替代)。常用的虚拟原型语言包括SystemC、C/C++、Matlab等。

  在仿真过程中,我们也可以将HDL硬件模型与虚拟原型组合进行联合仿真,这时需要考虑虚拟原型的接口是否可以较为方便地在硬件环境中集成,以及是否对虚拟原型的接口时序有要求。

  运行环境

  运行环境的主要职责是将验证平台和待验设计做一个融合(软件激励端和硬件模型端的互动),而根据上面验证平台和待验设计的分类,运行环境需要考虑的因素有:

  验证平台:运行环境需要传入参数来实现根据测试场景来选择特定测试序列、随机种子数值、参数化验证环境的结构、实例化验证平台等跟所有跟通过运行参数来控制验证平台的因素。

  待验模型:除了考虑如何实现HDL硬件模型与虚拟原型在仿真器中协同仿真之外,还需要实现验证平台和待验设计的接口对接,这包括硬件信号接口连接和内部信号的接口连接。

  仿真全流程建立:这包括了验证和设计的文件提取(extraction)、文件依赖度分析(dependancy analysis)、编译(compilation and elaboration)、仿真(simulation)、结果分析(result analysis)和递归测试(regression test)等。全流程的建立一般是由环境建设者(environment builder)通过脚本(script)语言来做管理的,常见的用于仿真流程建立脚本语言包括Shell、Makefile、Perl、Tcl、Python等。

  验证管理

  无论我们芯片的尺寸有多大,作为验证人员和验证经理都需要对自己负责的模块或者芯片做一个量化的验证管理,除了常见的Excel表格管理之外,我们也会通过其它验证管理工具来进行管理。这些验证管理工具需要考虑的因素有:

  验证计划和进度管理(verification plan and progress management):验证计划需要从抽象文字一级与量化后的测试用例、功能覆盖率对应,进而给出一个可视化的验证进度。

  文件版本控制管理(file version control management):文本版本控制在团队协作中几乎是必需品,常见的工具有SVN、Git、Clearcase。

  项目环境配置管理(project environment configuration management):项目环境的配置文件不但包括有项目中使用的各种工具的版本、单元库的版本、验证IP的版本,也包括验证环境的顶层配置,通过这些环境配置管理每一个参与到项目的人可以很快地实现环境配置,省去同步协调验证环境的工作。

  缺陷率跟踪管理(defect tracking management):在之前提到的缺陷率曲线,需要验证人员和验证经理保持记录的习惯,除了可以通过缺陷率曲衡量验证的进度,还需要通过记录的缺陷来跟踪缺陷的修复、后续验证的工作。

  有了足够稳定的验证平台,能够在更早期利用不同抽象级别的待验模型展开验证环境的搭建和设计验证,通过模块化自动化的运行环境实现环境从建立到检查,这是一个完善的验证环境能够提供给验证人员的。在此之上,从项目管理角度出发,我们也需要一个完善的工具(可能是几个工具共同协助)帮助我们完成验证管理,最终可以达到验证的目标。


互联网
仪器推荐
文章推荐