精品文档---下载后可任意编辑一、前言 随着数字电路规模越来越大、设计越来越复杂,使得对设计的功能验证越来越重要
首先,我们要明白为什么要对设计进行验证
验证有什么作用
例如,在用 FPGA 进行设计时,我们并不能确保设计出来的东西没有功能上的漏洞,因此在设计后我们都会对其进行验证仿真
换句话说,验证的目的是彻底地验证被测设计以确保设计没有功能上的缺陷
而即将介绍的 SystemVerilog 断言便是一门重要的验证技术,它可以尽早发现设计的缺陷以及提高验证的效率
二、基本概念1、什么是断言 断言是设计属性的描述
而断言可以从设计的功能描述中推知,然后转换成断言
那么断言是如何表现的呢
当一个被检查的属性不像我们期望的那样表现时,则该断言失败;当一个禁止在设计中出现的属性发生时,则该断言失败
2、为什么要使用 SystemVerilog 断言 Verilog HDL 也能实现断言,但其存在不足之处:Verilog HDL 是一种过程语言,不能很好地控制时序;Verilog HDL 是一种冗长的语言,随着断言数量的增加,维护代码将变得很困难;语言的过程性使得测试同一时间段内发生的并行事件相当困难;Verilog HDL 没有提供内嵌的机制来提供功能覆盖的数据
而 SystemVerilog 断言具有如下特征:它是一种描述性语言,可以完美描述时序的状况;语言本身非常精确且易于维护;语言的描述性提供了对时间卓越的控制;它提供了若干个内嵌函数来测试特定的设计情况,并且提供了一些构造来自动收集功能覆盖数据
可见,使用 SystemVerilog 断言具有非常大的优势
三、验证平台 一个包含 SystemVerilog 断言的验证环境如下图所示:注:约束随机测试平台可以用来产生更多真实的验证情景;代码覆盖则是验证完整性的基本衡量标准
一般情况下,测试平台需要做三件事: