SystemVerilog Assertions应用指南 Chapter1.36“ expect”构造

        SVA支持种叫“ expect”的构造,它与Verilog中的等待构造相似,关键的区别在于 expect语句等待的是属性的成功检验。expect构造后面的代码是作为一个阻塞的语句来执行 expect构造的语法与 assert构造很相似。 expect语句允许在一个属性成功或者失败后使用一个执行块( action block)。使用 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
	for(i=0;i<64;i++)
		begin
			send_packet();
			$display("Packet %0d sent \n",i);
			
		end

	end

        注意,在信号“ cpu ready”被断言后, expect语句等待信号“ memory_ready”在1~16个周期内的任意周期被断言。如果信号“ memory_ready”如预期的被断言,那么显示一个成功信息,并且开始执行“for”循环代码。如果信号“ memory_ready”没能如预期的被断言,那么显示错误信息,且模拟结柬。

 

你可能感兴趣的:(Systemverilog,fpga开发)