SVA中property基本语法及巧用define与property
文章目录
一、SVA中property语法
1. SVA概述:
SVA(SystemVerilog
Assertions)是一种用于验证硬件设计模型的形式化规范语言。它允许设计工程师Verilog代码中添加属性(assertion)来描述设计的行为和性质,并使用模型检查工具来验证这些属性是否满足。
2. property的基本语法:
- 声明属性:
属性声明通过关键字property进行,例如:
property p1;
// 嵌入具体的属性规则
endproperty
- 规则表达式:
属性内部使用规则表达式来描述设计模型的性质。规则表达式可以包含逻辑量词(always,eventually等)、时序运算符(next,until等)和逻辑运算符(and,or等)。
- 时序性质:
SVA支持对设计模型的时序性质验证。可以使用时钟、触发器、寄存器等时序元素进行属性的描述。
- SVA简单举例:
a.检查寄存器设置错误:属性p1检查一个寄存器的值是否在某个状态设置错误的范围内。
property p1;
reg [7:0] value;
// 寄存器value在0到9之间时,不能设置为5
@(posedge clk) disable iff (reset)
value >= 0 && value <= 9 |