之前讲到,SVA主要完成协议检查和协议覆盖,而与时钟、时序有关的并发断言则是比较常用的断言。
并发断言是描述基于时钟周期,描述跨时钟周期的行为。
并发断言包含三层:
● 序列 sequence,用于描述一组信号的时序规律
注意这个sequence和验证环境中的那个sequence不是一回事,此处sequence就是描述某些信号的时序关系
● 属性 property,封装各种sequence,是要被验证的单元。11可描述一些序列的某些属性,例如检查器、假设条件和覆盖率。
● 断言 assert,将一些property做行为检查,形成断言。
1. 序列 sequence
先从序列开始讲起,例如
sequence s1;
@(posedge clk) a || b;
endsequence
上面代码表示一种序列,指a为高或b为高,@(posedge clk)
表示在每个clk的上升沿做一次检测,所以在每个clk上升沿都会判断