System Verilog与功能验证

第一章 功能验证技术与方法学概要

概念:

验证平台:testbench

测试用例:testcase

1.1.2 什么是验证

验证的种类:不同的阶段存在不同形式的验证

(1)寄存器传输级(RTL)的功能验证

(2)门级的仿真,为了验证综合后的网表和期望的功能是否一致

(3)形式验证(等价性检查)来确保门级网表和RTL代码的一致性

(4)时序验证,为了验证设计能否在特定的频率上运行,通常采用静态验证工具。

1.1.4 功能验证的流程

    1. 制定验证策略和验证计划

        (1)主要功能点和测试用例

        (2)验证平台的抽象层次

        (3)激励生成和结果检查原则      

    2.创建验证平台

        书写验证平台代码和测试用例

    3.回归测试(regression test)和覆盖率收敛阶段

1.2 验证技术和验证方法学

    验证手段:白盒验证、黑盒验证、灰盒验证。

    验证技术:形式验证、仿真验证、硬件加速验证。

    验证方法学:随机激励生成、断言验证、覆盖率驱动验证。

1.2.2验证技术

    1.形式验证

        形式验证技术主要有

        (1)等价性检查

        (2)属性检查(验证断言)

    2.仿真验证

    3.硬件辅助加速验证

        把设计映射到可配置平台,如FPGA,以便设计能在接近产品的时钟速度下运行。

1.2.5 断言验证(Assertion Based Verification,ABV)

    断言,是一个必须验证的关于期望行为(属性)的声明或描述。(属性描述)。主要目的是保证设计和期望的一致性。

    断言也被称为监控器或者检查器。

    断言的优点在于提高了验证平台对设计内部的可见性,帮助工程师更快的定位问题的根源,缩短调试周期,提高功能覆盖率和加速系统集成。

1.2.6覆盖率驱动验证(Coverage Driven Verification,CDV)

    覆盖率驱动验证是基于仿真的验证方法,解决当前验证项目面临的效率和完备性挑战。通过覆盖率驱动验证手段,可以再最短时间内验证尽可能多的情景,达到更高的覆盖率,改善验证的完备性和正确性。

    覆盖率驱动验证最重要的特点是基于随机激励产生。是提高验证效率的原动力。

    覆盖率驱动验证方法学把下面几个概念和技术融合到了一块:事务级验证、约束随机激励产生、自动化结果比较、覆盖率统计分析和直接测试。

    1.事务级验证

        1)数据和数据流在较高的抽象层次定义(例如帧和包)

        2)验证场景在较高的抽象层次定义(例如写存储器、执行指令)

        3)事务处理器吧这些抽象层次的数据和活动转换成低层次的操作和信号,以便应用到被测设计中。

    2.约束随机激励生成

        随机激励生成指的是利用随机生成技术来产生一个事务交易中所有的数据内容,同样产生一系列事务交易来形成一个特定的验证场景。

        随机激励提高了验证效率,也有助于验证的完备性。

        随机激励验证还需要(1)自动化结果检查(2)覆盖率统计和分析来保证真正的可靠性。

    3.直接测试

        手动创建测试用例,进行边界测试。

1.3 硬件验证语言

    System Verilog的优点:

    (1)单一,同时支持设计和验证的标准语言

    (2)支持约束随机的常胜

    (3)支持覆盖率统计分析

    (4)支持断言验证

    (5)面向对象的编程结构,有助于采用事务级的验证和提高验证的重用性。

    

        

阅读更多

没有更多推荐了,返回首页