17-SVA中的多时钟定义,matched构造,expect构造

资料来源

(1) 硅芯思见:【94】SVA中的multi-clock (qq.com)

(2) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com)

1.SVA中的多时钟定义

(1) SVA允许序列或者属性使用多个时钟定义来采样独立的信号或者子序列;

(2) SVA会自动地同步不同信号或者子序列使用的时钟域;

(3) 当在一个序列中使用多个时钟信号时,只允许使用##1延迟构造

注1:下图所示sequence-s_multiple_clocks检验在时钟clk1的任何上升沿,信号a为高,接着在时钟clk2的上升沿,信号b为高.

下幅图片中有错误,clk0与clk1同频同相改为同频;

 

 

 

注2:##1延迟构造将检验时间移到时钟clk2的最近的上升沿,检查信号b是否为高.

(4) 当在一个序列中使用多个时钟信号时,不允许使用##0或##2.

(5) 当在一个属性中使用多个时钟信号时,属性可以在序列定义之间使用非交叠蕴含运算符;

(6) 当在一个属性中使用多个时钟信号时,禁止在不同时钟驱动的序列间使用交叠蕴含运算符;

2.matched构造

(1) 任何时候如果一个序列定义了多个时钟,构造"matched"可以用来检测第一个子序列的结束点.

(2) 下图所示property中,序列s_a查找信号a的上升沿,但是信号a是根据时钟clk1来次啊应的; 序列s_b查找信号b的上升沿,信号b是根据时钟clk2来采样;

属性p_match验证在给定的时钟clk2的上升沿,如果序列s_a匹配,那么在一个周期后,序列s_b也必须为真.

 

3.expect构造

(1) SVA中的expect构造与verilog中的等待构造相似,区别在于expect语句等待的是属性的成功检验;

(2) expect构造后面的代码是作为一个阻塞的语句来执行. expect构造的语法与assert构造相似; expect语句允许在一个属性成功或者失败后使用一个执行快;

 

 

posted on 2021-12-07 16:02  知北游。。  阅读(644)  评论(0编辑  收藏  举报

导航