SVA支持expect构造,它与Verilog中的等待wait构造相似,关键的区别在expect语句等待的是属性的成功检验。
expect构造后面的代码是作为一个阻塞的语句来执行。
expect构造的语法与assert构造相似,expect语句允许在一个属性成功或者失败后使用一个执行块。下面举个例子:
initial begin
@( posedge clk );
#2ns cpu_ready = 1'b1;
expect( @(posedge clk) ##[1:16] memory_ready == 1'b1 )
$display( "Hand shake successful\n" );
else begin
$display( "Hand shake failed: exiting\n" );
$finish();
end
end
代码很容易看懂,就不解释了!
文章评论(0条评论)
登录后参与讨论