crazybird

【SystemVerilog断言学习笔记7】蕴含操作

现在对前面几篇博客中介绍的断言进行分析,为了更好的理解,下面结合简单的代码段进行分析:propertyp1;@(posedgeclk)a##2b;endpropertya1:assertproperty(p1);针对这段代码段,可以做下总结:在每个时钟上升沿都检查信号“a”的电

【SystemVerilog断言学习笔记6】禁止属性的使用

当我们期望属性永远为假时,可以用关键字“not”来禁止属性,即当属性为真时断言失败。接下来验证“not”是如何运作的。测试代码:/*******************************************************作者:CrazyBird文件:assert_test2.sv日

【SystemVerilog断言学习笔记5】“##”的解读与运用

有时候,我们需要检查几个时钟周期才能完成的事务。在SVA中,可以用“##”表示时钟周期延迟,如“a##2b”即当a为高电平时,2个时钟周期之后b应为高电平。下面举个简单的例子来说明:测试代码:/****************************************************

【SystemVerilog断言学习笔记4】边沿检测内嵌函数

SVA中内嵌了信号边沿检测函数,方便用户监视信号从一个时钟周期到另一个时钟周期的跳变。其中,有三个非常有用的内嵌函数如下:(1)$rose(booleanexpressionorsignal_name):当表达式/信号的最低位由0变为1时返回真;(2)$fell(booleanexpressionor

【SystemVerilog断言学习笔记3】SVA块的建立

不管学什么东西,如果掌握了技巧、规律,我们将很容易上手。同样,如果我们掌握了建立SystemVerilog断言(简称SVA)块的步骤,在后面SVA的深入学习中将起到事半功倍的效果。SVA块的建立步骤如下。步骤一、建立布尔表达式步骤二、建立序列表达式关键词

【SystemVerilog断言学习笔记2】断言的类型

SystemVerilog中包含并发断言和即时断言两种类型的断言。所谓并发断言就是在时钟边沿对变量进行采样并完成测试表达式的计算,它可以在模块、接口、过程块或程序中定义。这里有一点是需要声明的,对于变量的采样值是时钟边沿前一时刻相应变量的值。而即时断

【SystemVerilog断言学习笔记1】验证概述

一、前言随着数字电路规模越来越大、设计越来越复杂,使得对设计的功能验证越来越重要。首先,我们要明白为什么要对设计进行验证?验证有什么作用?例如,在用FPGA进行设计时,我们并不能确保设计出来的东西没有功能上的漏洞,因此在设计后我们都会对其进行