首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于SystemVerilog语言的验证方法学(3)

基于SystemVerilog语言的验证方法学(3)

1.6小结      SystemVerilog语言提供了建立一个成熟验证环境所需要的所有结构及特点。这样的验证环境应该包括带约束的随机激励产生,覆盖率驱动验证,以及断言。《VMMforSystemVerilog》描述了如何用SystemVerilog语言开发先进验证环境。同时对有经验验证工程师或那些初次接触验证,而又不仅仅只准备进行直接测试的验证工程师提供了全面编码及方法学指导。

      文章第二部分主要介绍使用先进验证技术进行RTL验证并定义一个能在项目之间进行验证单元重用的分层验证平台结构。

      2SystemVerilog验证方法学:RTL
      当前SoC设计及其相关可重用IP模块使用中面临的挑战就是验证。当设计在规模和复杂度方面持续增加时,新技术的出现必须要采用有效验证方法学。SoC要求有一个以可重用为导向,覆盖率驱动,并有丰富语义标准语言支持的验证方法学。

      这是概括介绍由SystemVerilog硬件设计及验证标准语言支持的验证方法学文章中第二部分。此方法学在由ARM和Synopsys编写的 Verification Methodology Manual (VMM) forSystemVerilog书中做了全面介绍。此文章概述了《VMM forSystemVerilog》书中推荐的用于建立一个可升级,可预期,以及可重用环境所需要的关键点。要求用户充分利用断言,重用性,自动测试平台生成,覆盖,形式分析,及其他先进验证技术。

      《VMMforSystemVerilog》意图包括两部分。第一,教育用户高效集成一个可重复使用,多产,灵活的验证方法学。使得用户能充分利用相同语言性能,工具性能,以及验证专家使用推荐的方法学。第二,使得验证工具提供商能提供相关文档,如SystemVerilog代码事例及模版,使用户通过最小代码开发,快捷利用好此方法学。

      2.1分层测试平台结构
      为了有一个通用验证环境方便重用,充分利用扩展自动化特点,需要有分层验证平台结构。这种方法支持项目中自顶向下和自底向上验证,同时使项目之间共用通用单元更加容易。《VMMfor SystemVerilog》测试平台结构在DUT周围包括五层。如图4所示。


Figure 4 多层测试平台方便验证重用


      分层验证平台是整个验证环境核心。
      最底层为信号层,连接测试平台及RTL设计。包括接口,时钟,modport结构。

      命令层包含底层驱动和单元监控,如断言(properties)检查设计意图。此层提供一个事务级接口上层,同时经过信号层驱动物理管脚。

      功能层包含高层驱动及监控单元,判断测试通过或失败自检查结构。额外的检查,比如跨越命令层及功能层协议检查器。

      情节层用产生器(generator)产生应用于功能层事务(transactions)流或序列。产生器有一套由测试层指定的包含权重,约束测试情节。带约束随机测试在此层引入。

      测试用例位于测试层。测试中用情节层定义新事务级序列,同步多事务流,通过与功能层或命令层直接交互产生序列,或者直接到命令层补充定向激励。虽然分层测试平台主要用于带约束随机激励产生,也支持人工定向测试。图4上部左边部分展示了从测试到驱动直接运行路径,完全绕过生成器。这样允许验证工程师直接产生事务级而不需要设置带约束随机情节。

      2.2自顶向下和自底向上
      《VMMforSystemVerilog》支持在分层方法中用自顶向下或自底向上方式建立验证环境。对于自底向上方式,设计者可以主要对信号层操作开发简单验证平台。随着独立模块连接集成到子系统,完成芯片甚至多芯片系统,验证团队增加更高层次的测试平台单元完成全部的验证环境。对于自顶向下方式,验证团队用SystemVerilog或SystemC编写事务级模型建立完整设计,如图5,并在这些模型上运行测试。自顶向下方式使得验证团队能在开发过程中,甚至在RTL代码开发前更早建立一个完整验证环境。这个环境可作为验证其他验证单元和RTL设计的"黄金参考"。


Figure 5 高层次测试平台单元更早验证事务级模型


      当开发人员完成RTL设计,将RTL设计置入验证环境代替事务级模型,从而验证设计在功能方面是否与事务级模型等价。此方法建立了一个可继承过程,此过程中可综合的RTL代码甚至(如果需要)门级网表能代替事务级模型,重用系统级环境来验证设计本身。同时也提供一种解决当前很重要验证面临挑战的一种解决办法――如同RTL一样检查事务级模型行为。

      分层方法通过几种其他途径而方便重用。结构方面或系统行为分析时移出低层次,用事务级模型代替。当清楚定义各层间交互时,各层能在不同项目间重用。最基本的,既然只有测试层在产生新测试时需要调整修改,全部的测试平台不考虑测试部分,都可重用。
继承事业,薪火相传
返回列表